:root {
	--oshm-deep: #06288a;
	--oshm-navy: #0b2c67;
	--oshm-blue: #0868ee;
	--oshm-cyan: #34bdf5;
	--oshm-pale: #f3f9ff;
	--oshm-line: #d7e7fb;
	--oshm-leaf: #4aa95e;
	--oshm-rose: #ffacd2;
	--oshm-body: #314260;
	--oshm-muted: #647694;
	--oshm-white: #fff;
	--oshm-serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	--oshm-sans: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;
	--oshm-shadow: 0 22px 58px rgba(8, 56, 133, 0.13);
	--oshm-shadow-soft: 0 10px 30px rgba(8, 56, 133, 0.09);
}

.oshm-portal-page .osh-page-content.osh-entry-content {
	width: 100%;
	max-width: none;
	padding: 0 0 100px;
}

.oshm-portal-page .osh-page-hero {
	display: none;
}

.oshm-portal,
.oshm-lp-section,
.oshm-public-voices {
	color: var(--oshm-body);
	font-family: var(--oshm-sans);
	font-size: 16px;
	line-height: 1.75;
}

.oshm-portal *,
.oshm-lp-section *,
.oshm-public-voices * {
	box-sizing: border-box;
}

.oshm-icon {
	width: 1.35em;
	height: 1.35em;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	vertical-align: -0.22em;
}

.oshm-icon path:first-child:last-child {
	fill: currentColor;
	stroke: none;
}

.oshm-portal {
	position: relative;
	isolation: isolate;
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
	padding: 52px 0 0;
}

.oshm-portal::before {
	position: absolute;
	inset: 0 50% auto;
	z-index: -2;
	width: 100vw;
	height: 520px;
	content: "";
	background:
		radial-gradient(circle at 76% 22%, transparent 0 82px, rgba(255, 172, 210, 0.22) 84px 90px, rgba(52, 189, 245, 0.18) 92px 98px, transparent 100px),
		radial-gradient(ellipse at 14% 18%, rgba(255, 255, 255, 0.92) 0 9%, transparent 9.4%),
		radial-gradient(ellipse at 88% 30%, rgba(255, 255, 255, 0.8) 0 8%, transparent 8.5%),
		linear-gradient(180deg, #dff5ff 0%, #eefaff 66%, rgba(255, 255, 255, 0) 100%);
	transform: translateX(-50%);
}

.oshm-portal::after {
	position: absolute;
	top: 360px;
	left: 50%;
	z-index: -1;
	width: 100vw;
	height: 210px;
	content: "";
	opacity: 0.72;
	background:
		radial-gradient(ellipse at 12% 100%, #bce8a9 0 35%, transparent 36%),
		radial-gradient(ellipse at 44% 120%, #82c97d 0 39%, transparent 40%),
		radial-gradient(ellipse at 82% 106%, #a9dc96 0 42%, transparent 43%);
	transform: translateX(-50%);
}

.oshm-portal-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	gap: 42px;
	min-height: 250px;
	padding: 36px 28px 52px;
	text-align: center;
}

.oshm-portal-hero > div {
	grid-column: 1 / -1;
}

.oshm-portal-hero h2,
.oshm-lp-heading h2,
.oshm-public-voices h2 {
	margin: 8px 0 16px;
	color: var(--oshm-navy);
	font-family: var(--oshm-serif);
	font-size: clamp(34px, 4.4vw, 58px);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.42;
}

.oshm-portal-hero p:last-child {
	max-width: 660px;
	margin: 0 auto;
	color: var(--oshm-navy);
	font-weight: 600;
}

.oshm-kicker,
.oshm-eyebrow {
	margin: 0;
	color: var(--oshm-blue);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.oshm-status-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 36px;
	padding: 6px 14px;
	border: 1px solid #a8d8ae;
	border-radius: 999px;
	color: #176e2b;
	background: rgba(244, 255, 245, 0.9);
	font-size: 13px;
	font-weight: 800;
}

.oshm-portal-hero > .oshm-status-badge {
	position: absolute;
	top: 34px;
	right: 26px;
}

.oshm-status-badge i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--oshm-leaf);
	box-shadow: 0 0 0 4px rgba(74, 169, 94, 0.13);
}

.oshm-status-badge[data-status="closed"] {
	border-color: #cbd5e4;
	color: #52627b;
	background: rgba(244, 247, 251, 0.94);
}

.oshm-status-badge[data-status="closed"] i {
	background: #8a98ac;
	box-shadow: 0 0 0 4px rgba(109, 124, 146, 0.12);
}

.oshm-entry-grid,
.oshm-feedback-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
	gap: 24px;
	align-items: start;
}

.oshm-panel,
.oshm-thread,
.oshm-assurance-grid article {
	border: 1px solid rgba(178, 210, 245, 0.86);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--oshm-shadow-soft);
}

.oshm-panel {
	padding: clamp(24px, 4vw, 38px);
}

.oshm-magic-panel {
	box-shadow: var(--oshm-shadow);
}

.oshm-panel-heading,
.oshm-section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 24px;
}

.oshm-panel-heading {
	justify-content: flex-start;
}

.oshm-panel-heading h3,
.oshm-section-heading h3,
.oshm-program-summary h3,
.oshm-feedback-guide h4,
.oshm-thread-list > h4,
.oshm-privacy-panel h3 {
	margin: 3px 0 0;
	color: var(--oshm-navy);
	font-family: var(--oshm-serif);
	font-size: clamp(22px, 3vw, 30px);
	line-height: 1.5;
}

.oshm-icon-disc {
	display: grid;
	place-items: center;
	flex: 0 0 58px;
	width: 58px;
	height: 58px;
	border-radius: 20px;
	color: var(--oshm-blue);
	background: linear-gradient(145deg, #e8f7ff, #fff);
	box-shadow: inset 0 0 0 1px #d8ebff;
}

.oshm-icon-disc .oshm-icon {
	width: 28px;
	height: 28px;
}

.oshm-icon-disc.is-blue {
	color: #fff;
	background: linear-gradient(145deg, var(--oshm-blue), var(--oshm-cyan));
	box-shadow: 0 8px 20px rgba(8, 104, 238, 0.25);
}

.oshm-icon-disc.is-muted {
	color: #65748c;
	background: #eef2f7;
}

.oshm-form {
	display: grid;
	gap: 10px;
}

.oshm-form label,
.oshm-form legend {
	color: var(--oshm-navy);
	font-weight: 800;
}

.oshm-form label small,
.oshm-form legend small {
	color: var(--oshm-muted);
	font-weight: 600;
}

.oshm-form input[type="text"],
.oshm-form input[type="email"],
.oshm-form input[type="number"],
.oshm-form input[type="file"],
.oshm-form textarea,
.oshm-form select,
.oshm-inline-reply textarea {
	width: 100%;
	min-height: 50px;
	padding: 12px 15px;
	border: 1.5px solid #9dc8fa;
	border-radius: 14px;
	outline: none;
	color: var(--oshm-body);
	background: linear-gradient(180deg, #f8fcff, #eef8ff);
	font: inherit;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.oshm-form textarea,
.oshm-inline-reply textarea {
	min-height: 112px;
	resize: vertical;
}

.oshm-form input[type="text"]:focus,
.oshm-form input[type="email"]:focus,
.oshm-form input[type="number"]:focus,
.oshm-form input[type="file"]:focus,
.oshm-form textarea:focus,
.oshm-form select:focus,
.oshm-inline-reply textarea:focus {
	border-color: var(--oshm-blue);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(8, 104, 238, 0.15);
}

.oshm-form input:disabled,
.oshm-form textarea:disabled,
.oshm-form select:disabled {
	cursor: not-allowed;
	opacity: 0.58;
}

.oshm-form-help,
.oshm-form p > span,
.oshm-form-grid > p > span {
	margin: 2px 0 10px;
	color: var(--oshm-muted);
	font-size: 12px;
	line-height: 1.6;
}

.oshm-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 52px;
	padding: 12px 24px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--oshm-sans);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
}

.oshm-button:hover {
	transform: translateY(-2px);
}

.oshm-button-primary {
	color: #fff !important;
	background: linear-gradient(105deg, var(--oshm-blue) 0%, #568cf4 52%, var(--oshm-rose) 100%);
	box-shadow: 0 11px 28px rgba(8, 104, 238, 0.24);
}

.oshm-button-secondary {
	border-color: #9ac6f7;
	color: var(--oshm-blue) !important;
	background: #fff;
}

.oshm-button-disabled,
.oshm-button:disabled,
.oshm-button[aria-busy="true"] {
	cursor: not-allowed;
	opacity: 0.58;
	filter: saturate(0.45);
	transform: none;
}

.oshm-text-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	color: var(--oshm-blue);
	font-weight: 800;
	text-underline-offset: 0.2em;
}

.oshm-magic-panel .oshm-text-link,
.oshm-lp-card .oshm-text-link {
	width: 100%;
}

.oshm-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.oshm-program-summary {
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.98), rgba(239, 249, 255, 0.96));
}

.oshm-mini-flow {
	display: grid;
	gap: 4px;
	padding: 0;
	margin: 22px 0 0;
	list-style: none;
}

.oshm-mini-flow li {
	position: relative;
	display: grid;
	grid-template-columns: 38px 1fr;
	align-items: center;
	gap: 13px;
	min-height: 70px;
}

.oshm-mini-flow li:not(:last-child)::after {
	position: absolute;
	top: 50px;
	left: 18px;
	width: 2px;
	height: 28px;
	content: "";
	background: #bfddfb;
}

.oshm-mini-flow li > span {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	color: #fff;
	background: var(--oshm-blue);
	font-weight: 800;
}

.oshm-mini-flow b,
.oshm-mini-flow small {
	display: block;
}

.oshm-mini-flow b {
	color: var(--oshm-navy);
}

.oshm-mini-flow small {
	color: var(--oshm-muted);
}

.oshm-assurance-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin: 26px 0 18px;
}

.oshm-assurance-grid article {
	padding: 24px;
}

.oshm-assurance-grid .oshm-icon {
	width: 28px;
	height: 28px;
	color: var(--oshm-blue);
}

.oshm-assurance-grid h3 {
	margin: 12px 0 5px;
	color: var(--oshm-navy);
	font-size: 16px;
}

.oshm-assurance-grid p {
	margin: 0;
	color: var(--oshm-muted);
	font-size: 13px;
}

.oshm-safety-strip,
.oshm-private-box,
.oshm-inline-state,
.oshm-review-note {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 18px;
	border: 1px solid #c7e1fb;
	border-radius: 16px;
	color: var(--oshm-navy);
	background: rgba(237, 248, 255, 0.92);
	font-size: 13px;
}

.oshm-safety-strip .oshm-icon,
.oshm-private-box .oshm-icon {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	color: var(--oshm-blue);
}

.oshm-notice {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 24px;
	padding: 15px 18px;
	border: 1px solid #b2dcb7;
	border-radius: 15px;
	color: #175f26;
	background: #f1fbf2;
	box-shadow: var(--oshm-shadow-soft);
}

.oshm-notice.is-error {
	border-color: #f0bdc6;
	color: #84233a;
	background: #fff4f6;
}

.oshm-notice .oshm-icon {
	flex: 0 0 24px;
}

.oshm-member-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 20px;
	padding: 14px 18px;
	border: 1px solid var(--oshm-line);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--oshm-shadow-soft);
}

.oshm-member-bar > div {
	display: flex;
	align-items: center;
	gap: 12px;
}

.oshm-member-bar .oshm-icon-disc {
	flex-basis: 42px;
	width: 42px;
	height: 42px;
	border-radius: 14px;
}

.oshm-member-bar p,
.oshm-member-bar strong,
.oshm-member-bar small {
	display: block;
	margin: 0;
}

.oshm-member-bar small {
	color: var(--oshm-muted);
	font-size: 12px;
}

.oshm-progress {
	margin: 0 0 26px;
	padding: 22px 28px;
	border: 1px solid var(--oshm-line);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--oshm-shadow-soft);
}

.oshm-progress ol {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	padding: 0;
	margin: 0;
	list-style: none;
}

.oshm-progress li {
	position: relative;
	display: grid;
	place-items: center;
	gap: 7px;
	color: #7e8ba0;
	text-align: center;
}

.oshm-progress li:not(:last-child)::after {
	position: absolute;
	top: 17px;
	left: calc(50% + 22px);
	width: calc(100% - 44px);
	height: 2px;
	content: "";
	background: #d7e2ef;
}

.oshm-progress li > span {
	z-index: 1;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 2px solid #ccd7e5;
	border-radius: 50%;
	background: #fff;
	font-weight: 800;
}

.oshm-progress li.is-complete,
.oshm-progress li.is-current {
	color: var(--oshm-blue);
}

.oshm-progress li.is-complete > span {
	border-color: var(--oshm-leaf);
	color: #fff;
	background: var(--oshm-leaf);
}

.oshm-progress li.is-current > span {
	border-color: var(--oshm-blue);
	box-shadow: 0 0 0 5px rgba(8, 104, 238, 0.12);
}

.oshm-progress li.is-complete:not(:last-child)::after {
	background: var(--oshm-leaf);
}

.oshm-progress small {
	font-size: 11px;
	font-weight: 700;
}

.oshm-state-panel,
.oshm-admin-shortcut {
	display: flex;
	align-items: center;
	gap: 24px;
}

.oshm-state-panel .oshm-button,
.oshm-admin-shortcut .oshm-button {
	margin-left: auto;
}

.oshm-application-panel {
	box-shadow: var(--oshm-shadow);
}

.oshm-application-panel.is-disabled {
	background: linear-gradient(145deg, rgba(247, 249, 252, 0.96), rgba(235, 241, 247, 0.92));
	filter: saturate(0.55);
}

.oshm-form-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 20px;
}

.oshm-form-grid > p {
	display: grid;
	align-content: start;
	gap: 7px;
	margin: 0;
}

.oshm-field-full {
	grid-column: 1 / -1;
}

.oshm-field-intro {
	padding: 13px 16px;
	border-radius: 14px;
	color: var(--oshm-navy) !important;
	background: var(--oshm-pale);
	font-size: 13px !important;
}

.oshm-check {
	display: flex !important;
	align-items: flex-start;
	gap: 11px;
	min-height: 44px;
	cursor: pointer;
}

.oshm-check input {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin-top: 3px;
	accent-color: var(--oshm-blue);
}

.oshm-consent-note {
	padding: 17px 20px;
	border: 1px solid #c8e0f7;
	border-radius: 16px;
	background: linear-gradient(145deg, #f6fbff, #fff);
}

.oshm-consent-note strong {
	color: var(--oshm-navy);
}

.oshm-consent-note ul {
	margin: 8px 0 0;
	padding-left: 1.4em;
	font-size: 13px;
}

.oshm-offer-panel {
	position: relative;
	overflow: hidden;
	margin-bottom: 44px;
	border-color: #a9d3ff;
	background:
		radial-gradient(circle at 96% 0, rgba(255, 172, 210, 0.2), transparent 28%),
		linear-gradient(135deg, #fff, #edf8ff);
	box-shadow: var(--oshm-shadow);
}

.oshm-offer-body {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 26px;
	padding: 24px;
	border: 1px solid #c8e2fb;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.9);
}

.oshm-offer-body strong,
.oshm-offer-body p {
	display: block;
	margin: 4px 0;
}

.oshm-offer-body strong {
	color: var(--oshm-navy);
	font-size: 20px;
}

.oshm-offer-body p {
	color: var(--oshm-muted);
	font-size: 13px;
}

.oshm-code-label,
.oshm-soft-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	border-radius: 999px;
	color: var(--oshm-blue);
	background: #eaf5ff;
	font-size: 11px;
	font-weight: 800;
}

.oshm-soft-badge.is-green {
	color: #176e2b;
	background: #edf8ee;
}

.oshm-manual-code {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	padding: 14px 18px;
	border: 1px dashed #9ac6f7;
	border-radius: 14px;
	background: #fff;
}

.oshm-manual-code code {
	padding: 5px 10px;
	border-radius: 7px;
	color: var(--oshm-navy);
	background: var(--oshm-pale);
	font-size: 17px;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.oshm-copy-button {
	min-height: 40px;
	margin-left: auto;
	padding: 7px 13px;
	border: 1px solid #9ac6f7;
	border-radius: 999px;
	color: var(--oshm-blue);
	background: #fff;
	font-weight: 800;
	cursor: pointer;
}

.oshm-section-block {
	margin-top: 54px;
}

.oshm-section-heading {
	align-items: end;
}

.oshm-feedback-guide h4 {
	font-size: 22px;
}

.oshm-feedback-guide ul {
	padding-left: 1.3em;
	color: var(--oshm-body);
}

.oshm-feedback-guide > p {
	padding: 12px 14px;
	border-radius: 12px;
	color: #176e2b;
	background: #eef9ef;
	font-size: 13px;
	font-weight: 800;
}

.oshm-thread-list {
	margin-top: 28px;
}

.oshm-thread-list > h4 {
	font-size: 22px;
}

.oshm-empty-state {
	padding: 22px;
	border: 1px dashed #b8d7f7;
	border-radius: 16px;
	color: var(--oshm-muted);
	text-align: center;
	background: #f8fcff;
}

.oshm-thread {
	overflow: hidden;
	margin-top: 12px;
}

.oshm-thread summary {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 16px;
	min-height: 72px;
	padding: 15px 20px;
	cursor: pointer;
	list-style: none;
}

.oshm-thread summary::-webkit-details-marker {
	display: none;
}

.oshm-thread summary::after {
	grid-column: 2;
	grid-row: 1;
	content: "+";
	color: var(--oshm-blue);
	font-size: 24px;
}

.oshm-thread[open] summary::after {
	content: "−";
}

.oshm-thread summary > span {
	display: grid;
}

.oshm-thread summary small {
	color: var(--oshm-blue);
	font-size: 11px;
	font-weight: 800;
}

.oshm-thread summary b {
	color: var(--oshm-navy);
}

.oshm-thread summary time {
	grid-column: 2;
	grid-row: 1;
	margin-right: 34px;
	color: var(--oshm-muted);
	font-size: 12px;
}

.oshm-thread-body {
	padding: 8px 20px 22px;
	border-top: 1px solid var(--oshm-line);
	background: #f8fbff;
}

.oshm-message {
	max-width: 82%;
	margin: 16px 0;
	padding: 15px 17px;
	border: 1px solid #c7e0fa;
	border-radius: 6px 18px 18px 18px;
	background: #fff;
}

.oshm-message.is-participant {
	margin-left: auto;
	border-color: #b5d4fb;
	border-radius: 18px 6px 18px 18px;
	background: #eaf5ff;
}

.oshm-message-meta {
	display: flex;
	justify-content: space-between;
	margin: 0 0 7px;
	color: var(--oshm-blue);
	font-size: 11px;
	font-weight: 800;
}

.oshm-message > div {
	color: var(--oshm-body);
	font-size: 14px;
}

.oshm-inline-reply {
	display: grid;
	gap: 9px;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--oshm-line);
}

.oshm-final-form {
	gap: 13px;
}

.oshm-private-box {
	margin-bottom: 8px;
}

.oshm-private-box p {
	margin: 0;
}

.oshm-choice-fieldset,
.oshm-public-options fieldset {
	display: grid;
	gap: 10px;
	padding: 18px;
	border: 1px solid #c9e0f8;
	border-radius: 16px;
	background: #f8fcff;
}

.oshm-choice-fieldset > label {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 58px;
	padding: 10px 13px;
	border: 1px solid #d7e7f8;
	border-radius: 13px;
	background: #fff;
	cursor: pointer;
}

.oshm-choice-fieldset input {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	accent-color: var(--oshm-blue);
}

.oshm-choice-fieldset b,
.oshm-choice-fieldset small {
	display: block;
}

.oshm-choice-fieldset small {
	color: var(--oshm-muted);
	font-weight: 500;
}

.oshm-public-options {
	display: grid;
	gap: 12px;
	padding: 20px;
	border: 1px solid #b8d9f8;
	border-radius: 18px;
	background: linear-gradient(145deg, #eff9ff, #fff);
}

.oshm-public-options[hidden] {
	display: none !important;
}

.oshm-public-options fieldset {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.oshm-public-options legend {
	grid-column: 1 / -1;
}

.oshm-public-consent {
	padding: 14px;
	border: 1px solid #a6d1ac;
	border-radius: 13px;
	background: #f3fbf4;
}

.oshm-review-note {
	color: #5c4a1d;
	background: #fffaf0;
	border-color: #edd9a1;
}

.oshm-privacy-panel {
	margin-top: 54px;
}

.oshm-privacy-panel details {
	margin-top: 16px;
	border-top: 1px solid var(--oshm-line);
}

.oshm-privacy-panel summary {
	min-height: 50px;
	padding-top: 13px;
	color: var(--oshm-blue);
	font-weight: 800;
	cursor: pointer;
}

.oshm-privacy-panel .oshm-form {
	max-width: 620px;
	padding-top: 12px;
}

.oshm-lp-section {
	position: relative;
	overflow: hidden;
	padding: clamp(72px, 9vw, 118px) 0;
	background:
		radial-gradient(circle at 78% 16%, transparent 0 84px, rgba(255, 172, 210, 0.22) 86px 91px, rgba(52, 189, 245, 0.18) 93px 99px, transparent 101px),
		linear-gradient(180deg, #dff5ff 0%, #f5fcff 62%, #f0faed 100%);
}

.oshm-lp-section::after {
	position: absolute;
	inset: auto 0 0;
	height: 110px;
	content: "";
	opacity: 0.7;
	background:
		radial-gradient(ellipse at 10% 130%, #97d783 0 40%, transparent 41%),
		radial-gradient(ellipse at 50% 150%, #71c56b 0 42%, transparent 43%),
		radial-gradient(ellipse at 90% 135%, #9ddd87 0 38%, transparent 39%);
}

.oshm-lp-shell {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
	gap: 40px 54px;
	align-items: center;
}

.oshm-lp-heading .oshm-status-badge {
	margin: 13px 0;
}

.oshm-lp-heading h2 {
	font-size: clamp(34px, 4.2vw, 52px);
}

.oshm-lp-heading > p:last-child {
	max-width: 600px;
	color: var(--oshm-navy);
}

.oshm-lp-card {
	display: grid;
	gap: 18px;
	padding: clamp(24px, 4vw, 38px);
	border: 1px solid rgba(168, 207, 245, 0.92);
	border-radius: 26px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--oshm-shadow);
	backdrop-filter: blur(14px);
}

.oshm-lp-card.is-dimmed {
	border-color: #cbd8e6;
	background: rgba(247, 249, 251, 0.93);
	filter: saturate(0.52);
}

.oshm-fact-row,
.oshm-lp-assurances {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.oshm-fact-row > span,
.oshm-lp-assurances > span {
	display: grid;
	justify-items: center;
	gap: 3px;
	padding: 14px 10px;
	border: 1px solid #d9eafa;
	border-radius: 16px;
	text-align: center;
	background: rgba(255, 255, 255, 0.82);
}

.oshm-fact-row .oshm-icon,
.oshm-lp-assurances .oshm-icon {
	width: 25px;
	height: 25px;
	color: var(--oshm-blue);
}

.oshm-fact-row b,
.oshm-fact-row small,
.oshm-lp-assurances b,
.oshm-lp-assurances small {
	display: block;
}

.oshm-fact-row b,
.oshm-lp-assurances b {
	color: var(--oshm-navy);
	font-size: 14px;
}

.oshm-fact-row small,
.oshm-lp-assurances small {
	color: var(--oshm-muted);
	font-size: 10px;
}

.oshm-closed-message {
	margin: 0;
	padding: 12px 15px;
	border-radius: 14px;
	color: #506078;
	text-align: center;
	background: #eef2f6;
	font-size: 13px;
}

.oshm-lp-assurances {
	grid-column: 1 / -1;
}

.oshm-lp-assurances > span {
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto;
	justify-items: start;
	column-gap: 12px;
	padding: 18px 20px;
	text-align: left;
}

.oshm-lp-assurances .oshm-icon {
	grid-row: 1 / 3;
}

.oshm-medical-note {
	grid-column: 1 / -1;
	margin: 0;
	padding: 12px 18px;
	border-radius: 14px;
	color: #52627a;
	text-align: center;
	background: rgba(255, 255, 255, 0.68);
	font-size: 12px;
}

.oshm-public-voices {
	padding: 80px 0;
	background: #fff;
}

.oshm-public-voices .oshm-section-heading {
	justify-content: center;
	text-align: center;
}

.oshm-public-voices h2 {
	font-size: clamp(30px, 4vw, 46px);
}

.oshm-voice-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.oshm-voice-card {
	padding: 26px;
	border: 1px solid var(--oshm-line);
	border-radius: 22px;
	background: linear-gradient(150deg, #fff, #f6fbff);
	box-shadow: var(--oshm-shadow-soft);
}

.oshm-voice-card img {
	width: 72px;
	height: 72px;
	border: 4px solid #fff;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 6px 20px rgba(8, 56, 133, 0.16);
}

.oshm-voice-card blockquote {
	padding: 0;
	margin: 18px 0;
	border: 0;
	color: var(--oshm-body);
}

.oshm-voice-card blockquote p {
	margin: 0;
}

.oshm-voice-card footer strong,
.oshm-voice-card footer small {
	display: block;
}

.oshm-voice-card footer strong {
	color: var(--oshm-navy);
}

.oshm-voice-card footer small,
.oshm-voice-note {
	color: var(--oshm-muted);
	font-size: 12px;
}

.oshm-voice-note {
	margin: 20px 0 0;
	text-align: center;
}

@media (max-width: 900px) {
	.oshm-entry-grid,
	.oshm-feedback-grid,
	.oshm-lp-shell {
		grid-template-columns: 1fr;
	}

	.oshm-assurance-grid,
	.oshm-voice-grid {
		grid-template-columns: 1fr;
	}

	.oshm-lp-assurances {
		grid-template-columns: repeat(3, 1fr);
	}

	.oshm-lp-assurances > span {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.oshm-lp-assurances .oshm-icon {
		grid-row: auto;
	}
}

@media (max-width: 640px) {
	.oshm-portal {
		width: min(100% - 24px, 1180px);
		padding-top: 20px;
	}

	.oshm-portal::before {
		height: 420px;
	}

	.oshm-portal-hero {
		min-height: 270px;
		padding: 44px 8px 34px;
	}

	.oshm-portal-hero > .oshm-status-badge {
		position: static;
		grid-column: 1 / -1;
		justify-self: center;
		margin-top: -18px;
	}

	.oshm-portal-hero h2,
	.oshm-lp-heading h2 {
		font-size: 32px;
		letter-spacing: 0.03em;
	}

	.oshm-panel {
		padding: 22px 18px;
		border-radius: 19px;
	}

	.oshm-panel-heading,
	.oshm-section-heading,
	.oshm-member-bar,
	.oshm-state-panel,
	.oshm-admin-shortcut {
		align-items: flex-start;
	}

	.oshm-state-panel,
	.oshm-admin-shortcut {
		flex-direction: column;
	}

	.oshm-state-panel .oshm-button,
	.oshm-admin-shortcut .oshm-button {
		width: 100%;
		margin-left: 0;
	}

	.oshm-panel-heading h3,
	.oshm-section-heading h3,
	.oshm-program-summary h3 {
		font-size: 22px;
	}

	.oshm-icon-disc {
		flex-basis: 48px;
		width: 48px;
		height: 48px;
		border-radius: 16px;
	}

	.oshm-form-grid,
	.oshm-public-options fieldset {
		grid-template-columns: 1fr;
	}

	.oshm-progress {
		padding: 18px 12px;
	}

	.oshm-progress ol {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.oshm-progress li {
		gap: 5px;
		min-width: 0;
	}

	.oshm-progress li > span {
		width: 30px;
		height: 30px;
		font-size: 12px;
	}

	.oshm-progress li:not(:last-child)::after {
		top: 14px;
		left: calc(50% + 18px);
		width: calc(100% - 36px);
	}

	.oshm-progress small {
		font-size: 10px;
		line-height: 1.35;
		word-break: keep-all;
	}

	.oshm-offer-body {
		grid-template-columns: 1fr;
		padding: 18px;
	}

	.oshm-offer-body .oshm-button,
	.oshm-manual-code,
	.oshm-manual-code .oshm-copy-button {
		width: 100%;
	}

	.oshm-manual-code {
		flex-direction: column;
		align-items: stretch;
	}

	.oshm-section-heading {
		flex-direction: column;
	}

	.oshm-feedback-grid {
		gap: 16px;
	}

	.oshm-message {
		max-width: 94%;
	}

	.oshm-thread summary {
		grid-template-columns: 1fr auto;
		padding: 14px;
	}

	.oshm-thread summary time {
		display: none;
	}

	.oshm-lp-section {
		padding: 70px 0;
	}

	.oshm-lp-shell {
		gap: 24px;
	}

	.oshm-fact-row,
	.oshm-lp-assurances {
		grid-template-columns: 1fr;
	}

	.oshm-fact-row > span {
		grid-template-columns: 30px 1fr;
		grid-template-rows: auto auto;
		justify-items: start;
		text-align: left;
	}

	.oshm-fact-row .oshm-icon {
		grid-row: 1 / 3;
	}

	.oshm-lp-card .oshm-button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.oshm-portal *,
	.oshm-lp-section *,
	.oshm-public-voices * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media print {
	.oshm-magic-panel,
	.oshm-form,
	.oshm-member-bar .oshm-text-link,
	.oshm-button {
		display: none !important;
	}
}
