:root {
	/* --site-accent はドメインごとの素の色。テーマで上書きしない出どころとして持つ。
	   ダークテーマ用の色をここから作るため、--welcome-accent とは別に要る
	   (--welcome-accent はダークで差し替わるので、自分自身からは作れない)。 */
	--site-accent: #319fbe;
	--site-accent-dark: #197f9e;
	--welcome-accent: var(--site-accent);
	--welcome-accent-dark: var(--site-accent-dark);
	--welcome-ink: #172027;
	--welcome-muted: #68747d;
	--welcome-canvas: #f6f7f5;
	--welcome-line: #dfe5e5;
	--welcome-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}


.welcome-site--pictmalfem { --site-accent: #75a342; --site-accent-dark: #537d2a; --welcome-accent: var(--site-accent); --welcome-accent-dark: var(--site-accent-dark); }
.welcome-site--pictgland { --site-accent: #ba6683; --site-accent-dark: #91445f; --welcome-accent: var(--site-accent); --welcome-accent-dark: var(--site-accent-dark); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }
.responsive-pc-ad-overlay { position: fixed; right: 0; bottom: 0; left: 0; z-index: 80; visibility: hidden; pointer-events: none; text-align: center; }
.responsive-pc-ad-overlay.is-filled { visibility: visible; }
.responsive-pc-ad-overlay__slot { width: fit-content; margin: 0 auto; pointer-events: auto; }
body:has(.responsive-pc-ad-overlay.is-filled) .welcome-page { padding-bottom: 90px; }
button, input { font: inherit; }
a { color: inherit; }
img, svg { display: block; }

.welcome-page {
	min-height: 100vh;
	overflow: hidden;
	background: var(--welcome-canvas);
	color: var(--welcome-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
}

.welcome-page--landing { display: flex; min-height: 100vh; flex-direction: column; }
.welcome-page--landing main { display: flex; flex: 1; flex-direction: column; }

.welcome-skip {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 100;
	padding: 10px 16px;
	border-radius: 10px;
	background: var(--welcome-ink);
	color: #fff;
	transform: translateY(-160%);
	transition: transform 180ms var(--welcome-ease-out);
}

.welcome-skip:focus { transform: translateY(0); }
.welcome-header { display: flex; align-items: center; justify-content: space-between; width: min(1180px, calc(100% - 48px)); min-height: 82px; margin: 0 auto; }
.welcome-brand { display: inline-flex; }
.welcome-brand img { width: 144px; height: auto; }
.welcome-nav { display: flex; align-items: center; gap: 24px; }
.welcome-nav a { color: #48545c; font-size: 13px; font-weight: 700; text-decoration: none; }
.welcome-nav__login { padding: 8px 16px; border: 1px solid #cbd4d5; border-radius: 999px; background: rgba(255,255,255,.55); }

.welcome-alert { width: min(1180px, calc(100% - 48px)); box-sizing: border-box; margin: 12px auto 0; padding: 12px 15px; border: 1px solid #f0cbd0; border-radius: 11px; background: #fff1f3; color: #963642; font-size: 14px; }
.welcome-alert--success { border-color: #bee2d2; background: #edf9f4; color: #246c4e; }
.welcome-eyebrow { margin: 0 0 14px; color: var(--welcome-accent-dark); font-size: 12px; font-weight: 800; letter-spacing: .16em; }

.welcome-landing {
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(1180px, calc(100% - 48px));
	min-height: 540px;
	margin: auto;
	padding: 40px 0 70px;
}

.welcome-landing__copy { width: min(100%, 780px); text-align: center; }
.welcome-landing h1 { margin: 0; font-size: clamp(46px, 5.3vw, 72px); font-weight: 800; letter-spacing: -.055em; line-height: 1.14; }
.welcome-landing h1 span { color: var(--welcome-accent-dark); }
.welcome-landing__lead { max-width: 620px; margin: 24px auto 0; color: var(--welcome-muted); font-size: clamp(15px, 1.5vw, 18px); line-height: 1.85; }
.welcome-choice { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 30px; }
.welcome-choice__main { min-width: 210px; min-height: 62px; justify-content: space-between; }
.welcome-choice__main span { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.welcome-choice__main small { color: rgba(255,255,255,.7); font-size: 12px; font-weight: 700; letter-spacing: .05em; }
.welcome-choice__main b { font-size: 19px; }
.welcome-choice__login { min-width: 120px; }
.welcome-landing__note { margin: 19px 0 0; color: #78848a; font-size: 12px; font-weight: 700; }
.welcome-landing__details { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; color: var(--welcome-accent-dark); font-size: 12px; font-weight: 800; text-underline-offset: 3px; }

.welcome-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 22px;
	border: 0;
	border-radius: 14px;
	cursor: pointer;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: transform 150ms var(--welcome-ease-out), background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.welcome-button:active { transform: scale(.97); }
.welcome-button--primary { background: var(--welcome-accent-dark); box-shadow: 0 10px 24px color-mix(in srgb, var(--welcome-accent-dark) 22%, transparent); color: #fff; }
.welcome-button--quiet, .welcome-button--social { border: 1px solid var(--welcome-line); background: rgba(255,255,255,.72); color: #344149; }
.welcome-button--full { width: 100%; }
.welcome-social-mark { font-size: 18px; font-weight: 500; }

.welcome-auth-main { display: grid; min-height: calc(100vh - 82px); padding: 42px 20px 78px; place-items: start center; }
.welcome-auth-shell { width: min(100%, 500px); padding: 34px; border: 1px solid rgba(211,221,221,.92); border-radius: 24px; background: rgba(255,255,255,.92); box-shadow: 0 22px 70px rgba(31,52,56,.1); }
.welcome-back { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 24px; color: #758187; font-size: 12px; font-weight: 700; text-decoration: none; }
.welcome-back span { font-size: 17px; }
.welcome-auth__heading { margin-bottom: 25px; }
.welcome-auth__heading .welcome-eyebrow { margin-bottom: 5px; }
.welcome-auth__heading h1 { margin: 0; font-size: 30px; letter-spacing: -.035em; line-height: 1.4; }
.welcome-auth__heading > p:last-child { margin: 9px 0 0; color: var(--welcome-muted); font-size: 13px; }
.welcome-label { display: block; margin: 0 0 8px; color: #3d494f; font-size: 13px; font-weight: 800; }
/* 「必須」はアプリ側(.form-field > span b)と同じ扱い。見出しと同じ色だと目印にならない。 */
.welcome-label b { margin-left: 4px; color: #b04752; font-size: 12px; font-weight: 800; }
/* 入力の一区切り。ラベルと入力は近づけたまま、次の項目との間だけ空ける。
   .welcome-validation はエラーが無いと display:none になるので、
   入力と次のラベルが地続きになっていた。 */
.welcome-label:not(:first-child) { margin-top: 22px; }
.welcome-fieldgroup { margin-top: 22px; }
.welcome-fieldgroup > .welcome-label:first-child { margin-top: 0; }
.welcome-input { width: 100%; height: 54px; padding: 0 16px; border: 1px solid #ccd6d7; border-radius: 13px; outline: none; background: #fbfcfc; color: var(--welcome-ink); transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease; }
.welcome-input::placeholder { color: #9da8ad; }
.welcome-input:focus { border-color: var(--welcome-accent); background: #fff; box-shadow: 0 0 0 4px color-mix(in srgb, var(--welcome-accent) 14%, transparent); }
.welcome-auth-shell form .welcome-button { margin-top: 16px; }
/* 送信中の待ち表示。アプリ側(home-responsive.css)と同じ見せ方だが、
   この画面ではそちらを読み込まないのでここにも持つ。 */
.welcome-button .ui-spinner { display: inline-block; width: 16px; height: 16px; flex: 0 0 auto; border: 2px solid currentColor; border-top-color: transparent; border-radius: 50%; opacity: .8; animation: welcome-spin 700ms linear infinite; }
@keyframes welcome-spin { to { transform: rotate(360deg); } }
.welcome-button.is-loading { cursor: progress; }
.welcome-button.is-loading[disabled] { opacity: .85; }
.welcome-validation { min-height: 8px; color: #a43f4a; font-size: 13px; }
.welcome-validation:empty { display: none; }
.welcome-form-error { margin-bottom: 16px; padding: 12px 15px; border: 1px solid #f0cbd0; border-radius: 11px; background: #fff1f3; color: #963642; font-size: 13px; }
.welcome-recaptcha { overflow-x: auto; margin-top: 16px; }
.welcome-divider { display: flex; align-items: center; gap: 12px; margin: 22px 0; color: #98a3a8; font-size: 12px; }
.welcome-divider::before, .welcome-divider::after { content: ""; flex: 1; height: 1px; background: var(--welcome-line); }
/* 会員登録の受付完了で出す確認事項。「メールが届かない」がいちばん多い詰まりどころなので、
   戻る前に確かめてほしいことを本文と同じ大きさで並べる(注釈の小ささにしない)。 */
.welcome-auth-steps { display: grid; gap: 9px; margin: 22px 0; padding: 18px 20px 18px 34px; border: 1px solid var(--welcome-line); border-radius: 14px; color: var(--welcome-muted); font-size: 13px; line-height: 1.7; }
.welcome-auth-steps b { color: var(--welcome-ink); }
/* 本登録(users/init2)で使う選択肢と同意チェック。
   トップの .welcome-choice は大きなボタンの並びで用途が別なので、名前を分ける。 */
.welcome-options { display: grid; gap: 10px; margin: 6px 0 4px; }
.welcome-options__item { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 11px; align-items: start; padding: 13px 15px; border: 1px solid var(--welcome-line); border-radius: 13px; cursor: pointer; }
.welcome-options__item:has(input:checked) { border-color: var(--welcome-accent); background: color-mix(in srgb, var(--welcome-accent) 8%, #fff); }
.welcome-options__item input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--welcome-accent); }
.welcome-options__item span { display: grid; gap: 3px; }
.welcome-options__item b { font-size: 14px; }
.welcome-options__item small { color: var(--welcome-muted); font-size: 12px; line-height: 1.6; }
.welcome-options__item.is-disabled { cursor: not-allowed; opacity: .55; }
.welcome-check { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 11px; align-items: start; margin-bottom: 4px; cursor: pointer; font-size: 13px; line-height: 1.7; }
.welcome-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--welcome-accent); }
.welcome-input--area { min-height: 92px; padding: 12px 15px; line-height: 1.7; resize: vertical; }
/* 入力項目が多い画面だけ器を広げる(1項目しかない画面と同じ幅だと窮屈になる) */
.welcome-auth-shell--wide { width: min(100%, 620px); }
.welcome-auth__note, .welcome-auth__terms { margin: 14px 0 6px; color: var(--welcome-muted); font-size: 12px; line-height: 1.65; }
.welcome-auth__security { color: var(--welcome-accent-dark); font-size: 12px; font-weight: 700; text-underline-offset: 3px; }
.welcome-auth__terms a { text-underline-offset: 3px; }
.welcome-auth__switch { margin: 25px -34px -34px; padding: 18px 20px; border-radius: 0 0 24px 24px; background: #f1f4f3; color: #667278; font-size: 12px; text-align: center; }
.welcome-auth__switch a { color: var(--welcome-accent-dark); font-weight: 800; text-underline-offset: 3px; }

.welcome-footer { display: grid; grid-template-columns: 1fr auto; gap: 18px 42px; align-items: end; padding: 30px max(24px, calc((100% - 1180px) / 2)); border-top: 1px solid var(--welcome-line); background: #fff; }
.welcome-footer__brand img { width: 112px; height: auto; }
.welcome-footer__brand p { margin: 6px 0 0; color: var(--welcome-muted); font-size: 12px; }
.welcome-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 20px; }
.welcome-footer nav a { color: #647076; font-size: 12px; font-weight: 700; text-decoration: none; }
.welcome-footer__copyright { grid-column: 1 / -1; margin: 4px 0 0; color: #a1aaae; font-size: 12px; }
.welcome-page--auth .welcome-footer { display: none; }

.welcome-page--about { background: #fff; }
.about-hero { width: min(980px, calc(100% - 48px)); margin: 0 auto; padding: 110px 0 125px; text-align: center; }
.about-hero h1 { margin: 0; font-size: clamp(44px, 5.4vw, 70px); font-weight: 800; letter-spacing: -.055em; line-height: 1.2; }
.about-hero h1 span { color: var(--welcome-accent-dark); }
.about-hero > p:not(.welcome-eyebrow) { max-width: 720px; margin: 28px auto 0; color: var(--welcome-muted); font-size: 17px; line-height: 2; }
.about-scroll { display: inline-flex; align-items: center; gap: 9px; margin-top: 35px; color: var(--welcome-accent-dark); font-size: 12px; font-weight: 800; text-underline-offset: 3px; }

.about-values { padding: 110px max(24px, calc((100% - 1180px) / 2)); background: var(--welcome-canvas); }
.about-section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 0 80px; align-items: end; margin-bottom: 52px; }
.about-section-heading .welcome-eyebrow { grid-column: 1 / -1; }
.about-section-heading h2, .about-community h2, .about-cta h2 { margin: 0; font-size: clamp(34px, 4vw, 50px); letter-spacing: -.045em; line-height: 1.35; }
.about-section-heading > p:last-child { margin: 0 0 5px; color: var(--welcome-muted); }
.about-value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.about-value { position: relative; padding: 28px; border: 1px solid #e0e6e6; border-radius: 20px; background: #fff; }
.about-value--dark { border-color: var(--welcome-ink); background: var(--welcome-ink); color: #fff; }
.about-icon { display: grid; width: 46px; height: 46px; margin-bottom: 24px; place-items: center; border-radius: 13px; background: color-mix(in srgb, var(--welcome-accent) 13%, #fff); color: var(--welcome-accent-dark); }
.about-icon svg, .about-action-list svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.about-value--dark .about-icon { background: rgba(255,255,255,.1); color: #fff; }
.about-value > span { position: absolute; top: 27px; right: 27px; color: #9ca8ac; font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.about-value h3 { margin: 0; font-size: 21px; letter-spacing: -.025em; }
.about-value p { margin: 11px 0 0; color: var(--welcome-muted); font-size: 13px; }
.about-value--dark p { color: #b6c0c4; }

.about-actions { width: min(1080px, calc(100% - 48px)); margin: 0 auto; padding: 115px 0; }
.about-section-heading--compact { display: block; max-width: 650px; }
.about-action-list { border-top: 1px solid var(--welcome-line); }
.about-action-list article { display: grid; grid-template-columns: 60px 1fr 40px; gap: 26px; align-items: center; padding: 30px 4px; border-bottom: 1px solid var(--welcome-line); }
.about-action-list__number { align-self: start; margin: 5px 0 0; color: var(--welcome-accent-dark); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.about-action-list h3 { margin: 0; font-size: 20px; letter-spacing: -.02em; }
.about-action-list article div p { max-width: 700px; margin: 7px 0 0; color: var(--welcome-muted); font-size: 13px; }
.about-action-list article > svg { justify-self: end; color: var(--welcome-accent-dark); }

.about-community { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(55px, 9vw, 130px); align-items: center; padding: 105px max(24px, calc((100% - 1180px) / 2)); background: var(--welcome-ink); color: #fff; }
.about-community .welcome-eyebrow { color: color-mix(in srgb, var(--welcome-accent) 70%, #fff); }
.about-community__copy > p:last-child { max-width: 620px; margin: 22px 0 0; color: #b6c0c4; }
.about-community__tags { display: flex; flex-wrap: wrap; gap: 10px; align-content: center; }
.about-community__tags span { padding: 10px 15px; border: 1px solid #3a464c; border-radius: 999px; color: #dbe1e3; font-size: 12px; font-weight: 700; }

.about-cta { padding: 115px 24px 125px; background: color-mix(in srgb, var(--welcome-accent) 8%, #fff); text-align: center; }
.about-cta > p:not(.welcome-eyebrow) { margin: 18px 0 0; color: var(--welcome-muted); }
.about-cta > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 30px; }
.about-cta .welcome-button--primary { min-width: 210px; min-height: 62px; justify-content: space-between; }
.about-cta .welcome-button--primary span { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.about-cta .welcome-button--primary small { color: rgba(255,255,255,.7); font-size: 12px; }

.welcome-page--document { background: #fff; }
.document-main { padding-bottom: 110px; }
.document-hero { width: min(980px, calc(100% - 48px)); margin: 0 auto; padding: 105px 0 100px; text-align: center; }
.document-hero--compact { padding-bottom: 75px; }
.document-hero h1 { margin: 0; font-size: clamp(44px, 5.2vw, 68px); font-weight: 800; letter-spacing: -.055em; line-height: 1.2; }
.document-hero h1 span { color: var(--welcome-accent-dark); }
.document-hero > p:last-child { max-width: 700px; margin: 26px auto 0; color: var(--welcome-muted); font-size: 16px; line-height: 2; }
.document-intro { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px, 9vw, 130px); width: min(1080px, calc(100% - 48px)); margin: 0 auto 90px; padding: 58px; border-radius: 24px; background: var(--welcome-ink); color: #fff; }
.document-intro h2 { margin: 0; font-size: clamp(29px, 3.2vw, 42px); letter-spacing: -.04em; line-height: 1.45; }
.document-intro .welcome-eyebrow { color: color-mix(in srgb, var(--welcome-accent) 72%, #fff); }
.document-prose p { margin: 0 0 18px; color: #c1c9cc; font-size: 14px; }
.document-prose p:last-child { margin-bottom: 0; }
.document-index { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; width: min(1080px, calc(100% - 48px)); margin: 0 auto 80px; }
.document-index a { display: flex; min-height: 108px; flex-direction: column; justify-content: space-between; padding: 18px; border: 1px solid var(--welcome-line); border-radius: 14px; color: #364249; font-size: 12px; font-weight: 800; line-height: 1.5; text-decoration: none; transition: transform 150ms var(--welcome-ease-out), border-color 180ms ease, background-color 180ms ease; }
.document-index a:active { transform: scale(.97); }
.document-index a span { color: var(--welcome-accent-dark); font-size: 12px; letter-spacing: .12em; }
.document-index--guide { grid-template-columns: repeat(6, 1fr); }
.document-sections { width: min(980px, calc(100% - 48px)); margin: 0 auto; border-top: 1px solid var(--welcome-line); }
.document-section { display: grid; grid-template-columns: 74px 1fr; gap: 20px; padding: 76px 0; border-bottom: 1px solid var(--welcome-line); scroll-margin-top: 24px; }
.document-section__number { padding-top: 8px; color: var(--welcome-accent-dark); font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.document-section h2 { margin: 0; font-size: clamp(29px, 3.4vw, 42px); letter-spacing: -.04em; line-height: 1.35; }
.document-section__lead { margin: 16px 0 0; color: var(--welcome-muted); font-size: 16px; line-height: 1.9; }
.document-section > div > p:not(.document-section__lead, .document-note) { color: #4e5b62; }
.document-subsection { margin-top: 35px; padding-top: 32px; border-top: 1px solid #edf0f0; }
.document-subsection h3 { margin: 0 0 12px; font-size: 19px; letter-spacing: -.02em; }
.document-subsection p { margin: 0 0 15px; color: #56636a; }
.document-subsection ul, .guideline-checklist { display: grid; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.document-subsection li { display: grid; grid-template-columns: minmax(135px, .36fr) 1fr; gap: 22px; padding: 16px 18px; border-radius: 12px; background: var(--welcome-canvas); }
.document-subsection li strong { color: var(--welcome-ink); }
.document-subsection li span { color: #5c696f; font-size: 13px; }
.document-subsection li span:only-child { grid-column: 1 / -1; }
.document-note { margin: 24px 0 0; padding: 18px 20px; border-left: 3px solid var(--welcome-accent); border-radius: 0 11px 11px 0; background: color-mix(in srgb, var(--welcome-accent) 7%, #fff); color: #536168; font-size: 13px; }
.document-closing { width: min(980px, calc(100% - 48px)); margin: 70px auto 0; padding: 32px 38px; border-radius: 18px; background: var(--welcome-ink); color: #fff; }
.document-closing p { margin: 0; color: #c5cdd0; }
.document-closing h2 { margin: 0 0 12px; font-size: 24px; }
.document-closing a { display: inline-flex; gap: 8px; margin-top: 18px; color: color-mix(in srgb, var(--welcome-accent) 70%, #fff); font-size: 13px; font-weight: 800; text-underline-offset: 3px; }
.document-closing--warning { background: #283238; }
.guideline-summary { display: grid; grid-template-columns: 220px 1fr; gap: 34px; width: min(980px, calc(100% - 48px)); margin: 0 auto 36px; padding: 22px 26px; border: 1px solid color-mix(in srgb, var(--welcome-accent) 30%, #fff); border-radius: 14px; background: color-mix(in srgb, var(--welcome-accent) 7%, #fff); }
.guideline-summary strong { font-size: 14px; }
.guideline-summary p { margin: 0; color: #56636a; font-size: 13px; }
.guideline-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 30px; }
.guideline-box { padding: 25px; border-radius: 16px; background: var(--welcome-canvas); }
.guideline-box--ok { background: color-mix(in srgb, var(--welcome-accent) 7%, #fff); }
.guideline-box--care { background: #f6f3f1; }
.guideline-box h3 { margin: 0 0 17px; font-size: 17px; }
.guideline-box ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.guideline-box li { position: relative; padding-left: 16px; color: #56636a; font-size: 13px; }
.guideline-box li::before { position: absolute; top: .72em; left: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--welcome-accent-dark); content: ""; }
.guideline-box--care li::before { background: #8d7568; }
.guideline-box > p { margin: 17px 0 0; color: #806f65; font-size: 12px; }
.guideline-checklist li { position: relative; padding: 13px 16px 13px 42px; border-radius: 11px; background: var(--welcome-canvas); color: #4f5d64; }
.guideline-checklist li::before { position: absolute; top: 13px; left: 15px; color: var(--welcome-accent-dark); font-weight: 900; content: "✓"; }
.company-panel { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(40px, 8vw, 110px); width: min(980px, calc(100% - 48px)); margin: 0 auto; padding: 55px; border: 1px solid var(--welcome-line); border-radius: 24px; background: var(--welcome-canvas); }
.company-panel__heading h2 { margin: 0; font-size: clamp(30px, 3.2vw, 42px); letter-spacing: -.04em; }
.company-list { margin: 0; border-top: 1px solid #dce2e2; }
.company-list > div { display: grid; grid-template-columns: 130px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid #dce2e2; }
.company-list dt { color: #7c878c; font-size: 12px; font-weight: 800; }
.company-list dd { margin: 0; color: #364249; font-size: 14px; }
.company-list dd a { color: var(--welcome-accent-dark); font-weight: 700; text-underline-offset: 3px; }
.company-list ol { margin: 0; padding-left: 1.25em; }
.document-legal { width: min(860px,calc(100% - 48px)); box-sizing: border-box; margin: 0 auto; color: #4f5c62; font-size: 15px; line-height: 2; }
.document-legal > p { margin: 0 0 28px; }
.document-legal section, .document-legal > .margin20 { margin: 0; }
.document-legal h2, .document-legal h3 { margin: 42px 0 12px; color: #1e282d; font-size: 20px; line-height: 1.55; }
.document-legal > :first-child h2, .document-legal > :first-child h3 { margin-top: 0; }
.document-legal a { color: var(--welcome-accent-dark); font-weight: 750; text-underline-offset: 3px; }
.document-legal ol, .document-legal ul { margin: 12px 0 28px; padding-left: 1.6em; }
.document-legal li + li { margin-top: 7px; }
.document-legal small { color: #78858b; font-size: 12px; line-height: 1.7; }
.historical-copy { min-width: 0; overflow-wrap: anywhere; }
.historical-copy img { max-width: 100%; height: auto; }
.historical-copy table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.historical-copy th, .historical-copy td { padding: 8px 12px; border-bottom: 1px solid #dce4e5; text-align: left; }
.historical-copy .well { padding: 16px 20px; border-radius: 12px; background: #eef5f5; }
.historical-copy .margin20 { margin: 20px 0; }
.historical-copy legend { display: block; margin: 24px 0 8px; color: #1e282d; font-size: 18px; font-weight: 750; }
.historical-copy .flow { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.historical-copy .flow li { padding: 8px 12px; border-radius: 8px; background: #eef5f5; }
.historical-copy .flow li.active { background: #d8ebea; font-weight: 750; }
.historical-copy button { max-width: 100%; padding: 12px 18px; border: 0; border-radius: 10px; background: #117a73; color: #fff; cursor: pointer; }
.historical-copy button.disabled { background: #9aa6a6; cursor: default; }
.historical-copy .historical-action { display: inline-block; max-width: 100%; padding: 12px 18px; border-radius: 10px; background: #117a73; color: #fff; font-weight: 750; text-decoration: none; }
.historical-copy .historical-action.is-disabled { background: #9aa6a6; }
.document-legal__intro { margin-bottom: 12px !important; padding: 24px 26px; border-radius: 14px; background: #eef5f5; }
.document-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.document-actions a { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border-radius: 10px; background: #117a73; color: #fff; text-decoration: none; }
.commerce-list { overflow: hidden; margin: 0; border: 1px solid var(--welcome-line); border-radius: 16px; }
.commerce-list > div { display: grid; grid-template-columns: 210px minmax(0,1fr); gap: 24px; padding: 19px 22px; border-bottom: 1px solid var(--welcome-line); }
.commerce-list > div:last-child { border-bottom: 0; }
.commerce-list dt { color: #66747a; font-size: 13px; font-weight: 850; }
.commerce-list dd { margin: 0; color: inherit; }
.document-callout { padding: 15px 17px; border-radius: 11px; background: #eef5f5; }
.banner-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.banner-grid figure { display: grid; min-width: 0; margin: 0; padding: 18px; border: 1px solid var(--welcome-line); border-radius: 14px; }
.banner-grid figcaption { margin-bottom: 12px; color: #69777d; font-size: 13px; font-weight: 850; }
.banner-grid figure > div { display: grid; min-height: 125px; overflow: auto; place-items: center; border-radius: 9px; background-color: #eef1f0; background-image: linear-gradient(45deg,#e1e5e4 25%,transparent 25%),linear-gradient(-45deg,#e1e5e4 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e1e5e4 75%),linear-gradient(-45deg,transparent 75%,#e1e5e4 75%); background-position: 0 0,0 8px,8px -8px,-8px 0; background-size: 16px 16px; }
.banner-grid img { display: block; max-width: 100%; height: auto; }

@media (hover: hover) and (pointer: fine) {
	.welcome-nav a:hover, .welcome-footer nav a:hover { color: var(--welcome-accent-dark); }
	.welcome-button--primary:hover { background: var(--welcome-accent); box-shadow: 0 14px 30px color-mix(in srgb, var(--welcome-accent-dark) 28%, transparent); transform: translateY(-2px); }
	.welcome-button--quiet:hover, .welcome-button--social:hover { border-color: #aebbbc; background: #fff; }
	.welcome-back:hover, .welcome-auth__security:hover { color: var(--welcome-accent-dark); }
	.document-index a:hover { border-color: color-mix(in srgb, var(--welcome-accent) 45%, #fff); background: color-mix(in srgb, var(--welcome-accent) 5%, #fff); transform: translateY(-2px); }
}

@media (max-width: 800px) {
	.welcome-header, .welcome-landing, .welcome-alert { width: min(100% - 32px, 620px); }
	.welcome-nav > a:first-child { display: none; }
	.welcome-landing { min-height: 0; padding: 42px 0 54px; }
	.welcome-landing__note { margin-bottom: 0; }
	.welcome-footer { grid-template-columns: 1fr; }
	.welcome-footer nav { justify-content: flex-start; }
	.about-hero { width: min(100% - 32px, 680px); padding: 80px 0 90px; }
	.about-section-heading { grid-template-columns: 1fr; }
	.about-section-heading > p:last-child { margin-top: 20px; }
	.about-value-grid { grid-template-columns: 1fr; }
	.about-icon { margin-bottom: 20px; }
	.about-community { grid-template-columns: 1fr; }
	.document-intro { grid-template-columns: 1fr; }
	.document-index, .document-index--guide { grid-template-columns: repeat(3, 1fr); }
	.company-panel { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
	.welcome-page { font-size: 15px; }
	.welcome-header { min-height: 68px; }
	.welcome-brand img { width: 124px; }
	.welcome-nav { gap: 8px; }
	.welcome-nav__login { padding: 6px 11px; font-size: 12px !important; }
	.welcome-landing { padding-top: 36px; }
	.welcome-landing h1 { font-size: clamp(38px, 11vw, 48px); }
	.welcome-landing__lead { margin-top: 18px; }
	.welcome-choice { display: grid; grid-template-columns: 1fr; }
	.welcome-choice__main, .welcome-choice__login { width: 100%; }
	.welcome-landing__note { font-size: 12px; }
	.welcome-auth-main { min-height: calc(100vh - 68px); padding: 20px 16px 40px; }
	.welcome-auth-shell { padding: 24px 20px; border-radius: 19px; }
	.welcome-back { margin-bottom: 18px; }
	.welcome-auth__switch { margin: 24px -20px -24px; border-radius: 0 0 19px 19px; }
	.about-hero { padding: 66px 0 72px; text-align: left; }
	.about-hero h1 { font-size: 38px; }
	.about-hero > p:not(.welcome-eyebrow) { font-size: 15px; }
	.about-values { padding: 72px 16px; }
	.about-section-heading h2, .about-community h2, .about-cta h2 { font-size: 33px; }
	.about-value { padding: 24px; }
	.about-actions { width: calc(100% - 32px); padding: 76px 0; }
	.about-action-list article { grid-template-columns: 34px 1fr; gap: 16px; padding: 25px 0; }
	.about-action-list article > svg { display: none; }
	.about-community { padding: 74px 16px; }
	.about-cta { padding: 76px 16px 82px; }
	.about-cta > div { display: grid; grid-template-columns: 1fr; }
	.about-cta .welcome-button { width: 100%; }
	.document-main { padding-bottom: 76px; }
	.document-hero { width: calc(100% - 32px); padding: 64px 0 62px; text-align: left; }
	.document-hero h1 { font-size: 37px; }
	.document-hero > p:last-child { font-size: 14px; }
	.document-intro { width: calc(100% - 32px); gap: 26px; margin-bottom: 60px; padding: 28px 24px; }
	.document-index, .document-index--guide { grid-template-columns: 1fr 1fr; width: calc(100% - 32px); margin-bottom: 52px; }
	.document-index a { min-height: 92px; }
	.document-sections { width: calc(100% - 32px); }
	.document-section { grid-template-columns: 1fr; gap: 8px; padding: 54px 0; }
	.document-section__number { padding-top: 0; }
	.document-section h2 { font-size: 29px; }
	.document-section__lead { font-size: 15px; }
	.document-subsection li { grid-template-columns: 1fr; gap: 5px; }
	.document-closing { width: calc(100% - 32px); margin-top: 48px; padding: 25px; }
	.guideline-summary { grid-template-columns: 1fr; gap: 7px; width: calc(100% - 32px); }
	.guideline-columns { grid-template-columns: 1fr; }
	.company-panel { width: calc(100% - 32px); padding: 28px 22px; }
	.company-list > div { grid-template-columns: 1fr; gap: 7px; }
	.document-legal { width: calc(100% - 32px); font-size: 14px; line-height: 1.9; }
	.document-legal h2, .document-legal h3 { margin-top: 34px; font-size: 18px; }
	.document-legal__intro { padding: 19px 18px; }
	.commerce-list > div { grid-template-columns: 1fr; gap: 5px; padding: 16px; }
	.banner-grid { grid-template-columns: 1fr; }
	.banner-grid figure { padding: 15px; }
}

@media (prefers-reduced-motion: reduce) {
	.welcome-button .ui-spinner { animation: none; border-top-color: currentColor; opacity: .5; }
	html { scroll-behavior: auto; }
	.welcome-button, .welcome-skip { transition-duration: 0ms; }
}
