:root {
  --iehojo-navy: #17345d;
  --iehojo-navy-deep: #10294b;
  --iehojo-sage: #7aa782;
  --iehojo-sage-deep: #5e8e69;
  --iehojo-sage-soft: #edf5ef;
  --iehojo-cream: #f5eadd;
  --iehojo-text: #25344a;
  --iehojo-muted: #66758b;
  --iehojo-line: #dce5e8;
  --iehojo-light: #f6f9f8;
  --iehojo-white: #ffffff;
  --iehojo-orange: #f07a2c;
  --iehojo-shadow: 0 16px 42px rgba(23, 52, 93, .10);
  --iehojo-radius: 22px;
  --iehojo-container: 1180px;
}

.iehojo-site,
.iehojo-site button,
.iehojo-site input,
.iehojo-site select,
.iehojo-site textarea {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.iehojo-site { color: var(--iehojo-text); background: var(--iehojo-white); }
.iehojo-site * { box-sizing: border-box; }
.iehojo-site img { max-width: 100%; height: auto; }
.iehojo-site a { color: inherit; text-decoration: none; }
.iehojo-site button { font: inherit; }
.iehojo-container { width: min(calc(100% - 40px), var(--iehojo-container)); margin-inline: auto; }
.iehojo-main { overflow: clip; }
.iehojo-skip-link { position: fixed; left: 12px; top: -80px; z-index: 99999; padding: 10px 16px; background: var(--iehojo-navy); color: #fff !important; border-radius: 8px; }
.iehojo-skip-link:focus { top: 12px; }

.iehojo-header { position: sticky; top: 0; z-index: 1000; overflow: visible; background: rgba(255,255,255,.98); border-bottom: 1px solid rgba(23,52,93,.08); backdrop-filter: blur(12px); }
.admin-bar .iehojo-header { top: 32px; }
.iehojo-header__inner { width: min(calc(100% - 36px), var(--iehojo-container)); min-height: 78px; margin: auto; display: flex; align-items: center; gap: 22px; overflow: visible; }
.iehojo-brand { display: flex; flex: 0 0 228px; align-items: center; min-width: 0; padding: 8px 0; overflow: visible; }
.iehojo-brand picture { display: block; width: 100%; line-height: 0; overflow: visible; }
.iehojo-brand img { display: block; width: 228px; max-width: 100%; height: auto; object-fit: contain; object-position: center; overflow: visible; }
.iehojo-nav { margin-left: auto; }
.iehojo-nav__list { display: flex; align-items: center; gap: 22px; margin: 0; padding: 0; list-style: none; }
.iehojo-nav__list a { font-size: 14px; font-weight: 700; color: var(--iehojo-navy); white-space: nowrap; }
.iehojo-nav__list a:hover, .iehojo-nav__list a:focus-visible { color: var(--iehojo-sage-deep); }
.iehojo-header__search { min-width: 144px; min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; display: inline-flex; justify-content: center; align-items: center; gap: 8px; background: var(--iehojo-navy); color: #fff !important; font-size: 14px; font-weight: 800; line-height: 1; white-space: nowrap; cursor: pointer; box-shadow: 0 8px 22px rgba(23,52,93,.18); }
.iehojo-header__search span, .iehojo-header__search svg { color: #fff !important; }
.iehojo-header__search svg, .iehojo-button svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.iehojo-menu-toggle { position: relative; display: none; flex: 0 0 44px; width: 44px; height: 44px; margin-left: auto; padding: 0; border: 1px solid #d6e0e5; border-radius: 12px; background: #fff; box-shadow: 0 5px 16px rgba(23,52,93,.06); cursor: pointer; }
.iehojo-menu-toggle__bar { position: absolute; left: 11px; right: 11px; height: 2px; background: var(--iehojo-navy); border-radius: 999px; transform-origin: center; transition: transform .18s ease, opacity .18s ease, top .18s ease; }
.iehojo-menu-toggle__bar:nth-child(1) { top: 13px; }
.iehojo-menu-toggle__bar:nth-child(2) { top: 20px; }
.iehojo-menu-toggle__bar:nth-child(3) { top: 27px; }
.iehojo-menu-toggle[aria-expanded="true"] .iehojo-menu-toggle__bar:nth-child(1) { top: 20px; transform: rotate(45deg); }
.iehojo-menu-toggle[aria-expanded="true"] .iehojo-menu-toggle__bar:nth-child(2) { opacity: 0; }
.iehojo-menu-toggle[aria-expanded="true"] .iehojo-menu-toggle__bar:nth-child(3) { top: 20px; transform: rotate(-45deg); }
.iehojo-mobile-menu[hidden] { display: none !important; }
.iehojo-mobile-menu { position: absolute; top: 100%; left: 0; right: 0; z-index: 1001; border-top: 1px solid var(--iehojo-line); background: rgba(247,250,249,.995); box-shadow: 0 18px 38px rgba(23,52,93,.14); }
.iehojo-mobile-menu__inner { width: min(calc(100% - 28px), 520px); margin: 0 auto; padding: 18px 0 22px; }
.iehojo-mobile-menu__head { padding: 2px 4px 13px; }
.iehojo-mobile-menu__head strong, .iehojo-mobile-menu__head span { display: block; }
.iehojo-mobile-menu__head strong { color: var(--iehojo-navy); font-size: 17px; }
.iehojo-mobile-menu__head span { margin-top: 3px; color: var(--iehojo-muted); font-size: 11.5px; }
.iehojo-mobile-menu__list { display: grid !important; gap: 8px; margin: 0 0 14px !important; padding: 0 !important; list-style: none !important; }
.iehojo-mobile-menu__list li { margin: 0 !important; padding: 0 !important; }
.iehojo-mobile-menu__list a { display: flex !important; align-items: center; justify-content: space-between; width: 100%; min-height: 50px; padding: 12px 14px !important; border: 1px solid var(--iehojo-line); border-radius: 12px; background: #fff; color: var(--iehojo-navy) !important; font-size: 14px; font-weight: 800; line-height: 1.5; }
.iehojo-mobile-menu__list a::after { content: "›"; margin-left: 14px; color: var(--iehojo-sage-deep); font-size: 22px; font-weight: 500; line-height: 1; }
.iehojo-mobile-menu__cta { width: 100%; min-height: 50px; border-radius: 12px; }

.iehojo-hero { position: relative; padding: clamp(52px, 6vw, 74px) 0 46px; background: linear-gradient(115deg, #f8fcff 0%, #f4faf5 56%, #eef6f2 100%); }
.iehojo-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 84% 22%, rgba(122,167,130,.17), transparent 29%); pointer-events: none; }
.iehojo-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(310px, .8fr); align-items: center; gap: 52px; }
.iehojo-badge { display: inline-flex; margin: 0 0 20px; padding: 8px 16px; border-radius: 999px; background: var(--iehojo-sage); color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .03em; }
.iehojo-hero h1 { margin: 0; color: var(--iehojo-navy); font-size: clamp(38px, 4.55vw, 56px); line-height: 1.25; letter-spacing: -.035em; font-weight: 900; }
.iehojo-hero h1 span { color: var(--iehojo-sage-deep); }
.iehojo-hero__lead { max-width: 700px; margin: 24px 0 0; font-size: 17px; line-height: 2; color: #43536a; }
.iehojo-hero__actions { display: flex; align-items: center; gap: 24px; margin-top: 30px; }
.iehojo-button { min-height: 50px; padding: 0 24px; font-size: 14px; border: 0; border-radius: 14px; display: inline-flex; justify-content: center; align-items: center; gap: 9px; font-weight: 800; line-height: 1.2; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.iehojo-button:hover:not(:disabled) { transform: translateY(-2px); }
.iehojo-button--primary { background: var(--iehojo-navy); color: #fff !important; box-shadow: 0 12px 26px rgba(23,52,93,.17); }
.iehojo-button--primary:hover:not(:disabled) { background: #0d2a50; }
.iehojo-button--outline { border: 1px solid var(--iehojo-navy); background: #fff; color: var(--iehojo-navy); }
.iehojo-button--disabled { width: 100%; background: #e7ecef; color: #84909c; cursor: not-allowed; }
.iehojo-text-link { font-weight: 800; color: var(--iehojo-navy); }
.iehojo-text-link span { color: var(--iehojo-sage-deep); }
.iehojo-hero__status { margin: 22px 0 0; padding-left: 14px; border-left: 3px solid var(--iehojo-sage); font-size: 12.5px; line-height: 1.7; color: var(--iehojo-muted); }
.iehojo-hero__visual { position: relative; min-height: 390px; display: grid; place-items: center; }
.iehojo-hero__halo { position: absolute; width: 330px; height: 330px; border-radius: 50%; background: linear-gradient(145deg, #dfeee3, #f9fcfa); box-shadow: inset 0 0 0 1px rgba(122,167,130,.18); }
.iehojo-hero__visual picture { position: relative; z-index: 2; transform: translateY(8px); }
.iehojo-hero__visual img { width: min(310px, 82vw); filter: drop-shadow(0 18px 18px rgba(44,53,51,.12)); }
.iehojo-hero__bubble { position: absolute; right: 0; top: 56px; z-index: 3; padding: 12px 16px; border: 1px solid #cfe0d3; border-radius: 15px 15px 15px 4px; background: rgba(255,255,255,.94); box-shadow: var(--iehojo-shadow); }
.iehojo-hero__bubble strong, .iehojo-hero__bubble span { display: block; }
.iehojo-hero__bubble strong { color: var(--iehojo-navy); font-size: 13px; }
.iehojo-hero__bubble span { margin-top: 2px; color: var(--iehojo-sage-deep); font-size: 12px; font-weight: 700; }

.iehojo-trust { margin-top: -18px; position: relative; z-index: 4; }
.iehojo-trust__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; padding: 18px; border: 1px solid var(--iehojo-line); border-radius: 20px; background: #fff; box-shadow: var(--iehojo-shadow); }
.iehojo-trust article { display: flex; align-items: center; gap: 13px; padding: 12px 16px; }
.iehojo-trust article + article { border-left: 1px solid var(--iehojo-line); }
.iehojo-trust strong, .iehojo-trust span { display: block; }
.iehojo-trust strong { color: var(--iehojo-navy); font-size: 15px; }
.iehojo-trust span { margin-top: 3px; color: var(--iehojo-muted); font-size: 12.5px; }
.iehojo-icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 13px; background: var(--iehojo-sage-soft); color: var(--iehojo-sage-deep); }
.iehojo-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.iehojo-section { padding: 82px 0; }
.iehojo-section--soft { background: var(--iehojo-light); }
.iehojo-section__head { max-width: 760px; margin: 0 auto 38px; text-align: center; }
.iehojo-eyebrow { margin: 0 0 8px; color: var(--iehojo-sage-deep); font-size: 12px; font-weight: 900; letter-spacing: .14em; }
.iehojo-section__head h2, .iehojo-about h2, .iehojo-cta h2 { margin: 0; color: var(--iehojo-navy); font-size: clamp(28px, 3.5vw, 42px); line-height: 1.4; font-weight: 900; letter-spacing: -.02em; }
.iehojo-section__head > p:last-child { margin: 14px 0 0; color: var(--iehojo-muted); line-height: 1.9; }
.iehojo-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.iehojo-card { padding: 28px 24px 24px; border: 1px solid var(--iehojo-line); border-radius: var(--iehojo-radius); background: #fff; box-shadow: 0 8px 28px rgba(23,52,93,.055); }
.iehojo-card__icon { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 20px; border-radius: 16px; background: var(--iehojo-sage-soft); color: var(--iehojo-navy); }
.iehojo-card__icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.iehojo-card h3 { margin: 0; color: var(--iehojo-navy); font-size: 20px; }
.iehojo-card p { min-height: 96px; margin: 12px 0 18px; color: var(--iehojo-muted); font-size: 14px; line-height: 1.85; }
.iehojo-card__link { padding: 0; border: 0; background: none; color: var(--iehojo-sage-deep) !important; font-weight: 800; font-size: 13.5px; cursor: pointer; }

.iehojo-search-panel { display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: center; padding: 48px; border: 1px solid #d9e8dd; border-radius: 28px; background: linear-gradient(135deg,#fff,#f2f8f3); box-shadow: 0 12px 38px rgba(23,52,93,.06); }
.iehojo-search-panel h2 { margin: 0; color: var(--iehojo-navy); font-size: 34px; }
.iehojo-search-panel__content > p:not(.iehojo-eyebrow) { margin: 14px 0 24px; line-height: 1.9; color: var(--iehojo-muted); }
.iehojo-search-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }
.iehojo-search-flow div { min-height: 144px; padding: 22px 18px; display: flex; flex-direction: column; justify-content: center; border: 1px solid var(--iehojo-line); border-radius: 18px; background: #fff; text-align: center; }
.iehojo-search-flow small { color: var(--iehojo-sage-deep); font-weight: 900; letter-spacing: .08em; }
.iehojo-search-flow strong { margin-top: 8px; color: var(--iehojo-navy); }
.iehojo-search-flow span { margin-top: 5px; color: var(--iehojo-muted); font-size: 12px; }
.iehojo-search-flow i { color: var(--iehojo-sage); font-style: normal; font-size: 24px; }

.iehojo-check-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.iehojo-check-card { position: relative; min-height: 215px; padding: 28px 24px 24px; border: 1px solid var(--iehojo-line); border-radius: var(--iehojo-radius); background: #fff; box-shadow: 0 8px 28px rgba(23,52,93,.055); }
.iehojo-check-card > span { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 28px; padding: 0 10px; border-radius: 999px; background: var(--iehojo-sage-soft); color: var(--iehojo-sage-deep); font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.iehojo-check-card h3 { margin: 18px 0 0; color: var(--iehojo-navy); font-size: 19px; line-height: 1.5; }
.iehojo-check-card p { margin: 10px 0 0; color: var(--iehojo-muted); font-size: 14px; line-height: 1.85; }

.iehojo-about { background: var(--iehojo-navy); color: #fff; }
.iehojo-about__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.iehojo-about .iehojo-eyebrow { color: #a9d0b1; }
.iehojo-about h2 { color: #fff; }
.iehojo-about__copy p { margin: 0 0 18px; color: #dce6f0; line-height: 2; }
.iehojo-about__copy .iehojo-note { margin-top: 26px; padding: 16px 18px; border-radius: 14px; background: rgba(255,255,255,.08); color: #fff; font-size: 13px; }

.iehojo-cta { padding: 58px 0; background: #edf6ef; }
.iehojo-cta__inner { display: grid; grid-template-columns: 160px 1fr auto; gap: 32px; align-items: center; }
.iehojo-cta__inner img { width: 150px; }
.iehojo-cta h2 { font-size: 30px; }
.iehojo-cta p:not(.iehojo-eyebrow) { margin: 10px 0 0; color: var(--iehojo-muted); line-height: 1.8; }

.iehojo-footer { background: var(--iehojo-navy-deep); color: #fff; }
.iehojo-footer__grid { display: grid; grid-template-columns: 1fr auto; gap: 60px; align-items: center; padding: 48px 0 38px; }
.iehojo-footer__brand img { width: 230px; filter: none; opacity: 1; }
.iehojo-footer__brand p { max-width: 580px; margin: 12px 0 0; color: #c6d1df; font-size: 13px; line-height: 1.8; }
.iehojo-footer__list { display: flex; flex-wrap: wrap; gap: 18px; margin: 0; padding: 0; list-style: none; }
.iehojo-footer__list a { color: #fff; font-size: 13px; font-weight: 700; }
.iehojo-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); }
.iehojo-footer__bottom p { margin: 0; padding: 18px 0; color: #aebdcd; font-size: 11px; }

.iehojo-modal[hidden] { display: none !important; }
.iehojo-modal { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; opacity: 0; transition: opacity .2s ease; }
.iehojo-modal.is-open { opacity: 1; }
.iehojo-modal__backdrop { position: absolute; inset: 0; background: rgba(10,29,52,.68); backdrop-filter: blur(5px); }
.iehojo-modal__dialog { position: relative; z-index: 1; width: min(calc(100% - 32px), 680px); max-height: min(860px, calc(100dvh - 32px)); overflow: hidden; border: 1px solid rgba(23,52,93,.10); border-radius: 26px; background: #fff; box-shadow: 0 34px 100px rgba(5,24,48,.34); transform: translateY(14px) scale(.99); transition: transform .2s ease; }
.iehojo-modal.is-open .iehojo-modal__dialog { transform: translateY(0) scale(1); }
.iehojo-modal__close { position: absolute; top: 16px; right: 16px; z-index: 4; width: 40px; height: 40px; padding: 0; border: 1px solid var(--iehojo-line); border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--iehojo-navy); font-size: 25px; line-height: 1; cursor: pointer; box-shadow: 0 5px 16px rgba(23,52,93,.08); }
.iehojo-modal-open { overflow: hidden; }

.iehojo-diagnosis__dialog { display: grid; grid-template-rows: auto minmax(0,1fr); }
.iehojo-diagnosis__header { position: relative; padding: 20px 70px 16px 22px; border-bottom: 1px solid var(--iehojo-line); background: linear-gradient(135deg,#fbfdfc,#eff7f1); }
.iehojo-diagnosis__brand { display: flex; align-items: center; gap: 13px; }
.iehojo-diagnosis__brand img { width: 58px; height: 58px; object-fit: contain; object-position: center 24%; border-radius: 50%; background: #e8f3ea; }
.iehojo-diagnosis__brand .iehojo-eyebrow { margin-bottom: 2px; font-size: 10px; }
.iehojo-diagnosis__brand h2 { margin: 0; color: var(--iehojo-navy); font-size: 25px; line-height: 1.25; }
.iehojo-diagnosis__progress { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; margin-top: 15px; }
.iehojo-diagnosis__progress-bar { height: 6px; overflow: hidden; border-radius: 999px; background: #dfe9e2; }
.iehojo-diagnosis__progress-bar span { display: block; width: 25%; height: 100%; border-radius: inherit; background: var(--iehojo-sage); transition: width .25s ease; }
.iehojo-diagnosis__progress > span { min-width: 35px; color: var(--iehojo-muted); font-size: 11px; font-weight: 800; text-align: right; }
.iehojo-diagnosis__body { min-height: 470px; max-height: calc(100dvh - 190px); overflow-y: auto; overscroll-behavior: contain; padding: 24px 24px 28px; background: #f7faf9; }
.iehojo-diagnosis__history { display: grid; gap: 10px; margin-bottom: 10px; }
.iehojo-diagnosis__step[hidden] { display: none !important; }
.iehojo-diagnosis__step.is-active { animation: iehojoDiagnosisIn .22s ease both; }
@keyframes iehojoDiagnosisIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }

.iehojo-chat { display: flex; align-items: flex-end; gap: 9px; margin-bottom: 16px; }
.iehojo-chat__avatar { flex: 0 0 44px; width: 44px; height: 44px; overflow: hidden; border-radius: 50%; background: #e4f1e7; }
.iehojo-chat__avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center 24%; }
.iehojo-chat__bubble { max-width: min(82%, 470px); padding: 13px 15px; border: 1px solid #d7e5da; border-radius: 8px 18px 18px 18px; background: #fff; box-shadow: 0 7px 20px rgba(23,52,93,.055); }
.iehojo-chat__bubble strong { display: block; margin-bottom: 4px; color: var(--iehojo-sage-deep); font-size: 11px; }
.iehojo-chat__bubble p { margin: 0; color: var(--iehojo-text); font-size: 14px; line-height: 1.75; }
.iehojo-chat--user { justify-content: flex-end; margin: 0; }
.iehojo-chat--user .iehojo-chat__bubble { border-color: #c8d9ea; border-radius: 18px 8px 18px 18px; background: var(--iehojo-navy); }
.iehojo-chat--user .iehojo-chat__bubble p { color: #fff; font-size: 13px; }

.iehojo-diagnosis__answer-card { margin-left: 53px; padding: 18px; border: 1px solid var(--iehojo-line); border-radius: 18px; background: #fff; box-shadow: 0 9px 26px rgba(23,52,93,.055); }
.iehojo-diagnosis__answer-card > label:not(.iehojo-diagnosis__check) { display: block; margin-bottom: 7px; color: var(--iehojo-navy); font-size: 13px; font-weight: 800; }
.iehojo-diagnosis select,
.iehojo-diagnosis input[type="text"] { width: 100%; min-height: 50px; padding: 0 14px; border: 1px solid #cbd9df; border-radius: 12px; background: #fff; color: var(--iehojo-text); font-size: 15px; outline: none; }
.iehojo-diagnosis select:focus,
.iehojo-diagnosis input[type="text"]:focus { border-color: var(--iehojo-sage-deep); box-shadow: 0 0 0 3px rgba(122,167,130,.16); }
.iehojo-diagnosis input[type="text"]:disabled { background: #f0f3f3; color: #98a3ad; }
.iehojo-diagnosis__check { display: flex; align-items: center; gap: 8px; margin-top: 11px; color: var(--iehojo-muted); font-size: 12.5px; cursor: pointer; }
.iehojo-diagnosis__check input { width: 18px; height: 18px; accent-color: var(--iehojo-sage-deep); }
.iehojo-diagnosis__next { width: 100%; margin-top: 16px; }
.iehojo-diagnosis__actions { display: grid; grid-template-columns: minmax(100px,.7fr) minmax(160px,1.3fr); gap: 10px; margin-top: 18px; }
.iehojo-diagnosis__actions .iehojo-button { width: 100%; }
.iehojo-diagnosis__error { margin: 8px 0 0; color: #a53f3f; font-size: 12px; font-weight: 700; }

.iehojo-diagnosis__choices { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.iehojo-diagnosis__choices button { min-height: 74px; padding: 12px 10px; border: 1px solid #d4e0e4; border-radius: 14px; background: #fff; color: var(--iehojo-navy); font-size: 13px; font-weight: 800; line-height: 1.5; cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.iehojo-diagnosis__choices button:hover,
.iehojo-diagnosis__choices button:focus-visible { border-color: var(--iehojo-sage); background: #f7fbf8; }
.iehojo-diagnosis__choices button.is-selected { border-color: var(--iehojo-sage-deep); background: var(--iehojo-sage-soft); box-shadow: inset 0 0 0 1px var(--iehojo-sage-deep); }

.iehojo-diagnosis__multi { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.iehojo-diagnosis__multi label { position: relative; cursor: pointer; }
.iehojo-diagnosis__multi input { position: absolute; opacity: 0; pointer-events: none; }
.iehojo-diagnosis__multi span { min-height: 48px; padding: 10px 12px; border: 1px solid #d4e0e4; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: #fff; color: var(--iehojo-navy); font-size: 12.5px; font-weight: 800; text-align: center; line-height: 1.45; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.iehojo-diagnosis__multi input:focus-visible + span { outline: 3px solid rgba(122,167,130,.2); outline-offset: 2px; }
.iehojo-diagnosis__multi input:checked + span { border-color: var(--iehojo-sage-deep); background: var(--iehojo-sage-soft); box-shadow: inset 0 0 0 1px var(--iehojo-sage-deep); }
.iehojo-diagnosis__multi input:checked + span::before { content: "✓"; margin-right: 6px; color: var(--iehojo-sage-deep); }

.iehojo-diagnosis__summary { margin: 18px 0; padding: 18px; border: 1px solid var(--iehojo-line); border-radius: 17px; background: #fff; }
.iehojo-diagnosis__summary h3 { margin: 0 0 11px; color: var(--iehojo-navy); font-size: 17px; }
.iehojo-diagnosis__summary dl { margin: 0; }
.iehojo-diagnosis__summary dl > div { display: grid; grid-template-columns: 110px 1fr; gap: 14px; padding: 10px 0; border-top: 1px solid #edf1f2; }
.iehojo-diagnosis__summary dl > div:first-child { border-top: 0; }
.iehojo-diagnosis__summary dt { color: var(--iehojo-muted); font-size: 12px; font-weight: 700; }
.iehojo-diagnosis__summary dd { margin: 0; color: var(--iehojo-navy); font-size: 13px; font-weight: 800; line-height: 1.6; }
.iehojo-diagnosis__notice { padding: 16px 17px; border: 1px solid #d5e5d8; border-radius: 15px; background: var(--iehojo-sage-soft); }
.iehojo-diagnosis__notice strong { color: var(--iehojo-navy); font-size: 14px; }
.iehojo-diagnosis__notice p { margin: 6px 0 0; color: var(--iehojo-muted); font-size: 12.5px; line-height: 1.75; }
.iehojo-diagnosis__privacy { margin: 13px 2px 0; color: var(--iehojo-muted); font-size: 11px; line-height: 1.7; }
.iehojo-diagnosis__actions--result { margin-top: 15px; }

.iehojo-content-page { padding: 58px 0 90px; background: var(--iehojo-light); }
.iehojo-content-page__inner { max-width: 900px; }
.iehojo-entry { padding: clamp(24px,5vw,54px); border: 1px solid var(--iehojo-line); border-radius: 22px; background: #fff; }
.iehojo-entry__header h1 { margin: 0 0 30px; color: var(--iehojo-navy); font-size: clamp(30px,4vw,44px); }
.iehojo-entry__content { line-height: 2; }
.iehojo-entry__content h2 { margin-top: 2.2em; color: var(--iehojo-navy); }
.iehojo-404 { padding: 80px 0; }
.iehojo-404__inner { max-width: 720px; margin: auto; text-align: center; }
.iehojo-404__inner img { width: 210px; }
.iehojo-404 h1 { color: var(--iehojo-navy); }
.iehojo-404 p { color: var(--iehojo-muted); }
.iehojo-404 .iehojo-button { margin-top: 18px; }

@media (max-width: 1040px) {
  .iehojo-nav { display: none; }
  .iehojo-header__search { margin-left: auto; }
  .iehojo-menu-toggle { display: block; }
  .iehojo-feature-grid,
  .iehojo-check-grid { grid-template-columns: repeat(2,1fr); }
  .iehojo-search-panel { grid-template-columns: 1fr; }
}


@media (max-width: 782px) {
  .admin-bar .iehojo-header { top: 46px; }
}

@media (max-width: 780px) {
  .iehojo-container { width: min(calc(100% - 28px), var(--iehojo-container)); }
  .iehojo-header__inner { width: calc(100% - 24px); min-height: 66px; gap: 10px; }
  .iehojo-brand { flex: 0 1 172px; max-width: 172px; padding: 7px 0; }
  .iehojo-brand img { width: 172px; }
  .iehojo-header__search { display: none; }
  .iehojo-mobile-menu__inner { width: calc(100% - 24px); }
  .iehojo-hero { padding: 34px 0 38px; }
  .iehojo-hero__grid { grid-template-columns: 1fr; gap: 24px; }
  .iehojo-hero__content { text-align: left; }
  .iehojo-badge { font-size: 12px; }
  .iehojo-hero h1 { font-size: clamp(30px, 8.6vw, 40px); line-height: 1.32; letter-spacing: -.025em; }
  .iehojo-hero__lead { margin-top: 18px; font-size: 14.5px; line-height: 1.85; }
  .iehojo-hero__actions { align-items: stretch; flex-direction: column; gap: 12px; margin-top: 24px; }
  .iehojo-hero__actions .iehojo-button { width: 100%; }
  .iehojo-hero__visual { min-height: 286px; }
  .iehojo-hero__halo { width: 250px; height: 250px; }
  .iehojo-hero__visual img { width: 226px; }
  .iehojo-hero__bubble { right: 4px; top: 34px; }
  .iehojo-trust { margin-top: 0; padding-top: 14px; background: #f7faf9; }
  .iehojo-trust__grid { grid-template-columns: 1fr; gap: 0; padding: 6px 16px; box-shadow: none; }
  .iehojo-trust article { padding: 14px 4px; }
  .iehojo-trust article + article { border-left: 0; border-top: 1px solid var(--iehojo-line); }
  .iehojo-section { padding: 58px 0; }
  .iehojo-section__head { text-align: left; }
  .iehojo-feature-grid { grid-template-columns: 1fr; }
  .iehojo-card { padding: 24px 20px 21px; }
  .iehojo-card p { min-height: 0; }
  .iehojo-search-panel { padding: 28px 20px; gap: 30px; }
  .iehojo-search-panel h2 { font-size: 28px; }
  .iehojo-search-flow { grid-template-columns: 1fr; }
  .iehojo-search-flow i { transform: rotate(90deg); text-align: center; }
  .iehojo-search-flow div { min-height: 112px; }
  .iehojo-check-grid { grid-template-columns: 1fr; }
  .iehojo-check-card { min-height: 0; padding: 23px 20px; }
  .iehojo-about__grid { grid-template-columns: 1fr; gap: 28px; }
  .iehojo-cta__inner { grid-template-columns: 100px 1fr; gap: 16px; }
  .iehojo-cta__inner img { width: 100px; }
  .iehojo-cta__inner .iehojo-button { grid-column: 1 / -1; width: 100%; }
  .iehojo-footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .iehojo-footer__list { flex-direction: column; gap: 12px; }
  .iehojo-modal { place-items: end center; }
  .iehojo-modal__dialog { width: 100%; max-height: calc(100dvh - 8px); border-radius: 22px 22px 0 0; border-bottom: 0; }
  .iehojo-diagnosis__header { padding: 15px 60px 13px 16px; }
  .iehojo-diagnosis__brand img { width: 48px; height: 48px; }
  .iehojo-diagnosis__brand h2 { font-size: 21px; }
  .iehojo-diagnosis__progress { margin-top: 11px; }
  .iehojo-diagnosis__body { min-height: 0; max-height: calc(100dvh - 124px); padding: 18px 14px 24px; }
  .iehojo-chat__avatar { flex-basis: 38px; width: 38px; height: 38px; }
  .iehojo-chat__bubble { max-width: calc(100% - 48px); padding: 11px 13px; }
  .iehojo-chat__bubble p { font-size: 13px; }
  .iehojo-diagnosis__answer-card { margin-left: 0; padding: 15px; }
  .iehojo-diagnosis__choices { grid-template-columns: 1fr; }
  .iehojo-diagnosis__choices button { min-height: 52px; }
  .iehojo-diagnosis__multi { grid-template-columns: 1fr 1fr; gap: 7px; }
  .iehojo-diagnosis__multi span { min-height: 46px; padding: 9px 7px; font-size: 11.5px; }
  .iehojo-diagnosis__summary dl > div { grid-template-columns: 92px 1fr; gap: 10px; }
}


@media (max-width: 430px) {
  .iehojo-container { width: calc(100% - 24px); }
  .iehojo-brand { flex-basis: 160px; max-width: 160px; }
  .iehojo-brand img { width: 160px; }
  .iehojo-menu-toggle { width: 42px; height: 42px; flex-basis: 42px; }
  .iehojo-menu-toggle__bar { left: 10px; right: 10px; }
  .iehojo-badge { margin-bottom: 15px; padding: 7px 12px; font-size: 11px; }
  .iehojo-hero h1 { font-size: 29px; }
  .iehojo-hero__status { margin-top: 17px; font-size: 11.5px; }
  .iehojo-section__head h2, .iehojo-about h2, .iehojo-cta h2 { font-size: 27px; }
  .iehojo-search-panel h2 { font-size: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  .iehojo-site *, .iehojo-site *::before, .iehojo-site *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}


/* ========================================================================
   Iehojo v0.1.5 — Rihojo-style conversational diagnosis
   ======================================================================== */
html.iehojo-modal-open,
body.iehojo-modal-open { overflow: hidden !important; }

.iehojo-diagnosis.iehojo-modal {
  z-index: 1000000;
  display: none;
  opacity: 1;
  background: rgba(237,247,241,.98);
}
.iehojo-diagnosis.iehojo-modal.is-open { display: block; }
.iehojo-diagnosis .iehojo-modal__backdrop { position:absolute; inset:0; background:rgba(16,41,75,.22); }
.iehojo-diagnosis .iehojo-modal__dialog {
  position: relative;
  z-index: 1;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: rgba(237,247,241,.98);
  box-shadow: none;
  transform: none;
}
.iehojo-diagnosis.iehojo-modal.is-open .iehojo-modal__dialog { transform:none; }
.iehojo-diagnosis__frame {
  width: min(100%,1180px);
  height: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-rows: 68px 22px minmax(0,1fr);
  overflow: hidden;
  border-left: 1px solid #d7e5dc;
  border-right: 1px solid #d7e5dc;
  background: #fff;
}
.iehojo-diagnosis__header {
  min-height: 68px;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 190px minmax(0,1fr) auto;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid #dce8e0;
  background: #fff;
}
.iehojo-diagnosis__title { display:flex; align-items:center; gap:10px; min-width:0; }
.iehojo-diagnosis__title img {
  display:block;
  width: 120px;
  max-width:120px;
  height:auto;
  max-height:44px;
  object-fit:contain;
}
.iehojo-diagnosis__title strong { color:var(--iehojo-navy); font-size:15px; white-space:nowrap; }
.iehojo-diagnosis__steps {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  min-width:0;
}
.iehojo-diagnosis__steps li {
  position:relative;
  min-width:54px;
  display:flex;
  align-items:center;
  gap:6px;
  color:#8b9b90;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.iehojo-diagnosis__steps li:not(:last-child)::after {
  content:"";
  position:absolute;
  left:calc(100% + 5px);
  top:50%;
  width:10px;
  height:1px;
  background:#d4e1d8;
}
.iehojo-diagnosis__steps b {
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e8efea;
  color:#7c8d82;
  font-size:10px;
}
.iehojo-diagnosis__steps li.is-active b,
.iehojo-diagnosis__steps li.is-done b { background:var(--iehojo-sage-deep); color:#fff; }
.iehojo-diagnosis__steps li.is-active span { color:var(--iehojo-sage-deep); }
.iehojo-diagnosis__steps li.is-done span { color:#667f6c; }
.iehojo-diagnosis__header-actions { display:flex; align-items:center; gap:8px; }
.iehojo-diagnosis__reset,
.iehojo-diagnosis__close {
  min-height:34px;
  padding:6px 10px;
  border:1px solid #cbdad0;
  border-radius:17px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  background:#fff;
  color:var(--iehojo-navy);
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.iehojo-diagnosis__close b { font-size:19px; line-height:1; font-weight:500; }
.iehojo-diagnosis__progress {
  min-height:22px;
  padding:0 16px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  border-bottom:1px solid #e4ece7;
  background:#f7faf8;
}
.iehojo-diagnosis__progress-bar { height:4px; overflow:hidden; border-radius:999px; background:#dfe8e2; }
.iehojo-diagnosis__progress-bar span { display:block; width:12.5%; height:100%; border-radius:inherit; background:var(--iehojo-sage-deep); transition:width .25s ease; }
.iehojo-diagnosis__progress small { min-width:34px; color:#7a8a80; font-size:9px; font-weight:800; text-align:right; }
.iehojo-diagnosis__content { min-height:0; display:grid; grid-template-columns:255px minmax(0,1fr); overflow:hidden; }
.iehojo-diagnosis__visual {
  position:relative;
  min-height:0;
  overflow:hidden;
  padding:30px 18px 18px;
  border-right:1px solid #d8e5dc;
  background:linear-gradient(180deg,#edf8f0 0%,#e3f1e7 100%);
}
.iehojo-diagnosis__visual-bubble {
  position:relative;
  width:190px;
  margin:0 auto 4px;
  padding:12px 13px;
  border-radius:26px;
  background:#fff;
  color:var(--iehojo-navy);
  text-align:center;
  font-size:11px;
  line-height:1.5;
  font-weight:900;
  box-shadow:0 6px 18px rgba(23,52,93,.07);
}
.iehojo-diagnosis__visual-bubble::after {
  content:"";
  position:absolute;
  left:75px;
  bottom:-9px;
  border:9px solid transparent;
  border-top-color:#fff;
}
.iehojo-diagnosis__visual-mascot { width:205px; height:245px; display:block; margin:0 auto; object-fit:contain; }
.iehojo-diagnosis__visual-card {
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  padding:12px 13px;
  border:1px solid #d7e4db;
  border-radius:12px;
  background:#fff;
  box-shadow:0 6px 18px rgba(23,52,93,.06);
}
.iehojo-diagnosis__visual-card h3 { margin:0 0 8px; color:var(--iehojo-navy); font-size:12px; }
.iehojo-diagnosis__visual-card > div { display:grid; grid-template-columns:70px 1fr; gap:7px; padding:5px 0; border-top:1px solid #eef2ef; font-size:9px; line-height:1.45; }
.iehojo-diagnosis__visual-card > div:first-of-type { border-top:0; }
.iehojo-diagnosis__visual-card span { color:#78877d; }
.iehojo-diagnosis__visual-card strong { color:#405448; font-size:9px; }
.iehojo-diagnosis__chat {
  position:relative;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:28px 28px 36px;
  background:
    linear-gradient(rgba(23,52,93,.025) 1px, transparent 1px),
    linear-gradient(90deg,rgba(23,52,93,.025) 1px, transparent 1px),
    #fbfcfb;
  background-size:24px 24px;
  scroll-behavior:smooth;
}
.iehojo-diagnosis__mobile-intro { display:none; }
.iehojo-chat-row { display:flex; gap:10px; align-items:flex-start; margin-bottom:16px; }
.iehojo-chat-row--bot { justify-content:flex-start; }
.iehojo-chat-row--user { justify-content:flex-end; }
.iehojo-chat-avatar { width:54px; height:54px; flex:0 0 54px; overflow:visible; background:transparent; }
.iehojo-chat-avatar img { width:54px; height:54px; object-fit:contain; object-position:center; }
.iehojo-chat-message {
  width:auto;
  max-width:min(590px,calc(100% - 72px));
  padding:12px 15px;
  border:1px solid #d9e5dd;
  border-radius:7px 15px 15px 15px;
  background:#fff;
  box-shadow:0 3px 11px rgba(23,52,93,.04);
}
.iehojo-chat-message p { margin:0; color:var(--iehojo-text); font-size:14px; line-height:1.72; }
.iehojo-chat-message p + p { margin-top:7px; }
.iehojo-chat-row--user .iehojo-chat-message {
  max-width:min(460px,72%);
  border-color:#cddfd2;
  border-radius:15px 7px 15px 15px;
  background:#eef7f0;
}
.iehojo-chat-row--user .iehojo-chat-message p { color:#284432; font-weight:700; }
.iehojo-chat-row--notice .iehojo-chat-message { border-color:#ecd9a8; background:#fff8e7; }
.iehojo-diagnosis__answer { width:calc(100% - 64px); margin:-5px 0 20px 64px; }
.iehojo-diagnosis__answer-inner { max-height:none; overflow:visible; padding:0; }
.iehojo-diagnosis__choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.iehojo-diagnosis__choice {
  min-height:56px;
  padding:10px 12px;
  border:1px solid #d2e0d6;
  border-radius:9px;
  background:#fff;
  color:var(--iehojo-navy);
  box-shadow:0 3px 10px rgba(23,52,93,.035);
  font-size:12px;
  font-weight:800;
  line-height:1.45;
  text-align:center;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.iehojo-diagnosis__choice:hover { border-color:var(--iehojo-sage); background:#f7fbf8; transform:translateY(-1px); }
.iehojo-diagnosis__choice:focus-visible { outline:3px solid rgba(122,167,130,.2); outline-offset:2px; }
.iehojo-diagnosis__region-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.iehojo-diagnosis__region-choice {
  min-height:60px;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 14px;
  align-items:center;
  gap:8px;
  padding:9px 11px;
  border:1px solid #d5e2d9;
  border-radius:9px;
  background:#fff;
  color:var(--iehojo-navy);
  box-shadow:0 3px 10px rgba(23,52,93,.035);
  cursor:pointer;
}
.iehojo-diagnosis__region-icon { width:32px; height:32px; display:grid; place-items:center; border:1px solid #c5d7ca; border-radius:50%; background:#f5faf6; color:var(--iehojo-sage-deep); font-size:17px; }
.iehojo-diagnosis__region-choice strong { font-size:12px; text-align:left; }
.iehojo-diagnosis__region-arrow { color:var(--iehojo-sage-deep); font-size:20px; }
.iehojo-diagnosis__prefecture-bar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.iehojo-diagnosis__prefecture-bar button,
.iehojo-diagnosis__inline-back {
  min-height:34px;
  padding:6px 10px;
  border:1px solid #d0ded4;
  border-radius:8px;
  background:#fff;
  color:var(--iehojo-sage-deep);
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.iehojo-diagnosis__prefecture-bar strong { color:var(--iehojo-navy); font-size:12px; }
.iehojo-diagnosis__prefecture-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.iehojo-diagnosis__prefecture-choice { min-height:45px; }
.iehojo-diagnosis__municipality { display:grid; gap:10px; }
.iehojo-diagnosis__municipality-context {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid #d8e5dc;
  border-radius:10px;
  background:#f8fbf9;
}
.iehojo-diagnosis__municipality-context > div { min-width:0; display:grid; gap:2px; }
.iehojo-diagnosis__municipality-context small { color:#7c8a81; font-size:9px; font-weight:800; }
.iehojo-diagnosis__municipality-context strong { color:var(--iehojo-navy); font-size:13px; font-weight:900; }
.iehojo-diagnosis__municipality-undecided,
.iehojo-diagnosis__municipality-retry {
  min-height:38px;
  padding:7px 11px;
  border:1px solid #bfcfc4;
  border-radius:8px;
  background:#fff;
  color:var(--iehojo-sage-deep);
  font-size:10px;
  line-height:1.35;
  font-weight:900;
  cursor:pointer;
}
.iehojo-diagnosis__municipality-undecided:hover,
.iehojo-diagnosis__municipality-retry:hover { border-color:var(--iehojo-sage-deep); background:#f0f7f2; }
.iehojo-diagnosis__municipality-mount { min-height:72px; }
.iehojo-diagnosis__municipality-status,
.iehojo-diagnosis__municipality-empty {
  margin:0;
  padding:15px;
  border:1px solid #d8e5dc;
  border-radius:10px;
  background:#f8fbf9;
  color:#66766c;
  font-size:11px;
  line-height:1.65;
}
.iehojo-diagnosis__municipality-status.is-loading::before {
  content:'';
  display:inline-block;
  width:12px;
  height:12px;
  margin-right:8px;
  vertical-align:-1px;
  border:2px solid #c9d9ce;
  border-top-color:var(--iehojo-sage-deep);
  border-radius:50%;
  animation:iehojoMunicipalitySpin .8s linear infinite;
}
@keyframes iehojoMunicipalitySpin { to { transform:rotate(360deg); } }
.iehojo-diagnosis__municipality-empty { display:grid; gap:4px; }
.iehojo-diagnosis__municipality-empty strong { color:var(--iehojo-navy); font-size:12px; }
.iehojo-diagnosis__municipality-empty span { display:block; }
.iehojo-diagnosis__municipality-empty.is-error { border-color:#e6ceca; background:#fff8f7; }
.iehojo-diagnosis__municipality-retry { justify-self:start; margin-top:7px; }
.iehojo-diagnosis__municipality-picker {
  overflow:hidden;
  border:1px solid #d3e0d7;
  border-radius:12px;
  background:#fff;
}
.iehojo-diagnosis__municipality-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 13px;
  border-bottom:1px solid #e7eee9;
  background:#f8fbf9;
}
.iehojo-diagnosis__municipality-head strong { color:var(--iehojo-navy); font-size:12px; font-weight:900; }
.iehojo-diagnosis__municipality-head small { flex:0 0 auto; color:#75847a; font-size:9px; font-weight:800; }
.iehojo-diagnosis__kana-nav {
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  gap:5px;
  padding:9px 11px;
  overflow-x:auto;
  border-bottom:1px solid #e8efea;
  background:rgba(255,255,255,.97);
  scrollbar-width:thin;
}
.iehojo-diagnosis__kana-nav button,
.iehojo-diagnosis__kana-nav a {
  min-width:42px;
  height:32px;
  padding:0 8px;
  border:1px solid #cbd9cf;
  border-radius:999px;
  background:#fff;
  color:var(--iehojo-sage-deep);
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.iehojo-diagnosis__kana-nav button:hover,
.iehojo-diagnosis__kana-nav button:focus-visible,
.iehojo-diagnosis__kana-nav a:hover,
.iehojo-diagnosis__kana-nav a:focus-visible { border-color:var(--iehojo-sage-deep); background:#eff6f1; }
.iehojo-diagnosis__municipality-groups {
  max-height:292px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:3px 12px 12px;
  scroll-behavior:smooth;
}
.iehojo-diagnosis__municipality-group { padding:12px 0 5px; scroll-margin-top:50px; }
.iehojo-diagnosis__municipality-group + .iehojo-diagnosis__municipality-group { border-top:1px solid #edf2ee; }
.iehojo-diagnosis__municipality-group h4 { margin:0 0 8px; color:var(--iehojo-sage-deep); font-size:11px; font-weight:900; letter-spacing:.04em; }
.iehojo-diagnosis__municipality-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.iehojo-diagnosis__municipality-choice {
  min-width:0;
  min-height:46px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
  padding:7px 9px;
  border:1px solid #d5e0d8;
  border-radius:8px;
  background:#fff;
  color:var(--iehojo-text);
  text-align:left;
  cursor:pointer;
  transition:border-color .14s ease,background .14s ease,transform .14s ease;
}
.iehojo-diagnosis__municipality-choice span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:900; }
.iehojo-diagnosis__municipality-choice small { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7e8c83; font-size:8px; }
.iehojo-diagnosis__municipality-choice:hover { border-color:var(--iehojo-sage-deep); background:#f2f8f4; transform:translateY(-1px); }
.iehojo-diagnosis__municipality-choice:focus-visible { outline:3px solid rgba(122,167,130,.22); outline-offset:1px; }
.iehojo-diagnosis__typing { min-width:66px; min-height:42px; display:flex; align-items:center; justify-content:center; }
.iehojo-diagnosis__typing-dots { display:inline-flex; align-items:center; gap:5px; }
.iehojo-diagnosis__typing-dots i { width:7px; height:7px; border-radius:50%; background:#8ba493; animation:iehojoTyping 1s infinite ease-in-out; }
.iehojo-diagnosis__typing-dots i:nth-child(2) { animation-delay:.14s; }
.iehojo-diagnosis__typing-dots i:nth-child(3) { animation-delay:.28s; }
@keyframes iehojoTyping { 0%,60%,100% { transform:translateY(0); opacity:.45; } 30% { transform:translateY(-4px); opacity:1; } }
.iehojo-chat-row--opening,
.iehojo-chat-row--resolved { animation:iehojoConversationIn .2s ease both; }
@keyframes iehojoConversationIn { from { opacity:.35; transform:translateY(4px); } to { opacity:1; transform:none; } }
.iehojo-diagnosis__summary-v2 { max-width:790px; margin:2px 0 18px 64px; padding:16px 18px; border:1px solid #d4e1d7; border-radius:10px; background:#fff; box-shadow:0 3px 10px rgba(23,52,93,.035); }
.iehojo-diagnosis__summary-v2 > div { display:grid; grid-template-columns:120px 1fr; gap:14px; padding:9px 0; border-bottom:1px solid #edf1ee; }
.iehojo-diagnosis__summary-v2 > div:last-child { border-bottom:0; }
.iehojo-diagnosis__summary-v2 strong { color:#78877d; font-size:11px; }
.iehojo-diagnosis__summary-v2 span { color:var(--iehojo-navy); font-size:12px; font-weight:800; }
.iehojo-diagnosis__finish { width:100%; min-height:52px; background:var(--iehojo-sage-deep); border-color:var(--iehojo-sage-deep); font-size:14px; }
.iehojo-diagnosis__finish:disabled { opacity:.55; cursor:default; }
.iehojo-diagnosis__secondary { width:100%; background:#fff; color:var(--iehojo-navy); }
.iehojo-diagnosis__tail { width:100%; height:24px; pointer-events:none; }

@media (max-width:767px) {
  .iehojo-diagnosis .iehojo-modal__dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border-radius:0; }
  .iehojo-diagnosis__frame { width:100vw; max-width:100vw; grid-template-rows:80px 20px minmax(0,1fr); border:0; }
  .iehojo-diagnosis__header {
    position:relative;
    min-height:80px;
    height:80px;
    padding:6px 10px 0;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
    align-items:start;
  }
  .iehojo-diagnosis__title { min-height:36px; }
  .iehojo-diagnosis__title img { width:105px; max-width:105px; max-height:34px; }
  .iehojo-diagnosis__title strong { display:none; }
  .iehojo-diagnosis__header-actions { min-height:36px; }
  .iehojo-diagnosis__reset { display:none; }
  .iehojo-diagnosis__close { width:34px; height:34px; min-height:34px; padding:0; border:0; }
  .iehojo-diagnosis__close span { display:none; }
  .iehojo-diagnosis__close b { font-size:24px; }
  .iehojo-diagnosis__steps {
    position:absolute;
    left:10px;
    right:10px;
    top:44px;
    height:30px;
    justify-content:flex-start;
    gap:13px;
    overflow:visible;
    pointer-events:none;
  }
  .iehojo-diagnosis__steps li { min-width:20px; width:auto; gap:4px; font-size:8px; }
  .iehojo-diagnosis__steps b { width:20px; height:20px; font-size:8px; }
  .iehojo-diagnosis__steps li:not(:last-child)::after { left:23px; width:7px; }
  .iehojo-diagnosis__progress { padding:0 10px; }
  .iehojo-diagnosis__content { grid-template-columns:minmax(0,1fr); width:100%; min-width:0; }
  .iehojo-diagnosis__visual { display:none; }
  .iehojo-diagnosis__chat { width:100%; min-width:0; padding:14px 11px 26px; background:#eef8f1; }
  .iehojo-diagnosis__mobile-intro {
    width:100%;
    margin:0 0 14px;
    padding:10px 12px;
    display:grid;
    grid-template-columns:78px minmax(0,1fr);
    gap:10px;
    align-items:center;
    border:1px solid #d5e5d9;
    border-radius:14px;
    background:#fff;
  }
  .iehojo-diagnosis__mobile-intro img { width:78px; height:88px; object-fit:contain; }
  .iehojo-diagnosis__mobile-intro div { position:relative; padding:10px 12px; border-radius:16px 16px 16px 5px; background:#f3f8f4; color:var(--iehojo-navy); font-size:10px; line-height:1.55; font-weight:900; }
  .iehojo-chat-row { gap:7px; margin-bottom:14px; }
  .iehojo-chat-avatar { width:42px; height:42px; flex-basis:42px; }
  .iehojo-chat-avatar img { width:42px; height:42px; }
  .iehojo-chat-message { max-width:calc(100% - 49px); padding:10px 12px; }
  .iehojo-chat-message p { font-size:12.5px; line-height:1.65; }
  .iehojo-chat-row--user .iehojo-chat-message { max-width:78%; }
  .iehojo-diagnosis__answer { width:calc(100% - 49px); max-width:calc(100% - 49px); margin:-2px 0 16px 49px; }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__choice { min-height:50px; padding:9px 8px; font-size:11px; }
  .iehojo-diagnosis__region-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__region-choice { min-height:54px; grid-template-columns:30px minmax(0,1fr) 12px; padding:7px 9px; }
  .iehojo-diagnosis__region-icon { width:28px; height:28px; font-size:15px; }
  .iehojo-diagnosis__region-choice strong { font-size:10px; }
  .iehojo-diagnosis__prefecture-bar { align-items:flex-start; flex-direction:column; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .iehojo-diagnosis__prefecture-choice { min-height:42px; }
  .iehojo-diagnosis__municipality-context { align-items:stretch; flex-direction:column; }
  .iehojo-diagnosis__municipality-undecided { width:100%; }
  .iehojo-diagnosis__municipality-groups { max-height:315px; padding-inline:9px; }
  .iehojo-diagnosis__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .iehojo-diagnosis__municipality-choice { min-height:48px; }
  .iehojo-diagnosis__summary-v2 { margin:0 0 16px 49px; max-width:calc(100% - 49px); padding:12px 13px; }
  .iehojo-diagnosis__summary-v2 > div { grid-template-columns:88px 1fr; gap:8px; }
  .iehojo-diagnosis__summary-v2 strong { font-size:9.5px; }
  .iehojo-diagnosis__summary-v2 span { font-size:10.5px; }
  .iehojo-diagnosis__finish { min-height:48px; font-size:12px; }
}

@media (max-width:390px) {
  .iehojo-diagnosis__steps { gap:9px; }
  .iehojo-diagnosis__steps li span { display:none; }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iehojo-diagnosis__municipality-head { align-items:flex-start; flex-direction:column; gap:3px; }
  .iehojo-diagnosis__kana-nav { padding-inline:8px; }
  .iehojo-diagnosis__kana-nav button, .iehojo-diagnosis__kana-nav a { min-width:40px; height:30px; }
}

@media (prefers-reduced-motion: reduce) {
  .iehojo-diagnosis__typing-dots i,
  .iehojo-diagnosis__municipality-status.is-loading::before { animation:none; opacity:.8; }
  .iehojo-diagnosis__municipality-groups { scroll-behavior:auto; }
}

/* v0.1.7: direct subsidy browse ----------------------------------------- */
.iehojo-header__actions { display:flex; align-items:center; gap:8px; }
.iehojo-header__browse,
.iehojo-header__search { min-height:44px; padding:0 16px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-size:13px; font-weight:900; line-height:1; white-space:nowrap; cursor:pointer; }
.iehojo-header__browse { border:1px solid #cbd8df; background:#fff; color:var(--iehojo-navy); }
.iehojo-header__browse:hover,
.iehojo-header__browse:focus-visible { border-color:var(--iehojo-sage-deep); background:#f5faf6; }
.iehojo-header__browse svg,
.iehojo-header__search svg { width:18px; height:18px; flex:0 0 18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.iehojo-mobile-menu__actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.iehojo-mobile-menu__actions .iehojo-button { padding-inline:10px; }

.iehojo-search-entry { padding-block:56px; background:#fff; }
.iehojo-search-entry__inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:30px; align-items:center; padding:30px 34px; border:1px solid var(--iehojo-line); border-radius:22px; background:linear-gradient(135deg,#fff,#f8fbf9); box-shadow:0 12px 32px rgba(23,52,93,.055); }
.iehojo-search-entry h2 { margin:0; color:var(--iehojo-navy); font-size:clamp(27px,3vw,36px); }
.iehojo-search-entry p:not(.iehojo-eyebrow) { max-width:760px; margin:10px 0 0; color:var(--iehojo-muted); font-size:14px; line-height:1.9; }
.iehojo-search-entry__button { min-width:180px; }

.iehojo-search-modal__dialog { width:min(calc(100% - 32px),780px); max-height:min(860px,calc(100dvh - 32px)); display:grid; grid-template-rows:auto minmax(0,1fr); }
.iehojo-search-modal__header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px 24px 18px; border-bottom:1px solid var(--iehojo-line); background:linear-gradient(135deg,#fff,#f4f9f5); }
.iehojo-search-modal__header .iehojo-eyebrow { margin-bottom:4px; }
.iehojo-search-modal__header h2 { margin:0; color:var(--iehojo-navy); font-size:26px; line-height:1.3; }
.iehojo-search-modal__header p:not(.iehojo-eyebrow) { margin:5px 0 0; color:var(--iehojo-muted); font-size:12px; line-height:1.7; }
.iehojo-search-modal__close { flex:0 0 auto; min-width:64px; min-height:42px; padding:0 11px; border:1px solid #d7e0e4; border-radius:12px; display:flex; align-items:center; justify-content:center; gap:5px; background:#fff; color:var(--iehojo-navy); cursor:pointer; }
.iehojo-search-modal__close b { font-size:22px; line-height:1; }
.iehojo-search-modal__close span { font-size:11px; font-weight:900; }
.iehojo-search-modal__body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:20px 24px 26px; }
.iehojo-search-modal__tabs { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:22px; padding:5px; border-radius:14px; background:#eef4f0; }
.iehojo-search-modal__tabs button { min-height:46px; border:0; border-radius:10px; background:transparent; color:#64746a; font-size:13px; font-weight:900; cursor:pointer; }
.iehojo-search-modal__tabs button[aria-selected="true"] { background:#fff; color:var(--iehojo-navy); box-shadow:0 4px 14px rgba(23,52,93,.07); }
.iehojo-search-modal__panel[hidden] { display:none !important; }
.iehojo-search-modal__panel-head { margin-bottom:15px; }
.iehojo-search-modal__panel-head h3 { margin:0; color:var(--iehojo-navy); font-size:19px; }
.iehojo-search-modal__panel-head p { margin:5px 0 0; color:var(--iehojo-muted); font-size:11.5px; line-height:1.7; }
.iehojo-search-modal__region-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.iehojo-search-modal__region-grid button { min-height:58px; padding:10px 14px; border:1px solid #d6e1db; border-radius:11px; display:flex; align-items:center; justify-content:space-between; background:#fff; color:var(--iehojo-navy); cursor:pointer; }
.iehojo-search-modal__region-grid button:hover { border-color:var(--iehojo-sage-deep); background:#f3f8f4; }
.iehojo-search-modal__region-grid strong { font-size:13px; }
.iehojo-search-modal__region-grid span { color:var(--iehojo-sage-deep); font-size:22px; }
.iehojo-search-modal__back-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.iehojo-search-modal__back-row button { min-height:36px; padding:0 11px; border:1px solid #d6e1db; border-radius:9px; background:#fff; color:var(--iehojo-navy); font-size:11px; font-weight:900; cursor:pointer; }
.iehojo-search-modal__back-row strong { color:var(--iehojo-sage-deep); font-size:13px; }
.iehojo-search-modal__pref-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.iehojo-search-modal__pref-grid button,
.iehojo-search-modal__theme-grid button { min-height:48px; padding:9px; border:1px solid #d6e1db; border-radius:10px; background:#fff; color:var(--iehojo-navy); font-size:12px; font-weight:900; line-height:1.45; cursor:pointer; }
.iehojo-search-modal__pref-grid button:hover,
.iehojo-search-modal__theme-grid button:hover,
.iehojo-search-modal__theme-grid button.is-selected { border-color:var(--iehojo-sage-deep); background:#f0f7f2; }
.iehojo-search-modal__whole-pref { width:100%; min-height:58px; margin-bottom:12px; padding:10px 14px; border:1px solid #bfd4c5; border-radius:11px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; background:#f4faf5; color:var(--iehojo-navy); cursor:pointer; }
.iehojo-search-modal__whole-pref strong { font-size:13px; }
.iehojo-search-modal__whole-pref small { margin-top:2px; color:var(--iehojo-muted); font-size:9.5px; }
.iehojo-search-modal__status { margin:0; padding:14px; border:1px solid #d8e4dc; border-radius:10px; background:#f8fbf9; color:var(--iehojo-muted); font-size:11px; line-height:1.7; }
.iehojo-search-modal__status.is-error { border-color:#e7ceca; background:#fff8f7; }
.iehojo-search-modal__kana { display:flex; gap:5px; padding:8px 0; overflow-x:auto; }
.iehojo-search-modal__kana button,
.iehojo-search-modal__kana a { min-width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; padding:0 10px; border:1px solid #cad9cf; border-radius:999px; background:#fff; color:var(--iehojo-sage-deep); font-size:10px; font-weight:900; line-height:1; text-decoration:none; white-space:nowrap; cursor:pointer; }
.iehojo-search-modal__municipality-groups { max-height:330px; overflow-y:auto; overscroll-behavior:contain; padding-right:4px; }
.iehojo-search-modal__municipality-group { padding:11px 0; }
.iehojo-search-modal__municipality-group + .iehojo-search-modal__municipality-group { border-top:1px solid #edf1ee; }
.iehojo-search-modal__municipality-group h4 { margin:0 0 7px; color:var(--iehojo-sage-deep); font-size:11px; }
.iehojo-search-modal__municipality-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.iehojo-search-modal__municipality-grid button { min-width:0; min-height:46px; padding:7px 9px; border:1px solid #d6e1db; border-radius:9px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; background:#fff; color:var(--iehojo-navy); text-align:left; cursor:pointer; }
.iehojo-search-modal__municipality-grid button:hover { border-color:var(--iehojo-sage-deep); background:#f2f8f4; }
.iehojo-search-modal__municipality-grid strong { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.iehojo-search-modal__municipality-grid small { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:1px; color:#829087; font-size:8px; }
.iehojo-search-modal__theme-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.iehojo-search-modal__selection { margin-top:17px; padding:14px 16px; border:1px solid #c9dccd; border-radius:11px; background:var(--iehojo-sage-soft); }
.iehojo-search-modal__selection strong { display:block; color:var(--iehojo-navy); font-size:13px; }
.iehojo-search-modal__selection p { margin:5px 0 0; color:#5f7165; font-size:10.5px; line-height:1.7; }

@media (max-width:1040px) {
  .iehojo-header__actions { margin-left:auto; }
}

@media (max-width:767px) {
  .iehojo-header__actions { display:none; }
  .iehojo-mobile-menu__actions { grid-template-columns:1fr; }
  .iehojo-search-entry__inner { grid-template-columns:1fr; gap:18px; padding:24px 20px; }
  .iehojo-search-entry__button { width:100%; }
  .iehojo-search-modal__dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border-radius:0; }
  .iehojo-search-modal__header { padding:14px 12px 12px; }
  .iehojo-search-modal__header h2 { font-size:21px; }
  .iehojo-search-modal__header p:not(.iehojo-eyebrow) { font-size:10.5px; }
  .iehojo-search-modal__close { min-width:40px; width:40px; min-height:40px; padding:0; }
  .iehojo-search-modal__close span { display:none; }
  .iehojo-search-modal__body { padding:14px 12px 22px; }
  .iehojo-search-modal__tabs { margin-bottom:17px; }
  .iehojo-search-modal__tabs button { min-height:44px; font-size:11.5px; }
  .iehojo-search-modal__region-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-search-modal__region-grid button { min-height:54px; padding:8px 10px; }
  .iehojo-search-modal__region-grid strong { font-size:10.5px; }
  .iehojo-search-modal__pref-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .iehojo-search-modal__pref-grid button { min-height:44px; font-size:10.5px; }
  .iehojo-search-modal__municipality-groups { max-height:calc(100dvh - 330px); }
  .iehojo-search-modal__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .iehojo-search-modal__theme-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-search-modal__theme-grid button { min-height:52px; font-size:10.5px; }
}

@media (max-width:390px) {
  .iehojo-search-modal__pref-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iehojo-search-modal__theme-grid { grid-template-columns:1fr; }
}

/* ========================================================================
   Iehojo v0.1.8 — warmer, friendlier home page
   ======================================================================== */
:root {
  --iehojo-sky-soft: #eef6fb;
  --iehojo-mint-soft: #eef8f1;
  --iehojo-cream-soft: #fff8ee;
  --iehojo-lavender-soft: #f5f3fb;
  --iehojo-peach-soft: #fff3eb;
}

.iehojo-header { box-shadow: 0 4px 18px rgba(23,52,93,.035); }
.iehojo-nav__list a { position: relative; }
.iehojo-nav__list a::after { content:""; position:absolute; left:50%; right:50%; bottom:-9px; height:2px; border-radius:999px; background:var(--iehojo-sage); transition:left .18s ease,right .18s ease; }
.iehojo-nav__list a:hover::after,
.iehojo-nav__list a:focus-visible::after { left:0; right:0; }
.iehojo-header__browse { border-color:#c6d9cc; background:#f8fcf9; color:var(--iehojo-sage-deep); }
.iehojo-header__search { background:linear-gradient(135deg,var(--iehojo-navy),#244a79); box-shadow:0 8px 22px rgba(23,52,93,.18); }

.iehojo-hero--friendly {
  isolation:isolate;
  padding:clamp(58px,6vw,82px) 0 66px;
  background:
    radial-gradient(circle at 80% 12%,rgba(122,167,130,.18),transparent 27%),
    radial-gradient(circle at 12% 88%,rgba(238,220,192,.34),transparent 28%),
    linear-gradient(118deg,#fbfdff 0%,#f3faf6 58%,#eef7f1 100%);
}
.iehojo-hero--friendly::before { background:none; }
.iehojo-hero__shape { position:absolute; z-index:-1; pointer-events:none; border-radius:46% 54% 60% 40% / 52% 42% 58% 48%; filter:blur(.2px); }
.iehojo-hero__shape--one { width:310px; height:210px; right:-90px; top:20px; background:rgba(255,255,255,.56); transform:rotate(-10deg); }
.iehojo-hero__shape--two { width:240px; height:150px; left:-90px; bottom:-30px; background:rgba(122,167,130,.08); transform:rotate(18deg); }
.iehojo-hero--friendly .iehojo-hero__grid { grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr); gap:34px; }
.iehojo-hero--friendly .iehojo-badge { gap:7px; margin-bottom:18px; padding:8px 15px; background:#e5f2e8; color:var(--iehojo-sage-deep); border:1px solid rgba(94,142,105,.15); }
.iehojo-hero--friendly .iehojo-badge span { font-size:16px; }
.iehojo-hero--friendly h1 { max-width:760px; font-size:clamp(40px,4.8vw,60px); line-height:1.22; }
.iehojo-hero--friendly h1 span { position:relative; display:inline-block; color:var(--iehojo-sage-deep); }
.iehojo-hero--friendly h1 span::after { content:""; position:absolute; left:2px; right:2px; bottom:2px; z-index:-1; height:11px; border-radius:999px; background:rgba(122,167,130,.16); }
.iehojo-hero--friendly .iehojo-hero__lead { max-width:720px; margin-top:22px; font-size:16px; line-height:1.95; }
.iehojo-hero--friendly .iehojo-hero__actions { gap:12px; margin-top:28px; }
.iehojo-button--hero { min-width:220px; min-height:62px; padding:10px 20px; border-radius:18px; justify-content:flex-start; }
.iehojo-button--hero > span { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.iehojo-button--hero small { font-size:9.5px; font-weight:700; opacity:.74; letter-spacing:.02em; }
.iehojo-button--browse { border:1px solid #b9d0c0; background:#fff; color:var(--iehojo-sage-deep); box-shadow:0 8px 22px rgba(76,118,87,.08); }
.iehojo-button--browse:hover:not(:disabled) { background:#f3faf5; border-color:var(--iehojo-sage-deep); }
.iehojo-hero__mini-points { display:flex; flex-wrap:wrap; gap:10px 16px; margin-top:18px; color:#64756a; font-size:11.5px; font-weight:700; }
.iehojo-hero__mini-points span { display:inline-flex; align-items:center; gap:5px; }
.iehojo-hero__mini-points b { width:19px; height:19px; display:grid; place-items:center; border-radius:50%; background:#e3f1e6; color:var(--iehojo-sage-deep); font-size:10px; }
.iehojo-hero--friendly .iehojo-hero__visual { min-height:430px; }
.iehojo-hero--friendly .iehojo-hero__halo { width:350px; height:350px; background:linear-gradient(145deg,#dfeee3 0%,#f8fcf9 66%,#fff 100%); box-shadow:inset 0 0 0 1px rgba(122,167,130,.15),0 28px 70px rgba(61,103,72,.08); }
.iehojo-hero__home-art { position:absolute; width:235px; right:8px; bottom:32px; z-index:0; opacity:.18; color:var(--iehojo-sage-deep); }
.iehojo-hero__home-art svg { width:100%; height:auto; fill:none; stroke:currentColor; stroke-width:7; stroke-linecap:round; stroke-linejoin:round; }
.iehojo-hero--friendly .iehojo-hero__visual img { width:min(330px,82vw); }
.iehojo-hero--friendly .iehojo-hero__bubble { right:3px; top:45px; padding:13px 17px; border-radius:18px 18px 18px 5px; }
.iehojo-hero__float { position:absolute; z-index:4; display:flex; align-items:center; gap:7px; min-height:39px; padding:7px 12px; border:1px solid rgba(23,52,93,.08); border-radius:999px; background:rgba(255,255,255,.94); box-shadow:0 10px 28px rgba(23,52,93,.09); color:var(--iehojo-navy); font-size:11px; }
.iehojo-hero__float span { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:#edf6ef; font-size:12px; }
.iehojo-hero__float--search { left:-18px; top:120px; }
.iehojo-hero__float--diagnosis { right:2px; bottom:63px; }

.iehojo-trust { margin-top:-28px; }
.iehojo-trust__grid { padding:13px 16px; border-radius:24px; border-color:rgba(23,52,93,.08); box-shadow:0 18px 50px rgba(23,52,93,.09); }
.iehojo-trust article { padding:11px 14px; }
.iehojo-trust .iehojo-icon { border-radius:50%; }

.iehojo-section { padding:88px 0; }
.iehojo-section__head--friendly { max-width:820px; }
.iehojo-eyebrow { letter-spacing:.09em; }

.iehojo-paths { position:relative; background:#fff; }
.iehojo-paths::before { content:""; position:absolute; left:-130px; top:120px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle,#edf6ef 0%,rgba(237,246,239,0) 70%); pointer-events:none; }
.iehojo-path-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.iehojo-path-card { position:relative; min-height:390px; overflow:hidden; border-radius:30px; box-shadow:0 18px 50px rgba(23,52,93,.08); }
.iehojo-path-card--browse { display:grid; grid-template-columns:170px minmax(0,1fr); align-items:center; padding:38px; border:1px solid #d9e7ed; background:linear-gradient(145deg,#f7fbfe,#fff 58%); }
.iehojo-path-card--diagnosis { display:grid; grid-template-columns:minmax(0,1fr) 190px; align-items:center; padding:38px 30px 30px 38px; border:1px solid #d3e4d7; background:linear-gradient(145deg,#edf8f0 0%,#f9fcfa 66%,#fff 100%); }
.iehojo-path-card__art { position:relative; width:145px; height:220px; display:grid; place-items:center; border-radius:70px 70px 32px 32px; background:linear-gradient(180deg,#e8f3fa,#f9fcfe); border:1px solid #d7e6ef; }
.iehojo-path-card__icon { width:80px; height:80px; display:grid; place-items:center; border-radius:26px; background:#fff; box-shadow:0 14px 30px rgba(23,52,93,.1); font-size:38px; }
.iehojo-path-card__pin { position:absolute; min-width:68px; padding:7px 10px; border-radius:999px; background:#fff; color:var(--iehojo-navy); box-shadow:0 7px 20px rgba(23,52,93,.08); font-size:10px; font-weight:900; text-align:center; }
.iehojo-path-card__pin:nth-of-type(2) { left:-12px; top:34px; }
.iehojo-path-card__pin:nth-of-type(3) { right:-12px; bottom:38px; }
.iehojo-path-card__body { position:relative; z-index:2; }
.iehojo-path-card__label { display:inline-flex; margin:0 0 10px; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.75); color:var(--iehojo-sage-deep); font-size:10.5px; font-weight:900; }
.iehojo-path-card h3 { margin:0; color:var(--iehojo-navy); font-size:30px; line-height:1.35; }
.iehojo-path-card p:not(.iehojo-path-card__label) { margin:13px 0 0; color:var(--iehojo-muted); font-size:13.5px; line-height:1.85; }
.iehojo-path-card ul { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0 22px; padding:0; list-style:none; }
.iehojo-path-card li { padding:6px 9px; border-radius:999px; background:rgba(255,255,255,.82); color:#52655a; font-size:10px; font-weight:800; }
.iehojo-path-card li::before { content:"✓"; margin-right:4px; color:var(--iehojo-sage-deep); }
.iehojo-path-card .iehojo-button { min-height:48px; }
.iehojo-path-card__mascot { position:relative; align-self:end; display:flex; justify-content:center; }
.iehojo-path-card__mascot img { width:180px; filter:drop-shadow(0 16px 18px rgba(41,74,51,.11)); }
.iehojo-path-card__speech { position:absolute; right:4px; top:-22px; padding:10px 12px; border-radius:17px 17px 17px 5px; background:#fff; color:var(--iehojo-navy); box-shadow:0 8px 22px rgba(23,52,93,.08); font-size:10.5px; font-weight:900; line-height:1.55; }

.iehojo-features { background:linear-gradient(180deg,#f8fbfa 0%,#fff 100%); }
.iehojo-feature-grid { gap:16px; }
.iehojo-card { position:relative; overflow:hidden; min-height:340px; padding:27px 23px 23px; border-color:transparent; box-shadow:0 13px 36px rgba(23,52,93,.07); transition:transform .2s ease,box-shadow .2s ease; }
.iehojo-card:hover { transform:translateY(-4px); box-shadow:0 18px 44px rgba(23,52,93,.11); }
.iehojo-card::after { content:""; position:absolute; width:110px; height:110px; right:-35px; top:-35px; border-radius:50%; background:rgba(255,255,255,.65); }
.iehojo-card--mint { background:var(--iehojo-mint-soft); }
.iehojo-card--blue { background:var(--iehojo-sky-soft); }
.iehojo-card--cream { background:var(--iehojo-cream-soft); }
.iehojo-card--lavender { background:var(--iehojo-lavender-soft); }
.iehojo-card__number { position:absolute; right:18px; top:17px; z-index:2; color:rgba(23,52,93,.25); font-size:12px; font-weight:900; letter-spacing:.08em; }
.iehojo-card__icon { position:relative; z-index:2; margin-bottom:22px; background:#fff; box-shadow:0 8px 20px rgba(23,52,93,.07); }
.iehojo-card p { min-height:88px; }

.iehojo-diagnosis-showcase { position:relative; overflow:hidden; background:linear-gradient(120deg,#16375f 0%,#1c466e 58%,#285a70 100%); color:#fff; }
.iehojo-diagnosis-showcase::before { content:""; position:absolute; width:430px; height:430px; left:-150px; top:-120px; border-radius:50%; border:80px solid rgba(255,255,255,.035); }
.iehojo-diagnosis-showcase__inner { position:relative; display:grid; grid-template-columns:340px minmax(0,1fr); gap:60px; align-items:center; }
.iehojo-diagnosis-showcase__visual { position:relative; min-height:350px; display:flex; align-items:flex-end; justify-content:center; border-radius:38px; background:linear-gradient(180deg,#e9f6ed,#d7eadc); box-shadow:inset 0 0 0 1px rgba(255,255,255,.4); }
.iehojo-diagnosis-showcase__visual img { width:245px; filter:drop-shadow(0 15px 18px rgba(23,52,93,.16)); }
.iehojo-diagnosis-showcase__bubble { position:absolute; z-index:2; left:24px; top:24px; max-width:190px; padding:13px 15px; border-radius:19px 19px 19px 5px; background:#fff; color:var(--iehojo-navy); box-shadow:0 10px 28px rgba(23,52,93,.11); font-size:12px; font-weight:900; line-height:1.65; }
.iehojo-diagnosis-showcase__content .iehojo-eyebrow { color:#acd5b5; }
.iehojo-diagnosis-showcase__content h2 { margin:0; color:#fff; font-size:clamp(30px,3.8vw,46px); line-height:1.42; font-weight:900; }
.iehojo-diagnosis-showcase__content > p:not(.iehojo-eyebrow) { max-width:660px; margin:15px 0 24px; color:#d7e4ed; line-height:1.9; }
.iehojo-diagnosis-steps { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:9px; margin:0 0 25px; }
.iehojo-diagnosis-steps div { min-height:100px; padding:15px 12px; display:flex; flex-direction:column; justify-content:center; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:rgba(255,255,255,.07); text-align:center; }
.iehojo-diagnosis-steps span { width:28px; height:28px; margin:0 auto 7px; display:grid; place-items:center; border-radius:50%; background:#94c49e; color:#17345d; font-size:11px; font-weight:900; }
.iehojo-diagnosis-steps strong { color:#fff; font-size:13px; }
.iehojo-diagnosis-steps small { margin-top:3px; color:#bcd0dd; font-size:9.5px; }
.iehojo-diagnosis-steps i { color:#91c29c; font-style:normal; }
.iehojo-diagnosis-showcase .iehojo-button--primary { background:#fff; color:var(--iehojo-navy) !important; box-shadow:0 10px 28px rgba(4,22,41,.18); }
.iehojo-diagnosis-showcase .iehojo-button--primary:hover { background:#f3faf5; }

.iehojo-checkpoints { position:relative; overflow:hidden; background:#fffaf3; }
.iehojo-checkpoints__blob { position:absolute; width:440px; height:440px; right:-210px; top:-80px; border-radius:50%; background:rgba(238,220,192,.32); }
.iehojo-check-grid { position:relative; }
.iehojo-check-card { min-height:250px; padding:25px 22px; border:0; box-shadow:0 12px 34px rgba(71,59,46,.07); }
.iehojo-check-card:nth-child(2) { transform:translateY(18px); }
.iehojo-check-card:nth-child(4) { transform:translateY(18px); }
.iehojo-check-card__emoji { width:48px; height:48px; margin-top:17px; display:grid; place-items:center; border-radius:16px; background:#fff7e9; font-size:22px; }
.iehojo-check-card h3 { margin-top:14px; }

.iehojo-about { position:relative; overflow:hidden; background:linear-gradient(125deg,#15355e,#0f2c51 72%); }
.iehojo-about::after { content:""; position:absolute; width:380px; height:380px; right:-160px; bottom:-180px; border-radius:50%; border:72px solid rgba(255,255,255,.035); }
.iehojo-about__intro { position:relative; }
.iehojo-about__mark { margin-top:30px; color:rgba(255,255,255,.11); font-size:82px; font-weight:900; letter-spacing:-.14em; }
.iehojo-about__promise { margin:25px 0 5px; padding:18px 20px; display:grid; gap:5px; border:1px solid rgba(169,208,177,.22); border-radius:18px; background:rgba(255,255,255,.055); }
.iehojo-about__promise strong { color:#b6dabb; font-size:12px; }
.iehojo-about__promise span { color:#fff; font-size:13px; line-height:1.8; }

.iehojo-cta { background:linear-gradient(115deg,#edf8f0,#f8fcf9 64%,#fff8ee); }
.iehojo-cta__inner { grid-template-columns:180px minmax(0,1fr) auto; padding:8px 0; }
.iehojo-cta__mascot { position:relative; display:flex; justify-content:center; }
.iehojo-cta__mascot img { width:160px; }
.iehojo-cta__mascot span { position:absolute; left:0; top:-5px; padding:8px 10px; border-radius:14px 14px 14px 4px; background:#fff; color:var(--iehojo-navy); box-shadow:0 7px 20px rgba(23,52,93,.08); font-size:9px; font-weight:900; }
.iehojo-cta__actions { display:grid; gap:9px; min-width:200px; }
.iehojo-cta__actions .iehojo-button { width:100%; }

@media (max-width:1040px) {
  .iehojo-hero--friendly .iehojo-hero__grid { grid-template-columns:minmax(0,1fr) 330px; }
  .iehojo-hero--friendly .iehojo-hero__actions { flex-wrap:wrap; }
  .iehojo-button--hero { min-width:210px; }
  .iehojo-path-grid { grid-template-columns:1fr; }
  .iehojo-path-card { min-height:340px; }
  .iehojo-path-card--browse { grid-template-columns:150px minmax(0,1fr); }
  .iehojo-diagnosis-showcase__inner { grid-template-columns:290px minmax(0,1fr); gap:40px; }
  .iehojo-cta__inner { grid-template-columns:150px minmax(0,1fr); }
  .iehojo-cta__actions { grid-column:2; display:flex; min-width:0; }
}

@media (max-width:780px) {
  .iehojo-hero--friendly { padding:36px 0 48px; }
  .iehojo-hero--friendly .iehojo-hero__grid { grid-template-columns:1fr; gap:10px; }
  .iehojo-hero--friendly .iehojo-badge { margin-bottom:14px; font-size:11px; }
  .iehojo-hero--friendly h1 { font-size:clamp(31px,8.8vw,42px); line-height:1.3; }
  .iehojo-hero--friendly .iehojo-hero__lead { margin-top:16px; font-size:13.5px; line-height:1.8; }
  .iehojo-hero--friendly .iehojo-hero__actions { display:grid; grid-template-columns:1fr; gap:9px; margin-top:21px; }
  .iehojo-button--hero { width:100%; min-width:0; min-height:58px; }
  .iehojo-hero__mini-points { gap:8px 11px; margin-top:13px; font-size:10px; }
  .iehojo-hero--friendly .iehojo-hero__visual { min-height:300px; margin-top:6px; }
  .iehojo-hero--friendly .iehojo-hero__halo { width:250px; height:250px; }
  .iehojo-hero--friendly .iehojo-hero__visual img { width:235px; }
  .iehojo-hero__home-art { width:170px; right:18px; bottom:25px; }
  .iehojo-hero--friendly .iehojo-hero__bubble { right:9px; top:22px; padding:10px 12px; font-size:10px; }
  .iehojo-hero__float { min-height:33px; padding:5px 9px; font-size:9px; }
  .iehojo-hero__float span { width:21px; height:21px; }
  .iehojo-hero__float--search { left:2px; top:90px; }
  .iehojo-hero__float--diagnosis { right:4px; bottom:35px; }
  .iehojo-trust { margin-top:-16px; }
  .iehojo-trust__grid { grid-template-columns:1fr; gap:0; padding:8px 12px; border-radius:20px; }
  .iehojo-trust article { padding:10px 4px; }
  .iehojo-trust article + article { border-left:0; border-top:1px solid var(--iehojo-line); }
  .iehojo-section { padding:62px 0; }
  .iehojo-section__head { margin-bottom:28px; }
  .iehojo-path-grid { gap:14px; }
  .iehojo-path-card { min-height:0; border-radius:24px; }
  .iehojo-path-card--browse { grid-template-columns:1fr; padding:24px 20px; }
  .iehojo-path-card--diagnosis { grid-template-columns:1fr 125px; padding:24px 14px 18px 20px; }
  .iehojo-path-card__art { width:100%; height:95px; margin-bottom:18px; border-radius:24px; }
  .iehojo-path-card__icon { width:58px; height:58px; border-radius:19px; font-size:28px; }
  .iehojo-path-card__pin:nth-of-type(2) { left:calc(50% - 105px); top:20px; }
  .iehojo-path-card__pin:nth-of-type(3) { right:calc(50% - 105px); bottom:18px; }
  .iehojo-path-card h3 { font-size:25px; }
  .iehojo-path-card p:not(.iehojo-path-card__label) { font-size:12px; }
  .iehojo-path-card ul { margin:14px 0 18px; }
  .iehojo-path-card__mascot img { width:125px; }
  .iehojo-path-card__speech { right:-2px; top:-12px; font-size:8.5px; }
  .iehojo-feature-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .iehojo-card { min-height:280px; padding:21px 17px 19px; border-radius:20px; }
  .iehojo-card__icon { width:46px; height:46px; margin-bottom:16px; border-radius:14px; }
  .iehojo-card h3 { font-size:17px; }
  .iehojo-card p { min-height:0; margin:9px 0 14px; font-size:11.5px; line-height:1.75; }
  .iehojo-card__link { font-size:11px; }
  .iehojo-diagnosis-showcase__inner { grid-template-columns:1fr; gap:25px; }
  .iehojo-diagnosis-showcase__visual { order:2; min-height:280px; border-radius:28px; }
  .iehojo-diagnosis-showcase__visual img { width:190px; }
  .iehojo-diagnosis-showcase__bubble { left:18px; top:18px; font-size:10px; }
  .iehojo-diagnosis-showcase__content h2 { font-size:29px; }
  .iehojo-diagnosis-showcase__content > p:not(.iehojo-eyebrow) { font-size:12.5px; }
  .iehojo-diagnosis-steps { gap:5px; }
  .iehojo-diagnosis-steps div { min-height:85px; padding:10px 5px; border-radius:13px; }
  .iehojo-diagnosis-steps strong { font-size:10.5px; }
  .iehojo-diagnosis-steps small { font-size:7.5px; }
  .iehojo-check-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .iehojo-check-card { min-height:230px; padding:20px 17px; border-radius:20px; }
  .iehojo-check-card:nth-child(2), .iehojo-check-card:nth-child(4) { transform:none; }
  .iehojo-check-card__emoji { width:42px; height:42px; font-size:19px; }
  .iehojo-check-card h3 { margin-top:11px; font-size:16px; }
  .iehojo-check-card p { font-size:11.5px; line-height:1.75; }
  .iehojo-about__mark { display:none; }
  .iehojo-about__promise { margin-top:18px; }
  .iehojo-cta__inner { grid-template-columns:90px minmax(0,1fr); gap:17px; }
  .iehojo-cta__mascot img { width:90px; }
  .iehojo-cta__mascot span { display:none; }
  .iehojo-cta__actions { grid-column:1 / -1; display:grid; grid-template-columns:1fr; }
}

@media (max-width:430px) {
  .iehojo-feature-grid,
  .iehojo-check-grid { grid-template-columns:1fr; }
  .iehojo-card { min-height:0; }
  .iehojo-path-card--diagnosis { grid-template-columns:1fr 104px; }
  .iehojo-path-card__mascot img { width:104px; }
  .iehojo-path-card__speech { display:none; }
  .iehojo-diagnosis-steps i { display:none; }
  .iehojo-diagnosis-steps { grid-template-columns:repeat(3,1fr); }
}

/* ========================================================================
 * v0.1.9 - information-rich home design
 * Information-rich visual layout for the Iehojo brand.
 * ====================================================================== */
.iehojo-rich-home { background:#fff; }
.iehojo-rich-kicker { display:inline-flex; align-items:center; gap:7px; margin:0; padding:8px 14px; border:1px solid #cde7f1; border-radius:999px; background:#e8f5fa; color:#26749e; font-size:12px; font-weight:900; letter-spacing:.04em; box-shadow:0 4px 12px rgba(38,116,158,.08); }
.iehojo-rich-kicker::before { content:'✓'; display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:#4ea7c3; color:#fff; font-size:11px; }

.iehojo-rich-hero { position:relative; min-height:520px; overflow:hidden; background:linear-gradient(180deg,#ecf7fb 0%,#f3f9f4 72%,#fff 100%); }
.iehojo-rich-hero::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.38) 43%,rgba(255,255,255,.06) 100%); }
.iehojo-rich-hero__town { position:absolute; left:0; right:0; bottom:-42px; width:100%; height:390px; object-fit:cover; object-position:center bottom; opacity:.88; }
.iehojo-rich-hero__inner { position:relative; z-index:2; min-height:520px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(245px,.55fr) minmax(250px,.52fr); gap:28px; align-items:center; padding-top:38px; padding-bottom:42px; }
.iehojo-rich-hero__copy { align-self:center; padding:22px 0 64px; }
.iehojo-rich-hero h1 { max-width:680px; margin:16px 0 0; color:var(--iehojo-navy); font-size:clamp(40px,4.7vw,62px); line-height:1.16; letter-spacing:-.045em; font-weight:950; text-shadow:0 2px 0 rgba(255,255,255,.85); }
.iehojo-rich-hero h1 span { color:#2e82b7; }
.iehojo-rich-hero__lead { max-width:600px; margin:18px 0 0; color:#3d5266; font-size:15px; line-height:1.85; font-weight:550; }
.iehojo-rich-hero__actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:23px; }
.iehojo-rich-btn { min-height:55px; padding:8px 20px; border:0; border-radius:11px; display:inline-flex; align-items:center; justify-content:center; gap:10px; font-size:14px; font-weight:900; cursor:pointer; box-shadow:0 10px 22px rgba(23,52,93,.13); transition:transform .16s ease,box-shadow .16s ease; }
.iehojo-rich-btn:hover { transform:translateY(-2px); box-shadow:0 13px 28px rgba(23,52,93,.18); }
.iehojo-rich-btn--search { min-width:185px; background:#f7931e; color:#fff; }
.iehojo-rich-btn__icon { width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.2); font-size:23px; line-height:1; }
.iehojo-rich-btn--diagnosis { min-width:220px; border:1px solid #73a887; background:#fff; color:var(--iehojo-navy); }
.iehojo-rich-btn__free { min-width:38px; height:24px; display:grid; place-items:center; border-radius:999px; background:#70a984; color:#fff; font-size:10px; }
.iehojo-rich-btn__copy { display:flex; flex-direction:column; align-items:flex-start; line-height:1.1; }
.iehojo-rich-btn__copy small { color:#6a7b72; font-size:9px; font-weight:800; }
.iehojo-rich-btn__copy strong { margin-top:4px; color:var(--iehojo-navy); font-size:14px; }
.iehojo-rich-hero__note { max-width:590px; margin:12px 0 0; color:#74817e; font-size:9.5px; line-height:1.65; }

.iehojo-rich-hero__mascot-wrap { position:relative; align-self:end; min-height:360px; display:flex; align-items:flex-end; justify-content:center; padding-bottom:16px; }
.iehojo-rich-hero__mascot { position:relative; z-index:2; width:min(300px,100%); filter:drop-shadow(0 16px 18px rgba(37,54,58,.12)); }
.iehojo-rich-hero__bubble { position:absolute; z-index:3; top:48px; left:-12px; min-width:175px; padding:11px 14px; border:1px solid #d5e5da; border-radius:15px 15px 15px 4px; background:rgba(255,255,255,.96); box-shadow:0 8px 22px rgba(23,52,93,.10); }
.iehojo-rich-hero__bubble::after { content:''; position:absolute; left:24px; bottom:-8px; width:14px; height:14px; border-right:1px solid #d5e5da; border-bottom:1px solid #d5e5da; background:#fff; transform:rotate(45deg); }
.iehojo-rich-hero__bubble strong,.iehojo-rich-hero__bubble span { display:block; }
.iehojo-rich-hero__bubble strong { color:var(--iehojo-navy); font-size:11px; }
.iehojo-rich-hero__bubble span { margin-top:3px; color:#4c7157; font-size:10px; line-height:1.55; font-weight:800; }

.iehojo-rich-today { align-self:center; padding:15px; border:1px solid #cadfd2; border-radius:14px; background:rgba(255,255,255,.96); box-shadow:0 13px 30px rgba(23,52,93,.11); }
.iehojo-rich-today__head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; padding-bottom:9px; border-bottom:2px solid var(--iehojo-navy); }
.iehojo-rich-today__head span { color:var(--iehojo-navy); font-size:14px; font-weight:950; }
.iehojo-rich-today__head small { color:#789083; font-size:8px; font-weight:800; }
.iehojo-rich-today__body { display:grid; grid-template-columns:1fr 86px; gap:8px; align-items:center; margin-top:9px; }
.iehojo-rich-today__list { display:grid; gap:7px; }
.iehojo-rich-today__list > div { display:flex; align-items:center; gap:7px; }
.iehojo-rich-today__list img { width:29px; height:29px; flex:0 0 29px; }
.iehojo-rich-today__list p { margin:0; line-height:1.15; }
.iehojo-rich-today__list small,.iehojo-rich-today__list strong { display:block; }
.iehojo-rich-today__list small { color:#7b8982; font-size:8px; }
.iehojo-rich-today__list strong { margin-top:2px; color:var(--iehojo-navy); font-size:10px; }
.iehojo-rich-today__map { width:86px; opacity:.92; }

.iehojo-rich-trust { position:relative; z-index:5; border-top:1px solid #edf2ef; border-bottom:1px solid #e4ece8; background:#fff; box-shadow:0 5px 18px rgba(23,52,93,.03); }
.iehojo-rich-trust__grid { display:grid; grid-template-columns:repeat(3,1fr); }
.iehojo-rich-trust__grid > div { min-height:76px; display:flex; align-items:center; justify-content:center; gap:12px; padding:14px 26px; }
.iehojo-rich-trust__grid > div + div { border-left:1px solid #e5ece8; }
.iehojo-rich-trust img { width:39px; height:39px; }
.iehojo-rich-trust p { margin:0; }
.iehojo-rich-trust strong,.iehojo-rich-trust small { display:block; }
.iehojo-rich-trust strong { color:var(--iehojo-navy); font-size:12px; }
.iehojo-rich-trust small { margin-top:3px; color:#78857f; font-size:9px; }

.iehojo-rich-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:18px; align-items:start; padding-top:18px; padding-bottom:30px; }
.iehojo-rich-content { min-width:0; display:grid; gap:13px; }
.iehojo-rich-panel { overflow:hidden; padding:19px 20px 20px; border:1px solid #dce7e2; border-radius:13px; background:#fff; box-shadow:0 3px 12px rgba(23,52,93,.035); }
.iehojo-rich-section-title { margin-bottom:15px; padding-bottom:12px; border-bottom:2px solid #244c69; }
.iehojo-rich-section-title p { margin:0 0 5px; color:#3b9865; font-size:10px; font-weight:950; }
.iehojo-rich-section-title h2 { margin:0; color:var(--iehojo-navy); font-size:25px; line-height:1.25; font-weight:950; }
.iehojo-rich-section-title span { display:block; margin-top:7px; color:#708079; font-size:10px; line-height:1.7; }
.iehojo-rich-subtitle { display:flex; justify-content:space-between; gap:12px; align-items:flex-end; margin-bottom:14px; padding-bottom:9px; border-bottom:2px solid #28566a; }
.iehojo-rich-subtitle h2 { margin:0; color:#133d54; font-size:20px; line-height:1.3; font-weight:950; }
.iehojo-rich-subtitle h2 small { color:#708079; font-size:9px; font-weight:800; }
.iehojo-rich-subtitle p { margin:4px 0 0; color:#7b8882; font-size:9px; }
.iehojo-rich-subtitle--split > button { padding:0; border:0; background:none; color:#1c8f9c; font-size:9px; font-weight:900; cursor:pointer; }

.iehojo-rich-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:0; padding:0; list-style:none; counter-reset:steps; }
.iehojo-rich-steps li { position:relative; min-height:145px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding:13px 8px 10px; border:1px solid #dce7e2; border-radius:10px; background:#fcfdfd; text-align:center; }
.iehojo-rich-steps li::after { content:''; position:absolute; right:-12px; top:58px; z-index:2; width:23px; height:23px; display:block; border-radius:50%; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 14'%3E%3Cpath d='M1.5 1.5 6.5 7l-5 5.5' fill='none' stroke='%236AA47B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/7px 12px no-repeat; box-shadow:0 2px 8px rgba(23,52,93,.08); }
.iehojo-rich-steps li:last-child::after { display:none; }
.iehojo-rich-steps b { position:absolute; left:8px; top:8px; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:#179b56; color:#fff; font-size:10px; }
.iehojo-rich-steps li:nth-child(2) b { background:#2b94cf; }
.iehojo-rich-steps li:nth-child(3) b { background:#f3911d; }
.iehojo-rich-steps li:nth-child(4) b { background:#8d61c5; }
.iehojo-rich-steps img { width:66px; height:66px; margin:6px 0 4px; object-fit:contain; }
.iehojo-rich-steps strong { color:#17435b; font-size:13px; }
.iehojo-rich-steps small { margin-top:4px; color:#819087; font-size:8.5px; }
.iehojo-rich-inline-btn { min-height:39px; margin-top:13px; padding:0 15px; border:0; border-radius:8px; background:var(--iehojo-navy); color:#fff; font-size:10px; font-weight:900; cursor:pointer; }

.iehojo-rich-theme-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.iehojo-rich-theme { min-height:122px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:9px 7px; border:1px solid #dce6e2; border-radius:10px; background:#fff; cursor:pointer; box-shadow:0 2px 8px rgba(23,52,93,.025); transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease; }
.iehojo-rich-theme:hover { transform:translateY(-2px); border-color:#a9c9b2; box-shadow:0 7px 16px rgba(23,52,93,.08); }
.iehojo-rich-theme img { width:62px; height:62px; object-fit:contain; }
.iehojo-rich-theme strong { margin-top:3px; color:#173c52; font-size:11px; line-height:1.3; }
.iehojo-rich-theme small { margin-top:3px; color:#809087; font-size:7.5px; line-height:1.3; }
.iehojo-rich-theme--green { background:linear-gradient(180deg,#fff,#f7fbf8); }
.iehojo-rich-theme--blue { background:linear-gradient(180deg,#fff,#f6fbfe); }
.iehojo-rich-theme--orange { background:linear-gradient(180deg,#fff,#fff9f1); }
.iehojo-rich-theme--purple { background:linear-gradient(180deg,#fff,#fbf7fd); }
.iehojo-rich-theme--aqua { background:linear-gradient(180deg,#fff,#f4fbfa); }
.iehojo-rich-theme--lime { background:linear-gradient(180deg,#fff,#f8fbf2); }
.iehojo-rich-theme--yellow { background:linear-gradient(180deg,#fff,#fffbef); }
.iehojo-rich-theme--brown { background:linear-gradient(180deg,#fff,#fbf8f1); }

.iehojo-rich-region-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.iehojo-rich-region-grid button { min-height:52px; display:grid; grid-template-columns:12px 1fr 13px; align-items:center; gap:7px; padding:8px 11px; border:1px solid #dce6e2; border-radius:9px; background:#fff; color:#163d54; text-align:left; cursor:pointer; }
.iehojo-rich-region-grid strong { font-size:10px; }
.iehojo-rich-region-grid b { color:#57966b; font-size:19px; font-weight:500; }
.iehojo-rich-region-grid__dot { width:9px; height:9px; border-radius:50%; background:#6fa781; }
.iehojo-rich-region-grid__dot.is-2 { background:#4ba4cf; }.iehojo-rich-region-grid__dot.is-3 { background:#f2a042; }.iehojo-rich-region-grid__dot.is-4 { background:#9b73c8; }.iehojo-rich-region-grid__dot.is-5 { background:#e98969; }.iehojo-rich-region-grid__dot.is-6 { background:#5eb2a3; }

.iehojo-rich-guide { background:linear-gradient(135deg,#fff,#fffdf8); }
.iehojo-rich-guide-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.iehojo-rich-guide-grid article { min-height:128px; padding:12px; border:1px solid #e2e9e5; border-radius:10px; background:#fff; }
.iehojo-rich-guide-grid span { display:inline-grid; place-items:center; min-width:30px; height:20px; padding:0 7px; border-radius:999px; color:#fff; font-size:8px; font-weight:900; }
.iehojo-rich-guide-grid span.is-orange { background:#ef972d; }.iehojo-rich-guide-grid span.is-blue { background:#459fcf; }.iehojo-rich-guide-grid span.is-green { background:#6ba47a; }.iehojo-rich-guide-grid span.is-purple { background:#9369c4; }
.iehojo-rich-guide-grid strong { display:block; margin-top:9px; color:var(--iehojo-navy); font-size:11px; line-height:1.4; }
.iehojo-rich-guide-grid p { margin:6px 0 0; color:#78857e; font-size:8.5px; line-height:1.65; }

.iehojo-rich-consult { min-height:92px; display:grid; grid-template-columns:84px 1fr auto; gap:13px; align-items:center; padding:10px 12px 10px 8px; border:1px solid #f0dfbd; border-radius:12px; background:linear-gradient(90deg,#fff9ec,#fff); box-shadow:0 3px 11px rgba(121,88,31,.04); }
.iehojo-rich-consult img { width:78px; height:78px; object-fit:contain; align-self:end; }
.iehojo-rich-consult strong,.iehojo-rich-consult span { display:block; }
.iehojo-rich-consult > div strong { color:#17435b; font-size:13px; }
.iehojo-rich-consult > div span { margin-top:3px; color:#6f7d76; font-size:9px; }
.iehojo-rich-consult > button { min-height:45px; display:flex; align-items:center; gap:8px; padding:5px 12px; border:0; border-radius:8px; background:#f7931e; color:#fff; font-size:9px; font-weight:900; cursor:pointer; }
.iehojo-rich-consult > button b { min-width:33px; height:22px; display:grid; place-items:center; border-radius:999px; background:#fff; color:#f0830c; font-size:8px; }
.iehojo-rich-consult > button small { display:block; opacity:.88; font-size:7px; }

.iehojo-rich-info-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.iehojo-rich-info-grid > div { display:grid; grid-template-columns:48px 1fr; align-content:start; gap:3px 10px; padding:11px 16px; }
.iehojo-rich-info-grid > div + div { border-left:1px solid #e4ebe7; }
.iehojo-rich-info-grid img { grid-row:1 / span 2; width:45px; height:45px; }
.iehojo-rich-info-grid strong { color:#164259; font-size:10px; }
.iehojo-rich-info-grid p { margin:3px 0 0; color:#7a8881; font-size:8px; line-height:1.55; }

.iehojo-rich-side { position:sticky; top:98px; display:grid; gap:12px; }
.admin-bar .iehojo-rich-side { top:130px; }
.iehojo-rich-side-diagnosis { overflow:hidden; border:1px solid #b8dbc2; border-radius:13px; background:#f5fbf6; box-shadow:0 7px 20px rgba(49,111,72,.08); }
.iehojo-rich-side-diagnosis header { display:flex; align-items:center; justify-content:space-between; padding:9px 12px; background:#169452; color:#fff; }
.iehojo-rich-side-diagnosis header span { font-size:11px; font-weight:950; }.iehojo-rich-side-diagnosis header b { padding:3px 7px; border-radius:999px; background:rgba(255,255,255,.22); font-size:7px; }
.iehojo-rich-side-chat { display:grid; gap:8px; padding:12px 10px 8px; }
.iehojo-rich-side-chat__row { display:flex; gap:7px; align-items:flex-start; }
.iehojo-rich-side-chat__row img { width:34px; height:34px; object-fit:contain; flex:0 0 34px; }
.iehojo-rich-side-chat__row p { position:relative; margin:0; padding:8px 9px; border:1px solid #d9e7dd; border-radius:4px 10px 10px 10px; background:#fff; color:#405149; font-size:8.5px; line-height:1.55; box-shadow:0 2px 7px rgba(23,52,93,.03); }
.iehojo-rich-side-chat__row p::before { content:''; position:absolute; left:-5px; top:10px; width:8px; height:8px; border-left:1px solid #d9e7dd; border-bottom:1px solid #d9e7dd; background:#fff; transform:rotate(45deg); }
.iehojo-rich-side-chat__row strong { color:#1c5a39; }
.iehojo-rich-side-diagnosis > button { width:calc(100% - 20px); min-height:41px; margin:2px 10px 9px; border:0; border-radius:8px; background:#17345d; color:#fff; font-size:9.5px; font-weight:900; cursor:pointer; }
.iehojo-rich-side-diagnosis > button span { display:inline-grid; place-items:center; min-width:31px; height:20px; margin-right:6px; border-radius:999px; background:#f4a12e; font-size:7px; }
.iehojo-rich-side-dots { display:flex; justify-content:center; gap:5px; padding-bottom:9px; }.iehojo-rich-side-dots i { width:5px; height:5px; border-radius:50%; background:#c9ddd0; }.iehojo-rich-side-dots i:first-child { background:#169452; }
.iehojo-rich-side-help { padding:14px; border:1px solid #dde7e2; border-radius:12px; background:#fff; }
.iehojo-rich-side-help strong { color:var(--iehojo-navy); font-size:11px; }.iehojo-rich-side-help p { margin:5px 0 10px; color:#7a8780; font-size:8.5px; line-height:1.55; }.iehojo-rich-side-help button { width:100%; min-height:36px; border:1px solid #6fa581; border-radius:7px; background:#f7fbf8; color:#477859; font-size:9px; font-weight:900; cursor:pointer; }

.iehojo-rich-notify { position:relative; min-height:115px; overflow:hidden; background:#0d6873; color:#fff; }
.iehojo-rich-notify > img { position:absolute; inset:auto 0 -110px; width:100%; height:260px; object-fit:cover; opacity:.17; filter:saturate(.6); }
.iehojo-rich-notify__inner { position:relative; z-index:1; min-height:115px; display:flex; justify-content:space-between; align-items:center; gap:25px; padding-top:21px; padding-bottom:21px; }
.iehojo-rich-notify strong,.iehojo-rich-notify span { display:block; }.iehojo-rich-notify strong { font-size:18px; }.iehojo-rich-notify span { margin-top:4px; color:#d2e9e9; font-size:9.5px; }
.iehojo-rich-notify__actions { display:flex; gap:8px; }.iehojo-rich-notify__actions button { min-height:38px; padding:0 15px; border:1px solid rgba(255,255,255,.75); border-radius:8px; background:#fff; color:#0d5962; font-size:9px; font-weight:900; cursor:pointer; }.iehojo-rich-notify__actions button + button { background:transparent; color:#fff; }

@media (max-width:1100px) {
  .iehojo-rich-hero__inner { grid-template-columns:1.15fr .65fr .62fr; gap:16px; }
  .iehojo-rich-hero h1 { font-size:clamp(36px,4.8vw,50px); }
  .iehojo-rich-layout { grid-template-columns:minmax(0,1fr) 270px; }
  .iehojo-rich-theme-grid { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:900px) {
  .iehojo-rich-hero { min-height:0; }
  .iehojo-rich-hero__inner { grid-template-columns:minmax(0,1fr) 220px; grid-template-areas:'copy copy' 'mascot today'; min-height:0; padding-top:30px; padding-bottom:28px; }
  .iehojo-rich-hero__copy { grid-area:copy; padding:0; }
  .iehojo-rich-hero__mascot-wrap { grid-area:mascot; min-height:250px; }
  .iehojo-rich-today { grid-area:today; }
  .iehojo-rich-layout { grid-template-columns:1fr; }
  .iehojo-rich-side { display:none; }
  .iehojo-rich-theme-grid { grid-template-columns:repeat(4,1fr); }
}
@media (max-width:700px) {
  .iehojo-container { width:min(calc(100% - 20px),var(--iehojo-container)); }
  .iehojo-rich-hero::after { background:linear-gradient(180deg,rgba(255,255,255,.66),rgba(255,255,255,.16)); }
  .iehojo-rich-hero__town { height:290px; bottom:-12px; opacity:.72; }
  .iehojo-rich-hero__inner { grid-template-columns:1fr 1fr; gap:8px 10px; padding-top:16px; padding-bottom:19px; }
  .iehojo-rich-kicker { padding:6px 10px; font-size:9px; }
  .iehojo-rich-kicker::before { width:15px; height:15px; }
  .iehojo-rich-hero h1 { margin-top:10px; font-size:clamp(28px,9.4vw,38px); line-height:1.17; }
  .iehojo-rich-hero__lead { margin-top:10px; font-size:10.5px; line-height:1.7; }
  .iehojo-rich-hero__actions { gap:6px; margin-top:13px; }
  .iehojo-rich-btn { flex:1 1 calc(50% - 4px); min-width:0; min-height:47px; padding:6px 8px; font-size:10px; border-radius:9px; }
  .iehojo-rich-btn__icon { width:23px; height:23px; font-size:18px; }.iehojo-rich-btn__free { min-width:30px; height:19px; font-size:7px; }.iehojo-rich-btn__copy small { font-size:6.5px; }.iehojo-rich-btn__copy strong { margin-top:2px; font-size:9px; }
  .iehojo-rich-hero__note { margin-top:7px; font-size:7px; }
  .iehojo-rich-hero__mascot-wrap { min-height:180px; padding-bottom:2px; }
  .iehojo-rich-hero__mascot { width:150px; }
  .iehojo-rich-hero__bubble { top:15px; left:-2px; min-width:112px; padding:7px 8px; border-radius:10px 10px 10px 3px; }.iehojo-rich-hero__bubble strong { font-size:7px; }.iehojo-rich-hero__bubble span { font-size:6.5px; }
  .iehojo-rich-today { padding:9px; border-radius:10px; }
  .iehojo-rich-today__head { padding-bottom:5px; }.iehojo-rich-today__head span { font-size:9px; }.iehojo-rich-today__head small { display:none; }
  .iehojo-rich-today__body { grid-template-columns:1fr 48px; margin-top:5px; }.iehojo-rich-today__list { gap:3px; }.iehojo-rich-today__list img { width:20px; height:20px; flex-basis:20px; }.iehojo-rich-today__list small { font-size:5.5px; }.iehojo-rich-today__list strong { font-size:6.5px; }.iehojo-rich-today__map { width:48px; }
  .iehojo-rich-trust__grid { grid-template-columns:1fr; padding:3px 0; }.iehojo-rich-trust__grid > div { min-height:54px; justify-content:flex-start; padding:8px 13px; }.iehojo-rich-trust__grid > div + div { border-left:0; border-top:1px solid #e5ece8; }.iehojo-rich-trust img { width:31px; height:31px; }.iehojo-rich-trust strong { font-size:9px; }.iehojo-rich-trust small { font-size:6.5px; }
  .iehojo-rich-layout { gap:9px; padding-top:9px; padding-bottom:16px; }.iehojo-rich-content { gap:8px; }
  .iehojo-rich-panel { padding:13px 11px 12px; border-radius:10px; }
  .iehojo-rich-section-title { margin-bottom:10px; padding-bottom:8px; }.iehojo-rich-section-title p { font-size:7.5px; }.iehojo-rich-section-title h2 { font-size:20px; }.iehojo-rich-section-title span { margin-top:4px; font-size:7.5px; }
  .iehojo-rich-subtitle { margin-bottom:9px; padding-bottom:6px; }.iehojo-rich-subtitle h2 { font-size:16px; }.iehojo-rich-subtitle h2 small { font-size:6.5px; }.iehojo-rich-subtitle p { font-size:7px; }
  .iehojo-rich-steps { grid-template-columns:repeat(2,1fr); gap:6px; }.iehojo-rich-steps li { min-height:112px; padding:10px 5px 7px; }.iehojo-rich-steps li::after { display:none; }.iehojo-rich-steps b { width:19px; height:19px; font-size:7px; }.iehojo-rich-steps img { width:50px; height:50px; }.iehojo-rich-steps strong { font-size:10px; }.iehojo-rich-steps small { font-size:6.5px; }.iehojo-rich-inline-btn { min-height:35px; margin-top:8px; font-size:8px; }
  .iehojo-rich-theme-grid { grid-template-columns:repeat(2,1fr); gap:5px; }.iehojo-rich-theme { min-height:105px; padding:6px 4px; }.iehojo-rich-theme img { width:51px; height:51px; }.iehojo-rich-theme strong { font-size:9px; }.iehojo-rich-theme small { font-size:6.2px; }
  .iehojo-rich-region-grid { grid-template-columns:repeat(2,1fr); gap:5px; }.iehojo-rich-region-grid button { min-height:43px; padding:6px 8px; }.iehojo-rich-region-grid strong { font-size:8px; }
  .iehojo-rich-guide-grid { grid-template-columns:repeat(2,1fr); gap:5px; }.iehojo-rich-guide-grid article { min-height:110px; padding:9px; }.iehojo-rich-guide-grid strong { font-size:9px; }.iehojo-rich-guide-grid p { font-size:6.8px; }
  .iehojo-rich-consult { grid-template-columns:60px 1fr; padding:7px; }.iehojo-rich-consult img { width:56px; height:56px; }.iehojo-rich-consult > div strong { font-size:10px; }.iehojo-rich-consult > div span { font-size:7px; }.iehojo-rich-consult > button { grid-column:1/-1; width:100%; justify-content:center; min-height:38px; font-size:8px; }
  .iehojo-rich-info-grid { grid-template-columns:1fr; }.iehojo-rich-info-grid > div { grid-template-columns:38px 1fr; padding:8px 4px; }.iehojo-rich-info-grid > div + div { border-left:0; border-top:1px solid #e4ebe7; }.iehojo-rich-info-grid img { width:34px; height:34px; }.iehojo-rich-info-grid strong { font-size:8.5px; }.iehojo-rich-info-grid p { font-size:6.8px; }
  .iehojo-rich-notify { min-height:104px; }.iehojo-rich-notify__inner { min-height:104px; display:grid; gap:9px; padding-top:14px; padding-bottom:14px; }.iehojo-rich-notify strong { font-size:13px; }.iehojo-rich-notify span { font-size:7.5px; }.iehojo-rich-notify__actions { gap:5px; }.iehojo-rich-notify__actions button { flex:1; min-height:34px; padding:0 9px; font-size:7.5px; }
}

/* v0.1.9 header accent: orange is reserved for the direct browse CTA. */
.iehojo-header__browse { border-color:#f7931e !important; background:#f7931e !important; color:#fff !important; box-shadow:0 7px 17px rgba(224,125,25,.16); }
.iehojo-header__browse svg,.iehojo-header__browse span { color:#fff !important; }
.iehojo-header__browse:hover,.iehojo-header__browse:focus-visible { border-color:#e98614 !important; background:#e98614 !important; color:#fff !important; }

/* =========================================================
 * v0.1.10 - balance tuning only
 * Keep the v0.1.9 visual language; refine proportions,
 * spacing, breakpoints and mobile readability.
 * ======================================================= */
:root { --iehojo-container: 1240px; }

/* Large desktop: give the copy a little more room and reduce visual competition. */
@media (min-width:1181px) {
  .iehojo-rich-hero { min-height:500px; }
  .iehojo-rich-hero__inner {
    min-height:500px;
    grid-template-columns:minmax(0,1.28fr) minmax(230px,.52fr) minmax(235px,.48fr);
    gap:24px;
    padding-top:32px;
    padding-bottom:34px;
  }
  .iehojo-rich-hero__copy { padding:16px 0 50px; }
  .iehojo-rich-hero h1 { max-width:650px; font-size:clamp(42px,4vw,56px); line-height:1.14; }
  .iehojo-rich-hero__lead { max-width:610px; margin-top:16px; }
  .iehojo-rich-hero__mascot-wrap { min-height:330px; padding-bottom:10px; }
  .iehojo-rich-hero__mascot { width:min(270px,100%); }
  .iehojo-rich-hero__bubble { top:40px; left:-4px; }
  .iehojo-rich-today { padding:14px; }
  .iehojo-rich-layout { grid-template-columns:minmax(0,1fr) 286px; gap:22px; padding-top:22px; padding-bottom:36px; }
  .iehojo-rich-content { gap:16px; }
  .iehojo-rich-panel { padding:22px 23px 23px; }
}

/* Laptop / compact desktop: avoid the awkward 3-column hero and the empty right rail. */
@media (min-width:901px) and (max-width:1180px) {
  .iehojo-rich-hero { min-height:470px; }
  .iehojo-rich-hero__inner {
    min-height:470px;
    grid-template-columns:minmax(0,1fr) 285px;
    grid-template-rows:auto 1fr;
    grid-template-areas:'copy today' 'copy mascot';
    column-gap:26px;
    row-gap:10px;
    align-items:center;
    padding-top:28px;
    padding-bottom:30px;
  }
  .iehojo-rich-hero__copy { grid-area:copy; align-self:center; padding:0 0 26px; }
  .iehojo-rich-hero h1 { max-width:610px; font-size:clamp(38px,4.35vw,46px); line-height:1.16; }
  .iehojo-rich-hero__lead { max-width:570px; margin-top:15px; font-size:14px; }
  .iehojo-rich-hero__actions { margin-top:19px; }
  .iehojo-rich-hero__mascot-wrap { grid-area:mascot; min-height:245px; align-self:end; padding-bottom:0; }
  .iehojo-rich-hero__mascot { width:215px; }
  .iehojo-rich-hero__bubble { top:12px; left:-2px; min-width:150px; }
  .iehojo-rich-today { grid-area:today; align-self:end; padding:12px; }
  .iehojo-rich-today__body { grid-template-columns:1fr 68px; }
  .iehojo-rich-today__map { width:68px; }
  .iehojo-rich-layout { grid-template-columns:1fr; gap:0; padding-top:18px; padding-bottom:30px; }
  .iehojo-rich-side { display:none; }
  .iehojo-rich-content { gap:14px; }
  .iehojo-rich-panel { padding:20px 21px 21px; }
}

/* Tablet: preserve the same content rhythm while keeping the first view compact. */
@media (min-width:701px) and (max-width:900px) {
  .iehojo-rich-hero__inner { gap:12px 18px; padding-top:26px; padding-bottom:24px; }
  .iehojo-rich-hero h1 { max-width:690px; font-size:clamp(36px,5.4vw,46px); }
  .iehojo-rich-hero__mascot-wrap { min-height:225px; }
  .iehojo-rich-hero__mascot { width:205px; }
  .iehojo-rich-today { max-width:280px; justify-self:end; }
  .iehojo-rich-layout { padding-top:16px; padding-bottom:28px; }
  .iehojo-rich-content { gap:13px; }
}

/* Phone: improve legibility and vertical rhythm without changing the design. */
@media (max-width:700px) {
  .iehojo-container { width:min(calc(100% - 24px),var(--iehojo-container)); }
  .iehojo-rich-hero__inner { gap:10px 10px; padding-top:17px; padding-bottom:20px; }
  .iehojo-rich-kicker { font-size:9.5px; }
  .iehojo-rich-hero h1 { font-size:clamp(29px,9.1vw,36px); line-height:1.18; letter-spacing:-.035em; }
  .iehojo-rich-hero__lead { margin-top:11px; font-size:11.5px; line-height:1.75; }
  .iehojo-rich-hero__actions { margin-top:14px; gap:7px; }
  .iehojo-rich-btn { min-height:49px; font-size:10.5px; }
  .iehojo-rich-btn__copy small { font-size:7px; }
  .iehojo-rich-btn__copy strong { font-size:9.5px; }
  .iehojo-rich-hero__note { margin-top:8px; font-size:7.5px; line-height:1.6; }
  .iehojo-rich-hero__mascot-wrap { min-height:172px; padding-bottom:0; }
  .iehojo-rich-hero__mascot { width:142px; }
  .iehojo-rich-hero__bubble { top:8px; left:2px; min-width:106px; padding:7px 8px; }
  .iehojo-rich-hero__bubble strong { font-size:7.5px; }
  .iehojo-rich-hero__bubble span { font-size:6.8px; }
  .iehojo-rich-today { align-self:center; padding:9px 8px; }
  .iehojo-rich-today__body { grid-template-columns:1fr 46px; }
  .iehojo-rich-trust__grid > div { min-height:52px; padding:7px 13px; }
  .iehojo-rich-trust strong { font-size:9.5px; }
  .iehojo-rich-trust small { font-size:7px; line-height:1.45; }

  .iehojo-rich-layout { gap:10px; padding-top:10px; padding-bottom:18px; }
  .iehojo-rich-content { gap:9px; }
  .iehojo-rich-panel { padding:14px 12px 13px; border-radius:11px; }
  .iehojo-rich-section-title { margin-bottom:11px; padding-bottom:9px; }
  .iehojo-rich-section-title p { font-size:8px; }
  .iehojo-rich-section-title h2 { font-size:20.5px; }
  .iehojo-rich-section-title span { font-size:8.3px; line-height:1.6; }
  .iehojo-rich-subtitle { margin-bottom:10px; padding-bottom:7px; }
  .iehojo-rich-subtitle h2 { font-size:16.5px; }
  .iehojo-rich-subtitle h2 small { font-size:7px; }
  .iehojo-rich-subtitle p { font-size:7.6px; line-height:1.55; }

  .iehojo-rich-steps { gap:7px; }
  .iehojo-rich-steps li { min-height:114px; padding:10px 6px 8px; }
  .iehojo-rich-steps img { width:51px; height:51px; }
  .iehojo-rich-steps strong { font-size:10.3px; }
  .iehojo-rich-steps small { font-size:7px; }
  .iehojo-rich-inline-btn { min-height:37px; margin-top:9px; font-size:8.5px; }

  .iehojo-rich-theme-grid { gap:6px; }
  .iehojo-rich-theme { min-height:108px; padding:7px 5px; }
  .iehojo-rich-theme img { width:52px; height:52px; }
  .iehojo-rich-theme strong { font-size:9.5px; }
  .iehojo-rich-theme small { font-size:6.7px; }

  .iehojo-rich-region-grid { gap:6px; }
  .iehojo-rich-region-grid button { min-height:44px; padding:7px 9px; }
  .iehojo-rich-region-grid strong { font-size:8.5px; }

  .iehojo-rich-guide-grid { gap:6px; }
  .iehojo-rich-guide-grid article { min-height:112px; padding:10px; }
  .iehojo-rich-guide-grid strong { font-size:9.5px; }
  .iehojo-rich-guide-grid p { font-size:7.3px; line-height:1.6; }

  .iehojo-rich-consult { grid-template-columns:62px 1fr; gap:8px; padding:8px; }
  .iehojo-rich-consult img { width:58px; height:58px; }
  .iehojo-rich-consult > div strong { font-size:10.5px; }
  .iehojo-rich-consult > div span { font-size:7.5px; line-height:1.5; }
  .iehojo-rich-consult > button { min-height:40px; margin-top:2px; font-size:8.5px; }

  .iehojo-rich-info-grid > div { padding:9px 4px; }
  .iehojo-rich-info-grid strong { font-size:9px; }
  .iehojo-rich-info-grid p { font-size:7.3px; line-height:1.55; }
  .iehojo-rich-notify__inner { padding-top:15px; padding-bottom:15px; }
  .iehojo-rich-notify strong { font-size:13.5px; }
  .iehojo-rich-notify span { font-size:8px; line-height:1.5; }
  .iehojo-rich-notify__actions button { font-size:8px; }
}

@media (max-width:390px) {
  .iehojo-header__inner { min-height:62px; }
  .iehojo-brand { flex-basis:150px; max-width:150px; }
  .iehojo-brand img { width:150px; }
  .iehojo-rich-hero h1 { font-size:clamp(27px,8.9vw,33px); }
  .iehojo-rich-hero__lead { font-size:10.8px; }
  .iehojo-rich-btn { min-height:47px; padding-inline:7px; }
  .iehojo-rich-hero__mascot { width:136px; }
  .iehojo-rich-today { padding:8px 7px; }
}

/* =========================================================
 * v0.1.12 - second Ietasu set + reference UI alignment
 * - Header follows the adopted reference composition.
 * - Direct-search modal covers the viewport with an opaque background.
 * - Diagnosis modal uses the green-header / chat-left / choices-right layout.
 * ======================================================= */

/* Header: reference composition */
.iehojo-header {
  background:#fff;
  border-bottom:1px solid #e6edf1;
  box-shadow:0 2px 12px rgba(23,52,93,.045);
  backdrop-filter:none;
}
.iehojo-header__inner {
  width:min(calc(100% - 40px),1180px);
  min-height:72px;
  gap:22px;
}
.iehojo-brand { flex:0 0 168px; max-width:168px; padding:7px 0; }
.iehojo-brand img { width:168px; }
.iehojo-nav { margin-left:auto; }
.iehojo-nav__list { gap:24px; }
.iehojo-nav__list a { font-size:13px; font-weight:900; }
.iehojo-header__actions { gap:10px; }
.iehojo-header__browse,
.iehojo-header__search {
  min-height:46px;
  padding:0 20px;
  border-radius:999px;
  font-size:13px;
  font-weight:900;
}
.iehojo-header__browse {
  min-width:148px;
  border-color:#ff920d !important;
  background:#ff920d !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(255,146,13,.22);
}
.iehojo-header__browse:hover,
.iehojo-header__browse:focus-visible {
  border-color:#ef8500 !important;
  background:#ef8500 !important;
}
.iehojo-header__search {
  min-width:144px;
  background:#17345d !important;
  box-shadow:0 8px 20px rgba(23,52,93,.18);
}

/* Direct search modal: 100% opaque viewport background */
.iehojo-search-modal {
  background:#f3faf5;
}
.iehojo-search-modal .iehojo-modal__backdrop {
  background:#f3faf5;
  opacity:1;
  backdrop-filter:none;
}
.iehojo-search-modal__dialog {
  width:min(calc(100% - 36px),920px);
  max-height:min(900px,calc(100dvh - 36px));
  border:1px solid #dce9e0;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(23,52,93,.12);
}
.iehojo-search-modal__header {
  padding:20px 24px 17px;
  background:#fff;
}
.iehojo-search-modal__body { background:#fff; }

/* Diagnosis modal: adopted reference style */
.iehojo-diagnosis {
  place-items:center;
  padding:20px;
  background:rgba(230,246,234,.96);
}
.iehojo-diagnosis .iehojo-modal__backdrop {
  background:rgba(225,243,231,.96);
  backdrop-filter:none;
}
.iehojo-diagnosis .iehojo-modal__dialog {
  position:relative;
  width:min(calc(100% - 8px),1080px);
  max-width:1080px;
  height:min(760px,calc(100dvh - 40px));
  max-height:calc(100dvh - 40px);
  margin:0;
  overflow:hidden;
  border:1px solid #cfe2d4;
  border-radius:16px;
  background:#fff;
  box-shadow:0 28px 80px rgba(23,52,93,.18);
}
.iehojo-diagnosis__frame {
  width:100%;
  height:100%;
  grid-template-rows:58px 48px minmax(0,1fr);
  border:0;
  border-radius:inherit;
  background:#fff;
}
.iehojo-diagnosis__header {
  min-height:58px;
  padding:0 18px 0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:0;
  background:linear-gradient(90deg,#169653,#10a462);
  color:#fff;
}
.iehojo-diagnosis__title { display:flex; align-items:center; gap:10px; }
.iehojo-diagnosis__title strong {
  color:#fff;
  font-size:18px;
  font-weight:900;
  letter-spacing:.01em;
}
.iehojo-diagnosis__status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:9px;
  font-weight:900;
}
.iehojo-diagnosis__header-actions { gap:8px; }
.iehojo-diagnosis__reset,
.iehojo-diagnosis__close {
  min-height:34px;
  padding:5px 11px;
  border:1px solid rgba(255,255,255,.6);
  border-radius:999px;
  background:#fff;
  color:#15583b;
  font-size:10px;
  font-weight:900;
  box-shadow:none;
}
.iehojo-diagnosis__reset:hover,
.iehojo-diagnosis__close:hover { background:#f3fff7; }
.iehojo-diagnosis__action-icon {
  font-size:17px;
  line-height:1;
  font-weight:700;
}
.iehojo-diagnosis__progress {
  min-height:48px;
  padding:0 18px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 210px;
  gap:18px;
  align-items:center;
  border-bottom:1px solid #dce9e0;
  background:#f8fcf9;
}
.iehojo-diagnosis__steps {
  position:static;
  display:flex;
  justify-content:flex-start;
  gap:18px;
  height:auto;
  overflow:visible;
}
.iehojo-diagnosis__steps li {
  min-width:auto;
  width:auto;
  gap:5px;
  color:#829188;
  font-size:9px;
}
.iehojo-diagnosis__steps li:not(:last-child)::after { display:none; }
.iehojo-diagnosis__steps b { width:20px; height:20px; font-size:8px; }
.iehojo-diagnosis__progress-meter {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.iehojo-diagnosis__progress-bar { height:5px; background:#dfe9e2; }
.iehojo-diagnosis__progress small { min-width:34px; font-size:9px; }

.iehojo-diagnosis__content {
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  overflow:hidden;
  background:#f6fcf8;
}
.iehojo-diagnosis__conversation {
  position:relative;
  min-width:0;
  min-height:0;
  overflow:hidden;
  border-right:1px solid #d8e8dd;
  background:linear-gradient(180deg,#f7fcf8 0%,#eef8f1 100%);
}
.iehojo-diagnosis__conversation-head {
  position:absolute;
  z-index:3;
  left:22px;
  top:18px;
  right:22px;
  min-height:48px;
  padding:9px 13px;
  border:1px solid #d8e7dc;
  border-radius:12px;
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 13px rgba(23,52,93,.05);
}
.iehojo-diagnosis__conversation-label {
  color:#178653;
  font-size:10px;
  font-weight:900;
}
.iehojo-diagnosis__conversation-head p {
  margin:3px 0 0;
  color:#66766d;
  font-size:10px;
  line-height:1.45;
}
.iehojo-diagnosis__chat {
  height:100%;
  min-height:0;
  padding:82px 24px 210px;
  background:transparent;
}
.iehojo-diagnosis__visual-mascot {
  position:absolute;
  z-index:2;
  left:18px;
  bottom:10px;
  width:205px;
  height:205px;
  margin:0;
  object-fit:contain;
  filter:drop-shadow(0 8px 12px rgba(23,52,93,.08));
  pointer-events:none;
}
.iehojo-chat-avatar { width:44px; height:44px; flex-basis:44px; }
.iehojo-chat-avatar img { width:44px; height:44px; }
.iehojo-chat-row { gap:8px; margin-bottom:12px; }
.iehojo-chat-message {
  max-width:min(500px,calc(100% - 58px));
  padding:10px 13px;
  border-color:#d8e5dc;
  border-radius:8px 15px 15px 15px;
  box-shadow:0 4px 12px rgba(23,52,93,.045);
}
.iehojo-chat-message p { font-size:12px; line-height:1.62; }
.iehojo-chat-row--user .iehojo-chat-message { max-width:75%; background:#eaf6ed; }

.iehojo-diagnosis__answer-pane {
  min-width:0;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:22px;
  background:#fff;
}
.iehojo-diagnosis__answer-pane-head {
  margin-bottom:15px;
  padding:12px 13px;
  border:1px solid #dce8df;
  border-radius:10px;
  background:#f7fbf8;
}
.iehojo-diagnosis__answer-pane-head span,
.iehojo-diagnosis__answer-pane-head small { display:block; }
.iehojo-diagnosis__answer-pane-head span { color:var(--iehojo-navy); font-size:12px; font-weight:900; }
.iehojo-diagnosis__answer-pane-head small { margin-top:3px; color:#7a8980; font-size:9px; }
.iehojo-diagnosis__answer {
  width:100%;
  max-width:none;
  margin:0;
}
.iehojo-diagnosis__answer-inner { width:100%; }
.iehojo-diagnosis__choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.iehojo-diagnosis__choice {
  min-height:54px;
  border-radius:9px;
  font-size:11px;
}
.iehojo-diagnosis__region-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.iehojo-diagnosis__region-choice { min-height:56px; }
.iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.iehojo-diagnosis__municipality-groups { max-height:370px; }
.iehojo-diagnosis__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.iehojo-diagnosis__summary-v2 {
  margin:14px 0;
  max-width:100%;
  padding:13px 14px;
  background:#fff;
}
.iehojo-diagnosis__finish { min-height:50px; background:#17345d; border-color:#17345d; }
.iehojo-diagnosis__mobile-intro { display:none; }

@media (max-width:900px) {
  .iehojo-nav { display:none; }
  .iehojo-header__actions { margin-left:auto; }
  .iehojo-diagnosis__content { grid-template-columns:minmax(0,1fr) 330px; }
}

@media (max-width:767px) {
  .iehojo-header__inner { width:calc(100% - 22px); min-height:62px; }
  .iehojo-brand { flex-basis:142px; max-width:142px; }
  .iehojo-brand img { width:142px; }
  .iehojo-header__actions { display:none; }

  .iehojo-search-modal { padding:0; }
  .iehojo-search-modal__dialog {
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
    box-shadow:none;
  }

  .iehojo-diagnosis { padding:0; }
  .iehojo-diagnosis .iehojo-modal__dialog {
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .iehojo-diagnosis__frame { grid-template-rows:56px 42px minmax(0,1fr); }
  .iehojo-diagnosis__header {
    min-height:56px;
    height:56px;
    padding:0 9px 0 12px;
  }
  .iehojo-diagnosis__title strong { font-size:15px; }
  .iehojo-diagnosis__status { min-height:21px; padding:0 7px; font-size:7.5px; }
  .iehojo-diagnosis__header-actions { gap:5px; }
  .iehojo-diagnosis__reset,
  .iehojo-diagnosis__close {
    display:inline-flex;
    min-height:31px;
    height:31px;
    width:auto;
    padding:4px 8px;
    border:1px solid rgba(255,255,255,.65);
    font-size:8.5px;
  }
  .iehojo-diagnosis__close span,
  .iehojo-diagnosis__reset span { display:inline; }
  .iehojo-diagnosis__action-icon { font-size:15px; }
  .iehojo-diagnosis__progress {
    min-height:42px;
    padding:0 10px;
    grid-template-columns:minmax(0,1fr) 96px;
    gap:8px;
  }
  .iehojo-diagnosis__steps { gap:7px; }
  .iehojo-diagnosis__steps li { gap:3px; font-size:7px; }
  .iehojo-diagnosis__steps b { width:18px; height:18px; font-size:7px; }
  .iehojo-diagnosis__steps li span { display:none; }
  .iehojo-diagnosis__content {
    grid-template-columns:1fr;
    grid-template-rows:minmax(220px,.72fr) minmax(0,1fr);
    overflow:hidden;
  }
  .iehojo-diagnosis__conversation {
    min-height:0;
    border-right:0;
    border-bottom:1px solid #d8e8dd;
  }
  .iehojo-diagnosis__conversation-head { display:none; }
  .iehojo-diagnosis__chat {
    width:100%;
    min-width:0;
    height:100%;
    padding:10px 10px 16px;
    background:#eef8f1;
  }
  .iehojo-diagnosis__visual-mascot { display:none; }
  .iehojo-diagnosis__mobile-intro {
    width:100%;
    margin:0 0 10px;
    padding:8px 10px;
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:8px;
    align-items:center;
    border:1px solid #d5e5d9;
    border-radius:12px;
    background:#fff;
  }
  .iehojo-diagnosis__mobile-intro img { width:58px; height:64px; object-fit:contain; }
  .iehojo-diagnosis__mobile-intro div {
    padding:8px 10px;
    border-radius:14px 14px 14px 5px;
    background:#f3f8f4;
    color:var(--iehojo-navy);
    font-size:9px;
    line-height:1.55;
    font-weight:900;
  }
  .iehojo-chat-avatar { width:36px; height:36px; flex-basis:36px; }
  .iehojo-chat-avatar img { width:36px; height:36px; }
  .iehojo-chat-message { max-width:calc(100% - 43px); padding:8px 10px; }
  .iehojo-chat-message p { font-size:11px; }
  .iehojo-diagnosis__answer-pane {
    min-height:0;
    padding:10px 11px 18px;
    background:#fff;
  }
  .iehojo-diagnosis__answer-pane-head { margin-bottom:8px; padding:8px 10px; }
  .iehojo-diagnosis__answer-pane-head span { font-size:10px; }
  .iehojo-diagnosis__answer-pane-head small { font-size:7.5px; }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__choice { min-height:44px; padding:7px 8px; font-size:9.5px; }
  .iehojo-diagnosis__region-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__region-choice { min-height:48px; padding:6px 8px; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .iehojo-diagnosis__municipality-groups { max-height:240px; }
  .iehojo-diagnosis__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
  .iehojo-diagnosis__summary-v2 { margin:8px 0; max-width:100%; }
}

@media (max-width:390px) {
  .iehojo-diagnosis__title { gap:5px; }
  .iehojo-diagnosis__title strong { font-size:14px; }
  .iehojo-diagnosis__status { display:none; }
  .iehojo-diagnosis__reset,
  .iehojo-diagnosis__close { padding:4px 7px; font-size:8px; }
  .iehojo-diagnosis__progress { grid-template-columns:minmax(0,1fr) 78px; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* =========================================================
 * v0.1.13 - reference hero + mobile diagnosis restore
 * ======================================================= */

/* Search modal close label: always show “× 閉じる”. */
.iehojo-search-modal__close {
  width:auto;
  min-width:92px;
  padding:0 14px;
  gap:7px;
}
.iehojo-search-modal__close span { display:inline !important; }

/* Hero: match the approved reference composition. */
.iehojo-rich-hero {
  min-height:470px;
  background:linear-gradient(180deg,#b9ebf8 0%,#dff4f7 56%,#edf8ec 100%);
}
.iehojo-rich-hero::after {
  background:linear-gradient(90deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,.10) 44%,rgba(255,255,255,0) 70%);
}
.iehojo-rich-hero__town {
  left:0;
  right:0;
  bottom:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:1;
}
.iehojo-rich-hero__inner {
  width:min(calc(100% - 40px),1180px);
  min-height:470px;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:30px;
  align-items:center;
  padding-top:28px;
  padding-bottom:30px;
}
.iehojo-rich-hero__copy {
  align-self:center;
  padding:0 0 4px;
}
.iehojo-rich-kicker {
  width:max-content;
  max-width:100%;
  margin:0 0 14px;
  padding:8px 17px;
  border:1px solid #cde7f1;
  border-radius:999px;
  background:#e8f5fa;
  color:#26749e;
  font-size:12px;
  line-height:1.2;
  font-weight:900;
  box-shadow:0 4px 12px rgba(38,116,158,.08);
}
.iehojo-rich-hero h1 {
  max-width:720px;
  margin:0;
  color:#17345d;
  font-size:clamp(42px,4.25vw,58px);
  line-height:1.16;
  letter-spacing:-.045em;
  font-weight:950;
  text-shadow:0 2px 0 rgba(255,255,255,.68);
}
.iehojo-rich-hero h1 span { color:#2e82b7; }
.iehojo-rich-hero__lead {
  max-width:620px;
  margin:17px 0 0;
  color:#2f4c67;
  font-size:15px;
  line-height:1.8;
  font-weight:650;
}
.iehojo-rich-hero__actions {
  display:flex;
  flex-wrap:nowrap;
  gap:14px;
  margin-top:22px;
}
.iehojo-rich-btn {
  min-height:62px;
  border-radius:15px;
}
.iehojo-rich-btn--search {
  min-width:220px;
  padding-inline:24px;
  background:#ff920d;
  border-color:#ff920d;
  box-shadow:0 12px 25px rgba(255,146,13,.22);
}
.iehojo-rich-btn--diagnosis {
  min-width:220px;
  padding-inline:20px;
  border:2px solid #48a66b;
  background:rgba(255,255,255,.96);
  color:#17345d;
  box-shadow:0 10px 23px rgba(23,52,93,.10);
}
.iehojo-rich-btn--diagnosis .iehojo-rich-btn__free {
  background:#45a66b;
  color:#fff;
}
.iehojo-rich-hero__note {
  max-width:620px;
  margin:10px 0 0;
  color:#688076;
  font-size:9px;
}
.iehojo-rich-hero__mascot-wrap {
  position:relative;
  align-self:end;
  min-height:390px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:0 0 5px;
}
.iehojo-rich-hero__mascot {
  width:min(360px,100%);
  filter:drop-shadow(0 18px 18px rgba(37,54,58,.13));
}
.iehojo-rich-hero__bubble {
  top:54px;
  left:auto;
  right:2px;
  min-width:170px;
  padding:13px 16px;
  border:1px solid #c9dfe2;
  border-radius:18px 18px 18px 5px;
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 25px rgba(23,52,93,.12);
}
.iehojo-rich-hero__bubble::after {
  left:auto;
  right:38px;
}
.iehojo-rich-hero__bubble strong,
.iehojo-rich-hero__bubble span {
  color:#17345d;
  font-size:12px;
  line-height:1.45;
  font-weight:900;
}
.iehojo-rich-hero__bubble span { margin-top:0; }
.iehojo-rich-today { display:none !important; }

/* Desktop diagnosis keeps the v0.1.12 reference layout. */

@media (max-width:900px) {
  .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) 300px;
    gap:18px;
  }
  .iehojo-rich-hero h1 { font-size:clamp(36px,5.6vw,47px); }
  .iehojo-rich-hero__mascot { width:285px; }
}

@media (max-width:767px) {
  /* Keep direct search fullscreen, but show the textual close label. */
  .iehojo-search-modal__close {
    width:auto !important;
    min-width:84px !important;
    min-height:40px;
    padding:0 11px !important;
    border:1px solid #d7e0e4;
  }
  .iehojo-search-modal__close b { font-size:20px; }
  .iehojo-search-modal__close span { display:inline !important; font-size:10.5px; }

  /* Mobile hero: same visual language, stacked without the removed status panel. */
  .iehojo-rich-hero { min-height:0; }
  .iehojo-rich-hero::after { background:linear-gradient(180deg,rgba(255,255,255,.20),rgba(255,255,255,.02)); }
  .iehojo-rich-hero__town { height:100%; bottom:0; opacity:1; }
  .iehojo-rich-hero__inner {
    width:calc(100% - 24px);
    min-height:0;
    grid-template-columns:1fr;
    gap:4px;
    padding-top:16px;
    padding-bottom:0;
  }
  .iehojo-rich-hero__copy { padding:0; }
  .iehojo-rich-kicker { margin-bottom:10px; padding:6px 12px; font-size:9px; }
  .iehojo-rich-hero h1 { max-width:100%; font-size:clamp(30px,9.4vw,38px); line-height:1.16; }
  .iehojo-rich-hero__lead { max-width:94%; margin-top:10px; font-size:10.5px; line-height:1.7; }
  .iehojo-rich-hero__actions { gap:7px; margin-top:13px; }
  .iehojo-rich-btn { min-height:49px; border-radius:11px; }
  .iehojo-rich-btn--search,
  .iehojo-rich-btn--diagnosis { min-width:0; width:50%; padding-inline:10px; }
  .iehojo-rich-btn--search { font-size:10.5px; }
  .iehojo-rich-btn--diagnosis { font-size:9px; }
  .iehojo-rich-btn--diagnosis small { font-size:6.5px; }
  .iehojo-rich-hero__note { margin-top:7px; font-size:6.5px; }
  .iehojo-rich-hero__mascot-wrap { min-height:205px; align-self:end; padding:0; }
  .iehojo-rich-hero__mascot { width:185px; transform:translateY(3px); }
  .iehojo-rich-hero__bubble { top:18px; right:2px; min-width:116px; padding:8px 9px; border-radius:12px 12px 12px 4px; }
  .iehojo-rich-hero__bubble strong,
  .iehojo-rich-hero__bubble span { font-size:7.5px; }

  /* Restore v0.1.11-style diagnosis on smartphones. */
  .iehojo-diagnosis { padding:0; background:#eef8f1; }
  .iehojo-diagnosis .iehojo-modal__backdrop { background:#eef8f1; }
  .iehojo-diagnosis .iehojo-modal__dialog {
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  .iehojo-diagnosis__frame {
    width:100vw;
    max-width:100vw;
    height:100dvh;
    grid-template-rows:80px 20px minmax(0,1fr);
    border:0;
    border-radius:0;
    background:#fff;
  }
  .iehojo-diagnosis__header {
    position:relative;
    min-height:80px;
    height:80px;
    padding:6px 10px 0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
    align-items:start;
    border-bottom:1px solid #dce5e0;
    background:#fff;
    color:#17345d;
  }
  .iehojo-diagnosis__title {
    min-height:36px;
    display:flex;
    align-items:center;
    gap:0;
  }
  .iehojo-diagnosis__title::before {
    content:"";
    width:105px;
    height:34px;
    display:block;
    background:url('../images/iehojo-logo-header.svg') left center / contain no-repeat;
  }
  .iehojo-diagnosis__title strong,
  .iehojo-diagnosis__status { display:none; }
  .iehojo-diagnosis__header-actions { min-height:36px; display:flex; align-items:center; }
  .iehojo-diagnosis__reset { display:none; }
  .iehojo-diagnosis__close {
    width:34px;
    min-width:34px;
    height:34px;
    min-height:34px;
    padding:0;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#17345d;
  }
  .iehojo-diagnosis__close span:last-child { display:none; }
  .iehojo-diagnosis__action-icon { font-size:24px; font-weight:500; }
  .iehojo-diagnosis__progress {
    position:static;
    min-height:20px;
    height:20px;
    padding:0 10px;
    display:block;
    border-bottom:0;
    background:#fff;
  }
  .iehojo-diagnosis__steps {
    position:absolute;
    z-index:2;
    left:10px;
    right:10px;
    top:44px;
    height:30px;
    display:flex;
    justify-content:flex-start;
    gap:13px;
    overflow:visible;
    pointer-events:none;
  }
  .iehojo-diagnosis__steps li { min-width:20px; width:auto; gap:4px; font-size:8px; }
  .iehojo-diagnosis__steps li span { display:inline; }
  .iehojo-diagnosis__steps b { width:20px; height:20px; font-size:8px; }
  .iehojo-diagnosis__progress-meter {
    position:absolute;
    left:10px;
    right:10px;
    top:78px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
  }
  .iehojo-diagnosis__progress-bar { height:3px; }
  .iehojo-diagnosis__progress small { font-size:8px; }
  .iehojo-diagnosis__content {
    display:block;
    width:100%;
    min-width:0;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:#eef8f1;
  }
  .iehojo-diagnosis__conversation {
    min-height:0;
    overflow:visible;
    border:0;
    background:#eef8f1;
  }
  .iehojo-diagnosis__conversation-head { display:none; }
  .iehojo-diagnosis__chat {
    width:100%;
    min-width:0;
    height:auto;
    min-height:0;
    overflow:visible;
    padding:14px 11px 0;
    background:#eef8f1;
  }
  .iehojo-diagnosis__visual-mascot { display:none; }
  .iehojo-diagnosis__mobile-intro {
    width:100%;
    margin:0 0 14px;
    padding:10px 12px;
    display:grid;
    grid-template-columns:78px minmax(0,1fr);
    gap:10px;
    align-items:center;
    border:1px solid #d5e5d9;
    border-radius:14px;
    background:#fff;
  }
  .iehojo-diagnosis__mobile-intro img { width:78px; height:88px; object-fit:contain; }
  .iehojo-diagnosis__mobile-intro div {
    position:relative;
    padding:10px 12px;
    border-radius:16px 16px 16px 5px;
    background:#f3f8f4;
    color:#17345d;
    font-size:10px;
    line-height:1.55;
    font-weight:900;
  }
  .iehojo-chat-row { gap:7px; margin-bottom:14px; }
  .iehojo-chat-avatar { width:42px; height:42px; flex-basis:42px; }
  .iehojo-chat-avatar img { width:42px; height:42px; }
  .iehojo-chat-message { max-width:calc(100% - 49px); padding:10px 12px; }
  .iehojo-chat-message p { font-size:12.5px; line-height:1.65; }
  .iehojo-chat-row--user .iehojo-chat-message { max-width:78%; }
  .iehojo-diagnosis__answer-pane {
    min-height:0;
    overflow:visible;
    padding:0 11px 26px;
    background:#eef8f1;
  }
  .iehojo-diagnosis__answer-pane-head { display:none; }
  .iehojo-diagnosis__answer {
    width:calc(100% - 49px);
    max-width:calc(100% - 49px);
    margin:-2px 0 16px 49px;
  }
  .iehojo-diagnosis__answer-inner { max-height:none; overflow:visible; padding:0; }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__choice { min-height:50px; padding:9px 8px; font-size:11px; }
  .iehojo-diagnosis__region-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__region-choice { min-height:54px; grid-template-columns:30px minmax(0,1fr) 12px; padding:7px 9px; }
  .iehojo-diagnosis__region-icon { width:28px; height:28px; font-size:15px; }
  .iehojo-diagnosis__region-choice strong { font-size:10px; }
  .iehojo-diagnosis__prefecture-bar { align-items:flex-start; flex-direction:column; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .iehojo-diagnosis__prefecture-choice { min-height:42px; }
  .iehojo-diagnosis__municipality-context { align-items:stretch; flex-direction:column; }
  .iehojo-diagnosis__municipality-undecided { width:100%; }
  .iehojo-diagnosis__municipality-groups { max-height:315px; padding-inline:9px; }
  .iehojo-diagnosis__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .iehojo-diagnosis__municipality-choice { min-height:48px; }
  .iehojo-diagnosis__summary-v2 { margin:0 0 16px 49px; max-width:calc(100% - 49px); padding:12px 13px; }
  .iehojo-diagnosis__summary-v2 > div { grid-template-columns:88px 1fr; gap:8px; }
  .iehojo-diagnosis__summary-v2 strong { font-size:9.5px; }
  .iehojo-diagnosis__summary-v2 span { font-size:10.5px; }
  .iehojo-diagnosis__finish { min-height:48px; font-size:12px; }
}

@media (max-width:390px) {
  .iehojo-rich-hero__inner { width:calc(100% - 18px); }
  .iehojo-rich-hero h1 { font-size:clamp(29px,9vw,34px); }
  .iehojo-rich-hero__mascot { width:170px; }
  .iehojo-diagnosis__steps { gap:9px; }
  .iehojo-diagnosis__steps li span { display:none; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* ======================================================================
 * v0.1.14 - restore the pre-reference mobile diagnosis UI exactly in spirit
 * Desktop keeps the v0.1.12+ reference layout. Mobile returns to the
 * conversation-first one-column layout; only the Ietasu artwork stays new.
 * ====================================================================== */
.iehojo-diagnosis__mobile-logo,
.iehojo-diagnosis__steps--mobile { display:none; }
.iehojo-diagnosis__steps--desktop { display:flex; }

@media (max-width:767px) {
  .iehojo-diagnosis { padding:0; background:#eef8f1; }
  .iehojo-diagnosis .iehojo-modal__backdrop { background:#eef8f1; }
  .iehojo-diagnosis .iehojo-modal__dialog {
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
    background:#eef8f1;
  }
  .iehojo-diagnosis__frame {
    position:relative;
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    grid-template-rows:80px 20px minmax(0,1fr);
    border:0;
    border-radius:0;
    overflow:hidden;
    background:#eef8f1;
  }
  .iehojo-diagnosis__header {
    position:relative;
    min-height:80px;
    height:80px;
    padding:6px 10px 0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
    align-items:start;
    border-bottom:1px solid #d8e7dc;
    background:#fff;
  }
  .iehojo-diagnosis__title {
    min-height:36px;
    display:flex;
    align-items:center;
    gap:0;
  }
  .iehojo-diagnosis__mobile-logo {
    display:block;
    width:105px;
    max-width:105px;
    max-height:34px;
    object-fit:contain;
    object-position:left center;
  }
  .iehojo-diagnosis__title strong,
  .iehojo-diagnosis__status { display:none; }
  .iehojo-diagnosis__header-actions {
    min-height:36px;
    display:flex;
    align-items:center;
    gap:0;
  }
  .iehojo-diagnosis__reset { display:none; }
  .iehojo-diagnosis__close {
    width:34px;
    min-width:34px;
    height:34px;
    min-height:34px;
    padding:0;
    border:0;
    border-radius:10px;
    background:transparent;
    box-shadow:none;
  }
  .iehojo-diagnosis__close span:last-child { display:none !important; }
  .iehojo-diagnosis__action-icon {
    display:block;
    font-size:24px;
    line-height:1;
    font-weight:500;
  }
  .iehojo-diagnosis__steps--desktop { display:none !important; }
  .iehojo-diagnosis__steps--mobile {
    position:absolute;
    left:10px;
    right:10px;
    top:44px;
    height:30px;
    margin:0;
    padding:0;
    display:flex;
    justify-content:flex-start;
    align-items:center;
    gap:13px;
    overflow:visible;
    pointer-events:none;
  }
  .iehojo-diagnosis__steps--mobile li {
    min-width:20px;
    width:auto;
    display:flex;
    align-items:center;
    gap:4px;
    font-size:8px;
  }
  .iehojo-diagnosis__steps--mobile b {
    width:20px;
    height:20px;
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:8px;
  }
  .iehojo-diagnosis__steps--mobile li:not(:last-child)::after {
    left:23px;
    width:7px;
  }
  .iehojo-diagnosis__progress {
    min-height:20px;
    height:20px;
    padding:0 10px;
    display:block;
    border:0;
    background:#fff;
  }
  .iehojo-diagnosis__progress-meter {
    width:100%;
    min-width:0;
    height:20px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 34px;
    align-items:center;
    gap:7px;
  }
  .iehojo-diagnosis__progress-bar { height:3px; }
  .iehojo-diagnosis__progress small { font-size:8px; text-align:right; }
  .iehojo-diagnosis__content {
    width:100%;
    min-width:0;
    min-height:0;
    display:block;
    overflow:hidden;
    background:#eef8f1;
  }
  .iehojo-diagnosis__conversation {
    width:100%;
    min-width:0;
    height:100%;
    min-height:0;
    display:block;
    padding:0;
    border:0;
    background:#eef8f1;
    overflow:hidden;
  }
  .iehojo-diagnosis__conversation-head,
  .iehojo-diagnosis__visual-mascot,
  .iehojo-diagnosis__answer-pane { display:none !important; }
  .iehojo-diagnosis__chat {
    width:100%;
    min-width:0;
    height:100%;
    min-height:0;
    padding:14px 11px 26px;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:#eef8f1;
  }
  .iehojo-diagnosis__mobile-intro {
    width:100%;
    margin:0 0 14px;
    padding:10px 12px;
    display:grid;
    grid-template-columns:78px minmax(0,1fr);
    gap:10px;
    align-items:center;
    border:1px solid #d5e5d9;
    border-radius:14px;
    background:#fff;
  }
  .iehojo-diagnosis__mobile-intro img {
    width:78px;
    height:88px;
    object-fit:contain;
  }
  .iehojo-diagnosis__mobile-intro div {
    position:relative;
    padding:10px 12px;
    border-radius:16px 16px 16px 5px;
    background:#f3f8f4;
    color:var(--iehojo-navy);
    font-size:10px;
    line-height:1.55;
    font-weight:900;
  }
  .iehojo-chat-row { gap:7px; margin-bottom:14px; }
  .iehojo-chat-avatar { width:42px; height:42px; flex-basis:42px; }
  .iehojo-chat-avatar img { width:42px; height:42px; }
  .iehojo-chat-message { max-width:calc(100% - 49px); padding:10px 12px; }
  .iehojo-chat-message p { font-size:12.5px; line-height:1.65; }
  .iehojo-chat-row--user .iehojo-chat-message { max-width:78%; }
  .iehojo-diagnosis__answer {
    width:calc(100% - 49px);
    max-width:calc(100% - 49px);
    margin:-2px 0 16px 49px;
    padding:0;
    border:0;
    background:transparent;
  }
  .iehojo-diagnosis__answer-inner {
    max-height:none;
    overflow:visible;
    padding:0;
  }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__choice { min-height:50px; padding:9px 8px; font-size:11px; }
  .iehojo-diagnosis__region-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__region-choice { min-height:54px; grid-template-columns:30px minmax(0,1fr) 12px; padding:7px 9px; }
  .iehojo-diagnosis__region-icon { width:28px; height:28px; font-size:15px; }
  .iehojo-diagnosis__region-choice strong { font-size:10px; }
  .iehojo-diagnosis__prefecture-bar { align-items:flex-start; flex-direction:column; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .iehojo-diagnosis__prefecture-choice { min-height:42px; }
  .iehojo-diagnosis__municipality-context { align-items:stretch; flex-direction:column; }
  .iehojo-diagnosis__municipality-undecided { width:100%; }
  .iehojo-diagnosis__municipality-groups { max-height:315px; padding-inline:9px; }
  .iehojo-diagnosis__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .iehojo-diagnosis__municipality-choice { min-height:48px; }
  .iehojo-diagnosis__summary-v2 { margin:0 0 16px 49px; max-width:calc(100% - 49px); padding:12px 13px; }
  .iehojo-diagnosis__summary-v2 > div { grid-template-columns:88px 1fr; gap:8px; }
  .iehojo-diagnosis__summary-v2 strong { font-size:9.5px; }
  .iehojo-diagnosis__summary-v2 span { font-size:10.5px; }
  .iehojo-diagnosis__finish { min-height:48px; font-size:12px; }
}

@media (max-width:390px) {
  .iehojo-diagnosis__steps--mobile { gap:9px; }
  .iehojo-diagnosis__steps--mobile li span { display:none; }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iehojo-diagnosis__municipality-head { align-items:flex-start; flex-direction:column; gap:3px; }
  .iehojo-diagnosis__kana-nav { padding-inline:8px; }
  .iehojo-diagnosis__kana-nav button, .iehojo-diagnosis__kana-nav a { min-width:40px; height:30px; }
}

/* ======================================================================
 * v0.1.15 - approved hero scenery background
 * Keep diagnosis modal behavior untouched. This layer only aligns the
 * homepage hero background with the approved blue-sky / town reference.
 * ====================================================================== */
.iehojo-rich-hero {
  background:#dff4f7;
}
.iehojo-rich-hero__town {
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center bottom;
  opacity:1;
}
.iehojo-rich-hero::after {
  background:linear-gradient(90deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.10) 43%,rgba(255,255,255,0) 72%);
}
@media (min-width:768px) {
  .iehojo-rich-hero__town {
    object-fit:cover;
    object-position:center 48%;
  }
}
@media (max-width:767px) {
  .iehojo-rich-hero__town {
    object-position:center bottom;
  }
}


/* ======================================================================
 * v0.1.16 - restore v0.1.11 diagnosis modal exactly
 * Old conversational layout restored for desktop and mobile.
 * Only the Ietasu artwork remains the newly adopted magnifying-glass version.
 * ====================================================================== */
/* ========================================================================
   Iehojo v0.1.5 — Rihojo-style conversational diagnosis
   ======================================================================== */
html.iehojo-modal-open,
body.iehojo-modal-open { overflow: hidden !important; }

.iehojo-diagnosis.iehojo-modal {
  z-index: 1000000;
  display: none;
  opacity: 1;
  background: rgba(237,247,241,.98);
}
.iehojo-diagnosis.iehojo-modal.is-open { display: block; }
.iehojo-diagnosis .iehojo-modal__backdrop { position:absolute; inset:0; background:rgba(16,41,75,.22); }
.iehojo-diagnosis .iehojo-modal__dialog {
  position: relative;
  z-index: 1;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: rgba(237,247,241,.98);
  box-shadow: none;
  transform: none;
}
.iehojo-diagnosis.iehojo-modal.is-open .iehojo-modal__dialog { transform:none; }
.iehojo-diagnosis__frame {
  width: min(100%,1180px);
  height: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-rows: 68px 22px minmax(0,1fr);
  overflow: hidden;
  border-left: 1px solid #d7e5dc;
  border-right: 1px solid #d7e5dc;
  background: #fff;
}
.iehojo-diagnosis__header {
  min-height: 68px;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 190px minmax(0,1fr) auto;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid #dce8e0;
  background: #fff;
}
.iehojo-diagnosis__title { display:flex; align-items:center; gap:10px; min-width:0; }
.iehojo-diagnosis__title img {
  display:block;
  width: 120px;
  max-width:120px;
  height:auto;
  max-height:44px;
  object-fit:contain;
}
.iehojo-diagnosis__title strong { color:var(--iehojo-navy); font-size:15px; white-space:nowrap; }
.iehojo-diagnosis__steps {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  min-width:0;
}
.iehojo-diagnosis__steps li {
  position:relative;
  min-width:54px;
  display:flex;
  align-items:center;
  gap:6px;
  color:#8b9b90;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.iehojo-diagnosis__steps li:not(:last-child)::after {
  content:"";
  position:absolute;
  left:calc(100% + 5px);
  top:50%;
  width:10px;
  height:1px;
  background:#d4e1d8;
}
.iehojo-diagnosis__steps b {
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e8efea;
  color:#7c8d82;
  font-size:10px;
}
.iehojo-diagnosis__steps li.is-active b,
.iehojo-diagnosis__steps li.is-done b { background:var(--iehojo-sage-deep); color:#fff; }
.iehojo-diagnosis__steps li.is-active span { color:var(--iehojo-sage-deep); }
.iehojo-diagnosis__steps li.is-done span { color:#667f6c; }
.iehojo-diagnosis__header-actions { display:flex; align-items:center; gap:8px; }
.iehojo-diagnosis__reset,
.iehojo-diagnosis__close {
  min-height:34px;
  padding:6px 10px;
  border:1px solid #cbdad0;
  border-radius:17px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  background:#fff;
  color:var(--iehojo-navy);
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.iehojo-diagnosis__close b { font-size:19px; line-height:1; font-weight:500; }
.iehojo-diagnosis__progress {
  min-height:22px;
  padding:0 16px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  border-bottom:1px solid #e4ece7;
  background:#f7faf8;
}
.iehojo-diagnosis__progress-bar { height:4px; overflow:hidden; border-radius:999px; background:#dfe8e2; }
.iehojo-diagnosis__progress-bar span { display:block; width:12.5%; height:100%; border-radius:inherit; background:var(--iehojo-sage-deep); transition:width .25s ease; }
.iehojo-diagnosis__progress small { min-width:34px; color:#7a8a80; font-size:9px; font-weight:800; text-align:right; }
.iehojo-diagnosis__content { min-height:0; display:grid; grid-template-columns:255px minmax(0,1fr); overflow:hidden; }
.iehojo-diagnosis__visual {
  position:relative;
  min-height:0;
  overflow:hidden;
  padding:30px 18px 18px;
  border-right:1px solid #d8e5dc;
  background:linear-gradient(180deg,#edf8f0 0%,#e3f1e7 100%);
}
.iehojo-diagnosis__visual-bubble {
  position:relative;
  width:190px;
  margin:0 auto 4px;
  padding:12px 13px;
  border-radius:26px;
  background:#fff;
  color:var(--iehojo-navy);
  text-align:center;
  font-size:11px;
  line-height:1.5;
  font-weight:900;
  box-shadow:0 6px 18px rgba(23,52,93,.07);
}
.iehojo-diagnosis__visual-bubble::after {
  content:"";
  position:absolute;
  left:75px;
  bottom:-9px;
  border:9px solid transparent;
  border-top-color:#fff;
}
.iehojo-diagnosis__visual-mascot { width:205px; height:245px; display:block; margin:0 auto; object-fit:contain; }
.iehojo-diagnosis__visual-card {
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  padding:12px 13px;
  border:1px solid #d7e4db;
  border-radius:12px;
  background:#fff;
  box-shadow:0 6px 18px rgba(23,52,93,.06);
}
.iehojo-diagnosis__visual-card h3 { margin:0 0 8px; color:var(--iehojo-navy); font-size:12px; }
.iehojo-diagnosis__visual-card > div { display:grid; grid-template-columns:70px 1fr; gap:7px; padding:5px 0; border-top:1px solid #eef2ef; font-size:9px; line-height:1.45; }
.iehojo-diagnosis__visual-card > div:first-of-type { border-top:0; }
.iehojo-diagnosis__visual-card span { color:#78877d; }
.iehojo-diagnosis__visual-card strong { color:#405448; font-size:9px; }
.iehojo-diagnosis__chat {
  position:relative;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:28px 28px 36px;
  background:
    linear-gradient(rgba(23,52,93,.025) 1px, transparent 1px),
    linear-gradient(90deg,rgba(23,52,93,.025) 1px, transparent 1px),
    #fbfcfb;
  background-size:24px 24px;
  scroll-behavior:smooth;
}
.iehojo-diagnosis__mobile-intro { display:none; }
.iehojo-chat-row { display:flex; gap:10px; align-items:flex-start; margin-bottom:16px; }
.iehojo-chat-row--bot { justify-content:flex-start; }
.iehojo-chat-row--user { justify-content:flex-end; }
.iehojo-chat-avatar { width:54px; height:54px; flex:0 0 54px; overflow:visible; background:transparent; }
.iehojo-chat-avatar img { width:54px; height:54px; object-fit:contain; object-position:center; }
.iehojo-chat-message {
  width:auto;
  max-width:min(590px,calc(100% - 72px));
  padding:12px 15px;
  border:1px solid #d9e5dd;
  border-radius:7px 15px 15px 15px;
  background:#fff;
  box-shadow:0 3px 11px rgba(23,52,93,.04);
}
.iehojo-chat-message p { margin:0; color:var(--iehojo-text); font-size:14px; line-height:1.72; }
.iehojo-chat-message p + p { margin-top:7px; }
.iehojo-chat-row--user .iehojo-chat-message {
  max-width:min(460px,72%);
  border-color:#cddfd2;
  border-radius:15px 7px 15px 15px;
  background:#eef7f0;
}
.iehojo-chat-row--user .iehojo-chat-message p { color:#284432; font-weight:700; }
.iehojo-chat-row--notice .iehojo-chat-message { border-color:#ecd9a8; background:#fff8e7; }
.iehojo-diagnosis__answer { width:calc(100% - 64px); margin:-5px 0 20px 64px; }
.iehojo-diagnosis__answer-inner { max-height:none; overflow:visible; padding:0; }
.iehojo-diagnosis__choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.iehojo-diagnosis__choice {
  min-height:56px;
  padding:10px 12px;
  border:1px solid #d2e0d6;
  border-radius:9px;
  background:#fff;
  color:var(--iehojo-navy);
  box-shadow:0 3px 10px rgba(23,52,93,.035);
  font-size:12px;
  font-weight:800;
  line-height:1.45;
  text-align:center;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.iehojo-diagnosis__choice:hover { border-color:var(--iehojo-sage); background:#f7fbf8; transform:translateY(-1px); }
.iehojo-diagnosis__choice:focus-visible { outline:3px solid rgba(122,167,130,.2); outline-offset:2px; }
.iehojo-diagnosis__region-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.iehojo-diagnosis__region-choice {
  min-height:60px;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 14px;
  align-items:center;
  gap:8px;
  padding:9px 11px;
  border:1px solid #d5e2d9;
  border-radius:9px;
  background:#fff;
  color:var(--iehojo-navy);
  box-shadow:0 3px 10px rgba(23,52,93,.035);
  cursor:pointer;
}
.iehojo-diagnosis__region-icon { width:32px; height:32px; display:grid; place-items:center; border:1px solid #c5d7ca; border-radius:50%; background:#f5faf6; color:var(--iehojo-sage-deep); font-size:17px; }
.iehojo-diagnosis__region-choice strong { font-size:12px; text-align:left; }
.iehojo-diagnosis__region-arrow { color:var(--iehojo-sage-deep); font-size:20px; }
.iehojo-diagnosis__prefecture-bar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.iehojo-diagnosis__prefecture-bar button,
.iehojo-diagnosis__inline-back {
  min-height:34px;
  padding:6px 10px;
  border:1px solid #d0ded4;
  border-radius:8px;
  background:#fff;
  color:var(--iehojo-sage-deep);
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.iehojo-diagnosis__prefecture-bar strong { color:var(--iehojo-navy); font-size:12px; }
.iehojo-diagnosis__prefecture-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.iehojo-diagnosis__prefecture-choice { min-height:45px; }
.iehojo-diagnosis__municipality { display:grid; gap:10px; }
.iehojo-diagnosis__municipality-context {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid #d8e5dc;
  border-radius:10px;
  background:#f8fbf9;
}
.iehojo-diagnosis__municipality-context > div { min-width:0; display:grid; gap:2px; }
.iehojo-diagnosis__municipality-context small { color:#7c8a81; font-size:9px; font-weight:800; }
.iehojo-diagnosis__municipality-context strong { color:var(--iehojo-navy); font-size:13px; font-weight:900; }
.iehojo-diagnosis__municipality-undecided,
.iehojo-diagnosis__municipality-retry {
  min-height:38px;
  padding:7px 11px;
  border:1px solid #bfcfc4;
  border-radius:8px;
  background:#fff;
  color:var(--iehojo-sage-deep);
  font-size:10px;
  line-height:1.35;
  font-weight:900;
  cursor:pointer;
}
.iehojo-diagnosis__municipality-undecided:hover,
.iehojo-diagnosis__municipality-retry:hover { border-color:var(--iehojo-sage-deep); background:#f0f7f2; }
.iehojo-diagnosis__municipality-mount { min-height:72px; }
.iehojo-diagnosis__municipality-status,
.iehojo-diagnosis__municipality-empty {
  margin:0;
  padding:15px;
  border:1px solid #d8e5dc;
  border-radius:10px;
  background:#f8fbf9;
  color:#66766c;
  font-size:11px;
  line-height:1.65;
}
.iehojo-diagnosis__municipality-status.is-loading::before {
  content:'';
  display:inline-block;
  width:12px;
  height:12px;
  margin-right:8px;
  vertical-align:-1px;
  border:2px solid #c9d9ce;
  border-top-color:var(--iehojo-sage-deep);
  border-radius:50%;
  animation:iehojoMunicipalitySpin .8s linear infinite;
}
@keyframes iehojoMunicipalitySpin { to { transform:rotate(360deg); } }
.iehojo-diagnosis__municipality-empty { display:grid; gap:4px; }
.iehojo-diagnosis__municipality-empty strong { color:var(--iehojo-navy); font-size:12px; }
.iehojo-diagnosis__municipality-empty span { display:block; }
.iehojo-diagnosis__municipality-empty.is-error { border-color:#e6ceca; background:#fff8f7; }
.iehojo-diagnosis__municipality-retry { justify-self:start; margin-top:7px; }
.iehojo-diagnosis__municipality-picker {
  overflow:hidden;
  border:1px solid #d3e0d7;
  border-radius:12px;
  background:#fff;
}
.iehojo-diagnosis__municipality-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 13px;
  border-bottom:1px solid #e7eee9;
  background:#f8fbf9;
}
.iehojo-diagnosis__municipality-head strong { color:var(--iehojo-navy); font-size:12px; font-weight:900; }
.iehojo-diagnosis__municipality-head small { flex:0 0 auto; color:#75847a; font-size:9px; font-weight:800; }
.iehojo-diagnosis__kana-nav {
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  gap:5px;
  padding:9px 11px;
  overflow-x:auto;
  border-bottom:1px solid #e8efea;
  background:rgba(255,255,255,.97);
  scrollbar-width:thin;
}
.iehojo-diagnosis__kana-nav button,
.iehojo-diagnosis__kana-nav a {
  min-width:42px;
  height:32px;
  padding:0 8px;
  border:1px solid #cbd9cf;
  border-radius:999px;
  background:#fff;
  color:var(--iehojo-sage-deep);
  font-size:11px;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.iehojo-diagnosis__kana-nav button:hover,
.iehojo-diagnosis__kana-nav button:focus-visible,
.iehojo-diagnosis__kana-nav a:hover,
.iehojo-diagnosis__kana-nav a:focus-visible { border-color:var(--iehojo-sage-deep); background:#eff6f1; }
.iehojo-diagnosis__municipality-groups {
  max-height:292px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:3px 12px 12px;
  scroll-behavior:smooth;
}
.iehojo-diagnosis__municipality-group { padding:12px 0 5px; scroll-margin-top:50px; }
.iehojo-diagnosis__municipality-group + .iehojo-diagnosis__municipality-group { border-top:1px solid #edf2ee; }
.iehojo-diagnosis__municipality-group h4 { margin:0 0 8px; color:var(--iehojo-sage-deep); font-size:11px; font-weight:900; letter-spacing:.04em; }
.iehojo-diagnosis__municipality-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.iehojo-diagnosis__municipality-choice {
  min-width:0;
  min-height:46px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
  padding:7px 9px;
  border:1px solid #d5e0d8;
  border-radius:8px;
  background:#fff;
  color:var(--iehojo-text);
  text-align:left;
  cursor:pointer;
  transition:border-color .14s ease,background .14s ease,transform .14s ease;
}
.iehojo-diagnosis__municipality-choice span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:900; }
.iehojo-diagnosis__municipality-choice small { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7e8c83; font-size:8px; }
.iehojo-diagnosis__municipality-choice:hover { border-color:var(--iehojo-sage-deep); background:#f2f8f4; transform:translateY(-1px); }
.iehojo-diagnosis__municipality-choice:focus-visible { outline:3px solid rgba(122,167,130,.22); outline-offset:1px; }
.iehojo-diagnosis__typing { min-width:66px; min-height:42px; display:flex; align-items:center; justify-content:center; }
.iehojo-diagnosis__typing-dots { display:inline-flex; align-items:center; gap:5px; }
.iehojo-diagnosis__typing-dots i { width:7px; height:7px; border-radius:50%; background:#8ba493; animation:iehojoTyping 1s infinite ease-in-out; }
.iehojo-diagnosis__typing-dots i:nth-child(2) { animation-delay:.14s; }
.iehojo-diagnosis__typing-dots i:nth-child(3) { animation-delay:.28s; }
@keyframes iehojoTyping { 0%,60%,100% { transform:translateY(0); opacity:.45; } 30% { transform:translateY(-4px); opacity:1; } }
.iehojo-chat-row--opening,
.iehojo-chat-row--resolved { animation:iehojoConversationIn .2s ease both; }
@keyframes iehojoConversationIn { from { opacity:.35; transform:translateY(4px); } to { opacity:1; transform:none; } }
.iehojo-diagnosis__summary-v2 { max-width:790px; margin:2px 0 18px 64px; padding:16px 18px; border:1px solid #d4e1d7; border-radius:10px; background:#fff; box-shadow:0 3px 10px rgba(23,52,93,.035); }
.iehojo-diagnosis__summary-v2 > div { display:grid; grid-template-columns:120px 1fr; gap:14px; padding:9px 0; border-bottom:1px solid #edf1ee; }
.iehojo-diagnosis__summary-v2 > div:last-child { border-bottom:0; }
.iehojo-diagnosis__summary-v2 strong { color:#78877d; font-size:11px; }
.iehojo-diagnosis__summary-v2 span { color:var(--iehojo-navy); font-size:12px; font-weight:800; }
.iehojo-diagnosis__finish { width:100%; min-height:52px; background:var(--iehojo-sage-deep); border-color:var(--iehojo-sage-deep); font-size:14px; }
.iehojo-diagnosis__finish:disabled { opacity:.55; cursor:default; }
.iehojo-diagnosis__secondary { width:100%; background:#fff; color:var(--iehojo-navy); }
.iehojo-diagnosis__tail { width:100%; height:24px; pointer-events:none; }

@media (max-width:767px) {
  .iehojo-diagnosis .iehojo-modal__dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border-radius:0; }
  .iehojo-diagnosis__frame { width:100vw; max-width:100vw; grid-template-rows:80px 20px minmax(0,1fr); border:0; }
  .iehojo-diagnosis__header {
    position:relative;
    min-height:80px;
    height:80px;
    padding:6px 10px 0;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
    align-items:start;
  }
  .iehojo-diagnosis__title { min-height:36px; }
  .iehojo-diagnosis__title img { width:105px; max-width:105px; max-height:34px; }
  .iehojo-diagnosis__title strong { display:none; }
  .iehojo-diagnosis__header-actions { min-height:36px; }
  .iehojo-diagnosis__reset { display:none; }
  .iehojo-diagnosis__close { width:34px; height:34px; min-height:34px; padding:0; border:0; }
  .iehojo-diagnosis__close span { display:none; }
  .iehojo-diagnosis__close b { font-size:24px; }
  .iehojo-diagnosis__steps {
    position:absolute;
    left:10px;
    right:10px;
    top:44px;
    height:30px;
    justify-content:flex-start;
    gap:13px;
    overflow:visible;
    pointer-events:none;
  }
  .iehojo-diagnosis__steps li { min-width:20px; width:auto; gap:4px; font-size:8px; }
  .iehojo-diagnosis__steps b { width:20px; height:20px; font-size:8px; }
  .iehojo-diagnosis__steps li:not(:last-child)::after { left:23px; width:7px; }
  .iehojo-diagnosis__progress { padding:0 10px; }
  .iehojo-diagnosis__content { grid-template-columns:minmax(0,1fr); width:100%; min-width:0; }
  .iehojo-diagnosis__visual { display:none; }
  .iehojo-diagnosis__chat { width:100%; min-width:0; padding:14px 11px 26px; background:#eef8f1; }
  .iehojo-diagnosis__mobile-intro {
    width:100%;
    margin:0 0 14px;
    padding:10px 12px;
    display:grid;
    grid-template-columns:78px minmax(0,1fr);
    gap:10px;
    align-items:center;
    border:1px solid #d5e5d9;
    border-radius:14px;
    background:#fff;
  }
  .iehojo-diagnosis__mobile-intro img { width:78px; height:88px; object-fit:contain; }
  .iehojo-diagnosis__mobile-intro div { position:relative; padding:10px 12px; border-radius:16px 16px 16px 5px; background:#f3f8f4; color:var(--iehojo-navy); font-size:10px; line-height:1.55; font-weight:900; }
  .iehojo-chat-row { gap:7px; margin-bottom:14px; }
  .iehojo-chat-avatar { width:42px; height:42px; flex-basis:42px; }
  .iehojo-chat-avatar img { width:42px; height:42px; }
  .iehojo-chat-message { max-width:calc(100% - 49px); padding:10px 12px; }
  .iehojo-chat-message p { font-size:12.5px; line-height:1.65; }
  .iehojo-chat-row--user .iehojo-chat-message { max-width:78%; }
  .iehojo-diagnosis__answer { width:calc(100% - 49px); max-width:calc(100% - 49px); margin:-2px 0 16px 49px; }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__choice { min-height:50px; padding:9px 8px; font-size:11px; }
  .iehojo-diagnosis__region-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .iehojo-diagnosis__region-choice { min-height:54px; grid-template-columns:30px minmax(0,1fr) 12px; padding:7px 9px; }
  .iehojo-diagnosis__region-icon { width:28px; height:28px; font-size:15px; }
  .iehojo-diagnosis__region-choice strong { font-size:10px; }
  .iehojo-diagnosis__prefecture-bar { align-items:flex-start; flex-direction:column; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .iehojo-diagnosis__prefecture-choice { min-height:42px; }
  .iehojo-diagnosis__municipality-context { align-items:stretch; flex-direction:column; }
  .iehojo-diagnosis__municipality-undecided { width:100%; }
  .iehojo-diagnosis__municipality-groups { max-height:315px; padding-inline:9px; }
  .iehojo-diagnosis__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .iehojo-diagnosis__municipality-choice { min-height:48px; }
  .iehojo-diagnosis__summary-v2 { margin:0 0 16px 49px; max-width:calc(100% - 49px); padding:12px 13px; }
  .iehojo-diagnosis__summary-v2 > div { grid-template-columns:88px 1fr; gap:8px; }
  .iehojo-diagnosis__summary-v2 strong { font-size:9.5px; }
  .iehojo-diagnosis__summary-v2 span { font-size:10.5px; }
  .iehojo-diagnosis__finish { min-height:48px; font-size:12px; }
}

@media (max-width:390px) {
  .iehojo-diagnosis__steps { gap:9px; }
  .iehojo-diagnosis__steps li span { display:none; }
  .iehojo-diagnosis__choice-grid { grid-template-columns:1fr; }
  .iehojo-diagnosis__prefecture-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .iehojo-diagnosis__municipality-head { align-items:flex-start; flex-direction:column; gap:3px; }
  .iehojo-diagnosis__kana-nav { padding-inline:8px; }
  .iehojo-diagnosis__kana-nav button, .iehojo-diagnosis__kana-nav a { min-width:40px; height:30px; }
}

@media (prefers-reduced-motion: reduce) {
  .iehojo-diagnosis__typing-dots i,
  .iehojo-diagnosis__municipality-status.is-loading::before { animation:none; opacity:.8; }
  .iehojo-diagnosis__municipality-groups { scroll-behavior:auto; }
}



/* ======================================================================
 * v0.1.16 - approved hero background alignment
 * Match the reference: visible blue sky/clouds, distant city, small homes,
 * and green rolling foreground. Keep the illustration readable.
 * ====================================================================== */
.iehojo-rich-hero { background:#d8f2f8; }
.iehojo-rich-hero__town {
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:1;
}
.iehojo-rich-hero::after {
  background:linear-gradient(90deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,.14) 38%,rgba(255,255,255,.02) 68%,rgba(255,255,255,0) 100%);
}
@media (min-width:768px) {
  .iehojo-rich-hero__town { object-position:center 50%; }
}
@media (max-width:767px) {
  .iehojo-rich-hero::after { background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.03)); }
  .iehojo-rich-hero__town { object-position:center bottom; }
}

/* ======================================================================
 * v0.1.17 - diagnosis modal layout hotfix
 * - Mobile: remove duplicated logo, use the full viewport, and let the
 *   municipality list flow inside the main chat scroller instead of being
 *   clipped by a nested fixed-height scroller.
 * - Desktop: remove the inherited outer padding/top strip and make the left
 *   Ietasu / checklist column a non-overlapping vertical layout.
 * ====================================================================== */
.iehojo-diagnosis.iehojo-modal {
  inset:0 !important;
  padding:0 !important;
  margin:0 !important;
  place-items:stretch !important;
  background:#edf7f1 !important;
}
.iehojo-diagnosis .iehojo-modal__backdrop {
  inset:0 !important;
  background:#edf7f1 !important;
  backdrop-filter:none !important;
}
.iehojo-diagnosis .iehojo-modal__dialog {
  top:0 !important;
  left:0 !important;
  width:100vw !important;
  max-width:none !important;
  height:100dvh !important;
  max-height:100dvh !important;
  margin:0 !important;
  border-radius:0 !important;
}
.iehojo-diagnosis__frame {
  height:100dvh !important;
  max-height:100dvh !important;
}

@media (min-width:768px) {
  .iehojo-diagnosis__visual {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    min-height:0 !important;
    padding:28px 18px 18px !important;
    overflow:hidden !important;
  }
  .iehojo-diagnosis__visual-bubble {
    flex:0 0 auto;
  }
  .iehojo-diagnosis__visual-mascot {
    position:static !important;
    inset:auto !important;
    z-index:auto !important;
    flex:0 0 auto;
    width:178px !important;
    height:218px !important;
    max-height:218px !important;
    margin:18px auto 12px !important;
    object-fit:contain !important;
    filter:none !important;
    pointer-events:none;
  }
  .iehojo-diagnosis__visual-card {
    position:static !important;
    inset:auto !important;
    flex:0 0 auto;
    width:100% !important;
    margin:auto 0 0 !important;
  }
}

@media (max-width:767px) {
  .iehojo-diagnosis.iehojo-modal,
  .iehojo-diagnosis .iehojo-modal__dialog,
  .iehojo-diagnosis__frame {
    width:100vw !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
  }

  /* v0.1.13 left a generated logo in ::before. Keep only the real image. */
  .iehojo-diagnosis__title::before {
    content:none !important;
    display:none !important;
    width:0 !important;
    height:0 !important;
    background:none !important;
  }
  .iehojo-diagnosis__title > img {
    display:block !important;
    width:105px !important;
    max-width:105px !important;
    height:auto !important;
    max-height:34px !important;
    object-fit:contain !important;
  }

  .iehojo-diagnosis__content {
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
  }
  .iehojo-diagnosis__chat {
    box-sizing:border-box !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    padding:14px 11px max(32px, env(safe-area-inset-bottom)) !important;
  }

  /* One scroll area only on mobile; the city list must not stop midway. */
  .iehojo-diagnosis__municipality-picker {
    overflow:visible !important;
  }
  .iehojo-diagnosis__municipality-groups {
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    padding-bottom:8px !important;
  }
  .iehojo-diagnosis__kana-nav {
    position:static !important;
  }
  .iehojo-diagnosis__municipality-mount,
  .iehojo-diagnosis__answer,
  .iehojo-diagnosis__answer-inner {
    max-height:none !important;
    overflow:visible !important;
  }
}

/* ======================================================================
 * v0.1.18 - mobile diagnosis full-height restoration
 * v0.1.12 introduced a two-row mobile content grid for the temporary
 * split answer-pane UI. The original v0.1.11 conversational DOM only has
 * the chat in this area, so the unused second row was consuming roughly
 * half of the viewport. Restore the original single-row/full-height model.
 * ====================================================================== */
@media (max-width:767px) {
  .iehojo-diagnosis .iehojo-modal__dialog,
  .iehojo-diagnosis__frame {
    height:100vh !important;
    height:100dvh !important;
    min-height:100vh !important;
    min-height:100dvh !important;
    max-height:100vh !important;
    max-height:100dvh !important;
  }

  .iehojo-diagnosis__content {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:minmax(0,1fr) !important;
    grid-auto-rows:0 !important;
    align-items:stretch !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
  }

  .iehojo-diagnosis__visual {
    display:none !important;
  }

  .iehojo-diagnosis__chat {
    grid-column:1 !important;
    grid-row:1 !important;
    align-self:stretch !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}


/* ======================================================================
 * v0.1.19 - approved Hero Background A
 * Use the exact A panorama as a separate visual asset.
 * Desktop shows the full panorama at the bottom; mobile uses a dedicated
 * crop derived from the same A artwork so the scene remains legible.
 * ====================================================================== */
.iehojo-rich-hero {
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#bfeaf8 0%,#dff5fb 54%,#eef8e9 100%);
}
.iehojo-rich-hero__town-picture {
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  overflow:hidden;
  pointer-events:none;
}
.iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  top:auto;
  width:100%;
  height:auto;
  max-width:none;
  object-fit:contain;
  object-position:center bottom;
  opacity:1;
}
.iehojo-rich-hero::after {
  z-index:1;
  background:
    linear-gradient(90deg,rgba(255,255,255,.46) 0%,rgba(255,255,255,.23) 38%,rgba(255,255,255,.05) 70%,rgba(255,255,255,0) 100%);
}
.iehojo-rich-hero__inner {
  position:relative;
  z-index:2;
}

@media (min-width:768px) {
  .iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
    width:100%;
    height:auto;
    bottom:0;
    object-position:center bottom;
  }
}

@media (max-width:767px) {
  .iehojo-rich-hero {
    background:linear-gradient(180deg,#bfeaf8 0%,#dff5fb 56%,#eef8e9 100%);
  }
  .iehojo-rich-hero::after {
    background:
      linear-gradient(180deg,rgba(255,255,255,.30) 0%,rgba(255,255,255,.14) 50%,rgba(255,255,255,.02) 100%);
  }
  .iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
    width:100%;
    height:auto;
    bottom:0;
    object-position:center bottom;
  }
}

/* ======================================================================
 * v0.1.20 - Hero background fit + transparent header on the front page
 * - Keep the approved A artwork unchanged.
 * - Fill the complete hero viewport with the artwork on PC and mobile.
 * - Let the front-page header float transparently over the hero artwork.
 * ====================================================================== */
.home .iehojo-header {
  position:absolute;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  background:transparent !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.admin-bar.home .iehojo-header { top:32px; }

.home .iehojo-rich-hero {
  padding-top:72px;
  background:#d8f2f8;
}
.home .iehojo-rich-hero__town-picture {
  inset:0;
}
.home .iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  opacity:1;
}
.home .iehojo-rich-hero::after {
  background:linear-gradient(90deg,rgba(255,255,255,.30) 0%,rgba(255,255,255,.13) 40%,rgba(255,255,255,.025) 72%,rgba(255,255,255,0) 100%);
}

/* The logo/navigation remain readable on the light sky, while CTA buttons
 * keep their existing solid brand colors. */
.home .iehojo-header .iehojo-nav__list a { text-shadow:0 1px 0 rgba(255,255,255,.65); }

@media (max-width:782px) {
  .admin-bar.home .iehojo-header { top:46px; }
}

@media (max-width:767px) {
  .home .iehojo-rich-hero {
    padding-top:62px;
  }
  .home .iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }
  .home .iehojo-rich-hero::after {
    background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,.08) 44%,rgba(255,255,255,0) 100%);
  }
  .home .iehojo-header__mobile-toggle {
    background:rgba(255,255,255,.72);
    border-color:rgba(23,52,93,.16);
    box-shadow:0 5px 16px rgba(23,52,93,.08);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }
}

/* ======================================================================
 * v0.1.21 - mobile diagnosis header actions
 * Keep both actions visible on mobile: "↻ 最初から" and "× 閉じる".
 * This intentionally overrides older mobile rules that hid the reset
 * button and the close-button label.
 * ====================================================================== */
@media (max-width:767px) {
  .iehojo-diagnosis__header-actions {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:6px !important;
    min-height:34px !important;
    white-space:nowrap;
  }

  .iehojo-diagnosis__reset,
  .iehojo-diagnosis__close {
    display:inline-flex !important;
    width:auto !important;
    height:34px !important;
    min-width:0 !important;
    min-height:34px !important;
    padding:0 9px !important;
    border:1px solid #cbdad0 !important;
    border-radius:17px !important;
    gap:4px !important;
    background:#fff !important;
    color:var(--iehojo-navy) !important;
    font-size:10px !important;
    font-weight:800 !important;
    line-height:1 !important;
  }

  .iehojo-diagnosis__reset span,
  .iehojo-diagnosis__close span {
    display:inline !important;
  }

  .iehojo-diagnosis__reset span[aria-hidden="true"],
  .iehojo-diagnosis__close b {
    font-size:17px !important;
    line-height:1 !important;
    font-weight:500 !important;
  }
}


/* ======================================================================
 * v0.1.22 - first-view balance tuning
 * Keep the approved visual design intact. Refine only typography, spacing,
 * CTA readability and Ietasu proportions based on the live PC/SP captures.
 * ====================================================================== */
@media (min-width:768px) {
  .home .iehojo-rich-hero__lead {
    max-width:640px;
    font-size:14.5px;
    line-height:1.82;
  }
  .home .iehojo-rich-hero__mascot {
    width:min(335px,100%);
  }
  .home .iehojo-rich-hero__bubble {
    top:52px;
    right:18px;
  }
}

@media (max-width:767px) {
  .home .iehojo-rich-hero__inner {
    gap:0;
    padding-top:15px;
    padding-bottom:0;
  }
  .home .iehojo-rich-kicker {
    margin-bottom:9px;
  }
  .home .iehojo-rich-hero h1 {
    font-size:clamp(28px,8.1vw,32px);
    line-height:1.16;
    letter-spacing:-.032em;
  }
  .home .iehojo-rich-hero__lead {
    max-width:100%;
    margin-top:11px;
    font-size:12px;
    line-height:1.72;
    font-weight:620;
  }
  .home .iehojo-rich-hero__actions {
    gap:7px;
    margin-top:14px;
  }
  .home .iehojo-rich-btn {
    min-height:51px;
    padding-inline:10px;
  }
  .home .iehojo-rich-btn--search {
    font-size:12px;
  }
  .home .iehojo-rich-btn--diagnosis {
    font-size:11.5px;
  }
  .home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__copy small {
    display:none;
  }
  .home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__copy strong {
    margin-top:0;
    font-size:11.5px;
    line-height:1.2;
  }
  .home .iehojo-rich-btn__free {
    min-width:32px;
    height:21px;
    font-size:7.5px;
  }
  .home .iehojo-rich-hero__note {
    margin-top:8px;
    font-size:7.7px;
    line-height:1.58;
  }
  .home .iehojo-rich-hero__mascot-wrap {
    min-height:188px;
    margin-top:-12px;
    margin-bottom:-12px;
  }
  .home .iehojo-rich-hero__mascot {
    width:185px;
    transform:translateY(-5px);
  }
  .home .iehojo-rich-hero__bubble {
    top:9px;
    right:2px;
  }
}

@media (max-width:390px) {
  .home .iehojo-rich-hero h1 {
    font-size:clamp(27px,8vw,30px);
  }
  .home .iehojo-rich-hero__lead {
    font-size:11.7px;
  }
  .home .iehojo-rich-btn--search,
  .home .iehojo-rich-btn--diagnosis {
    padding-inline:7px;
  }
}


/* ======================================================================
 * v0.1.26 - crisp vector brand lockups
 * Replace cropped raster logo rendering with native SVG assets.
 * ====================================================================== */
.iehojo-brand img {
  width:168px;
  height:auto;
  image-rendering:auto;
  transform:translateZ(0);
}
.iehojo-footer__brand img {
  width:218px;
  height:auto;
  filter:none !important;
  opacity:1 !important;
  image-rendering:auto;
}
.iehojo-diagnosis__title img {
  image-rendering:auto;
}
@media (max-width:767px) {
  .iehojo-brand { flex-basis:148px; max-width:148px; }
  .iehojo-brand img { width:148px; }
  .iehojo-footer__brand img { width:206px; }
}

/* ======================================================================
 * v0.1.27 - official full brand lockup
 * Use the approved generated logo exactly as a single lockup:
 * house mark + イエホジョ + micro tagline.
 * ====================================================================== */
.iehojo-brand {
  flex: 0 0 238px;
  max-width: 238px;
  padding: 5px 0;
}
.iehojo-brand img {
  display: block;
  width: 238px;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  image-rendering: auto;
  transform: none;
}
.iehojo-footer__brand img {
  display: block;
  width: 255px;
  height: auto;
  padding: 9px 11px;
  border-radius: 10px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 7px 22px rgba(0,0,0,.10);
  filter: none !important;
  opacity: 1 !important;
  image-rendering: auto;
}
.iehojo-diagnosis__title img {
  width: 188px;
  height: auto;
  max-height: 70px;
  object-fit: contain;
  image-rendering: auto;
}
@media (max-width: 980px) {
  .iehojo-brand { flex-basis: 205px; max-width: 205px; }
  .iehojo-brand img { width: 205px; }
}
@media (max-width: 767px) {
  .iehojo-brand { flex-basis: 174px; max-width: 174px; }
  .iehojo-brand img { width: 174px; }
  .iehojo-footer__brand img { width: 230px; }
  .iehojo-diagnosis__title img { width: 146px; max-height: 58px; }
}
@media (max-width: 390px) {
  .iehojo-brand { flex-basis: 164px; max-width: 164px; }
  .iehojo-brand img { width: 164px; }
}
@media (max-width:767px) {
  .iehojo-diagnosis__title > img {
    width:146px !important;
    max-width:146px !important;
    height:auto !important;
    max-height:58px !important;
  }
}

/* ======================================================================
 * v0.1.28 - transparent official logo lockup
 * Keep the approved mark/wordmark/micro-tagline, remove all logo cards.
 * ====================================================================== */
.iehojo-brand img,
.iehojo-diagnosis__title img {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.iehojo-footer__brand img {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  filter: drop-shadow(0 1px 0 rgba(255,255,255,.58)) drop-shadow(0 0 4px rgba(255,255,255,.20)) !important;
}

/* ======================================================================
 * v0.1.29 - exact approved generated logo
 * Use the user-approved generated PNG itself. Do not redraw/recolor it.
 * ====================================================================== */
.iehojo-brand img,
.iehojo-footer__brand img,
.iehojo-diagnosis__title img {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  filter: none !important;
  opacity: 1 !important;
  image-rendering: auto;
}
.iehojo-brand img {
  width: 238px;
  height: auto;
  object-fit: contain;
}
.iehojo-footer__brand img {
  width: 255px;
  height: auto;
  object-fit: contain;
}
.iehojo-diagnosis__title img {
  width: 188px;
  height: auto;
  max-height: 70px;
  object-fit: contain;
}
@media (max-width: 980px) {
  .iehojo-brand img { width: 205px; }
}
@media (max-width: 767px) {
  .iehojo-brand img { width: 174px; }
  .iehojo-footer__brand img { width: 230px; }
  .iehojo-diagnosis__title > img {
    width: 146px !important;
    max-width: 146px !important;
    height: auto !important;
    max-height: 58px !important;
  }
}
@media (max-width: 390px) {
  .iehojo-brand img { width: 164px; }
}

/* ======================================================================
 * v0.1.30 - first-view balance + Rihojo reference functions
 * - Keep the exact approved logo PNG and Ietasu artwork unchanged.
 * - Restore a useful "今日の更新" panel and add "最新の補助金情報".
 * - Improve small-text readability without flattening the hierarchy.
 * - Rebuild direct browse as a separate 4-step modal; diagnosis stays chat UI.
 * - Use a light footer so the approved dark/blue logo remains legible.
 * ====================================================================== */

/* Header/logo balance: the approved full lockup was visually too dominant. */
.iehojo-brand {
  flex-basis:205px;
  max-width:205px;
  padding:5px 0;
}
.iehojo-brand img { width:205px; }
.iehojo-header__browse img,
.iehojo-header__search img,
.iehojo-mobile-menu__cta img {
  width:18px;
  height:18px;
  flex:0 0 18px;
  object-fit:contain;
}
.iehojo-header__browse img,
.iehojo-header__search img,
.iehojo-mobile-menu__cta.iehojo-button--primary img { filter:brightness(0) invert(1); }

/* Hero CTA: same clear primary/outline relationship used by Rihojo. */
.iehojo-rich-btn__icon-image {
  width:23px;
  height:23px;
  flex:0 0 23px;
  object-fit:contain;
}
.home .iehojo-rich-btn--search {
  border:1px solid #f39a00;
  background:linear-gradient(135deg,#ffa900,#f19100);
  color:#fff;
}
.home .iehojo-rich-btn--search .iehojo-rich-btn__icon-image { filter:brightness(0) invert(1); }
.home .iehojo-rich-btn--diagnosis {
  border:1px solid #244c69;
  background:rgba(255,255,255,.96);
  color:#17345d;
}
.home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__icon-image { filter:none; }
.home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__free { background:#63a878; }

/* First view: copy | Ietasu | today update card. */
.home .iehojo-rich-hero__inner {
  min-height:500px;
  grid-template-columns:minmax(0,1fr) minmax(280px,310px) minmax(225px,255px);
  gap:16px;
  align-items:center;
  padding-top:30px;
  padding-bottom:30px;
}
.home .iehojo-rich-hero__copy {
  min-width:0;
  padding:12px 0 34px;
}
.home .iehojo-rich-hero__lead {
  max-width:630px;
  font-size:15px;
  line-height:1.82;
}
.home .iehojo-rich-hero__note {
  font-size:10px;
  line-height:1.62;
}
.home .iehojo-rich-hero__mascot-wrap {
  min-height:335px;
  padding-bottom:2px;
}
.home .iehojo-rich-hero__mascot {
  width:min(315px,100%);
  transform:none;
}
.home .iehojo-rich-hero__bubble {
  top:38px;
  left:auto;
  right:0;
  min-width:166px;
  max-width:185px;
  padding:11px 13px;
  border-radius:15px;
}
.home .iehojo-rich-hero__bubble strong,
.home .iehojo-rich-hero__bubble span {
  font-size:11px;
  line-height:1.5;
}
/* Point the speech tail toward Ietasu, not away from the character. */
.home .iehojo-rich-hero__bubble::after {
  left:25px;
  right:auto;
  bottom:-17px;
  width:0;
  height:0;
  border:9px solid transparent !important;
  border-top-color:#fff !important;
  border-right-color:transparent !important;
  border-bottom-color:transparent !important;
  background:transparent !important;
  transform:rotate(15deg);
}

.home .iehojo-rich-today {
  display:block !important;
  width:100%;
  align-self:center;
  padding:14px;
  border:1px solid #c5dce0;
  border-radius:14px;
  background:rgba(255,255,255,.95);
  box-shadow:0 12px 28px rgba(23,52,93,.11);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.home .iehojo-rich-today__head { padding-bottom:8px; }
.home .iehojo-rich-today__head span { font-size:14px; }
.home .iehojo-rich-today__head small { font-size:9px; }
.home .iehojo-rich-today__body {
  grid-template-columns:minmax(0,1fr) 72px;
  gap:7px;
  margin-top:9px;
}
.home .iehojo-rich-today__list { gap:7px; }
.home .iehojo-rich-today__list img { width:27px; height:27px; flex-basis:27px; }
.home .iehojo-rich-today__list small { font-size:8.5px; line-height:1.2; }
.home .iehojo-rich-today__list strong { font-size:10.5px; line-height:1.25; }
.home .iehojo-rich-today__map { width:72px; }

/* Readability: enlarge the smallest home-page text while preserving headings. */
.home .iehojo-rich-trust strong { font-size:12.5px; }
.home .iehojo-rich-trust small { font-size:10px; line-height:1.45; }
.home .iehojo-rich-section-title p { font-size:10.5px; }
.home .iehojo-rich-section-title span { font-size:11px; line-height:1.7; }
.home .iehojo-rich-subtitle h2 small { font-size:10px; }
.home .iehojo-rich-subtitle p { font-size:10.5px; line-height:1.6; }
.home .iehojo-rich-subtitle--split > button { font-size:10.5px; }
.home .iehojo-rich-steps small { font-size:9.5px; line-height:1.45; }
.home .iehojo-rich-inline-btn { font-size:10.5px; }
.home .iehojo-rich-inline-btn img {
  width:16px;
  height:16px;
  margin-right:3px;
  vertical-align:-3px;
  filter:brightness(0) invert(1);
}
.home .iehojo-rich-theme strong { font-size:11.5px; }
.home .iehojo-rich-theme small { font-size:9px; line-height:1.45; }
.home .iehojo-rich-region-grid strong { font-size:10.5px; }
.home .iehojo-rich-guide-grid strong { font-size:11.5px; }
.home .iehojo-rich-guide-grid p { font-size:9.5px; line-height:1.65; }
.home .iehojo-rich-consult > div span { font-size:9.5px; line-height:1.55; }
.home .iehojo-rich-consult > button { font-size:10px; }
.home .iehojo-rich-consult > button small { font-size:8px; }
.home .iehojo-rich-info-grid strong { font-size:10.5px; }
.home .iehojo-rich-info-grid p { font-size:9px; line-height:1.6; }
.home .iehojo-rich-side-chat__row p { font-size:9.5px; line-height:1.6; }
.home .iehojo-rich-side-help p { font-size:9.5px; line-height:1.6; }
.home .iehojo-rich-side-help button { font-size:10px; }
.home .iehojo-rich-notify span { font-size:10.5px; }
.home .iehojo-rich-notify__actions button { font-size:10px; }

/* Latest subsidy information — data is injected only after official verification. */
.iehojo-rich-program-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.iehojo-rich-program {
  min-width:0;
  border:1px solid #dde7eb;
  border-radius:11px;
  padding:15px 14px 12px;
  background:#fff;
  box-shadow:0 5px 12px rgba(14,74,85,.04);
}
.iehojo-rich-program__link { display:block; color:inherit; text-decoration:none; }
.iehojo-rich-program__area {
  display:block;
  color:#0b7769;
  font-size:10px;
  font-weight:900;
}
.iehojo-rich-program h3 {
  min-height:45px;
  margin:6px 0 8px;
  color:#143e50;
  font-size:13.5px;
  line-height:1.45;
  font-weight:900;
}
.iehojo-rich-program__amount {
  min-height:30px;
  margin:0 0 11px;
  color:#e36f26;
  font-size:11px;
  line-height:1.45;
  font-weight:900;
}
.iehojo-rich-program__meta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:6px;
}
.iehojo-rich-program__meta span {
  padding:4px 9px;
  border-radius:999px;
  background:#1ca963;
  color:#fff;
  font-size:9px;
  font-weight:900;
}
.iehojo-rich-program__meta small { color:#768b93; font-size:8.5px; }
.iehojo-rich-program.is-loading { background:#fbfdfc; }
.iehojo-rich-program.is-loading .iehojo-rich-program__meta span { background:#789a97; }
.iehojo-rich-program.is-loading h3,
.iehojo-rich-program.is-loading .iehojo-rich-program__amount { color:#667b83; }

/* Direct browse modal — Rihojo-like four-step structure, 100% opaque. */
.iehojo-search-modal { background:#f5faf8; }
.iehojo-search-modal .iehojo-modal__backdrop {
  background:#f5faf8 !important;
  opacity:1 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.iehojo-search-modal__dialog {
  width:min(calc(100% - 32px),920px);
  max-height:min(900px,calc(100dvh - 32px));
  grid-template-rows:auto auto minmax(0,1fr) auto;
  overflow:hidden;
}
.iehojo-search-modal__header {
  padding:18px 22px 15px;
  background:#fff;
}
.iehojo-search-modal__header h2 { font-size:23px; }
.iehojo-search-modal__progress {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  margin:0;
  padding:10px 22px;
  border-bottom:1px solid #e1eaed;
  background:#f7fafb;
  list-style:none;
}
.iehojo-search-modal__progress li {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:36px;
  color:#84939a;
  font-size:11px;
  font-weight:900;
}
.iehojo-search-modal__progress li:not(:last-child)::after {
  content:'';
  position:absolute;
  top:50%;
  right:-12%;
  width:24%;
  height:2px;
  background:#d7e2e5;
}
.iehojo-search-modal__progress b {
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#dfe7ea;
  color:#718089;
  font-size:10px;
}
.iehojo-search-modal__progress li.is-active { color:#17345d; }
.iehojo-search-modal__progress li.is-active b { background:#2499c6; color:#fff; }
.iehojo-search-modal__progress li.is-complete { color:#4f8063; }
.iehojo-search-modal__progress li.is-complete b { background:#55a871; color:#fff; }
.iehojo-search-modal__body { padding:18px 22px 22px; background:#fff; }
.iehojo-search-modal__step[hidden],
.iehojo-search-modal__step:not(.is-active) { display:none !important; }
.iehojo-search-modal__step-head { margin-bottom:15px; }
.iehojo-search-modal__step-head h3 {
  margin:0;
  color:#17345d;
  font-size:20px;
  line-height:1.35;
  outline:none;
}
.iehojo-search-modal__step-head p {
  margin:5px 0 0;
  color:#687b83;
  font-size:11.5px;
  line-height:1.7;
}
.iehojo-search-modal__prefecture-picker { display:grid; gap:11px; }
.iehojo-search-modal__prefecture-region {
  display:grid;
  grid-template-columns:90px minmax(0,1fr);
  gap:10px;
  align-items:start;
}
.iehojo-search-modal__prefecture-region > strong {
  padding-top:10px;
  color:#59716e;
  font-size:11px;
  font-weight:900;
}
.iehojo-search-modal__prefecture-buttons {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
}
.iehojo-search-modal__prefecture-buttons button,
.iehojo-search-modal__theme-grid button {
  min-height:43px;
  padding:7px 8px;
  border:1px solid #d4e0e3;
  border-radius:9px;
  background:#fff;
  color:#17345d;
  font-size:11.5px;
  font-weight:900;
  line-height:1.4;
  cursor:pointer;
}
.iehojo-search-modal__prefecture-buttons button:hover,
.iehojo-search-modal__prefecture-buttons button.is-selected,
.iehojo-search-modal__theme-grid button:hover,
.iehojo-search-modal__theme-grid button.is-selected {
  border-color:#4d9b72;
  background:#eff8f2;
  box-shadow:inset 0 0 0 1px rgba(77,155,114,.08);
}
.iehojo-search-modal__selected-context {
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  color:#17345d;
}
.iehojo-search-modal__selected-context span {
  padding:3px 8px;
  border-radius:999px;
  background:#eaf4f7;
  color:#36708a;
  font-size:9px;
  font-weight:900;
}
.iehojo-search-modal__selected-context strong { font-size:13px; }
.iehojo-search-modal__or {
  position:relative;
  margin:12px 0;
  text-align:center;
  color:#829096;
  font-size:9px;
  font-weight:900;
}
.iehojo-search-modal__or::before {
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:1px;
  background:#e1e8ea;
}
.iehojo-search-modal__or span { position:relative; padding:0 10px; background:#fff; }
.iehojo-search-modal__whole-pref { margin-bottom:0; }
.iehojo-search-modal__whole-pref strong { font-size:13.5px; }
.iehojo-search-modal__whole-pref small { font-size:10px; }
.iehojo-search-modal__status { font-size:11.5px; }
.iehojo-search-modal__kana button, .iehojo-search-modal__kana a { min-width:42px; height:34px; font-size:11px; }
.iehojo-search-modal__municipality-grid strong { font-size:11.5px; }
.iehojo-search-modal__municipality-grid small { font-size:8.5px; }
.iehojo-search-modal__theme-grid {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.iehojo-search-modal__theme-grid button { min-height:58px; font-size:12px; }
.iehojo-search-modal__condition-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.iehojo-search-modal__condition-grid label { position:relative; cursor:pointer; }
.iehojo-search-modal__condition-grid input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.iehojo-search-modal__condition-grid span {
  min-height:52px;
  display:flex;
  align-items:center;
  padding:10px 13px 10px 42px;
  border:1px solid #d5e1e4;
  border-radius:10px;
  background:#fff;
  color:#17345d;
  font-size:11.5px;
  font-weight:900;
  line-height:1.45;
}
.iehojo-search-modal__condition-grid span::before {
  content:'';
  position:absolute;
  left:13px;
  top:50%;
  width:18px;
  height:18px;
  border:2px solid #b9c9ce;
  border-radius:5px;
  background:#fff;
  transform:translateY(-50%);
}
.iehojo-search-modal__condition-grid input:checked + span {
  border-color:#4b9b70;
  background:#eff8f2;
}
.iehojo-search-modal__condition-grid input:checked + span::before {
  content:'✓';
  display:grid;
  place-items:center;
  border-color:#4b9b70;
  background:#4b9b70;
  color:#fff;
  font-size:11px;
  line-height:1;
}
.iehojo-search-modal__selection { margin-top:13px; }
.iehojo-search-modal__selection strong { font-size:13px; }
.iehojo-search-modal__selection p { font-size:10.5px; }
.iehojo-search-modal__footer {
  min-height:66px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 22px;
  border-top:1px solid #e0e9ec;
  background:#f8fafb;
}
.iehojo-search-modal__prev,
.iehojo-search-modal__submit {
  min-height:44px;
  padding:0 18px;
  border-radius:10px;
  font-size:11.5px;
  font-weight:900;
  cursor:pointer;
}
.iehojo-search-modal__prev {
  border:1px solid #ccd9dd;
  background:#fff;
  color:#17345d;
}
.iehojo-search-modal__submit {
  margin-left:auto;
  border:1px solid #f39a00;
  background:linear-gradient(135deg,#ffa900,#f19100);
  color:#fff;
  box-shadow:0 7px 17px rgba(241,145,0,.16);
}
.iehojo-search-modal__prev[hidden],
.iehojo-search-modal__submit[hidden] { display:none !important; }

/* Diagnosis only receives the safe Today-summary content; keep layout logic intact. */
.iehojo-diagnosis__visual-card--today h3 { margin-bottom:7px; }
.iehojo-diagnosis__visual-card--today > div {
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:4px 0;
}
.iehojo-diagnosis__visual-card--today > div span { font-size:9px; }
.iehojo-diagnosis__visual-card--today > div strong { font-size:10px; }

/* Footer: light surface lets the exact navy/blue/green logo stay readable. */
.iehojo-footer {
  background:#edf6f8;
  color:#17345d;
  border-top:1px solid #d8e7eb;
}
.iehojo-footer__grid { padding-top:42px; padding-bottom:34px; }
.iehojo-footer__brand img { width:245px; }
.iehojo-footer__brand p {
  color:#536c78;
  font-size:13px;
  line-height:1.8;
}
.iehojo-footer__list a { color:#17345d; font-size:13px; }
.iehojo-footer__list a:hover,
.iehojo-footer__list a:focus-visible { color:#1683aa; }
.iehojo-footer__bottom { border-top:1px solid #cfdee3; }
.iehojo-footer__bottom p { color:#6b7f88; }

@media (max-width:1100px) and (min-width:768px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) 270px 220px;
    gap:12px;
  }
  .home .iehojo-rich-hero h1 { font-size:clamp(35px,4.4vw,48px); }
  .home .iehojo-rich-hero__mascot { width:275px; }
  .home .iehojo-rich-today { padding:11px; }
  .home .iehojo-rich-today__body { grid-template-columns:minmax(0,1fr) 58px; }
  .home .iehojo-rich-today__map { width:58px; }
  .iehojo-brand { flex-basis:188px; max-width:188px; }
  .iehojo-brand img { width:188px; }
}

@media (max-width:900px) and (min-width:768px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) 260px;
    grid-template-areas:'copy mascot' 'today today';
    gap:12px 16px;
    padding-bottom:20px;
  }
  .home .iehojo-rich-hero__copy { grid-area:copy; padding-bottom:12px; }
  .home .iehojo-rich-hero__mascot-wrap { grid-area:mascot; min-height:290px; }
  .home .iehojo-rich-today {
    grid-area:today;
    max-width:520px;
    justify-self:center;
  }
}

@media (max-width:767px) {
  .iehojo-brand { flex-basis:158px; max-width:158px; }
  .iehojo-brand img { width:158px; }

  .home .iehojo-rich-hero__inner {
    width:calc(100% - 20px);
    grid-template-columns:1fr;
    grid-template-areas:'copy' 'mascot' 'today';
    gap:0;
    min-height:0;
    padding-top:14px;
    padding-bottom:12px;
  }
  .home .iehojo-rich-hero__copy { grid-area:copy; padding:0; }
  .home .iehojo-rich-hero__lead { font-size:12.5px; line-height:1.7; }
  .home .iehojo-rich-hero__note { font-size:8.5px; line-height:1.55; }
  .home .iehojo-rich-btn { gap:6px; }
  .home .iehojo-rich-btn__icon-image { width:18px; height:18px; flex-basis:18px; }
  .home .iehojo-rich-hero__mascot-wrap {
    grid-area:mascot;
    width:100%;
    min-height:210px;
    margin-top:-5px;
    margin-bottom:-5px;
  }
  .home .iehojo-rich-hero__mascot {
    width:205px;
    transform:translateY(1px);
  }
  .home .iehojo-rich-hero__bubble {
    top:10px;
    left:auto;
    right:5px;
    min-width:120px;
    max-width:134px;
    padding:8px 9px;
    border-radius:12px;
  }
  .home .iehojo-rich-hero__bubble strong,
  .home .iehojo-rich-hero__bubble span { font-size:8px; line-height:1.45; }
  .home .iehojo-rich-hero__bubble::after {
    left:18px;
    right:auto;
    bottom:-14px;
    border-width:7px !important;
    border-top-color:#fff !important;
  }
  .home .iehojo-rich-today {
    grid-area:today;
    width:100%;
    margin:0 0 2px;
    padding:10px 11px;
    border-radius:11px;
  }
  .home .iehojo-rich-today__head { padding-bottom:6px; }
  .home .iehojo-rich-today__head span { font-size:11.5px; }
  .home .iehojo-rich-today__head small { display:block; font-size:7.5px; }
  .home .iehojo-rich-today__body {
    grid-template-columns:minmax(0,1fr) 56px;
    margin-top:7px;
  }
  .home .iehojo-rich-today__list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
  .home .iehojo-rich-today__list > div { gap:4px; }
  .home .iehojo-rich-today__list img { width:23px; height:23px; flex-basis:23px; }
  .home .iehojo-rich-today__list small { font-size:7px; }
  .home .iehojo-rich-today__list strong { font-size:8px; }
  .home .iehojo-rich-today__map { width:56px; }

  .home .iehojo-rich-trust strong { font-size:10.5px; }
  .home .iehojo-rich-trust small { font-size:8.5px; }
  .home .iehojo-rich-section-title p { font-size:8.5px; }
  .home .iehojo-rich-section-title span { font-size:9px; }
  .home .iehojo-rich-subtitle h2 { font-size:17px; }
  .home .iehojo-rich-subtitle h2 small { font-size:8px; }
  .home .iehojo-rich-subtitle p { font-size:8.8px; }
  .home .iehojo-rich-subtitle--split > button { font-size:8.5px; }
  .home .iehojo-rich-steps li { min-height:118px; }
  .home .iehojo-rich-steps strong { font-size:10.8px; }
  .home .iehojo-rich-steps small { font-size:8px; }
  .home .iehojo-rich-inline-btn { min-height:38px; font-size:9.5px; }
  .home .iehojo-rich-theme { min-height:110px; }
  .home .iehojo-rich-theme strong { font-size:10.2px; }
  .home .iehojo-rich-theme small { font-size:8px; }
  .home .iehojo-rich-region-grid button { min-height:46px; }
  .home .iehojo-rich-region-grid strong { font-size:9.3px; }
  .home .iehojo-rich-guide-grid article { min-height:118px; }
  .home .iehojo-rich-guide-grid strong { font-size:10.2px; }
  .home .iehojo-rich-guide-grid p { font-size:8.5px; }
  .home .iehojo-rich-consult > div strong { font-size:10.8px; }
  .home .iehojo-rich-consult > div span { font-size:8.5px; }
  .home .iehojo-rich-consult > button { font-size:9.5px; }
  .home .iehojo-rich-info-grid strong { font-size:9.8px; }
  .home .iehojo-rich-info-grid p { font-size:8.5px; }
  .home .iehojo-rich-notify span { font-size:9px; }
  .home .iehojo-rich-notify__actions button { font-size:8.8px; }

  .iehojo-rich-program-grid { grid-template-columns:1fr; gap:7px; }
  .iehojo-rich-program { padding:11px 10px 10px; }
  .iehojo-rich-program__area { font-size:8.5px; }
  .iehojo-rich-program h3 { min-height:40px; font-size:11px; }
  .iehojo-rich-program__amount { min-height:26px; font-size:9px; }
  .iehojo-rich-program__meta span { font-size:7.5px; }
  .iehojo-rich-program__meta small { font-size:7px; }

  .iehojo-search-modal__dialog {
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
  }
  .iehojo-search-modal__header { padding:11px 10px 9px; }
  .iehojo-search-modal__header h2 { font-size:18px; }
  .iehojo-search-modal__progress { padding:7px 6px; }
  .iehojo-search-modal__progress li { gap:4px; min-height:32px; font-size:8px; }
  .iehojo-search-modal__progress b { width:20px; height:20px; font-size:8px; }
  .iehojo-search-modal__progress li:not(:last-child)::after { display:none; }
  .iehojo-search-modal__body { padding:13px 10px 18px; }
  .iehojo-search-modal__step-head { margin-bottom:11px; }
  .iehojo-search-modal__step-head h3 { font-size:17px; }
  .iehojo-search-modal__step-head p { font-size:10px; }
  .iehojo-search-modal__prefecture-picker { gap:8px; }
  .iehojo-search-modal__prefecture-region {
    grid-template-columns:1fr;
    gap:4px;
  }
  .iehojo-search-modal__prefecture-region > strong { padding-top:0; font-size:9px; }
  .iehojo-search-modal__prefecture-buttons { grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .iehojo-search-modal__prefecture-buttons button { min-height:39px; padding:5px 3px; font-size:9.5px; }
  .iehojo-search-modal__whole-pref strong { font-size:12px; }
  .iehojo-search-modal__whole-pref small { font-size:9px; }
  .iehojo-search-modal__status { font-size:10px; }
  .iehojo-search-modal__municipality-groups { max-height:none; }
  .iehojo-search-modal__municipality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
  .iehojo-search-modal__municipality-grid strong { font-size:10px; }
  .iehojo-search-modal__municipality-grid small { font-size:7.5px; }
  .iehojo-search-modal__theme-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .iehojo-search-modal__theme-grid button { min-height:52px; font-size:10.5px; }
  .iehojo-search-modal__condition-grid { grid-template-columns:1fr; gap:6px; }
  .iehojo-search-modal__condition-grid span { min-height:47px; font-size:10.5px; }
  .iehojo-search-modal__footer { min-height:58px; padding:7px 10px; }
  .iehojo-search-modal__prev,
  .iehojo-search-modal__submit { min-height:42px; padding:0 12px; font-size:10px; }

  .iehojo-footer__grid { padding-top:30px; padding-bottom:26px; }
  .iehojo-footer__brand img { width:218px; }
  .iehojo-footer__brand p { font-size:12px; }
  .iehojo-footer__list a { font-size:13px; }
}

@media (max-width:390px) {
  .iehojo-brand { flex-basis:150px; max-width:150px; }
  .iehojo-brand img { width:150px; }
  .home .iehojo-rich-hero__mascot { width:198px; }
  .home .iehojo-rich-today__list { grid-template-columns:1fr 1fr 1fr; }
  .iehojo-rich-program-grid { grid-template-columns:1fr; }
  .iehojo-rich-program h3 { min-height:0; }
  .iehojo-search-modal__prefecture-buttons { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

/* v0.1.30 mobile first-view final balance: Ietasu + Today side by side,
 * matching the useful Rihojo composition without copying its branding. */
@media (max-width:600px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1.05fr) minmax(130px,.95fr);
    grid-template-areas:'copy copy' 'mascot today';
    grid-template-rows:auto 205px;
    gap:5px 5px;
    align-items:end;
    padding-bottom:7px;
  }
  .home .iehojo-rich-hero__copy { align-self:start; }
  .home .iehojo-rich-hero__mascot-wrap {
    grid-area:mascot;
    width:100%;
    min-height:205px;
    height:205px;
    margin:0;
    align-self:end;
  }
  .home .iehojo-rich-hero__mascot {
    width:min(180px,50vw);
    max-height:198px;
    object-fit:contain;
    object-position:center bottom;
  }
  .home .iehojo-rich-hero__bubble {
    top:3px;
    right:-7px;
    width:112px;
    min-width:112px;
    max-width:112px;
    padding:7px 7px;
  }
  .home .iehojo-rich-hero__bubble strong,
  .home .iehojo-rich-hero__bubble span { font-size:7.6px; }
  .home .iehojo-rich-today {
    grid-area:today;
    width:100%;
    max-width:153px;
    min-height:128px;
    margin:0 0 7px auto;
    padding:8px 7px 7px;
    align-self:end;
  }
  .home .iehojo-rich-today__head { padding-bottom:5px; }
  .home .iehojo-rich-today__head span { font-size:9.5px; }
  .home .iehojo-rich-today__head small { display:none; }
  .home .iehojo-rich-today__body {
    grid-template-columns:minmax(0,1fr) 43px;
    gap:1px;
    margin-top:5px;
  }
  .home .iehojo-rich-today__list { display:grid; grid-template-columns:1fr; gap:3px; }
  .home .iehojo-rich-today__list > div { gap:3px; }
  .home .iehojo-rich-today__list img { width:17px; height:17px; flex-basis:17px; }
  .home .iehojo-rich-today__list small { font-size:6.2px; }
  .home .iehojo-rich-today__list strong { font-size:8.8px; }
  .home .iehojo-rich-today__map { width:43px; }
}

@media (max-width:340px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1.06fr) minmax(122px,.94fr);
  }
  .home .iehojo-rich-hero__mascot { width:min(168px,49vw); }
  .home .iehojo-rich-today { max-width:143px; }
}

/* ======================================================================
 * v0.1.31 - Rihojo v0.2.49 modal parity + logo visual-scale parity
 * The user explicitly requested the search / diagnosis UI to use the
 * Rihojo interaction style. Brand artwork and copy remain Iehojo-specific.
 * ====================================================================== */

/* ----------------------------------------------------------------------
 * Approved logo: match the *visual footprint* of Rihojo's padded PNG,
 * rather than blindly copying its CSS width. The Iehojo PNG has a taller
 * lockup (micro tagline), so equivalent footprint requires smaller boxes.
 * ---------------------------------------------------------------------- */
@media (min-width:1100px) {
  .iehojo-brand {
    flex:0 0 172px !important;
    flex-basis:172px !important;
    max-width:172px !important;
  }
  .iehojo-brand img {
    width:172px !important;
    max-width:none !important;
    height:auto !important;
  }
}
@media (min-width:601px) and (max-width:1099px) {
  .iehojo-brand {
    flex:0 0 140px !important;
    flex-basis:140px !important;
    max-width:140px !important;
  }
  .iehojo-brand img {
    width:140px !important;
    max-width:none !important;
    height:auto !important;
  }
}
@media (max-width:600px) {
  .iehojo-brand {
    flex:0 0 104px !important;
    flex-basis:104px !important;
    max-width:104px !important;
    padding-block:4px !important;
  }
  .iehojo-brand img {
    width:104px !important;
    max-width:none !important;
    height:auto !important;
  }
}
@media (max-width:380px) {
  .iehojo-brand {
    flex-basis:100px !important;
    max-width:100px !important;
  }
  .iehojo-brand img { width:100px !important; }
}
.iehojo-footer__brand img {
  width:104px !important;
  max-width:none !important;
  height:auto !important;
}

/* ----------------------------------------------------------------------
 * Hero speech tail: overlap the balloon body so no white gap appears.
 * ---------------------------------------------------------------------- */
.home .iehojo-rich-hero__bubble::before { content:none !important; }
.home .iehojo-rich-hero__bubble::after {
  content:"" !important;
  position:absolute !important;
  left:24px !important;
  right:auto !important;
  bottom:-7px !important;
  width:13px !important;
  height:13px !important;
  border:0 !important;
  border-right:1px solid #d5e5da !important;
  border-bottom:1px solid #d5e5da !important;
  background:#fff !important;
  transform:rotate(45deg) !important;
  transform-origin:center !important;
}
@media (max-width:600px) {
  .home .iehojo-rich-hero__bubble::after {
    left:19px !important;
    bottom:-6px !important;
    width:11px !important;
    height:11px !important;
  }
}

/* ----------------------------------------------------------------------
 * Direct subsidy search — Rihojo v0.2.49 full-screen/modal composition.
 * ---------------------------------------------------------------------- */
.iehojo-search-modal {
  z-index:1000000 !important;
}
.iehojo-search-modal .iehojo-modal__backdrop {
  position:fixed !important;
  inset:0 !important;
  background:rgba(9,69,83,.42) !important;
}
.iehojo-search-modal__dialog {
  position:fixed !important;
  z-index:1 !important;
  inset:0 !important;
  width:100vw !important;
  max-width:none !important;
  height:100vh !important;
  height:100dvh !important;
  max-height:none !important;
  margin:0 !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  border:1px solid rgba(74,141,141,.18) !important;
  border-radius:0 !important;
  background:#FDFDFC !important;
  box-shadow:none !important;
  transform:none !important;
}
.iehojo-search-modal__header,
.iehojo-search-modal__progress,
.iehojo-search-modal__body,
.iehojo-search-modal__footer {
  padding-left:max(20px,calc((100vw - 1180px)/2)) !important;
  padding-right:max(20px,calc((100vw - 1180px)/2)) !important;
}
.iehojo-search-modal__header {
  flex:0 0 auto !important;
  min-height:82px !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  border-bottom:1px solid #D5E7E7 !important;
  background:linear-gradient(135deg,#E8F5FB 0%,#F6FBF8 58%,#FFF9EC 100%) !important;
  color:#094553 !important;
}
.iehojo-search-modal__header .iehojo-eyebrow {
  margin:0 0 3px !important;
  color:#3B6F5E !important;
  font-size:10px !important;
  line-height:1.25 !important;
  font-weight:850 !important;
}
.iehojo-search-modal__header h2 {
  margin:0 !important;
  color:#094553 !important;
  font-size:23px !important;
  line-height:1.25 !important;
  font-weight:900 !important;
}
.iehojo-search-modal__close {
  width:auto !important;
  min-width:76px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  border:1px solid #BFD7D7 !important;
  border-radius:6px !important;
  background:rgba(253,253,252,.92) !important;
  color:#094553 !important;
  box-shadow:0 2px 8px rgba(9,69,83,.05) !important;
  font-weight:800 !important;
}
.iehojo-search-modal__close b {
  order:0 !important;
  font-size:20px !important;
  line-height:1 !important;
}
.iehojo-search-modal__close span {
  order:1 !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:800 !important;
}
.iehojo-search-modal__close:hover,
.iehojo-search-modal__close:focus-visible {
  border-color:#4A8D8D !important;
  background:#fff !important;
}

.iehojo-search-modal__progress {
  flex:0 0 auto !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:0 !important;
  margin:0 !important;
  padding-top:16px !important;
  padding-bottom:14px !important;
  list-style:none !important;
  border-bottom:1px solid #DFEAE7 !important;
  background:#FAFCFB !important;
}
.iehojo-search-modal__progress li {
  position:relative !important;
  min-width:0 !important;
  min-height:32px !important;
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  gap:9px !important;
  align-items:center !important;
  padding-right:18px !important;
  color:#73817C !important;
}
.iehojo-search-modal__progress li:not(:last-child)::after {
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  top:16px !important;
  left:30px !important;
  right:-3px !important;
  display:block !important;
  width:auto !important;
  height:1px !important;
  background:#D9E5E1 !important;
}
.iehojo-search-modal__progress li > span {
  position:relative !important;
  z-index:1 !important;
  width:32px !important;
  height:32px !important;
  display:grid !important;
  place-items:center !important;
  border:1px solid #CAD6D2 !important;
  border-radius:50% !important;
  background:#fff !important;
  color:#73817C !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:800 !important;
}
.iehojo-search-modal__progress li > div {
  position:relative !important;
  z-index:1 !important;
  min-width:0 !important;
  padding:3px 7px 3px 4px !important;
  background:#FAFCFB !important;
}
.iehojo-search-modal__progress li strong,
.iehojo-search-modal__progress li small {
  display:block !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
}
.iehojo-search-modal__progress li strong {
  color:#332F2B !important;
  font-size:11px !important;
  line-height:1.35 !important;
  font-weight:800 !important;
}
.iehojo-search-modal__progress li small {
  margin-top:2px !important;
  color:#6D828A !important;
  font-size:9px !important;
  line-height:1.35 !important;
  font-weight:600 !important;
}
.iehojo-search-modal__progress li:nth-child(1) > span { border-color:#A9CDD2 !important; background:#E8F5FB !important; color:#094553 !important; }
.iehojo-search-modal__progress li:nth-child(2) > span { border-color:#B7D3C1 !important; background:#EFF7F0 !important; color:#3B6F5E !important; }
.iehojo-search-modal__progress li:nth-child(3) > span { border-color:#F1C986 !important; background:#FFF5E5 !important; color:#B86D00 !important; }
.iehojo-search-modal__progress li:nth-child(4) > span { border-color:#C9DCAA !important; background:#F3F8EA !important; color:#607C3A !important; }
.iehojo-search-modal__progress li:nth-child(1).is-active > span,
.iehojo-search-modal__progress li:nth-child(1).is-complete > span { background:#4A8D8D !important; border-color:#4A8D8D !important; color:#fff !important; }
.iehojo-search-modal__progress li:nth-child(2).is-active > span,
.iehojo-search-modal__progress li:nth-child(2).is-complete > span { background:#3B6F5E !important; border-color:#3B6F5E !important; color:#fff !important; }
.iehojo-search-modal__progress li:nth-child(3).is-active > span,
.iehojo-search-modal__progress li:nth-child(3).is-complete > span { background:#F69406 !important; border-color:#F69406 !important; color:#fff !important; }
.iehojo-search-modal__progress li:nth-child(4).is-active > span,
.iehojo-search-modal__progress li:nth-child(4).is-complete > span { background:#92BE61 !important; border-color:#92BE61 !important; color:#fff !important; }
.iehojo-search-modal__progress li.is-active strong { color:#094553 !important; }
.iehojo-search-modal__progress li.is-complete:not(:last-child)::after { background:#A8CBBE !important; }

.iehojo-search-modal__body {
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  padding-top:28px !important;
  padding-bottom:34px !important;
  background:#FDFDFC !important;
}
.iehojo-search-modal__step-head h3 {
  color:#094553 !important;
}
.iehojo-search-modal__prefecture-region,
.iehojo-search-modal__municipality-groups,
.iehojo-search-modal__selection {
  border-color:#DCE8E4 !important;
  background:#fff !important;
}
.iehojo-search-modal__prefecture-region > strong,
.iehojo-search-modal__municipality-group h4 {
  color:#3B6F5E !important;
}
.iehojo-search-modal__prefecture-buttons button,
.iehojo-search-modal__theme-grid button,
.iehojo-search-modal__whole-pref,
.iehojo-search-modal__municipality-grid button,
.iehojo-search-modal__condition-grid span {
  border-color:#D6E4DF !important;
  background:#fff !important;
  color:#173F4E !important;
  box-shadow:none !important;
}
.iehojo-search-modal__prefecture-buttons button:hover,
.iehojo-search-modal__prefecture-buttons button:focus-visible,
.iehojo-search-modal__prefecture-buttons button.is-selected,
.iehojo-search-modal__theme-grid button:hover,
.iehojo-search-modal__theme-grid button:focus-visible,
.iehojo-search-modal__theme-grid button.is-selected,
.iehojo-search-modal__municipality-grid button:hover,
.iehojo-search-modal__municipality-grid button:focus-visible,
.iehojo-search-modal__condition-grid input:checked + span {
  border-color:#4A8D8D !important;
  background:#EFF8F5 !important;
  color:#094553 !important;
}
.iehojo-search-modal__footer {
  position:static !important;
  flex:0 0 auto !important;
  min-height:72px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
  border-top:1px solid #DFEAE7 !important;
  background:#fff !important;
}
.iehojo-search-modal__footer.is-auto-step { justify-content:flex-start !important; }
.iehojo-search-modal__prev,
.iehojo-search-modal__submit {
  min-height:44px !important;
  padding:0 18px !important;
  border-radius:8px !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
}
.iehojo-search-modal__prev {
  border:1px solid #BFD7D7 !important;
  background:#fff !important;
  color:#094553 !important;
}
.iehojo-search-modal__prev:disabled {
  opacity:.42 !important;
  cursor:not-allowed !important;
}
.iehojo-search-modal__submit {
  border:1px solid #3B6F5E !important;
  background:#3B6F5E !important;
  color:#fff !important;
}
.iehojo-search-modal__submit[hidden] { display:none !important; }

/* ----------------------------------------------------------------------
 * Conversational diagnosis — same structural treatment as Rihojo v0.2.49.
 * ---------------------------------------------------------------------- */
.iehojo-diagnosis.iehojo-modal { z-index:1000000 !important; }
.iehojo-diagnosis .iehojo-modal__dialog {
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  max-width:none !important;
  height:100vh !important;
  height:100dvh !important;
  max-height:none !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#EEF9F6 !important;
  transform:none !important;
}
.iehojo-diagnosis__frame {
  width:min(100%,1120px) !important;
  max-width:1120px !important;
  height:100% !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-rows:62px 20px minmax(0,1fr) !important;
  overflow:hidden !important;
  border-left:1px solid #D5E4DF !important;
  border-right:1px solid #D5E4DF !important;
  background:#fff !important;
}
.iehojo-diagnosis__header {
  position:relative !important;
  min-height:62px !important;
  height:62px !important;
  padding:0 16px !important;
  display:grid !important;
  grid-template-columns:205px minmax(0,1fr) auto !important;
  gap:18px !important;
  align-items:center !important;
  border-bottom:1px solid #DBE7E2 !important;
  background:#fff !important;
}
.iehojo-diagnosis__title {
  min-width:0 !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}
.iehojo-diagnosis__title::before { content:none !important; display:none !important; }
.iehojo-diagnosis__title > img {
  display:block !important;
  width:83px !important;
  max-width:83px !important;
  max-height:none !important;
  height:auto !important;
  object-fit:contain !important;
}
.iehojo-diagnosis__title > strong {
  display:block !important;
  color:#173F4E !important;
  font-size:17.5px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}
.iehojo-diagnosis__steps {
  position:static !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:18px !important;
  overflow:visible !important;
  list-style:none !important;
  pointer-events:none !important;
}
.iehojo-diagnosis__steps li {
  position:relative !important;
  min-width:58px !important;
  width:auto !important;
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  color:#7F918B !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:850 !important;
  white-space:nowrap !important;
}
.iehojo-diagnosis__steps li span {
  display:inline !important;
  font-size:12px !important;
  line-height:1.2 !important;
}
.iehojo-diagnosis__steps b {
  width:26px !important;
  height:26px !important;
  flex:0 0 26px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:50% !important;
  background:#E7F0F2 !important;
  color:#56737B !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.iehojo-diagnosis__steps li:not(:last-child)::after {
  content:"" !important;
  position:absolute !important;
  display:block !important;
  left:calc(100% + 4px) !important;
  top:50% !important;
  width:9px !important;
  height:1px !important;
  background:#D5E3E0 !important;
}
.iehojo-diagnosis__steps li.is-active b,
.iehojo-diagnosis__steps li.is-done b {
  background:#15965B !important;
  color:#fff !important;
}
.iehojo-diagnosis__steps li.is-active span { color:#167A50 !important; }
.iehojo-diagnosis__steps li.is-done span { color:#608077 !important; }
.iehojo-diagnosis__header-actions {
  min-height:34px !important;
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
}
.iehojo-diagnosis__reset,
.iehojo-diagnosis__close {
  width:auto !important;
  min-width:0 !important;
  min-height:34px !important;
  height:34px !important;
  padding:0 9px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  border:1px solid #BFD2CB !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#0E4A55 !important;
  box-shadow:none !important;
  font-size:10.5px !important;
  line-height:1 !important;
  font-weight:850 !important;
}
.iehojo-diagnosis__reset span:first-child { font-size:17px !important; line-height:1 !important; }
.iehojo-diagnosis__close b { order:0 !important; font-size:19px !important; line-height:1 !important; }
.iehojo-diagnosis__close span { order:1 !important; display:inline !important; }

/* This is the PC progress banner present in Rihojo. */
.iehojo-diagnosis__progress {
  min-height:20px !important;
  height:20px !important;
  padding:0 16px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:8px !important;
  align-items:center !important;
  border-bottom:1px solid #E4ECE7 !important;
  background:#F7FAF8 !important;
}
.iehojo-diagnosis__progress-bar {
  width:100% !important;
  height:4px !important;
  overflow:hidden !important;
  border-radius:999px !important;
  background:#DFE8E2 !important;
}
.iehojo-diagnosis__progress-bar span {
  display:block !important;
  height:100% !important;
  border-radius:inherit !important;
  background:#15965B !important;
}
.iehojo-diagnosis__progress small {
  display:block !important;
  min-width:30px !important;
  color:#75867F !important;
  font-size:8px !important;
  line-height:1 !important;
  font-weight:850 !important;
  text-align:right !important;
}
.iehojo-diagnosis__content {
  min-height:0 !important;
  display:grid !important;
  grid-template-columns:238px minmax(0,1fr) !important;
  overflow:hidden !important;
  background:#fff !important;
}
.iehojo-diagnosis__visual {
  position:relative !important;
  min-height:0 !important;
  overflow:hidden !important;
  padding:26px 16px 16px !important;
  border-right:1px solid #D8E5DC !important;
  background:linear-gradient(180deg,#E1F7F3 0%,#DDF4F0 100%) !important;
}
.iehojo-diagnosis__visual-bubble {
  width:176px !important;
  margin:0 auto 10px !important;
  padding:11px 10px !important;
  border:1px solid #DCE9E5 !important;
  border-radius:18px !important;
  background:#fff !important;
  color:#174654 !important;
  box-shadow:0 4px 12px rgba(14,74,85,.05) !important;
  font-size:9.6px !important;
  line-height:1.42 !important;
}
.iehojo-diagnosis__visual-bubble::after {
  left:72px !important;
  bottom:-7px !important;
  width:12px !important;
  height:12px !important;
  border:0 !important;
  border-right:1px solid #DCE9E5 !important;
  border-bottom:1px solid #DCE9E5 !important;
  background:#fff !important;
  transform:rotate(45deg) !important;
}
.iehojo-diagnosis__visual-mascot {
  width:184px !important;
  height:208px !important;
  display:block !important;
  margin:0 auto !important;
  object-fit:contain !important;
  object-position:center !important;
}
.iehojo-diagnosis__visual-card--today {
  position:absolute !important;
  left:16px !important;
  right:16px !important;
  bottom:16px !important;
  min-height:136px !important;
  padding:12px 12px 11px !important;
  border:1px solid rgba(216,232,227,.85) !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 4px 12px rgba(14,74,85,.04) !important;
}
.iehojo-diagnosis__visual-card--today h3 {
  margin:0 0 9px !important;
  padding:0 0 7px !important;
  border-bottom:1px solid #D8E3E0 !important;
  color:#123F4E !important;
  font-size:15px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
}
.iehojo-diagnosis__visual-card--today > div {
  min-height:22px !important;
  display:grid !important;
  grid-template-columns:82px 52px !important;
  justify-content:start !important;
  align-items:center !important;
  column-gap:8px !important;
  padding:0 52px 0 0 !important;
  border:0 !important;
  font-variant-numeric:tabular-nums !important;
}
.iehojo-diagnosis__visual-card--today > div + div { margin-top:2px !important; }
.iehojo-diagnosis__visual-card--today > div span {
  display:block !important;
  width:82px !important;
  color:#607A7D !important;
  font-size:10.6px !important;
  line-height:1.25 !important;
  font-weight:700 !important;
  white-space:nowrap !important;
}
.iehojo-diagnosis__visual-card--today > div strong {
  display:block !important;
  width:52px !important;
  color:#0D4B5B !important;
  font-size:14.6px !important;
  line-height:1.08 !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}
.iehojo-diagnosis__today-map {
  position:absolute !important;
  right:4px !important;
  bottom:10px !important;
  width:50px !important;
  height:76px !important;
  object-fit:contain !important;
  object-position:center !important;
}
.iehojo-diagnosis__chat {
  position:relative !important;
  min-width:0 !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  padding:26px 26px 34px !important;
  background:#FBFCFB !important;
  background-image:none !important;
}
.iehojo-diagnosis__mobile-intro { display:none !important; }

/* Choice surfaces use the same Rihojo contrast / feedback. */
.iehojo-diagnosis .iehojo-diagnosis__choice,
.iehojo-diagnosis .iehojo-diagnosis__region-choice,
.iehojo-diagnosis .iehojo-diagnosis__municipality-choice {
  border:1.5px solid #9EC5BA !important;
  background:linear-gradient(180deg,#FFFFFF 0%,#F8FCFA 100%) !important;
  box-shadow:0 2px 5px rgba(14,74,85,.065) !important;
  color:#173F4E !important;
}
.iehojo-diagnosis .iehojo-diagnosis__choice:hover,
.iehojo-diagnosis .iehojo-diagnosis__region-choice:hover,
.iehojo-diagnosis .iehojo-diagnosis__municipality-choice:hover,
.iehojo-diagnosis .iehojo-diagnosis__choice:focus-visible,
.iehojo-diagnosis .iehojo-diagnosis__region-choice:focus-visible,
.iehojo-diagnosis .iehojo-diagnosis__municipality-choice:focus-visible {
  border-color:#43A985 !important;
  background:#F0FAF6 !important;
  box-shadow:0 3px 8px rgba(21,150,91,.12) !important;
}

@media (max-width:767px) {
  /* Search: same compact four-step strip as Rihojo. */
  .iehojo-search-modal__header,
  .iehojo-search-modal__progress,
  .iehojo-search-modal__body,
  .iehojo-search-modal__footer {
    padding-left:14px !important;
    padding-right:14px !important;
  }
  .iehojo-search-modal__header {
    min-height:72px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }
  .iehojo-search-modal__header h2 { font-size:18px !important; }
  .iehojo-search-modal__close {
    min-width:54px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 9px !important;
  }
  .iehojo-search-modal__close b { font-size:18px !important; }
  .iehojo-search-modal__close span { font-size:10px !important; }
  .iehojo-search-modal__progress {
    padding-top:12px !important;
    padding-bottom:11px !important;
  }
  .iehojo-search-modal__progress li {
    grid-template-columns:28px minmax(0,1fr) !important;
    gap:5px !important;
    padding-right:5px !important;
  }
  .iehojo-search-modal__progress li:not(:last-child)::after {
    top:14px !important;
    left:25px !important;
    right:-1px !important;
  }
  .iehojo-search-modal__progress li > span {
    width:28px !important;
    height:28px !important;
    font-size:11px !important;
  }
  .iehojo-search-modal__progress li > div { padding-inline:2px !important; }
  .iehojo-search-modal__progress li strong { font-size:10px !important; }
  .iehojo-search-modal__progress li small { font-size:8.5px !important; }
  .iehojo-search-modal__body {
    padding-top:20px !important;
    padding-bottom:26px !important;
  }
  .iehojo-search-modal__footer {
    min-height:62px !important;
    padding-top:8px !important;
    padding-bottom:8px !important;
  }
  .iehojo-search-modal__prev,
  .iehojo-search-modal__submit {
    min-height:42px !important;
    padding-inline:13px !important;
    font-size:10px !important;
  }

  /* Diagnosis: Rihojo mobile header, phase strip, one-column conversation. */
  .iehojo-diagnosis__frame {
    width:100% !important;
    max-width:none !important;
    grid-template-rows:84px minmax(0,1fr) !important;
    border:0 !important;
    background:#EEF9F6 !important;
  }
  .iehojo-diagnosis__header {
    min-height:84px !important;
    height:84px !important;
    padding:5px 9px 0 !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:6px !important;
    align-items:start !important;
    background:#fff !important;
  }
  .iehojo-diagnosis__title {
    min-height:34px !important;
    gap:0 !important;
    align-items:center !important;
  }
  .iehojo-diagnosis__title > img {
    width:79px !important;
    max-width:79px !important;
    max-height:none !important;
  }
  .iehojo-diagnosis__title > strong { display:none !important; }
  .iehojo-diagnosis__header-actions {
    min-height:34px !important;
    gap:4px !important;
    align-items:center !important;
  }
  .iehojo-diagnosis__reset,
  .iehojo-diagnosis__close {
    display:inline-flex !important;
    width:auto !important;
    min-width:0 !important;
    height:30px !important;
    min-height:30px !important;
    padding:0 6px !important;
    border:1px solid #BFD2CB !important;
    border-radius:6px !important;
    background:#fff !important;
    color:#0E4A55 !important;
    font-size:9px !important;
  }
  .iehojo-diagnosis__reset span { display:inline !important; }
  .iehojo-diagnosis__reset span:first-child { font-size:15px !important; }
  .iehojo-diagnosis__close b { font-size:17px !important; }
  .iehojo-diagnosis__close span { display:inline !important; font-size:9px !important; }
  .iehojo-diagnosis__steps {
    position:absolute !important;
    left:10px !important;
    right:10px !important;
    top:44px !important;
    height:34px !important;
    justify-content:flex-start !important;
    gap:10px !important;
    overflow:visible !important;
    background:#fff !important;
  }
  .iehojo-diagnosis__steps li {
    min-width:24px !important;
    width:auto !important;
    gap:5px !important;
    font-size:10.5px !important;
  }
  .iehojo-diagnosis__steps li span {
    display:inline !important;
    font-size:10.5px !important;
  }
  .iehojo-diagnosis__steps b {
    width:23px !important;
    height:23px !important;
    flex-basis:23px !important;
    font-size:10.5px !important;
  }
  .iehojo-diagnosis__steps li:not(:last-child)::after {
    left:calc(100% + 2px) !important;
    width:7px !important;
  }
  /* Rihojo does not duplicate the secondary 1/8 bar on mobile. */
  .iehojo-diagnosis__progress { display:none !important; }
  .iehojo-diagnosis__content {
    width:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    display:block !important;
    overflow:hidden !important;
    background:#EEF9F6 !important;
  }
  .iehojo-diagnosis__visual { display:none !important; }
  .iehojo-diagnosis__chat {
    width:100% !important;
    min-width:0 !important;
    height:100% !important;
    min-height:0 !important;
    overflow-y:auto !important;
    padding:8px 8px 22px !important;
    background:#EEF9F6 !important;
  }

  /* Reset old generic mobile-intro rules before applying the Rihojo layout. */
  .iehojo-diagnosis__mobile-intro,
  .iehojo-diagnosis__mobile-intro * { box-sizing:border-box !important; }
  .iehojo-diagnosis__mobile-intro div {
    position:static !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:inherit !important;
    font-size:inherit !important;
    line-height:inherit !important;
  }
  .iehojo-diagnosis__mobile-intro {
    position:relative !important;
    width:100% !important;
    min-height:132px !important;
    margin:0 0 10px !important;
    padding:8px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 144px !important;
    gap:8px !important;
    align-items:end !important;
    border:1px solid #D8E8E3 !important;
    border-radius:10px !important;
    background:linear-gradient(180deg,#E2F8F4 0%,#ECF9F6 100%) !important;
    box-shadow:none !important;
  }
  .iehojo-diagnosis__mobile-intro-visual {
    position:relative !important;
    display:block !important;
    min-height:116px !important;
    height:116px !important;
    overflow:visible !important;
  }
  .iehojo-diagnosis__mobile-intro-visual > img {
    position:absolute !important;
    left:1px !important;
    bottom:0 !important;
    width:102px !important;
    height:112px !important;
    max-width:none !important;
    object-fit:contain !important;
    object-position:left bottom !important;
  }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    position:absolute !important;
    top:5px !important;
    left:104px !important;
    right:auto !important;
    width:104px !important;
    padding:7px 6px !important;
    border:1px solid #DCE9E5 !important;
    border-radius:15px !important;
    background:#fff !important;
    color:#174654 !important;
    text-align:center !important;
    font-size:8px !important;
    line-height:1.38 !important;
    font-weight:900 !important;
    box-shadow:0 3px 8px rgba(14,74,85,.05) !important;
    z-index:2 !important;
  }
  .iehojo-diagnosis__mobile-intro-bubble::before {
    content:"" !important;
    position:absolute !important;
    left:-7px !important;
    bottom:15px !important;
    border:7px solid transparent !important;
    border-right-color:#DCE9E5 !important;
    border-left:0 !important;
  }
  .iehojo-diagnosis__mobile-intro-bubble::after {
    content:"" !important;
    position:absolute !important;
    left:-6px !important;
    bottom:16px !important;
    border:6px solid transparent !important;
    border-right-color:#fff !important;
    border-left:0 !important;
  }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-stats {
    position:relative !important;
    min-width:0 !important;
    min-height:116px !important;
    padding:9px 8px 8px !important;
    display:grid !important;
    align-content:start !important;
    gap:5px !important;
    border:1px solid #DCE9E5 !important;
    border-radius:11px !important;
    background:#fff !important;
    box-shadow:0 3px 8px rgba(14,74,85,.05) !important;
  }
  .iehojo-diagnosis__mobile-intro-stats > strong {
    display:block !important;
    margin:0 0 5px !important;
    padding:0 0 5px !important;
    border-bottom:1px solid #DCE6E3 !important;
    color:#123F4E !important;
    font-size:12.5px !important;
    line-height:1.2 !important;
    font-weight:900 !important;
  }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-stats-body {
    min-width:0 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 50px !important;
    gap:5px !important;
    align-items:center !important;
  }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-stats-list {
    min-width:0 !important;
    display:grid !important;
    gap:4px !important;
  }
  .iehojo-diagnosis__mobile-intro-stats-list span {
    min-width:0 !important;
    display:grid !important;
    gap:1px !important;
    line-height:1.08 !important;
  }
  .iehojo-diagnosis__mobile-intro-stats-list small {
    display:block !important;
    overflow:visible !important;
    color:#5D777B !important;
    font-size:9.8px !important;
    line-height:1.15 !important;
    font-weight:750 !important;
    white-space:nowrap !important;
  }
  .iehojo-diagnosis__mobile-intro-stats-list b {
    display:block !important;
    color:#0E4A59 !important;
    font-size:13.5px !important;
    line-height:1.05 !important;
    font-weight:900 !important;
    font-variant-numeric:tabular-nums !important;
    white-space:nowrap !important;
  }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-map {
    width:50px !important;
    height:70px !important;
    max-width:none !important;
    display:block !important;
    justify-self:center !important;
    align-self:center !important;
    object-fit:contain !important;
    object-position:center !important;
  }

  /* Keep conversation proportions close to Rihojo's mobile modal. */
  .iehojo-chat-row { gap:5px !important; margin-bottom:9px !important; }
  .iehojo-chat-avatar,
  .iehojo-chat-avatar img {
    width:34px !important;
    height:34px !important;
    flex-basis:34px !important;
  }
  .iehojo-chat-message {
    max-width:min(76%,280px) !important;
    padding:8px 9px !important;
    border-radius:5px 11px 11px 11px !important;
  }
  .iehojo-chat-message p { font-size:10.2px !important; line-height:1.48 !important; }
  .iehojo-chat-row--user .iehojo-chat-message { max-width:68% !important; }
  .iehojo-diagnosis__answer {
    width:calc(100% - 39px) !important;
    max-width:calc(100% - 39px) !important;
    margin:-2px 0 13px 39px !important;
  }
}

@media (max-width:420px) {
  .iehojo-search-modal__progress li {
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:4px !important;
    padding-right:0 !important;
    text-align:center !important;
  }
  .iehojo-search-modal__progress li:not(:last-child)::after {
    top:14px !important;
    left:50% !important;
    right:-50% !important;
  }
  .iehojo-search-modal__progress li > div {
    width:100% !important;
    padding-inline:1px !important;
    background:transparent !important;
  }
  .iehojo-search-modal__progress li strong { font-size:9px !important; }
  .iehojo-search-modal__progress li small {
    font-size:7.5px !important;
    white-space:normal !important;
    line-height:1.2 !important;
  }
}

@media (max-width:380px) {
  .iehojo-diagnosis__title > img {
    width:74px !important;
    max-width:74px !important;
  }
  .iehojo-diagnosis__steps { gap:8px !important; }
  .iehojo-diagnosis__steps li span { font-size:10px !important; }
  .iehojo-diagnosis__reset,
  .iehojo-diagnosis__close { padding-inline:5px !important; font-size:8.5px !important; }
  .iehojo-diagnosis__mobile-intro {
    grid-template-columns:minmax(0,1fr) 138px !important;
    gap:6px !important;
  }
  .iehojo-diagnosis__mobile-intro-visual > img {
    width:94px !important;
    height:104px !important;
  }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    left:96px !important;
    width:98px !important;
    font-size:7.7px !important;
  }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-stats {
    padding-inline:7px !important;
  }
  .iehojo-diagnosis__mobile-intro-stats > strong { font-size:12px !important; }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-stats-body {
    grid-template-columns:minmax(0,1fr) 47px !important;
    gap:3px !important;
  }
  .iehojo-diagnosis__mobile-intro-stats-list small { font-size:9.4px !important; }
  .iehojo-diagnosis__mobile-intro-stats-list b { font-size:13px !important; }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-map {
    width:47px !important;
    height:67px !important;
  }
}

/* v0.1.31 final typography lock: use the later Rihojo v0.2.49 diagnosis
 * readability pass, not the older compact prototype sizes. */
.iehojo-diagnosis__reset { font-size:12.5px !important; padding-inline:11px !important; }
.iehojo-diagnosis__close { min-width:72px !important; padding:0 9px 0 10px !important; gap:4px !important; font-size:12.5px !important; }
.iehojo-diagnosis__close span { font-size:12.5px !important; font-weight:850 !important; }
.iehojo-diagnosis__progress small { font-size:11px !important; }
.iehojo-diagnosis__visual-bubble { font-size:13px !important; line-height:1.52 !important; }
.iehojo-diagnosis .iehojo-chat-message p { font-size:15px !important; line-height:1.68 !important; }
.iehojo-diagnosis .iehojo-diagnosis__choice { font-size:14px !important; line-height:1.45 !important; }
.iehojo-diagnosis .iehojo-diagnosis__region-choice strong { font-size:13.5px !important; }
.iehojo-diagnosis .iehojo-diagnosis__prefecture-bar button { font-size:12px !important; }
.iehojo-diagnosis .iehojo-diagnosis__prefecture-bar strong { font-size:13.5px !important; }
.iehojo-diagnosis .iehojo-diagnosis__municipality-status,
.iehojo-diagnosis .iehojo-diagnosis__municipality-empty { font-size:14px !important; line-height:1.6 !important; }
.iehojo-diagnosis .iehojo-diagnosis__kana-nav button, .iehojo-diagnosis .iehojo-diagnosis__kana-nav a { font-size:13px !important; }
.iehojo-diagnosis .iehojo-diagnosis__municipality-group h4 { font-size:13.5px !important; }
.iehojo-diagnosis .iehojo-diagnosis__municipality-choice span { font-size:14px !important; }
.iehojo-diagnosis .iehojo-diagnosis__municipality-choice small { font-size:11.5px !important; }

@media (max-width:767px) {
  .iehojo-diagnosis__reset,
  .iehojo-diagnosis__close {
    min-height:32px !important;
    height:32px !important;
  }
  .iehojo-diagnosis__reset { padding:0 8px !important; font-size:11.5px !important; }
  .iehojo-diagnosis__close { min-width:66px !important; padding:0 7px !important; gap:3px !important; }
  .iehojo-diagnosis__close span { font-size:11.5px !important; }
  .iehojo-diagnosis__close b { font-size:17px !important; }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    font-size:10.5px !important;
    line-height:1.46 !important;
  }
  .iehojo-diagnosis .iehojo-chat-message {
    padding:10px 11px !important;
  }
  .iehojo-diagnosis .iehojo-chat-message p {
    font-size:14px !important;
    line-height:1.62 !important;
  }
  .iehojo-diagnosis .iehojo-diagnosis__choice {
    min-height:50px !important;
    padding:9px 10px !important;
    font-size:13px !important;
    line-height:1.42 !important;
  }
  .iehojo-diagnosis .iehojo-diagnosis__region-choice {
    min-height:44px !important;
    padding:7px 9px !important;
  }
  .iehojo-diagnosis .iehojo-diagnosis__region-choice strong { font-size:12.5px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__prefecture-bar button { font-size:11.5px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__prefecture-bar strong { font-size:12.5px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__municipality-status,
  .iehojo-diagnosis .iehojo-diagnosis__municipality-empty { font-size:13px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__kana-nav button, .iehojo-diagnosis .iehojo-diagnosis__kana-nav a { font-size:12px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__municipality-group h4 { font-size:12.5px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__municipality-choice span { font-size:13px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__municipality-choice small { font-size:10.5px !important; }
}
@media (max-width:380px) {
  .iehojo-diagnosis__steps li,
  .iehojo-diagnosis__steps li span { font-size:9.5px !important; }
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble { font-size:10px !important; }
  .iehojo-diagnosis .iehojo-chat-message p { font-size:13.5px !important; }
  .iehojo-diagnosis .iehojo-diagnosis__choice { font-size:12.5px !important; }
}

/* ======================================================================
 * v0.1.32 - diagnosis viewport lock / mobile labeled close / Rihojo notify
 * ====================================================================== */

/* Diagnosis: force the very first render to occupy the full viewport too.
 * `height:100%` could resolve before the fixed dialog had a stable used
 * height on the first opening. Match Rihojo's explicit 100dvh frame. */
.iehojo-site .iehojo-diagnosis.iehojo-modal,
.iehojo-site .iehojo-diagnosis.iehojo-modal.is-open {
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  min-width:100vw !important;
  height:100vh !important;
  min-height:100vh !important;
  height:100dvh !important;
  min-height:100dvh !important;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden !important;
}
.iehojo-site .iehojo-diagnosis .iehojo-modal__dialog {
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  max-width:100vw !important;
  height:100vh !important;
  min-height:100vh !important;
  max-height:100vh !important;
  height:100dvh !important;
  min-height:100dvh !important;
  max-height:100dvh !important;
  margin:0 !important;
}
.iehojo-site .iehojo-diagnosis__frame {
  width:min(100%,1120px) !important;
  max-width:1120px !important;
  height:100vh !important;
  min-height:100vh !important;
  max-height:100vh !important;
  height:100dvh !important;
  min-height:100dvh !important;
  max-height:100dvh !important;
  margin:0 auto !important;
  align-self:stretch !important;
  grid-template-rows:62px 20px minmax(0,1fr) !important;
}
.iehojo-site .iehojo-diagnosis__content {
  min-height:0 !important;
  height:auto !important;
  align-self:stretch !important;
}

/* Mobile diagnosis: explicitly defeat older high-specificity rules that hid
 * the text span. The requested control is always `× 閉じる`. */
@media (max-width:767px) {
  .iehojo-site .iehojo-diagnosis__close,
  .iehojo-site .iehojo-diagnosis__close:last-child {
    width:auto !important;
    min-width:66px !important;
    height:32px !important;
    min-height:32px !important;
    padding:0 7px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
  }
  .iehojo-site .iehojo-diagnosis__close span,
  .iehojo-site .iehojo-diagnosis__close span:last-child {
    display:inline !important;
    visibility:visible !important;
    opacity:1 !important;
    font-size:11.5px !important;
    font-weight:850 !important;
    white-space:nowrap !important;
  }
  .iehojo-site .iehojo-diagnosis__close b {
    display:inline-block !important;
    font-size:17px !important;
    line-height:1 !important;
  }
  .iehojo-site .iehojo-diagnosis__frame {
    width:100vw !important;
    max-width:100vw !important;
    margin:0 !important;
    border:0 !important;
    grid-template-rows:58px 20px minmax(0,1fr) !important;
  }
}

/* Rihojo v0.2.49 notification strip, transplanted 1:1 in composition. */
.home .iehojo-rich-notify {
  position:relative !important;
  min-height:126px !important;
  overflow:hidden !important;
  background:linear-gradient(90deg,#075665,#0A7180) !important;
  color:#fff !important;
}
.home .iehojo-rich-notify > img {
  position:absolute !important;
  inset:auto 0 -18px 0 !important;
  width:100% !important;
  height:125px !important;
  object-fit:cover !important;
  object-position:center bottom !important;
  opacity:.32 !important;
  filter:none !important;
  pointer-events:none !important;
}
.home .iehojo-rich-notify__inner {
  position:relative !important;
  z-index:1 !important;
  min-height:126px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:30px !important;
}
.home .iehojo-rich-notify__inner > div {
  min-width:0 !important;
  display:grid !important;
  gap:5px !important;
}
.home .iehojo-rich-notify strong {
  display:block !important;
  margin:0 !important;
  color:#fff !important;
  font-size:20px !important;
  line-height:1.35 !important;
  font-weight:900 !important;
}
.home .iehojo-rich-notify span {
  display:block !important;
  margin:0 !important;
  color:rgba(255,255,255,.76) !important;
  font-size:12px !important;
  line-height:1.5 !important;
}
.home .iehojo-rich-notify__inner > button {
  flex:0 0 auto !important;
  min-width:190px !important;
  height:46px !important;
  min-height:46px !important;
  padding:0 18px !important;
  border:0 !important;
  border-radius:10px !important;
  background:#fff !important;
  color:#0A5360 !important;
  font-size:11.5px !important;
  line-height:1 !important;
  font-weight:900 !important;
  opacity:1 !important;
  cursor:default !important;
}
@media (max-width:700px) {
  .home .iehojo-rich-notify {
    min-height:94px !important;
    background:#075968 !important;
  }
  .home .iehojo-rich-notify > img {
    left:0 !important;
    right:0 !important;
    bottom:-5px !important;
    height:86px !important;
    opacity:.92 !important;
    object-fit:contain !important;
    object-position:center bottom !important;
  }
  .home .iehojo-rich-notify__inner {
    min-height:94px !important;
    padding-top:12px !important;
    padding-bottom:12px !important;
    flex-direction:column !important;
    justify-content:center !important;
    text-align:center !important;
    gap:9px !important;
  }
  .home .iehojo-rich-notify strong {
    font-size:17px !important;
    line-height:1.3 !important;
  }
  .home .iehojo-rich-notify span {
    font-size:10.5px !important;
    line-height:1.45 !important;
  }
  .home .iehojo-rich-notify__inner > button {
    min-width:170px !important;
    height:39px !important;
    min-height:39px !important;
    font-size:9.5px !important;
  }
}


/* v0.1.33 - front-facing Ietasu hero artwork + current WordPress theme preview. */


/* ======================================================================
 * v0.1.34 - Hero background B
 * Richer sky/greenery background while keeping all copy, CTAs and Ietasu
 * as separate HTML/image layers. No text or character is baked into BG.
 * ====================================================================== */
.home .iehojo-rich-hero {
  background:#bfeafb;
}
.home .iehojo-rich-hero::after {
  background:linear-gradient(90deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.10) 38%,rgba(255,255,255,.018) 70%,rgba(255,255,255,0) 100%);
}
.home .iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
  object-position:center center;
}
@media (max-width:767px) {
  .home .iehojo-rich-hero::after {
    background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.06) 44%,rgba(255,255,255,0) 100%);
  }
  .home .iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
    object-position:center center;
  }
}

/* ======================================================================
 * v0.1.35 - live first-view balance correction
 * - Remove the filled mobile hamburger button background.
 * - Restore the diagnosis micro-copy on mobile hero CTA.
 * - Eliminate any 1px seam at the very top of the hero artwork.
 * - Keep the desktop H1 as two deliberate, balanced lines.
 * ====================================================================== */

/* Mobile hamburger: icon only, no white tile/background. */
@media (max-width:767px) {
  .iehojo-menu-toggle {
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  .iehojo-menu-toggle:focus-visible {
    outline:2px solid rgba(23,52,93,.55);
    outline-offset:2px;
  }

  /* The markup already contains this copy; previous mobile tuning hid it. */
  .home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__copy small {
    display:block !important;
    margin:0 0 2px !important;
    color:#65766d !important;
    font-size:7.2px !important;
    line-height:1.05 !important;
    font-weight:800 !important;
    white-space:nowrap !important;
  }
  .home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__copy strong {
    margin-top:0 !important;
  }
}

/* Prevent a hairline seam between the viewport top and the hero artwork. */
body.home:not(.admin-bar) {
  margin-top:0 !important;
  padding-top:0 !important;
}
.home .iehojo-header,
.home .iehojo-rich-hero {
  margin-top:0 !important;
  border-top:0 !important;
}
.home .iehojo-rich-hero__town-picture {
  top:-1px !important;
  bottom:0 !important;
}

/* Desktop H1: exactly two visual lines, matching the intentional <br>. */
@media (min-width:1100px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) minmax(270px,295px) minmax(220px,240px);
    gap:14px;
  }
  .home .iehojo-rich-hero h1 {
    max-width:none !important;
    font-size:clamp(46px,2.75vw,50px) !important;
    line-height:1.16 !important;
    letter-spacing:-.045em !important;
    white-space:nowrap !important;
  }
}

@media (max-width:1099px) {
  .home .iehojo-rich-hero h1 {
    white-space:normal !important;
  }
}

/* ======================================================================
 * v0.1.36 - mobile-only clean hero background
 * The new mobile artwork contains scenery only (sky / town / greenery).
 * All logo, copy, CTA, Ietasu and cards remain separate DOM layers.
 * ====================================================================== */
@media (max-width:767px) {
  .home .iehojo-rich-hero__town-picture .iehojo-rich-hero__town {
    object-fit:cover;
    object-position:center center;
  }
}


/* ======================================================================
 * v0.1.37 - Hero "今日の更新" Rihojo v0.2.49 size parity
 * The top-page Today panel now uses the same measured PC/mobile geometry
 * as the approved Rihojo v0.2.49 Hero panel. Data logic is unchanged.
 * ====================================================================== */
@media (min-width:1100px) {
  .home .iehojo-rich-hero .iehojo-rich-today {
    width:236px !important;
    max-width:236px !important;
    min-height:184px !important;
    padding:15px 15px 14px !important;
    border-radius:16px !important;
    box-shadow:0 11px 24px rgba(14,74,85,.13) !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head {
    margin:0 0 9px !important;
    padding:0 0 8px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head span {
    font-size:14px !important;
    line-height:1.2 !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head small {
    font-size:9px !important;
    line-height:1.2 !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__body {
    grid-template-columns:minmax(0,1fr) 78px !important;
    gap:7px !important;
    align-items:center !important;
    margin-top:0 !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:7px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list > div {
    display:grid !important;
    grid-template-columns:31px minmax(0,1fr) !important;
    column-gap:7px !important;
    align-items:center !important;
    min-width:0 !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list img {
    width:27px !important;
    height:27px !important;
    padding:2px !important;
    border-radius:50% !important;
    background:#FFF1CC !important;
    box-sizing:content-box !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list p {
    min-width:0 !important;
    display:grid !important;
    gap:1px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list small {
    font-size:9.5px !important;
    line-height:1.2 !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list strong {
    font-size:15px !important;
    line-height:1.1 !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__map {
    width:78px !important;
    height:118px !important;
    object-fit:contain !important;
    margin:0 !important;
  }
}

@media (max-width:600px) {
  .home .iehojo-rich-hero .iehojo-rich-today {
    width:100% !important;
    max-width:196px !important;
    min-height:142px !important;
    margin:0 0 7px auto !important;
    padding:10px 9px 9px !important;
    border-radius:12px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head {
    margin:0 0 7px !important;
    padding:0 0 6px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head span {
    font-size:12.5px !important;
    line-height:1.2 !important;
    letter-spacing:.01em !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head small {
    display:none !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__body {
    grid-template-columns:minmax(106px,1fr) 60px !important;
    column-gap:3px !important;
    align-items:center !important;
    margin-top:0 !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:5px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list > div {
    display:grid !important;
    grid-template-columns:30px minmax(0,1fr) !important;
    column-gap:6px !important;
    min-height:29px !important;
    align-items:center !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list img {
    width:22px !important;
    height:22px !important;
    padding:3px !important;
    border-radius:50% !important;
    background:#FFF1CC !important;
    box-sizing:content-box !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list p {
    min-width:0 !important;
    display:grid !important;
    gap:1px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list small {
    font-size:9.2px !important;
    line-height:1.16 !important;
    font-weight:750 !important;
    white-space:nowrap !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list strong {
    font-size:14.5px !important;
    line-height:1.08 !important;
    font-weight:900 !important;
    white-space:nowrap !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__map {
    display:block !important;
    width:58px !important;
    height:82px !important;
    max-width:100% !important;
    justify-self:center !important;
    margin:0 !important;
    object-fit:contain !important;
    transform:translateX(-9px) !important;
  }
}

@media (max-width:380px) {
  .home .iehojo-rich-hero .iehojo-rich-today {
    max-width:190px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__body {
    grid-template-columns:minmax(101px,1fr) 57px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list small {
    font-size:9px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list strong {
    font-size:14px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__map {
    width:55px !important;
    height:78px !important;
    transform:translateX(-8px) !important;
  }
}

/* =========================================================
 * v0.1.38 - Rihojo-parity desktop inline diagnosis
 * - remove the redundant browse launcher below 4STEP
 * - run desktop diagnosis directly inside the right rail
 * ======================================================= */
@media (min-width:901px) {
  .home .iehojo-rich-side {
    gap:0;
  }
  .home .iehojo-rich-side-diagnosis {
    min-height:560px;
    border:1px solid #dde9e4;
    border-radius:15px;
    background:#f8fbf4;
    overflow:hidden;
    box-shadow:0 8px 20px rgba(14,74,85,.065);
  }
  .home .iehojo-rich-side-diagnosis > header {
    min-height:45px;
    padding:0 15px;
    background:linear-gradient(90deg,#168a5b,#10a363);
  }
  .home .iehojo-rich-side-diagnosis > header span {
    font-size:14px;
    font-weight:900;
  }
  .home .iehojo-rich-side-diagnosis > header button {
    border:0;
    background:rgba(255,255,255,.16);
    color:#fff;
    border-radius:999px;
    padding:5px 10px;
    font-size:9px;
    line-height:1.2;
    font-weight:800;
    cursor:pointer;
  }
  .home .iehojo-rich-side-chat {
    display:grid;
    gap:10px;
    align-content:start;
    min-height:500px;
    max-height:610px;
    overflow:auto;
    padding:14px 13px 12px;
    scroll-behavior:smooth;
    scrollbar-width:thin;
  }
  .home .iehojo-rich-side-inline-row {
    display:flex;
    gap:8px;
    align-items:flex-start;
  }
  .home .iehojo-rich-side-inline-row.is-user {
    justify-content:flex-end;
  }
  .home .iehojo-rich-side-inline-avatar {
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:visible;
    background:transparent;
  }
  .home .iehojo-rich-side-inline-avatar img {
    display:block;
    width:42px;
    height:42px;
    object-fit:contain;
    object-position:center;
  }
  .home .iehojo-rich-side-inline-bubble {
    max-width:calc(100% - 50px);
    padding:9px 10px;
    border:1px solid #e0e9e7;
    border-radius:13px;
    background:#fff;
    color:#294b57;
    box-shadow:0 3px 8px rgba(14,74,85,.04);
    font-size:10.5px;
    line-height:1.55;
    font-weight:700;
  }
  .home .iehojo-rich-side-inline-row.is-user .iehojo-rich-side-inline-bubble {
    margin-left:42px;
    border-color:#075567;
    border-radius:14px 14px 3px 14px;
    background:#075567;
    color:#fff;
  }
  .home .iehojo-rich-side-inline-controls {
    width:calc(100% - 50px);
    margin:-5px 0 4px 50px;
    padding:0;
    background:transparent;
  }
  .home .iehojo-rich-side-inline-choice-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .home .iehojo-rich-side-inline-choice,
  .home .iehojo-rich-side-inline-undecided,
  .home .iehojo-rich-side-inline-back {
    min-width:0;
    min-height:38px;
    border:1px solid #dde8e6;
    border-radius:8px;
    background:#fff;
    color:#234a57;
    padding:6px;
    font-size:9.5px;
    line-height:1.35;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 2px 6px rgba(14,74,85,.03);
  }
  .home .iehojo-rich-side-inline-choice:hover,
  .home .iehojo-rich-side-inline-choice:focus-visible,
  .home .iehojo-rich-side-inline-undecided:hover,
  .home .iehojo-rich-side-inline-undecided:focus-visible {
    border-color:#f2a100;
    box-shadow:0 0 0 2px rgba(242,161,0,.12);
  }
  .home .iehojo-rich-side-inline-back,
  .home .iehojo-rich-side-inline-undecided {
    width:100%;
    margin-bottom:6px;
    background:#f4f8f7;
  }
  .home .iehojo-rich-side-inline-municipalities {
    display:grid;
    gap:8px;
    max-height:260px;
    overflow:auto;
    padding:8px;
    border:1px solid #e2ebe9;
    border-radius:10px;
    background:#fff;
  }
  .home .iehojo-rich-side-inline-municipalities section {
    display:grid;
    gap:5px;
  }
  .home .iehojo-rich-side-inline-municipalities section > strong {
    color:#168a5b;
    font-size:10px;
  }
  .home .iehojo-rich-side-inline-status {
    margin:6px 0 0;
    color:#70848b;
    font-size:9px;
    line-height:1.5;
  }
  .home .iehojo-rich-side-inline-typing span {
    display:flex;
    gap:3px;
    align-items:center;
    min-height:12px;
  }
  .home .iehojo-rich-side-inline-typing i {
    width:5px;
    height:5px;
    border-radius:50%;
    background:#8fb7a0;
    animation:iehojo-inline-dot 1s infinite ease-in-out;
  }
  .home .iehojo-rich-side-inline-typing i:nth-child(2) { animation-delay:.15s; }
  .home .iehojo-rich-side-inline-typing i:nth-child(3) { animation-delay:.3s; }
  .home .iehojo-rich-side-inline-summary {
    margin:0 0 6px 50px;
    width:calc(100% - 50px);
    overflow:hidden;
    border:1px solid #dce7e4;
    border-radius:10px;
    background:#fff;
  }
  .home .iehojo-rich-side-inline-summary div {
    display:grid;
    grid-template-columns:50px minmax(0,1fr);
    gap:5px;
    padding:6px 8px;
    font-size:8.5px;
    line-height:1.4;
  }
  .home .iehojo-rich-side-inline-summary div + div { border-top:1px solid #edf2f0; }
  .home .iehojo-rich-side-inline-summary strong { color:#51717a; }
  .home .iehojo-rich-side-inline-summary span { color:#163e4d; font-weight:800; }
  .home .iehojo-rich-side-inline-finish {
    width:100%;
    min-height:44px;
    border:0;
    border-radius:8px;
    background:#17345d;
    color:#fff;
    padding:7px 9px;
    font-size:9.5px;
    line-height:1.35;
    font-weight:900;
    cursor:pointer;
  }
  .home .iehojo-rich-side-inline-finish:disabled { opacity:.65; cursor:default; }
  .home .iehojo-rich-side-dots {
    padding:0 0 14px;
    gap:6px;
  }
  .home .iehojo-rich-side-dots i {
    width:7px;
    height:7px;
    background:#b8d5c1;
  }
  .home .iehojo-rich-side-dots i.is-active { background:#1a9b64; }
}

@keyframes iehojo-inline-dot {
  0%,80%,100% { transform:translateY(0); opacity:.45; }
  40% { transform:translateY(-3px); opacity:1; }
}

/* =========================================================
 * v0.1.39 - Rihojo-parity inline diagnosis viewport movement
 * - keep the desktop rail compact rather than expanding on answer
 * - hide outgoing controls during the 360ms typing beat
 * - after each answer, place the newest Ietasu question at the
 *   same settled top position used by Rihojo v0.2.49
 * ======================================================= */
@media (min-width:901px) {
  .home .iehojo-rich-side-diagnosis {
    min-height:0 !important;
  }
  .home .iehojo-rich-side-chat {
    min-height:0 !important;
    max-height:590px !important;
    padding-bottom:4px !important;
  }
  .home .iehojo-rich-side-chat.is-iehojo-viewport-locked {
    overflow-y:auto !important;
    overscroll-behavior:contain;
  }
  .home .iehojo-rich-side-inline-controls.is-transitioning {
    visibility:hidden !important;
    pointer-events:none !important;
  }
  .home .iehojo-rich-side-dots {
    padding-bottom:8px !important;
  }
}


/* ======================================================================
 * v0.1.40 - mobile diagnosis content restoration
 * Regression cause: v0.1.32 reintroduced a three-row 58px/20px/content
 * frame on mobile even though the Rihojo-style mobile progress banner is
 * hidden and the diagnosis header itself is 84px high. That made the
 * content row start underneath the 84px header / five-step strip.
 * Rihojo v0.2.49 final mobile layout uses exactly two rows:
 *   84px header (including phase flow) + remaining chat content.
 * ====================================================================== */
@media (max-width:767px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__frame {
    width:100vw !important;
    max-width:100vw !important;
    height:100vh !important;
    min-height:100vh !important;
    max-height:100vh !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    margin:0 !important;
    grid-template-rows:84px minmax(0,1fr) !important;
    overflow:hidden !important;
    border:0 !important;
  }
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__header {
    grid-row:1 !important;
    min-height:84px !important;
    height:84px !important;
    overflow:visible !important;
  }
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__progress {
    display:none !important;
    height:0 !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    overflow:hidden !important;
  }
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__content {
    grid-row:2 !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:minmax(0,1fr) !important;
    overflow:hidden !important;
  }
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__chat {
    grid-column:1 !important;
    grid-row:1 !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
  }
}


/* ----------------------------------------------------------------------
 * v0.1.41 First-view Ietasu: mascot + speech bubble are a single image.
 * This avoids independent positioning drift between the mascot and tail.
 * ---------------------------------------------------------------------- */
.home .iehojo-rich-hero__character-picture {
  display:block;
  width:min(330px,108%);
  max-width:none;
  line-height:0;
}
.home .iehojo-rich-hero__character-set {
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 16px 18px rgba(37,54,58,.12));
}
.home .iehojo-rich-hero__mascot-wrap {
  overflow:visible;
}
/* Legacy separate elements are no longer rendered, but keep them suppressed
 * if a cached template fragment survives temporarily. */
.home .iehojo-rich-hero__mascot-wrap > .iehojo-rich-hero__bubble,
.home .iehojo-rich-hero__mascot-wrap > .iehojo-rich-hero__mascot {
  display:none !important;
}
@media (max-width:1100px) and (min-width:768px) {
  .home .iehojo-rich-hero__character-picture { width:min(305px,112%); }
}
@media (max-width:767px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(220px,58vw);
    max-width:220px;
    margin:0 auto;
  }
  .home .iehojo-rich-hero__character-set {
    max-height:205px;
    object-fit:contain;
    object-position:center bottom;
  }
}
@media (max-width:390px) {
  .home .iehojo-rich-hero__character-picture { width:min(210px,58vw); }
}

/* v0.1.42 - First-view artwork replaced with the user-approved Ietasu + speech-bubble set. */

/* ======================================================================
 * v0.1.43 - first-view Ietasu artwork split into PC/mobile balanced sets.
 * Both assets reuse the user-approved Ietasu + speech bubble artwork, but
 * are recomposed on dedicated transparent canvases so the visible artwork
 * occupies a stable proportion of each viewport.
 * ====================================================================== */
@media (min-width:768px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(350px,116%) !important;
    max-width:350px !important;
    margin:0 auto !important;
  }
  .home .iehojo-rich-hero__character-set {
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center bottom !important;
  }
}
@media (max-width:767px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(224px,59vw) !important;
    max-width:224px !important;
    margin:0 auto !important;
  }
  .home .iehojo-rich-hero__character-set {
    width:100% !important;
    height:auto !important;
    max-height:213px !important;
    object-fit:contain !important;
    object-position:center bottom !important;
  }
}
@media (max-width:390px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(214px,58vw) !important;
    max-width:214px !important;
  }
}

/* ======================================================================
 * v0.1.44 - first-view Ietasu presence/balance refinement.
 * PC: enlarge approx. 20-25% and nudge slightly up/left so the mascot is
 *     visually stronger than the Today card without changing that card.
 * Mobile: enlarge approx. 10-15% and nudge slightly up/right so the mascot
 *         reads as a co-lead element beside the Today card.
 * ====================================================================== */
@media (min-width:1101px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(430px,142%) !important;
    max-width:430px !important;
    transform:translate(-16px,-14px) !important;
  }
}
@media (min-width:901px) and (max-width:1100px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(390px,132%) !important;
    max-width:390px !important;
    transform:translate(-10px,-10px) !important;
  }
}
@media (min-width:768px) and (max-width:900px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(350px,124%) !important;
    max-width:350px !important;
    transform:translate(-6px,-7px) !important;
  }
}
@media (max-width:767px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(252px,66vw) !important;
    max-width:252px !important;
    transform:translate(8px,-5px) !important;
  }
  .home .iehojo-rich-hero__character-set {
    max-height:238px !important;
  }
}
@media (max-width:390px) {
  .home .iehojo-rich-hero__character-picture {
    width:min(240px,64vw) !important;
    max-width:240px !important;
    transform:translate(7px,-4px) !important;
  }
  .home .iehojo-rich-hero__character-set {
    max-height:228px !important;
  }
}

/* ======================================================================
 * v0.1.49 - Public trust pages (contact / privacy / operator)
 * Rihojo's approved information-page structure adapted to Iehojo branding.
 * ====================================================================== */
.iehojo-static-page .iehojo-header { background:rgba(255,255,255,.98) !important; border-bottom:1px solid rgba(23,52,93,.09) !important; }
.iehojo-static-page .iehojo-static-main,
.iehojo-static-page .iehojo-static-main * { box-sizing:border-box; }
.iehojo-static-main { min-height:60vh; padding:0 0 68px; background:#f6fafb; color:#17345d; }
.iehojo-static-shell { width:min(calc(100% - 40px),1100px); margin:0 auto; }
.iehojo-static-breadcrumb { display:flex; gap:8px; align-items:center; padding-top:18px; color:#72848c; font-size:12px; line-height:1.5; }
.iehojo-static-breadcrumb a { color:#43616d; text-decoration:none; font-weight:800; }
.iehojo-static-hero { padding:46px 0 30px; }
.iehojo-static-kicker { margin:0 0 7px; color:#1498c5; font-size:11px; font-weight:900; letter-spacing:.16em; }
.iehojo-static-hero h1 { margin:0; color:#17345d; font-size:clamp(34px,4vw,48px); line-height:1.3; font-weight:900; letter-spacing:-.025em; }
.iehojo-static-hero > p:last-child { max-width:760px; margin:12px 0 0; color:#536c77; font-size:15px; line-height:1.85; }
.iehojo-static-content { width:min(100%,900px); margin:0 auto; padding:42px 48px; border:1px solid #dce9ee; border-radius:18px; background:#fff; box-shadow:0 10px 30px rgba(23,52,93,.055); }
.iehojo-static-content h2 { margin:42px 0 14px; color:#17345d; font-size:22px; line-height:1.45; }
.iehojo-static-content h2:first-child { margin-top:0; }
.iehojo-static-content p { margin:0 0 15px; color:#49636e; font-size:15px; line-height:1.95; }
.iehojo-static-content a { color:#087fa7; font-weight:800; text-underline-offset:3px; }
.iehojo-static-note { margin:0 0 30px; padding:20px 22px; border:1px solid #cfe4df; border-radius:12px; background:#f3fbf6; }
.iehojo-static-note strong { display:block; color:#167447; font-size:15px; line-height:1.65; }
.iehojo-static-note p { margin:6px 0 0; color:#55716b; font-size:13px; line-height:1.75; }
.iehojo-static-note--important { border-color:#f1d7a3; background:#fff9ec; }
.iehojo-static-note--important strong { color:#855a11; }
.iehojo-contact-form { display:grid; gap:22px; }
.iehojo-form-field { display:grid; gap:8px; }
.iehojo-form-field label { color:#17345d; font-size:14px; font-weight:900; }
.iehojo-form-field label em { margin-left:7px; padding:2px 7px; border-radius:999px; background:#ec7f48; color:#fff; font-size:10px; font-style:normal; }
.iehojo-form-field input,
.iehojo-form-field select,
.iehojo-form-field textarea { width:100%; border:1px solid #bfd2d9; border-radius:9px; background:#fff; color:#253f4a; font:inherit; font-size:15px; line-height:1.5; outline:none; transition:border-color .16s ease,box-shadow .16s ease; }
.iehojo-form-field input,
.iehojo-form-field select { min-height:48px; padding:10px 13px; }
.iehojo-form-field textarea { min-height:190px; padding:13px; resize:vertical; }
.iehojo-form-field input:focus,
.iehojo-form-field select:focus,
.iehojo-form-field textarea:focus { border-color:#1498c5; box-shadow:0 0 0 3px rgba(20,152,197,.12); }
.iehojo-contact-consent { display:flex; gap:10px; align-items:flex-start; color:#49636e; font-size:13px; line-height:1.7; cursor:pointer; }
.iehojo-contact-consent input { width:18px; height:18px; margin-top:2px; accent-color:#159b5b; flex:0 0 auto; }
.iehojo-contact-submit { min-height:54px; border:0; border-radius:10px; background:#17345d; color:#fff; font-size:15px; font-weight:900; cursor:pointer; box-shadow:0 7px 18px rgba(23,52,93,.18); transition:transform .16s ease,background .16s ease; }
.iehojo-contact-submit:hover { background:#102c51; transform:translateY(-1px); }
.iehojo-contact-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.iehojo-form-message { display:grid; gap:4px; margin:0 0 26px; padding:16px 18px; border-radius:10px; font-size:13px; }
.iehojo-form-message strong { font-size:14px; }
.iehojo-form-message--success { border:1px solid #bfe0d0; background:#f1fbf6; color:#0c7049; }
.iehojo-form-message--error { border:1px solid #f0cbc2; background:#fff6f3; color:#9a402f; }
.iehojo-policy-date { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-top:36px; padding-top:22px; border-top:1px solid #e4ecee; color:#71848d; font-size:12px; }
.iehojo-policy-date strong { color:#405c69; }
.iehojo-operation-page { width:min(100%,1000px); }
.iehojo-operation-table-wrap { overflow:hidden; border:1px solid #dce8ed; border-radius:12px; }
.iehojo-operation-table { width:100%; border-collapse:collapse; table-layout:fixed; margin:0; }
.iehojo-operation-table th,
.iehojo-operation-table td { padding:18px 20px; border-bottom:1px solid #e5edef; vertical-align:top; text-align:left; font-size:14px; line-height:1.8; }
.iehojo-operation-table tr:last-child th,
.iehojo-operation-table tr:last-child td { border-bottom:0; }
.iehojo-operation-table th { width:170px; background:#f3f8fa; color:#244b61; font-weight:900; }
.iehojo-operation-table td { color:#49636e; background:#fff; }
.iehojo-operation-contact-note { display:grid; gap:3px; margin-top:14px; padding:12px 14px; border-radius:8px; background:#fff8ea; color:#71521b; font-size:12px; line-height:1.7; }
.iehojo-operation-contact-note b { color:#805713; }
.iehojo-operation-map { margin-top:42px; }
.iehojo-operation-map h2,
.iehojo-operation-area h2 { margin:0 0 8px; color:#17345d; font-size:24px; }
.iehojo-operation-map > div:first-child > p:last-child { margin:0 0 16px; }
.iehojo-operation-map__frame { overflow:hidden; border:1px solid #dce8ed; border-radius:12px; background:#edf4f6; }
.iehojo-operation-map__frame iframe { display:block; width:100%; height:370px; border:0; }
.iehojo-operation-area { margin-top:42px; }
.iehojo-operation-area > p:not(.iehojo-static-kicker) { margin-bottom:10px; }

@media (max-width:767px) {
  .iehojo-static-shell { width:min(calc(100% - 28px),1100px); }
  .iehojo-static-main { padding-bottom:40px; }
  .iehojo-static-breadcrumb { padding-top:14px; font-size:11px; }
  .iehojo-static-hero { padding:34px 0 23px; }
  .iehojo-static-kicker { margin-bottom:6px; font-size:10px; }
  .iehojo-static-hero h1 { font-size:28px; }
  .iehojo-static-hero > p:last-child { margin-top:10px; font-size:13.5px; line-height:1.75; }
  .iehojo-static-content { padding:26px 18px; border-radius:13px; }
  .iehojo-static-content h2 { margin-top:34px; font-size:19px; }
  .iehojo-static-content p { font-size:14px; line-height:1.9; }
  .iehojo-static-note { margin-bottom:22px; padding:16px; }
  .iehojo-static-note strong { font-size:14px; }
  .iehojo-static-note p { font-size:12.5px; }
  .iehojo-form-field label { font-size:13px; }
  .iehojo-form-field input,
  .iehojo-form-field select,
  .iehojo-form-field textarea { font-size:16px; }
  .iehojo-contact-consent { font-size:12.5px; }
  .iehojo-contact-submit { font-size:14px; }
  .iehojo-operation-table-wrap { overflow:visible; border:0; border-radius:0; }
  .iehojo-operation-table,
  .iehojo-operation-table tbody,
  .iehojo-operation-table tr,
  .iehojo-operation-table th,
  .iehojo-operation-table td { display:block; width:100%; }
  .iehojo-operation-table tr { margin-bottom:12px; overflow:hidden; border:1px solid #dce8ed; border-radius:9px; }
  .iehojo-operation-table th { padding:10px 14px; border:0; font-size:12px; }
  .iehojo-operation-table td { padding:13px 14px 15px; border:0; font-size:13.5px; line-height:1.75; }
  .iehojo-operation-map,
  .iehojo-operation-area { margin-top:32px; }
  .iehojo-operation-map h2,
  .iehojo-operation-area h2 { font-size:20px; }
  .iehojo-operation-map__frame iframe { height:300px; }
  .iehojo-static-page .iehojo-footer__list { flex-direction:row !important; flex-wrap:nowrap !important; justify-content:flex-start; gap:10px 14px !important; }
  .iehojo-static-page .iehojo-footer__list a { white-space:nowrap; word-break:keep-all; overflow-wrap:normal; font-size:12px; }
  .iehojo-static-page .iehojo-contact-consent a { white-space:nowrap; word-break:keep-all; overflow-wrap:normal; }
}
@media (max-width:360px) {
  .iehojo-static-page .iehojo-footer__list { gap:8px 10px !important; }
  .iehojo-static-page .iehojo-footer__list a { font-size:11px; }
}

/* ======================================================================
 * v0.1.50 - Transparent header + breadcrumb clearance on public pages
 * Contact / Privacy Policy / Operator only.
 * - Remove the white header panel so the page background continues behind it.
 * - Reserve the real header height in the page body so breadcrumbs never sit
 *   underneath the absolute header.
 * - Keep breadcrumbs close to the header and aligned with the page shell.
 * ====================================================================== */
.iehojo-static-page .iehojo-header {
  position:absolute !important;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  background:transparent !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.admin-bar.iehojo-static-page .iehojo-header { top:32px !important; }

.iehojo-static-page .iehojo-static-main {
  padding-top:72px;
}
.iehojo-static-page .iehojo-static-breadcrumb {
  padding-top:14px;
  margin:0;
}
.iehojo-static-page .iehojo-header .iehojo-nav__list a {
  text-shadow:0 1px 0 rgba(255,255,255,.65);
}

@media (max-width:782px) {
  .admin-bar.iehojo-static-page .iehojo-header { top:46px !important; }
}

@media (max-width:767px) {
  .iehojo-static-page .iehojo-static-main {
    padding-top:62px;
  }
  .iehojo-static-page .iehojo-static-breadcrumb {
    padding-top:10px;
  }
}

/* ======================================================================
 * v0.1.53 - Search modal parity with Rihojo v0.2.49
 * - One shared modal, three entry modes: full / theme / region.
 * - Theme entry pre-fills the matching dimension only.
 * - Step-3 single choice and Step-4 multi choice use hidden native inputs;
 *   the visible card is the full click/tap target (no checkbox square).
 * - Region entry filters Step 1 without inventing an extra progress step.
 * ====================================================================== */
.iehojo-search-modal__prefecture-region[hidden] { display:none !important; }

/* Prefilled step state: same concept as Rihojo's work-entry mode. */
.iehojo-search-modal__progress li.is-prefilled small::after {
  content:"・選択済み";
  color:#5F8F6B;
  font-weight:800;
}
.iehojo-search-modal__progress li.is-prefilled > span {
  border-color:#F69406 !important;
  background:#F69406 !important;
  color:#fff !important;
}

/* Step 3: radio cards. The radio itself is never visibly rendered. */
.iehojo-search-modal__theme-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:10px !important;
}
.iehojo-search-modal__theme-option {
  position:relative !important;
  display:block !important;
  min-width:0 !important;
  margin:0 !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent !important;
}
.iehojo-search-modal__theme-option > input[type="radio"] {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.iehojo-search-modal__theme-choice {
  min-height:104px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  padding:11px 8px 10px !important;
  border:1px solid #D6E4DF !important;
  border-radius:10px !important;
  background:#fff !important;
  color:#173F4E !important;
  text-align:center !important;
  cursor:pointer !important;
  transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .14s ease !important;
}
.iehojo-search-modal__theme-choice img {
  width:42px !important;
  height:42px !important;
  display:block !important;
  object-fit:contain !important;
}
.iehojo-search-modal__theme-choice b {
  color:inherit !important;
  font-size:12px !important;
  line-height:1.35 !important;
  font-weight:850 !important;
}
.iehojo-search-modal__theme-choice small {
  display:block !important;
  color:#6C7E78 !important;
  font-size:9px !important;
  line-height:1.35 !important;
  font-weight:500 !important;
}
.iehojo-search-modal__theme-option:hover .iehojo-search-modal__theme-choice,
.iehojo-search-modal__theme-option > input[type="radio"]:focus-visible + .iehojo-search-modal__theme-choice {
  border-color:#4A8D8D !important;
  background:#F5FAF8 !important;
}
.iehojo-search-modal__theme-option > input[type="radio"]:focus-visible + .iehojo-search-modal__theme-choice {
  outline:3px solid rgba(246,148,6,.24) !important;
  outline-offset:2px !important;
}
.iehojo-search-modal__theme-option > input[type="radio"]:checked + .iehojo-search-modal__theme-choice,
.iehojo-search-modal__theme-option.is-selected .iehojo-search-modal__theme-choice {
  border-color:#3B6F5E !important;
  background:#EDF6F1 !important;
  color:#094553 !important;
  box-shadow:inset 0 0 0 1px #3B6F5E !important;
}

/* Step 4: checkbox semantics, but no checkbox-shaped UI. */
.iehojo-search-modal__condition-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:10px !important;
}
.iehojo-search-modal__condition-option {
  position:relative !important;
  display:block !important;
  min-width:0 !important;
  margin:0 !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent !important;
}
.iehojo-search-modal__condition-option > input[type="checkbox"] {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.iehojo-search-modal__condition-choice {
  position:relative !important;
  min-height:112px !important;
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  padding:12px 8px 10px !important;
  border:1px solid #D6E4DF !important;
  border-radius:10px !important;
  background:#fff !important;
  color:#173F4E !important;
  text-align:center !important;
  cursor:pointer !important;
  transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .14s ease !important;
}
/* Kill the legacy square checkbox pseudo-element from earlier versions. */
.iehojo-search-modal__condition-choice::before,
.iehojo-search-modal__condition-choice::after,
.iehojo-search-modal__condition-grid span::before,
.iehojo-search-modal__condition-grid span::after {
  content:none !important;
  display:none !important;
}
.iehojo-search-modal__condition-choice img {
  width:38px !important;
  height:38px !important;
  display:block !important;
  object-fit:contain !important;
  margin-bottom:2px !important;
}
.iehojo-search-modal__condition-choice b {
  color:inherit !important;
  font-size:12px !important;
  line-height:1.35 !important;
  font-weight:850 !important;
}
.iehojo-search-modal__condition-choice small {
  display:block !important;
  color:#6C7E78 !important;
  font-size:9px !important;
  line-height:1.35 !important;
  font-weight:500 !important;
}
.iehojo-search-modal__condition-option:hover .iehojo-search-modal__condition-choice,
.iehojo-search-modal__condition-option > input[type="checkbox"]:focus-visible + .iehojo-search-modal__condition-choice {
  border-color:#4A8D8D !important;
  background:#F5FAF8 !important;
}
.iehojo-search-modal__condition-option > input[type="checkbox"]:focus-visible + .iehojo-search-modal__condition-choice {
  outline:3px solid rgba(246,148,6,.24) !important;
  outline-offset:2px !important;
}
.iehojo-search-modal__condition-option > input[type="checkbox"]:checked + .iehojo-search-modal__condition-choice,
.iehojo-search-modal__condition-option.is-selected .iehojo-search-modal__condition-choice {
  border-color:#3B6F5E !important;
  background:#EDF6F1 !important;
  color:#094553 !important;
  box-shadow:inset 0 0 0 1px #3B6F5E !important;
}
.iehojo-search-modal__condition-option > input[type="checkbox"]:checked + .iehojo-search-modal__condition-choice small {
  color:#587169 !important;
}

.iehojo-search-modal__prefecture-buttons button:focus-visible,
.iehojo-search-modal__whole-pref:focus-visible,
.iehojo-search-modal__municipality-grid button:focus-visible,
.iehojo-search-modal__kana button:focus-visible,
.iehojo-search-modal__kana a:focus-visible {
  outline:3px solid rgba(246,148,6,.22) !important;
  outline-offset:2px !important;
}

@media (max-width:700px) {
  .iehojo-search-modal__theme-grid,
  .iehojo-search-modal__condition-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px !important;
  }
  .iehojo-search-modal__theme-choice { min-height:90px !important; padding:9px 6px 8px !important; }
  .iehojo-search-modal__theme-choice img { width:36px !important; height:36px !important; }
  .iehojo-search-modal__theme-choice b,
  .iehojo-search-modal__condition-choice b { font-size:10.5px !important; }
  .iehojo-search-modal__theme-choice small,
  .iehojo-search-modal__condition-choice small { font-size:8px !important; }
  .iehojo-search-modal__condition-choice { min-height:96px !important; padding:9px 6px 8px !important; }
  .iehojo-search-modal__condition-choice img { width:34px !important; height:34px !important; }
}

@media (max-width:420px) {
  .iehojo-search-modal__progress li.is-prefilled small::after {
    display:block;
    margin-top:1px;
    font-size:7px;
    line-height:1.15;
  }
}

/* ======================================================================
 * v0.1.54 - Search-flow semantics: full / theme / region
 * - Full search: Theme -> Region -> Additional conditions.
 * - Theme entry: Theme (preselected when possible) -> Additional conditions.
 * - Region entry: Region (clicked regional group pre-filtered) -> Additional conditions.
 * - Hide every unused progress item; only the CURRENT step receives a strong color.
 * - Theme/condition controls are real card buttons, not visible native radio/checkbox UI.
 * ====================================================================== */
.iehojo-search-modal__progress[data-unused] { display:none !important; }
.iehojo-search-modal__progress li[hidden] { display:none !important; }
.iehojo-search-modal[data-iehojo-search-flow-count="3"] .iehojo-search-modal__progress {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.iehojo-search-modal[data-iehojo-search-flow-count="2"] .iehojo-search-modal__progress {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.iehojo-search-modal__progress li > span,
.iehojo-search-modal__progress li:nth-child(1) > span,
.iehojo-search-modal__progress li:nth-child(2) > span,
.iehojo-search-modal__progress li:nth-child(3) > span,
.iehojo-search-modal__progress li:nth-child(4) > span {
  border-color:#CAD6D2 !important;
  background:#fff !important;
  color:#73817C !important;
}
.iehojo-search-modal__progress li strong { color:#53625D !important; }
.iehojo-search-modal__progress li.is-complete > span,
.iehojo-search-modal__progress li:nth-child(1).is-complete > span,
.iehojo-search-modal__progress li:nth-child(2).is-complete > span,
.iehojo-search-modal__progress li:nth-child(3).is-complete > span,
.iehojo-search-modal__progress li:nth-child(4).is-complete > span {
  border-color:#A9C2B4 !important;
  background:#F7FAF8 !important;
  color:#4D7160 !important;
}
.iehojo-search-modal__progress li.is-active > span,
.iehojo-search-modal__progress li:nth-child(1).is-active > span,
.iehojo-search-modal__progress li:nth-child(2).is-active > span,
.iehojo-search-modal__progress li:nth-child(3).is-active > span,
.iehojo-search-modal__progress li:nth-child(4).is-active > span {
  border-color:#179B56 !important;
  background:#179B56 !important;
  color:#fff !important;
  box-shadow:0 0 0 4px rgba(23,155,86,.10) !important;
}
.iehojo-search-modal__progress li.is-active strong { color:#094553 !important; font-weight:900 !important; }
.iehojo-search-modal__progress li.is-complete:not(:last-child)::after { background:#D9E5E1 !important; }
.iehojo-search-modal__progress li.is-active:not(:last-child)::after { background:#BFD9CA !important; }

.iehojo-search-modal__theme-option,
.iehojo-search-modal__condition-option {
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:inherit !important;
  font:inherit !important;
  text-align:inherit !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  cursor:pointer !important;
}
.iehojo-search-modal__theme-option:focus-visible,
.iehojo-search-modal__condition-option:focus-visible {
  outline:3px solid rgba(23,155,86,.20) !important;
  outline-offset:2px !important;
}
.iehojo-search-modal__theme-option[aria-pressed="true"] .iehojo-search-modal__theme-choice,
.iehojo-search-modal__theme-option.is-selected .iehojo-search-modal__theme-choice,
.iehojo-search-modal__condition-option[aria-pressed="true"] .iehojo-search-modal__condition-choice,
.iehojo-search-modal__condition-option.is-selected .iehojo-search-modal__condition-choice {
  border-color:#179B56 !important;
  background:#EFF9F3 !important;
  color:#094553 !important;
  box-shadow:inset 0 0 0 1px #179B56 !important;
}
.iehojo-search-modal__theme-option[aria-pressed="true"] .iehojo-search-modal__theme-choice::after,
.iehojo-search-modal__condition-option[aria-pressed="true"] .iehojo-search-modal__condition-choice::after {
  content:"✓" !important;
  position:absolute !important;
  top:8px !important;
  right:8px !important;
  width:22px !important;
  height:22px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:50% !important;
  background:#179B56 !important;
  color:#fff !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.iehojo-search-modal__theme-choice { position:relative !important; }
/* Supersede legacy rules that created checkbox/radio-like pseudo elements. */
.iehojo-search-modal__condition-choice::before,
.iehojo-search-modal__theme-choice::before { content:none !important; display:none !important; }

/* The home explanation now mirrors the actual full-search modal: 3 conceptual steps. */
.iehojo-rich-steps { grid-template-columns:repeat(3,1fr) !important; }
.iehojo-rich-steps li:nth-child(1) b,
.iehojo-rich-steps li:nth-child(2) b,
.iehojo-rich-steps li:nth-child(3) b { background:#179B56 !important; }

@media (max-width:700px) {
  .iehojo-search-modal[data-iehojo-search-flow-count="2"] .iehojo-search-modal__progress li,
  .iehojo-search-modal[data-iehojo-search-flow-count="3"] .iehojo-search-modal__progress li {
    min-width:0 !important;
  }
}

/* ======================================================================
 * v0.1.55 — Search modal information architecture rebuild.
 * Theme = house/project. Additional = applicant/household/lifestyle.
 * Active progress step is the only strongly colored state.
 * ====================================================================== */

/* Home: separate actual themes from household/lifestyle conditions. */
.iehojo-rich-condition-shortcuts {
  margin-top:18px;
  padding-top:17px;
  border-top:1px solid #DFEAE7;
}
.iehojo-rich-condition-shortcuts__head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.iehojo-rich-condition-shortcuts__head strong {
  color:#173F4E;
  font-size:13px;
  line-height:1.4;
  font-weight:900;
}
.iehojo-rich-condition-shortcuts__head span {
  color:#6D828A;
  font-size:9.5px;
  line-height:1.5;
  font-weight:650;
}
.iehojo-rich-condition-shortcuts__grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.iehojo-rich-condition-shortcuts__grid .iehojo-rich-theme {
  min-height:76px;
  grid-template-columns:42px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:8px;
  padding:9px 11px;
  text-align:left;
}
.iehojo-rich-condition-shortcuts__grid .iehojo-rich-theme img {
  grid-row:1 / span 2;
  width:38px;
  height:38px;
  margin:0;
}
.iehojo-rich-condition-shortcuts__grid .iehojo-rich-theme strong,
.iehojo-rich-condition-shortcuts__grid .iehojo-rich-theme small {
  text-align:left;
}

/* Dynamic search context chips. */
.iehojo-search-modal__context {
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  padding:8px max(14px,calc((100% - 1280px)/2));
  border-bottom:1px solid #DFEAE7;
  background:#F5FAF8;
}
.iehojo-search-modal__context[hidden] { display:none !important; }
.iehojo-search-modal__context > span {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  padding:5px 9px;
  border:1px solid #CFE2DA;
  border-radius:999px;
  background:#fff;
}
.iehojo-search-modal__context small {
  color:#70837B;
  font-size:8.5px;
  line-height:1.2;
  font-weight:700;
}
.iehojo-search-modal__context strong {
  color:#17684A;
  font-size:10px;
  line-height:1.2;
  font-weight:900;
}

/* Progress: no rainbow. Current position is the one strong colored state. */
.iehojo-search-modal__progress {
  grid-template-columns:repeat(var(--iehojo-search-flow-count,3),minmax(0,1fr)) !important;
}
.iehojo-search-modal__progress li {
  color:#77847F !important;
}
.iehojo-search-modal__progress li > span,
.iehojo-search-modal__progress li:nth-child(1) > span,
.iehojo-search-modal__progress li:nth-child(2) > span,
.iehojo-search-modal__progress li:nth-child(3) > span,
.iehojo-search-modal__progress li:nth-child(4) > span {
  border-color:#C9D6D1 !important;
  background:#fff !important;
  color:#77847F !important;
}
.iehojo-search-modal__progress li strong,
.iehojo-search-modal__progress li:nth-child(1) strong,
.iehojo-search-modal__progress li:nth-child(2) strong,
.iehojo-search-modal__progress li:nth-child(3) strong,
.iehojo-search-modal__progress li:nth-child(4) strong {
  color:#5D6E67 !important;
}
.iehojo-search-modal__progress li.is-complete > span,
.iehojo-search-modal__progress li:nth-child(1).is-complete > span,
.iehojo-search-modal__progress li:nth-child(2).is-complete > span,
.iehojo-search-modal__progress li:nth-child(3).is-complete > span,
.iehojo-search-modal__progress li:nth-child(4).is-complete > span {
  border-color:#AFCFBE !important;
  background:#EDF7F1 !important;
  color:#287454 !important;
}
.iehojo-search-modal__progress li.is-active > span,
.iehojo-search-modal__progress li:nth-child(1).is-active > span,
.iehojo-search-modal__progress li:nth-child(2).is-active > span,
.iehojo-search-modal__progress li:nth-child(3).is-active > span,
.iehojo-search-modal__progress li:nth-child(4).is-active > span {
  border-color:#18895A !important;
  background:#18895A !important;
  color:#fff !important;
  box-shadow:0 0 0 4px rgba(24,137,90,.10) !important;
}
.iehojo-search-modal__progress li.is-active strong,
.iehojo-search-modal__progress li:nth-child(1).is-active strong,
.iehojo-search-modal__progress li:nth-child(2).is-active strong,
.iehojo-search-modal__progress li:nth-child(3).is-active strong,
.iehojo-search-modal__progress li:nth-child(4).is-active strong {
  color:#17684A !important;
}
.iehojo-search-modal__progress li:not(:last-child)::after { background:#D6E1DD !important; }
.iehojo-search-modal__progress li.is-complete:not(:last-child)::after { background:#BBD7C8 !important; }

/* Theme step: housing type and performance/equipment are deliberately separate. */
.iehojo-search-modal__theme-block + .iehojo-search-modal__theme-block {
  margin-top:18px;
  padding-top:17px;
  border-top:1px solid #E4ECE9;
}
.iehojo-search-modal__theme-block-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.iehojo-search-modal__theme-block-head strong {
  color:#173F4E;
  font-size:13px;
  font-weight:900;
}
.iehojo-search-modal__theme-block-head small {
  color:#75857F;
  font-size:9.5px;
  font-weight:650;
}
.iehojo-search-modal__theme-grid {
  display:grid !important;
  gap:8px !important;
}
.iehojo-search-modal__theme-grid--housing,
.iehojo-search-modal__theme-grid--features {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}
.iehojo-search-modal__theme-option,
.iehojo-search-modal__condition-option {
  width:100%;
  min-width:0;
  padding:0 !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:inherit !important;
  box-shadow:none !important;
  cursor:pointer;
  appearance:none;
}
.iehojo-search-modal__theme-choice,
.iehojo-search-modal__condition-choice {
  width:100%;
  min-height:82px;
  display:grid !important;
  grid-template-columns:42px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:9px;
  padding:10px 12px !important;
  border:1px solid #D5E3DE !important;
  border-radius:10px !important;
  background:#fff !important;
  color:#173F4E !important;
  text-align:left !important;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease;
}
.iehojo-search-modal__theme-choice img,
.iehojo-search-modal__condition-choice img {
  grid-row:1 / span 2;
  width:38px;
  height:38px;
  object-fit:contain;
}
.iehojo-search-modal__theme-choice b,
.iehojo-search-modal__condition-choice b {
  align-self:end;
  color:#173F4E;
  font-size:12px;
  line-height:1.35;
  font-weight:900;
}
.iehojo-search-modal__theme-choice small,
.iehojo-search-modal__condition-choice small {
  align-self:start;
  margin-top:2px;
  color:#71817B;
  font-size:9px;
  line-height:1.35;
  font-weight:600;
}
.iehojo-search-modal__theme-option:hover .iehojo-search-modal__theme-choice,
.iehojo-search-modal__theme-option:focus-visible .iehojo-search-modal__theme-choice,
.iehojo-search-modal__condition-option:hover .iehojo-search-modal__condition-choice,
.iehojo-search-modal__condition-option:focus-visible .iehojo-search-modal__condition-choice {
  border-color:#79B798 !important;
  box-shadow:0 5px 16px rgba(23,104,74,.08) !important;
}
.iehojo-search-modal__theme-option[aria-pressed="true"] .iehojo-search-modal__theme-choice,
.iehojo-search-modal__theme-option.is-selected .iehojo-search-modal__theme-choice,
.iehojo-search-modal__condition-option[aria-pressed="true"] .iehojo-search-modal__condition-choice,
.iehojo-search-modal__condition-option.is-selected .iehojo-search-modal__condition-choice {
  border-color:#18895A !important;
  background:#ECF8F1 !important;
  box-shadow:inset 0 0 0 1px #18895A !important;
}
.iehojo-search-modal__theme-option[aria-pressed="true"] .iehojo-search-modal__theme-choice b,
.iehojo-search-modal__condition-option[aria-pressed="true"] .iehojo-search-modal__condition-choice b {
  color:#17684A !important;
}
.iehojo-search-modal__theme-error {
  margin:12px 0 0;
  padding:10px 12px;
  border:1px solid #E9C98D;
  border-radius:8px;
  background:#FFF8E9;
  color:#77591E;
  font-size:10.5px;
  line-height:1.5;
  font-weight:750;
}
.iehojo-search-modal__theme-error[hidden] { display:none !important; }

/* Additional conditions are visibly different from Theme: all are applicant/household cards. */
.iehojo-search-modal__condition-grid {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
}
.iehojo-search-modal__condition-choice { min-height:76px; }

/* Footer navigation: explicit next on Theme, auto inside Region, final submit on Additional. */
.iehojo-search-modal__footer {
  justify-content:space-between !important;
}
.iehojo-search-modal__next,
.iehojo-search-modal__submit {
  min-height:44px !important;
  padding:0 18px !important;
  border:1px solid #18895A !important;
  border-radius:8px !important;
  background:#18895A !important;
  color:#fff !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  cursor:pointer;
}
.iehojo-search-modal__next:hover,
.iehojo-search-modal__next:focus-visible,
.iehojo-search-modal__submit:hover,
.iehojo-search-modal__submit:focus-visible {
  background:#126F49 !important;
  border-color:#126F49 !important;
}
.iehojo-search-modal__next[hidden],
.iehojo-search-modal__submit[hidden] { display:none !important; }

@media (max-width:767px) {
  .iehojo-rich-condition-shortcuts__head {
    display:block;
  }
  .iehojo-rich-condition-shortcuts__head span {
    display:block;
    margin-top:3px;
  }
  .iehojo-rich-condition-shortcuts__grid {
    grid-template-columns:1fr;
  }
  .iehojo-rich-condition-shortcuts__grid .iehojo-rich-theme {
    min-height:64px;
  }
  .iehojo-search-modal__context {
    padding:7px 10px;
    gap:5px;
  }
  .iehojo-search-modal__context > span {
    min-height:27px;
    padding:4px 7px;
  }
  .iehojo-search-modal__context small { font-size:7.5px; }
  .iehojo-search-modal__context strong { font-size:9px; }
  .iehojo-search-modal__theme-grid--housing,
  .iehojo-search-modal__theme-grid--features,
  .iehojo-search-modal__condition-grid {
    grid-template-columns:1fr !important;
    gap:6px !important;
  }
  .iehojo-search-modal__theme-choice,
  .iehojo-search-modal__condition-choice {
    min-height:62px;
    grid-template-columns:34px minmax(0,1fr);
    padding:8px 10px !important;
  }
  .iehojo-search-modal__theme-choice img,
  .iehojo-search-modal__condition-choice img {
    width:31px;
    height:31px;
  }
  .iehojo-search-modal__theme-choice b,
  .iehojo-search-modal__condition-choice b { font-size:10.5px; }
  .iehojo-search-modal__theme-choice small,
  .iehojo-search-modal__condition-choice small { font-size:8px; }
  .iehojo-search-modal__theme-block + .iehojo-search-modal__theme-block {
    margin-top:13px;
    padding-top:12px;
  }
  .iehojo-search-modal__theme-block-head strong { font-size:11px; }
  .iehojo-search-modal__theme-block-head small { font-size:8px; }
  .iehojo-search-modal__next,
  .iehojo-search-modal__submit { min-height:42px !important; font-size:10px !important; }
}

/* v0.1.55 home taxonomy layout: five real themes, three separate conditions. */
.home .iehojo-rich-theme-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
@media (max-width:1100px) {
  .home .iehojo-rich-theme-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .home .iehojo-rich-theme-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* ======================================================================
 * v0.1.56 - One search engine / meaningful shortcut entries
 * Full: Theme -> Region -> Additional
 * Theme shortcut: Region -> Additional (clicked theme is preselected)
 * Region shortcut: Region -> Theme -> Additional (clicked region prefilters)
 * ====================================================================== */
.iehojo-search-modal__theme-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:9px !important;
}
.iehojo-search-modal[data-iehojo-search-entry-mode="theme"] [data-iehojo-search-flow="theme"] {
  display:none !important;
}
.iehojo-search-modal__progress li[hidden] { display:none !important; }
.iehojo-search-modal__progress li.is-active > span {
  border-color:#18895A !important;
  background:#18895A !important;
  color:#fff !important;
  box-shadow:0 0 0 4px rgba(24,137,90,.10) !important;
}
.iehojo-search-modal__progress li.is-complete > span {
  border-color:#B8CDC2 !important;
  background:#F4F8F6 !important;
  color:#4D7160 !important;
  box-shadow:none !important;
}
.iehojo-search-modal__progress li:not(.is-active):not(.is-complete) > span {
  border-color:#CED8D4 !important;
  background:#fff !important;
  color:#7A8782 !important;
  box-shadow:none !important;
}
.iehojo-search-modal__progress li.is-active strong { color:#17684A !important; }
.iehojo-search-modal__progress li:not(.is-active) strong { color:#65736E !important; }

@media (max-width:700px) {
  .iehojo-search-modal__theme-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px !important;
  }
}

/* ======================================================================
 * v0.1.60 - softer first-view typography and controls
 * Reduce the corporate/administrative stiffness without changing the
 * approved hero composition, artwork, search/diagnosis behavior or CTA
 * priority. PC and mobile share the same softer visual language.
 * ====================================================================== */
.home .iehojo-rich-kicker {
  padding:9px 18px;
  border-color:#d7ebf2;
  background:rgba(242,249,252,.94);
  color:#347b9a;
  font-weight:750;
  letter-spacing:.025em;
  box-shadow:0 5px 15px rgba(38,116,158,.045);
}
.home .iehojo-rich-kicker::before {
  background:#67adc3;
  box-shadow:0 2px 6px rgba(78,167,195,.15);
}
.home .iehojo-rich-hero h1 {
  font-weight:800;
  line-height:1.22;
  letter-spacing:-.032em;
  text-shadow:0 1px 0 rgba(255,255,255,.58);
}
.home .iehojo-rich-hero h1 span {
  color:#3b82a6;
}
.home .iehojo-rich-hero__lead {
  color:#38536b;
  font-weight:500;
  line-height:1.9;
}
.home .iehojo-rich-btn {
  border-radius:18px;
  box-shadow:0 8px 18px rgba(23,52,93,.085);
}
.home .iehojo-rich-btn:hover {
  box-shadow:0 11px 23px rgba(23,52,93,.12);
}
.home .iehojo-rich-btn--search {
  border-radius:18px;
  box-shadow:0 9px 20px rgba(255,146,13,.17);
}
.home .iehojo-rich-btn--diagnosis {
  border:1px solid rgba(62,132,164,.34);
  background:rgba(248,252,253,.94);
  box-shadow:0 7px 17px rgba(23,52,93,.065);
}
.home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__copy small {
  color:#6d817c;
  font-weight:700;
}
.home .iehojo-rich-btn--diagnosis .iehojo-rich-btn__copy strong {
  font-weight:800;
}
.home .iehojo-rich-hero__note {
  color:#71827d;
  font-weight:400;
}

@media (min-width:1100px) {
  .home .iehojo-rich-hero h1 {
    font-size:clamp(43px,2.58vw,47px) !important;
    line-height:1.22 !important;
    letter-spacing:-.032em !important;
  }
  .home .iehojo-rich-hero__lead {
    margin-top:19px;
    font-size:14.5px;
  }
  .home .iehojo-rich-hero__actions {
    margin-top:24px;
  }
  .home .iehojo-rich-hero__character-picture {
    transform:translate(-28px,-14px) !important;
  }
}

@media (max-width:1099px) and (min-width:768px) {
  .home .iehojo-rich-hero h1 {
    font-weight:800;
    line-height:1.22;
    letter-spacing:-.03em;
  }
  .home .iehojo-rich-hero__character-picture {
    transform:translate(-16px,-9px) !important;
  }
}

@media (max-width:767px) {
  .home .iehojo-rich-kicker {
    padding:7px 13px;
    border-radius:999px;
    font-size:9.5px;
    font-weight:750;
    letter-spacing:.015em;
  }
  .home .iehojo-rich-kicker::before {
    width:17px;
    height:17px;
    font-size:10px;
  }
  .home .iehojo-rich-hero h1 {
    font-size:clamp(28px,8.55vw,33px);
    line-height:1.22;
    letter-spacing:-.025em;
    font-weight:800;
  }
  .home .iehojo-rich-hero__lead {
    margin-top:12px;
    font-size:12px;
    line-height:1.78;
    font-weight:500;
  }
  .home .iehojo-rich-hero__actions {
    margin-top:15px;
    gap:8px;
  }
  .home .iehojo-rich-btn {
    min-height:51px;
    border-radius:15px;
  }
  .home .iehojo-rich-btn--search {
    border-radius:15px;
    box-shadow:0 7px 16px rgba(255,146,13,.15);
  }
  .home .iehojo-rich-btn--diagnosis {
    border-width:1px;
    border-radius:15px;
    background:rgba(249,252,253,.95);
    box-shadow:0 5px 13px rgba(23,52,93,.055);
  }
  .home .iehojo-rich-hero__note {
    font-weight:400;
  }
}
@media (max-width:390px) {
  .home .iehojo-rich-hero h1 {
    font-size:clamp(27px,8vw,30px);
  }
}

/* ======================================================================
 * v0.1.63 - PC first-view right-side balance refinement
 * Base: v0.1.60 (v0.1.61/v0.1.62 hero experiments are NOT included).
 * PC only: strengthen Ietasu + Today as a single visual group by enlarging
 * both elements and reducing the unused upper/right-side air. Mobile stays
 * byte-behavior-equivalent to v0.1.60 because these overrides start at 1100px.
 * ====================================================================== */
@media (min-width:1100px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) minmax(310px,330px) minmax(250px,265px) !important;
    column-gap:8px !important;
  }

  .home .iehojo-rich-hero__mascot-wrap {
    min-height:355px !important;
    align-self:center !important;
  }
  .home .iehojo-rich-hero__character-picture {
    width:min(475px,148%) !important;
    max-width:475px !important;
    margin:0 auto !important;
    transform:translate(-30px,-40px) !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    width:260px !important;
    max-width:260px !important;
    min-height:196px !important;
    padding:16px 16px 15px !important;
    justify-self:end !important;
    transform:translateY(-7px) !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head {
    margin-bottom:10px !important;
    padding-bottom:9px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head span {
    font-size:15px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head small {
    font-size:9.5px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__body {
    grid-template-columns:minmax(0,1fr) 84px !important;
    gap:8px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list {
    gap:7px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list > div {
    grid-template-columns:32px minmax(0,1fr) !important;
    column-gap:8px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list img {
    width:28px !important;
    height:28px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list small {
    font-size:9.8px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list strong {
    font-size:15.5px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__map {
    width:84px !important;
    height:124px !important;
  }
}

/* ======================================================================
 * v0.1.64 - PC hero compact visual-group balance
 * Base: v0.1.63. The approved Ietasu artwork is not redrawn: the mascot
 * pixels are separated from the old combined desktop asset so the bubble
 * can be positioned independently. Tablet/mobile keep the combined asset.
 * ====================================================================== */
.home .iehojo-rich-hero__character-split { display:none; }

@media (min-width:1100px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) minmax(350px,365px) minmax(275px,285px) !important;
    column-gap:2px !important;
  }

  .home .iehojo-rich-hero__mascot-wrap {
    min-height:338px !important;
    align-self:center !important;
    padding:0 !important;
  }

  .home .iehojo-rich-hero__character-picture--combined {
    display:none !important;
  }

  .home .iehojo-rich-hero__character-split {
    position:relative;
    display:block;
    width:360px;
    height:338px;
    max-width:none;
    transform:translate(-18px,-24px);
  }

  .home .iehojo-rich-hero__character-only-picture {
    position:absolute;
    left:44px;
    bottom:-2px;
    width:316px;
    margin:0;
    line-height:0;
    z-index:2;
  }
  .home .iehojo-rich-hero__character-only {
    display:block;
    width:100%;
    height:auto;
    filter:drop-shadow(0 14px 16px rgba(37,54,58,.12));
  }

  .home .iehojo-rich-hero__bubble-live {
    position:absolute;
    left:-48px;
    top:0;
    z-index:3;
    width:224px;
    min-height:108px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:14px 18px 18px;
    border:2.5px solid #38a6ef;
    border-radius:50% 50% 47% 49% / 48% 48% 52% 52%;
    background:rgba(255,255,255,.98);
    color:#17345d;
    text-align:center;
    line-height:1.2;
    box-shadow:0 8px 20px rgba(23,52,93,.085);
  }
  .home .iehojo-rich-hero__bubble-live::after {
    content:"";
    position:absolute;
    right:34px;
    bottom:-12px;
    width:22px;
    height:22px;
    border-right:2.5px solid #38a6ef;
    border-bottom:2.5px solid #38a6ef;
    background:#fff;
    transform:rotate(45deg) skew(-7deg,-7deg);
    border-radius:0 0 4px 0;
  }
  .home .iehojo-rich-hero__bubble-live::before {
    content:"";
    position:absolute;
    left:52px;
    right:48px;
    bottom:17px;
    height:5px;
    border-radius:999px;
    background:#ffd21b;
    transform:rotate(-1.5deg);
    z-index:0;
  }
  .home .iehojo-rich-hero__bubble-live strong,
  .home .iehojo-rich-hero__bubble-live b {
    position:relative;
    z-index:1;
    display:block;
    margin:0;
    font-weight:900;
    letter-spacing:-.035em;
  }
  .home .iehojo-rich-hero__bubble-live strong {
    font-size:18px;
  }
  .home .iehojo-rich-hero__bubble-live strong span {
    color:#168be2;
    font-size:25px;
  }
  .home .iehojo-rich-hero__bubble-live b {
    margin-top:3px;
    font-size:17px;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    width:282px !important;
    max-width:282px !important;
    min-height:207px !important;
    padding:17px 17px 16px !important;
    justify-self:end !important;
    align-self:center !important;
    transform:translate(-10px,-27px) !important;
    border-radius:16px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head {
    margin-bottom:10px !important;
    padding-bottom:9px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head span {
    font-size:16px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head small {
    font-size:9.7px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__body {
    grid-template-columns:minmax(0,1fr) 90px !important;
    gap:7px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list {
    gap:7px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list > div {
    grid-template-columns:33px minmax(0,1fr) !important;
    column-gap:8px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list img {
    width:29px !important;
    height:29px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list small {
    font-size:10px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list strong {
    font-size:16px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__map {
    width:90px !important;
    height:132px !important;
  }
}


/* ======================================================================
 * v0.1.65 - PC hero original-bubble image + balanced visual group
 * Base: v0.1.64.
 * - The speech bubble is NOT redrawn in CSS. It is an exact transparent
 *   crop from the approved ietasu-hero-set-desktop.png asset.
 * - PC only: moderate Ietasu size, original bubble at the upper-right of
 *   the mascot, and a slightly tighter Today-card relationship.
 * - Tablet/mobile continue to use the approved combined artwork unchanged.
 * ====================================================================== */
.home .iehojo-rich-hero__bubble-picture { display:none; }

@media (min-width:1100px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) minmax(325px,335px) minmax(268px,274px) !important;
    column-gap:4px !important;
  }

  .home .iehojo-rich-hero__mascot-wrap {
    min-height:326px !important;
    align-self:center !important;
    padding:0 !important;
  }

  .home .iehojo-rich-hero__character-split {
    width:332px !important;
    height:326px !important;
    transform:translate(7px,-17px) !important;
  }

  .home .iehojo-rich-hero__character-only-picture {
    left:20px !important;
    bottom:0 !important;
    width:288px !important;
  }

  .home .iehojo-rich-hero__bubble-picture {
    position:absolute;
    display:block;
    left:126px;
    top:-38px;
    width:198px;
    margin:0;
    line-height:0;
    z-index:4;
    filter:drop-shadow(0 7px 12px rgba(23,52,93,.06));
  }

  .home .iehojo-rich-hero__bubble-image {
    display:block;
    width:100%;
    height:auto;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    width:272px !important;
    max-width:272px !important;
    min-height:202px !important;
    padding:16px 16px 15px !important;
    justify-self:end !important;
    align-self:center !important;
    transform:translate(-7px,-19px) !important;
    border-radius:16px !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today__head {
    margin-bottom:9px !important;
    padding-bottom:9px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head span { font-size:15.5px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__head small { font-size:9.4px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__body {
    grid-template-columns:minmax(0,1fr) 86px !important;
    gap:7px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list { gap:7px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__list > div {
    grid-template-columns:32px minmax(0,1fr) !important;
    column-gap:8px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list img {
    width:28px !important;
    height:28px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list small { font-size:9.7px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__list strong { font-size:15.5px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__map {
    width:86px !important;
    height:127px !important;
  }
}

/* ======================================================================
 * v0.1.66 - PC hero whole-composition rebalance
 * Base: v0.1.65.
 * - Keep the approved original speech-bubble PNG unchanged.
 * - Restore the bubble to the mascot's upper-right with a visible gap;
 *   the original left-side tail points naturally toward Ietasu's roof.
 * - Balance copy / mascot / Today card as one first-view composition,
 *   rather than enlarging individual parts independently.
 * - Tablet/mobile remain unchanged.
 * ====================================================================== */
@media (min-width:1100px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:minmax(0,1fr) minmax(340px,350px) minmax(280px,286px) !important;
    column-gap:10px !important;
  }

  .home .iehojo-rich-hero__mascot-wrap {
    min-height:315px !important;
    align-self:center !important;
    padding:0 !important;
  }

  .home .iehojo-rich-hero__character-split {
    width:350px !important;
    height:315px !important;
    transform:translate(-14px,-10px) !important;
  }

  .home .iehojo-rich-hero__character-only-picture {
    left:10px !important;
    bottom:0 !important;
    width:280px !important;
  }

  /* Original approved bubble image; no redrawing, flipping or restyling. */
  .home .iehojo-rich-hero__bubble-picture {
    left:165px !important;
    top:-66px !important;
    width:182px !important;
    z-index:4 !important;
    filter:drop-shadow(0 7px 12px rgba(23,52,93,.055)) !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    width:282px !important;
    max-width:282px !important;
    min-height:207px !important;
    padding:17px 17px 16px !important;
    justify-self:end !important;
    align-self:center !important;
    transform:translate(-5px,0) !important;
    border-radius:16px !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today__head {
    margin-bottom:10px !important;
    padding-bottom:9px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__head span { font-size:16px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__head small { font-size:9.7px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__body {
    grid-template-columns:minmax(0,1fr) 90px !important;
    gap:7px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list { gap:7px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__list > div {
    grid-template-columns:33px minmax(0,1fr) !important;
    column-gap:8px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list img {
    width:29px !important;
    height:29px !important;
  }
  .home .iehojo-rich-hero .iehojo-rich-today__list small { font-size:10px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__list strong { font-size:16px !important; }
  .home .iehojo-rich-hero .iehojo-rich-today__map {
    width:90px !important;
    height:132px !important;
  }
}


/* ======================================================================
 * v0.1.67 - PC hero final spacing polish
 * Base: v0.1.66.
 * - Keep Ietasu, copy, CTA and background exactly as v0.1.66.
 * - Move the Today card about 25px left to visually close the right-side gap.
 * - Reduce the approved original bubble PNG by about 5% and fine-tune its
 *   position without altering, redrawing or restyling the image itself.
 * - Tablet/mobile remain unchanged.
 * ====================================================================== */
@media (min-width:1100px) {
  .home .iehojo-rich-hero__bubble-picture {
    left:169px !important;
    top:-62px !important;
    width:173px !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    transform:translate(-30px,0) !important;
  }
}

/* ======================================================================
 * v0.1.68 - PC hero Ietasu grounding adjustment
 * Base: v0.1.67.
 * - PC only: lower Ietasu by 34px so the mascot sits visually into the
 *   neighborhood foreground instead of floating over the skyline.
 * - Lower the approved original speech-bubble PNG by 12px to preserve the
 *   relationship while keeping its size and horizontal position unchanged.
 * - Today card, copy, CTA, background, tablet and mobile remain unchanged.
 * ====================================================================== */
@media (min-width:1100px) {
  .home .iehojo-rich-hero__character-only-picture {
    bottom:-34px !important;
  }

  .home .iehojo-rich-hero__bubble-picture {
    top:-50px !important;
  }
}


/* ======================================================================
 * v0.1.69 - PC hero speech-bubble vertical final adjustment
 * Base: v0.1.68.
 * - PC only: lower the approved original speech-bubble PNG by another 27px.
 * - Keep Ietasu, Today card, copy, CTA, size, horizontal position, tablet
 *   and mobile exactly as v0.1.68.
 * ====================================================================== */
@media (min-width:1100px) {
  .home .iehojo-rich-hero__bubble-picture {
    top:-23px !important;
  }
}


/* ======================================================================
 * v0.1.70 - PC hero micro vertical balance
 * Base: v0.1.69.
 * - PC only: lower the approved original speech-bubble PNG by 9px.
 * - PC only: lower the Today update card by 6px.
 * - Keep Ietasu, sizes, horizontal positions, copy, CTA, background,
 *   tablet and mobile exactly as v0.1.69.
 * ====================================================================== */
@media (min-width:1100px) {
  .home .iehojo-rich-hero__bubble-picture {
    top:-14px !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    transform:translate(-30px,6px) !important;
  }
}

/* ======================================================================
 * v0.1.71 - mobile hero lower-group balance
 * Base: v0.1.70.
 * - Mobile only: move Ietasu + approved speech bubble artwork and the
 *   Today card upward together by 30px to close the large gap below CTA.
 * - Enlarge the approved combined mobile Ietasu artwork by about 6% and
 *   nudge it slightly right so Ietasu remains the visual guide beside Today.
 * - Keep H1, lead, CTA, Today-card size/content, PC and tablet unchanged.
 * ====================================================================== */
@media (max-width:600px) {
  .home .iehojo-rich-hero__mascot-wrap {
    transform:translateY(-30px) !important;
  }

  .home .iehojo-rich-hero__character-picture--combined {
    width:min(267px,70vw) !important;
    max-width:267px !important;
    transform:translate(14px,-5px) !important;
  }

  .home .iehojo-rich-hero__character-set {
    max-height:252px !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    transform:translateY(-30px) !important;
  }
}

@media (max-width:390px) {
  .home .iehojo-rich-hero__character-picture--combined {
    width:min(254px,68vw) !important;
    max-width:254px !important;
    transform:translate(13px,-4px) !important;
  }

  .home .iehojo-rich-hero__character-set {
    max-height:242px !important;
  }
}

/* ======================================================================
 * v0.1.72 - mobile hero responsive grounding / no-overlap correction
 * Base: v0.1.71.
 * - Replace the fixed -30px mobile lift with width-aware offsets so the
 *   lower visual group never collides with the note on narrower phones.
 * - Keep the approved combined mobile Ietasu + speech-bubble image intact.
 * - Lower the artwork slightly inside its row to improve ground contact.
 * - PC/tablet, copy, CTA and Today-card dimensions/content remain unchanged.
 * ====================================================================== */
@media (max-width:600px) {
  .home .iehojo-rich-hero__mascot-wrap {
    transform:translateY(-16px) !important;
  }

  .home .iehojo-rich-hero__character-picture--combined {
    transform:translate(14px,3px) !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    transform:translateY(-16px) !important;
  }
}

/* Narrow phones need the lower group to stay in normal document flow.
 * This prevents the speech bubble from entering the disclaimer/copy area
 * and lets Ietasu sit into the greenery at the bottom of the hero. */
@media (max-width:390px) {
  .home .iehojo-rich-hero__mascot-wrap {
    transform:none !important;
  }

  .home .iehojo-rich-hero__character-picture--combined {
    transform:translate(10px,5px) !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    transform:none !important;
  }
}


/* ======================================================================
 * v0.1.73 - mobile hero lower group: stable document-flow layout
 * Base: v0.1.72.
 * - Group Ietasu + approved speech-bubble artwork and the Today card in a
 *   dedicated lower wrapper on phones so their vertical position follows
 *   the disclaimer naturally instead of relying on independent transforms.
 * - Keep the current artwork and Today-card dimensions; only placement is
 *   normalized. Short/narrow phones remain conservative, while taller
 *   391px+ phones close the excessive blank space with a bounded negative
 *   flow margin (not an absolute/fixed-position lift).
 * - Desktop/tablet layout remains flattened via display:contents and is
 *   therefore unchanged from v0.1.72.
 * ====================================================================== */
.home .iehojo-rich-hero__lower {
  display:contents;
}

@media (max-width:600px) {
  .home .iehojo-rich-hero__inner {
    grid-template-columns:1fr !important;
    grid-template-areas:'copy' 'lower' !important;
    grid-template-rows:auto auto !important;
    gap:0 !important;
    align-items:start !important;
  }

  .home .iehojo-rich-hero__lower {
    grid-area:lower;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(130px,.95fr);
    grid-template-areas:'mascot today';
    column-gap:5px;
    align-items:end;
    width:100%;
    min-width:0;
    margin-top:8px;
  }

  .home .iehojo-rich-hero__mascot-wrap {
    grid-area:mascot;
    transform:none !important;
    margin:0 !important;
    align-self:end !important;
  }

  .home .iehojo-rich-hero__character-picture--combined {
    transform:translate(12px,3px) !important;
  }

  .home .iehojo-rich-hero .iehojo-rich-today {
    grid-area:today;
    transform:none !important;
    align-self:end !important;
    margin:0 0 7px auto !important;
  }
}

/* On taller, wider phones the copy block is shorter, so close only that
 * excess air with a bounded flow margin. Narrow phones stay fully natural
 * to protect the disclaimer from overlap. */
@media (min-width:391px) and (max-width:600px) and (min-height:560px) {
  .home .iehojo-rich-hero__lower {
    margin-top:-24px;
  }
}

@media (max-width:390px) {
  .home .iehojo-rich-hero__lower {
    margin-top:6px;
  }

  .home .iehojo-rich-hero__character-picture--combined {
    transform:translate(10px,5px) !important;
  }
}

/* ======================================================================
 * v0.1.74 - mobile hero copy-safe lower-group spacing
 * Base: v0.1.73.
 * - Remove every negative lower-group margin on phones. The visual group
 *   must always begin after the disclaimer in normal document flow.
 * - Add a small positive safety gap so the approved speech-bubble artwork
 *   cannot visually touch or overlap the disclaimer at any phone width.
 * - Keep artwork, card dimensions, copy, CTA, desktop and tablet unchanged.
 * ====================================================================== */
@media (max-width:600px) {
  .home .iehojo-rich-hero__lower {
    margin-top:16px !important;
  }
}

@media (max-width:390px) {
  .home .iehojo-rich-hero__lower {
    margin-top:18px !important;
  }
}

/* ======================================================================
 * v0.1.75 - mobile hero constant lower-group flow gap
 * Base: v0.1.74.
 * - Keep the lower visual group in normal document flow immediately after
 *   the disclaimer with one consistent small gap on every phone size.
 * - Remove inherited mascot min-height from the phone lower group so hidden
 *   layout height cannot expand the apparent blank space on shorter phones.
 * - No negative margin / translate is used for the lower group, preventing
 *   the speech bubble from entering the disclaimer area.
 * - Artwork size/position, Today-card size, copy, CTA, PC and tablet remain
 *   unchanged from v0.1.74.
 * ====================================================================== */
@media (max-width:600px) {
  .home .iehojo-rich-hero__lower {
    margin-top:10px !important;
  }

  .home .iehojo-rich-hero__lower .iehojo-rich-hero__mascot-wrap {
    min-height:0 !important;
  }
}

@media (max-width:390px) {
  .home .iehojo-rich-hero__lower {
    margin-top:10px !important;
  }
}

/* ======================================================================
 * v0.1.76 - mobile Today card top-reference alignment
 * Base: v0.1.75.
 * - Mobile only: stop bottom-aligning the Today card to the taller mascot
 *   artwork row. The card now uses the top of the lower visual row as its
 *   vertical reference, so narrower/shorter phones do not create a large
 *   empty band above the whole right-side card.
 * - Keep a small positive inset inside the already copy-safe lower row.
 * - Ietasu + approved speech-bubble artwork, lower-row flow gap, card size,
 *   H1, lead, CTA, PC and tablet remain unchanged from v0.1.75.
 * ====================================================================== */
@media (max-width:600px) {
  .home .iehojo-rich-hero .iehojo-rich-today {
    align-self:start !important;
    margin:8px 0 0 auto !important;
  }
}

@media (max-width:390px) {
  .home .iehojo-rich-hero .iehojo-rich-today {
    margin-top:6px !important;
  }
}


/* ======================================================================
 * v0.1.79 - Pixel-width balanced bubble/card clearance
 * Base: v0.1.76 (v0.1.77 rejected).
 * - Preserve 390px-and-below phones exactly as v0.1.76 so iPhone SE does
 *   not move horizontally.
 * - Only 391px-430px phone widths: move the approved combined Ietasu +
 *   original speech-bubble artwork 7px left from the v0.1.76 position.
 * - Keep Today card, vertical positions, artwork size, copy, CTA, PC and
 *   tablet exactly as v0.1.76.
 * ====================================================================== */
@media (min-width:391px) and (max-width:430px) {
  .home .iehojo-rich-hero__character-picture--combined {
    transform:translate(5px,3px) !important;
  }
}

/* ======================================================================
 * v0.1.80 - mobile hero: split Ietasu and original bubble independently
 * Base: v0.1.79.
 * - Mobile only: stop moving the approved combined artwork as one unit.
 * - Reuse exact pixels cropped from the approved mobile combined artwork:
 *   Ietasu body and the original speech-bubble design are separate images.
 * - Pixel-width phones (391-430px): preserve the bubble at its v0.1.79
 *   clearance position, but move only Ietasu 7px right.
 * - 390px-and-below phones preserve the v0.1.76/v0.1.79 visual positions.
 * - Today card, vertical flow, sizes, copy, CTA, PC and tablet unchanged.
 * ====================================================================== */
@media (max-width:600px) {
  .home .iehojo-rich-hero__character-picture--combined {
    display:none !important;
  }

  .home .iehojo-rich-hero__character-split {
    position:relative !important;
    display:block !important;
    width:min(267px,70vw) !important;
    max-width:267px !important;
    aspect-ratio:980 / 930 !important;
    height:auto !important;
    margin:0 auto !important;
    transform:translate(12px,3px) !important;
    overflow:visible !important;
  }

  .home .iehojo-rich-hero__character-only-picture {
    position:absolute !important;
    left:3.061224% !important;
    top:29.032258% !important;
    bottom:auto !important;
    width:67.857143% !important;
    margin:0 !important;
    line-height:0 !important;
    z-index:2 !important;
  }

  .home .iehojo-rich-hero__character-only {
    display:block !important;
    width:100% !important;
    height:auto !important;
    filter:drop-shadow(0 10px 12px rgba(37,54,58,.10)) !important;
  }

  .home .iehojo-rich-hero__bubble-picture {
    position:absolute !important;
    display:block !important;
    left:47.959184% !important;
    top:2.688172% !important;
    width:48.571429% !important;
    margin:0 !important;
    line-height:0 !important;
    z-index:4 !important;
    filter:drop-shadow(0 5px 9px rgba(23,52,93,.045)) !important;
  }

  .home .iehojo-rich-hero__bubble-image {
    display:block !important;
    width:100% !important;
    height:auto !important;
  }
}

/* Pixel 7-class widths: bubble stays where v0.1.79 cleared the Today card;
 * only Ietasu returns 7px right, avoiding the left-heavy appearance. */
@media (min-width:391px) and (max-width:430px) {
  .home .iehojo-rich-hero__character-split {
    transform:translate(5px,3px) !important;
  }

  .home .iehojo-rich-hero__character-only-picture {
    left:calc(3.061224% + 7px) !important;
  }
}

/* iPhone SE-class widths: keep the same visual origin as v0.1.76. */
@media (max-width:390px) {
  .home .iehojo-rich-hero__character-split {
    width:min(254px,68vw) !important;
    max-width:254px !important;
    transform:translate(10px,5px) !important;
  }

  .home .iehojo-rich-hero__character-only-picture {
    left:3.061224% !important;
  }
}


/* v0.1.81 — Diagnosis intro: Ietasu and speech bubble are separate image assets. */
.iehojo-diagnosis__visual-bubble {
  display:block !important;
  width:176px !important;
  height:auto !important;
  margin:0 auto 8px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  object-fit:contain !important;
}
.iehojo-diagnosis__visual-bubble::before,
.iehojo-diagnosis__visual-bubble::after { display:none !important; content:none !important; }

@media (max-width:767px) {
  .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    position:absolute !important;
    top:4px !important;
    left:100px !important;
    right:auto !important;
    width:110px !important;
    height:auto !important;
    max-width:none !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    object-fit:contain !important;
    z-index:2 !important;
  }
  .iehojo-diagnosis__mobile-intro-bubble::before,
  .iehojo-diagnosis__mobile-intro-bubble::after { display:none !important; content:none !important; }
}

/* ======================================================================
 * v0.1.83 - PC diagnosis intro rail balance.
 * Keep mobile/tablet layouts intact. On desktop, group the diagnosis bubble,
 * Ietasu and Today card in one natural vertical flow and guarantee the Today
 * card/map remain fully inside the left rail.
 * ====================================================================== */
@media (min-width:901px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__content {
    grid-template-columns:286px minmax(0,1fr) !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual {
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:0 !important;
    padding:28px 18px 24px !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-bubble {
    flex:0 0 auto !important;
    width:190px !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 auto 10px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-mascot {
    flex:0 0 auto !important;
    width:190px !important;
    height:228px !important;
    margin:0 auto !important;
    object-fit:contain !important;
    object-position:center !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-card--today {
    position:relative !important;
    inset:auto !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    flex:0 0 auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:142px !important;
    margin:18px 0 0 !important;
    padding:12px 12px 11px !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-card--today > div {
    min-width:0 !important;
    grid-template-columns:minmax(76px,82px) minmax(48px,54px) !important;
    column-gap:7px !important;
    padding-right:58px !important;
    box-sizing:border-box !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__today-map {
    right:8px !important;
    bottom:10px !important;
    width:52px !important;
    height:76px !important;
    max-width:calc(100% - 16px) !important;
  }
}


/* ======================================================================
 * v0.1.84 - Diagnosis intro balance refinement.
 * Mobile: rebalance mascot/bubble/Today card without changing artwork.
 * PC: align the original bubble tail toward Ietasu and pin Today card to
 * the bottom of the visual rail while keeping the full map inside.
 * ====================================================================== */
@media (max-width:767px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro {
    min-height:150px !important;
    align-items:stretch !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro-visual {
    min-height:132px !important;
    height:132px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro-visual > img:not(.iehojo-diagnosis__mobile-intro-bubble) {
    left:2px !important;
    bottom:0 !important;
    width:116px !important;
    height:126px !important;
    object-position:left bottom !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    top:1px !important;
    left:104px !important;
    width:108px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-stats {
    min-height:132px !important;
    height:auto !important;
    align-self:stretch !important;
  }
}

@media (max-width:380px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro {
    min-height:142px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro-visual {
    min-height:124px !important;
    height:124px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro-visual > img:not(.iehojo-diagnosis__mobile-intro-bubble) {
    left:1px !important;
    width:110px !important;
    height:120px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    top:1px !important;
    left:96px !important;
    width:100px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-stats {
    min-height:124px !important;
  }
}

@media (min-width:901px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual {
    position:relative !important;
    padding-bottom:184px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-bubble {
    width:176px !important;
    margin:0 auto 2px !important;
    transform:translateX(32px) !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-card--today {
    position:absolute !important;
    left:18px !important;
    right:18px !important;
    bottom:18px !important;
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__today-map {
    right:9px !important;
    bottom:10px !important;
    width:50px !important;
    height:74px !important;
  }
}


/* ======================================================================
 * v0.1.85 - Mobile diagnosis bubble relationship refinement.
 * Keep mascot and Today card fixed. Move only the original bubble artwork
 * slightly toward Ietasu and enlarge it minimally so the tail reads as one
 * conversational group.
 * ====================================================================== */
@media (max-width:767px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    top:10px !important;
    left:94px !important;
    width:114px !important;
  }
}

@media (max-width:380px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__mobile-intro .iehojo-diagnosis__mobile-intro-bubble {
    top:10px !important;
    left:86px !important;
    width:105px !important;
  }
}


/* ======================================================================
 * v0.1.87 - PC diagnosis speech-tail alignment.
 * Desktop only: the bubble artwork itself now has the original-style tail
 * relocated near the lower centre so it points naturally toward Ietasu.
 * Keep the current mascot size/position and Today card pinned at the rail
 * bottom. Mobile/tablet diagnosis artwork and layout are unchanged.
 * ====================================================================== */
@media (min-width:901px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-bubble {
    width:176px !important;
    margin:0 auto 2px !important;
    transform:none !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-card--today {
    position:absolute !important;
    left:18px !important;
    right:18px !important;
    bottom:18px !important;
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
}


/* ======================================================================
 * v0.1.91 - PC diagnosis bubble vertical relationship only.
 * Move only the desktop diagnosis bubble artwork downward so its tail sits
 * close to Ietasu's roof. Keep mascot, Today card, sizes and mobile intact.
 * ====================================================================== */
@media (min-width:901px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-bubble {
    transform:translateY(35px) !important;
  }
}

/* ======================================================================
 * v0.1.92 - PC diagnosis visual presence refinement.
 * Desktop only: preserve the current bubble/mascot relationship and Today
 * card bottom pinning, while increasing the upper visual group slightly so
 * the left rail has better visual weight. No position/layout changes.
 * ====================================================================== */
@media (min-width:901px) {
  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-bubble {
    width:183px !important;
  }

  .iehojo-site .iehojo-diagnosis .iehojo-diagnosis__visual-mascot {
    width:201px !important;
    height:242px !important;
  }
}
