:root {
	--ohp-jade: #7fae9d;
	--ohp-jade-dark: #315f53;
	--ohp-blue: #8fb1c8;
	--ohp-rose: #c4666e;
	--ohp-burgundy: #7d2f42;
	--ohp-ivory: #f7f4ec;
	--ohp-gold: #d6b26d;
	--ohp-ink: #26312f;
	--ohp-muted: #687571;
	--ohp-line: rgba(49, 95, 83, .18);
	--ohp-shadow: 0 24px 70px rgba(34, 54, 49, .12);
}

.ohp-lp-shell {
	box-sizing: border-box;
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
	padding: clamp(48px, 7vw, 96px) 0;
	color: var(--ohp-ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ohp-lp-shell *,
.ohp-lp-shell *::before,
.ohp-lp-shell *::after { box-sizing: border-box; }
.ohp-lp-shell h1,
.ohp-lp-shell h2,
.ohp-lp-shell h3 { margin-top: 0; color: var(--ohp-ink); font-family: Georgia, "Times New Roman", serif; line-height: 1.08; }
.ohp-lp-shell h1 { max-width: 850px; margin-bottom: 20px; font-size: clamp(2.35rem, 5vw, 5rem); font-weight: 500; }
.ohp-lp-shell h2 { font-size: clamp(1.55rem, 2.6vw, 2.35rem); font-weight: 500; }
.ohp-lp-shell h3 { font-size: 1.28rem; }
.ohp-lp-shell p { line-height: 1.72; }
.ohp-lp-shell a { color: var(--ohp-jade-dark); }
.ohp-lp-shell code { overflow-wrap: anywhere; color: var(--ohp-burgundy); }
.ohp-lp-eyebrow { margin: 0 0 12px; color: var(--ohp-burgundy); font-size: .76rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.ohp-lp-lead { max-width: 760px; margin-bottom: 38px; color: var(--ohp-muted); font-size: clamp(1.05rem, 1.5vw, 1.28rem); }
.ohp-lp-small, .ohp-lp-form small { color: var(--ohp-muted); font-size: .82rem; }

.ohp-lp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 22px;
	border: 1px solid var(--ohp-jade-dark);
	border-radius: 999px;
	background: var(--ohp-jade-dark);
	color: #fff !important;
	font-size: .92rem;
	font-weight: 750;
	line-height: 1.1;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.ohp-lp-button:hover { transform: translateY(-1px); box-shadow: 0 10px 28px rgba(49, 95, 83, .2); }
.ohp-lp-button-secondary { border-color: var(--ohp-jade-dark); background: transparent; color: var(--ohp-jade-dark) !important; }
.ohp-lp-button-seal { border-color: var(--ohp-burgundy); background: var(--ohp-burgundy); }

.ohp-lp-card {
	margin-bottom: 24px;
	padding: clamp(22px, 4vw, 38px);
	border: 1px solid var(--ohp-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 10px 38px rgba(34, 54, 49, .07);
}
.ohp-lp-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 36px 0; }
.ohp-lp-feature-grid article { padding: 28px; border-radius: 20px; background: var(--ohp-ivory); }
.ohp-lp-feature-grid article:nth-child(2) { background: rgba(143, 177, 200, .22); }
.ohp-lp-feature-grid article:nth-child(3) { background: rgba(196, 102, 110, .12); }
.ohp-lp-feature-grid article:nth-child(4) { background: rgba(127, 174, 157, .16); }
.ohp-lp-feature-grid span { color: var(--ohp-burgundy); font-weight: 800; }
.ohp-lp-feature-grid h2 { margin: 18px 0 10px; font-size: 1.35rem; }
.ohp-lp-feature-grid p { margin: 0; color: var(--ohp-muted); font-size: .94rem; }

.ohp-lp-auth { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .75fr); gap: clamp(28px, 7vw, 90px); align-items: start; }
.ohp-lp-form { display: grid; gap: 18px; }
.ohp-lp-form label,
.ohp-lp-upload label,
.ohp-lp-seal-form label,
.ohp-lp-verify-form label { display: grid; gap: 7px; color: var(--ohp-ink); font-size: .88rem; font-weight: 750; }
.ohp-lp-form input,
.ohp-lp-form select,
.ohp-lp-form textarea,
.ohp-lp-upload input,
.ohp-lp-seal-form input,
.ohp-lp-verify-form input {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid rgba(49, 95, 83, .26);
	border-radius: 10px;
	background: #fff;
	color: var(--ohp-ink);
	font: inherit;
}
.ohp-lp-form textarea { min-height: 120px; resize: vertical; }
.ohp-lp-form input:focus,
.ohp-lp-form select:focus,
.ohp-lp-form textarea:focus,
.ohp-lp-verify-form input:focus { outline: 3px solid rgba(143, 177, 200, .32); border-color: var(--ohp-jade-dark); }
.ohp-lp-check { display: flex !important; grid-template-columns: none !important; flex-direction: row; align-items: flex-start; gap: 10px !important; font-weight: 500 !important; }
.ohp-lp-check input { width: 18px; min-height: 18px; margin-top: 2px; }
.ohp-lp-login-protection:empty { display: none; }
.ohp-lp-login-protection > div { margin: 0 !important; padding: 15px 16px; border: 1px solid rgba(49, 95, 83, .18); border-radius: 12px; background: var(--ohp-ivory); }
.ohp-lp-login-protection p { margin: 0 0 8px; color: var(--ohp-ink); font-size: .88rem !important; font-weight: 750; }
.ohp-lp-login-protection br { display: none; }
.ohp-lp-login-protection label { display: inline !important; margin-right: 8px; font-weight: 700; }
.ohp-lp-login-protection input[type="number"] { display: inline-block; width: 82px; min-height: 42px; padding: 8px 10px; }
.ohp-lp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.ohp-lp-notice { margin: 0 0 24px; padding: 16px 18px; border-left: 4px solid var(--ohp-blue); border-radius: 8px; background: rgba(143, 177, 200, .14); }
.ohp-lp-success { border-color: var(--ohp-jade-dark); background: rgba(127, 174, 157, .14); }
.ohp-lp-warning { border-color: var(--ohp-rose); background: rgba(196, 102, 110, .11); }

.ohp-lp-dashboard-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 28px; }
.ohp-lp-dashboard-head h1 { margin-bottom: 8px; }
.ohp-lp-dashboard-head p { margin: 0; }
.ohp-lp-text-link { font-weight: 750; }
.ohp-lp-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 28px; }
.ohp-lp-stat-grid > div { min-height: 150px; padding: 23px; border-radius: 18px; background: var(--ohp-ivory); }
.ohp-lp-stat-grid > div:nth-child(2) { background: rgba(127, 174, 157, .18); }
.ohp-lp-stat-grid > div:nth-child(3) { background: rgba(143, 177, 200, .2); }
.ohp-lp-stat-grid > div:nth-child(4) { background: rgba(196, 102, 110, .12); }
.ohp-lp-stat-grid span, .ohp-lp-stat-grid small { display: block; color: var(--ohp-muted); }
.ohp-lp-stat-grid strong { display: block; margin: 13px 0 8px; font-family: Georgia, "Times New Roman", serif; font-size: 2rem; font-weight: 500; }
.ohp-lp-layout { display: grid; grid-template-columns: 255px minmax(0, 1fr); gap: 26px; align-items: start; }
.ohp-lp-vault-list { position: sticky; top: 24px; padding: 22px; border-radius: 18px; background: var(--ohp-ink); color: #fff; }
.ohp-lp-vault-list h2 { color: #fff; font-size: 1.4rem; }
.ohp-lp-vault-list > a { display: block; margin: 0 -8px 8px; padding: 12px; border-radius: 10px; color: rgba(255, 255, 255, .8); text-decoration: none; }
.ohp-lp-vault-list > a:hover, .ohp-lp-vault-list > a.is-active { background: rgba(255, 255, 255, .12); color: #fff; }
.ohp-lp-vault-list strong, .ohp-lp-vault-list span { display: block; }
.ohp-lp-vault-list span { margin-top: 4px; font-size: .75rem; opacity: .7; }
.ohp-lp-vault-list .ohp-lp-support-link { margin-top: 18px; border-top: 1px solid rgba(255, 255, 255, .15); border-radius: 0; font-size: .82rem; }
.ohp-lp-section-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 20px; }
.ohp-lp-section-head h2 { margin: 0; }
.ohp-lp-section-head > span { padding: 7px 11px; border-radius: 999px; background: rgba(127, 174, 157, .15); color: var(--ohp-jade-dark); font-size: .75rem; font-weight: 800; }
.ohp-lp-record-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr); gap: 30px; background: linear-gradient(135deg, var(--ohp-ivory), rgba(143, 177, 200, .2)); }
.ohp-lp-record-head > div > span { color: var(--ohp-burgundy); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.ohp-lp-record-head h2 { margin: 12px 0; }
.ohp-lp-record-head dl, .ohp-lp-sealed dl, .ohp-lp-verification-result dl { margin: 0; }
.ohp-lp-record-head dl div, .ohp-lp-sealed dl div, .ohp-lp-verification-result dl div { display: grid; grid-template-columns: 120px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--ohp-line); }
.ohp-lp-record-head dt, .ohp-lp-sealed dt, .ohp-lp-verification-result dt { color: var(--ohp-muted); }
.ohp-lp-record-head dd, .ohp-lp-sealed dd, .ohp-lp-verification-result dd { margin: 0; font-weight: 700; }
.ohp-lp-owned-piece { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); gap: clamp(24px, 4vw, 48px); align-items: center; }
.ohp-lp-owned-piece figure { min-height: 250px; margin: 0; overflow: hidden; border-radius: 16px; background: var(--ohp-ivory); }
.ohp-lp-owned-piece img { display: block; width: 100%; height: 100%; min-height: 250px; max-height: 420px; object-fit: cover; }
.ohp-lp-owned-piece h2 { margin-bottom: 20px; }
.ohp-lp-owned-piece dl { margin: 0 0 16px; }
.ohp-lp-owned-piece dl div { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--ohp-line); }
.ohp-lp-owned-piece dt { color: var(--ohp-muted); }
.ohp-lp-owned-piece dd { margin: 0; font-weight: 700; }
.ohp-lp-certificate-intro { max-width: 850px; margin: -4px 0 24px; color: var(--ohp-muted); }
.ohp-lp-certificate-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ohp-lp-certificate-card { overflow: hidden; border: 1px solid var(--ohp-line); border-radius: 18px; background: var(--ohp-ivory); }
.ohp-lp-certificate-preview { position: relative; display: block; min-height: 260px; overflow: hidden; background: #e9e8e2; }
.ohp-lp-certificate-preview img { display: block; width: 100%; height: 300px; object-fit: contain; background: #e9e8e2; user-select: none; -webkit-user-drag: none; }
.ohp-lp-certificate-preview span { position: absolute; right: 12px; bottom: 12px; padding: 7px 11px; border-radius: 999px; background: rgba(38, 49, 47, .9); color: #fff; font-size: .75rem; font-weight: 750; }
.ohp-lp-certificate-details { padding: 22px; }
.ohp-lp-certificate-details h3 { margin-bottom: 16px; overflow-wrap: anywhere; }
.ohp-lp-certificate-details dl { margin: 0 0 20px; }
.ohp-lp-certificate-details dl div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--ohp-line); }
.ohp-lp-certificate-details dt { color: var(--ohp-muted); }
.ohp-lp-certificate-details dd { margin: 0; overflow-wrap: anywhere; font-weight: 700; }
.ohp-lp-certificate-order .ohp-lp-button { width: 100%; min-height: 52px; }
.ohp-lp-certificate-order .ohp-lp-button:disabled { border-color: #a9afad; background: #a9afad; cursor: not-allowed; }
.ohp-lp-certificate-disclaimer { margin: 22px 0 0; border-color: var(--ohp-gold); background: rgba(214, 178, 109, .14); }
.ohp-lp-prose { color: #394744; line-height: 1.8; }
.ohp-lp-seal-form { display: grid; gap: 14px; margin-top: 28px; padding: 24px; border: 1px solid rgba(125, 47, 66, .22); border-radius: 14px; background: rgba(196, 102, 110, .08); }
.ohp-lp-seal-form h3 { margin-bottom: 0; }
.ohp-lp-seal-form p { margin-top: 0; }
.ohp-lp-seal-mark, .ohp-lp-verified-mark { display: inline-flex; padding: 7px 11px; border-radius: 999px; background: var(--ohp-burgundy); color: #fff; font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ohp-lp-file-list { margin: 0 0 22px; padding: 0; list-style: none; }
.ohp-lp-file-list li { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--ohp-line); }
.ohp-lp-file-list strong, .ohp-lp-file-list span { display: block; }
.ohp-lp-file-list span { margin-top: 4px; color: var(--ohp-muted); font-size: .78rem; }
.ohp-lp-file-list a { font-weight: 750; }
.ohp-lp-upload { display: flex; gap: 14px; align-items: end; }
.ohp-lp-upload label { flex: 1; }

.ohp-lp-verify-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; max-width: 720px; margin: 32px 0; }
.ohp-lp-verification-result { max-width: 720px; padding: clamp(28px, 5vw, 50px); border: 1px solid var(--ohp-line); border-radius: 24px; background: linear-gradient(135deg, #fff, var(--ohp-ivory)); box-shadow: var(--ohp-shadow); }
.ohp-lp-verification-result h2 { margin: 20px 0; overflow-wrap: anywhere; }
.ohp-lp-credit-balance { max-width: 720px; margin: 28px 0; padding: 30px; border-radius: 22px; background: linear-gradient(135deg, var(--ohp-jade-dark), #243b36); color: #fff; }
.ohp-lp-credit-balance span, .ohp-lp-credit-balance small { display: block; color: rgba(255, 255, 255, .76); }
.ohp-lp-credit-balance strong { display: block; margin: 8px 0; font-family: Georgia, "Times New Roman", serif; font-size: 3.5rem; font-weight: 500; }
.ohp-lp-table-wrap { overflow-x: auto; }
.ohp-lp-table-wrap table { width: 100%; border-collapse: collapse; }
.ohp-lp-table-wrap th, .ohp-lp-table-wrap td { padding: 12px; border-bottom: 1px solid var(--ohp-line); text-align: left; }
.ohp-lp-table-wrap th { color: var(--ohp-muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 980px) {
	.ohp-lp-feature-grid, .ohp-lp-stat-grid { grid-template-columns: repeat(2, 1fr); }
	.ohp-lp-layout { grid-template-columns: 1fr; }
	.ohp-lp-vault-list { position: static; display: grid; grid-template-columns: repeat(2, 1fr); }
	.ohp-lp-vault-list h2, .ohp-lp-vault-list .ohp-lp-support-link { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
	.ohp-lp-shell { width: min(100% - 22px, 1180px); padding: 40px 0 64px; }
	.ohp-lp-auth, .ohp-lp-record-head, .ohp-lp-owned-piece { grid-template-columns: 1fr; }
	.ohp-lp-feature-grid, .ohp-lp-stat-grid, .ohp-lp-form-grid, .ohp-lp-vault-list { grid-template-columns: 1fr; }
	.ohp-lp-dashboard-head, .ohp-lp-section-head, .ohp-lp-file-list li, .ohp-lp-upload { align-items: stretch; flex-direction: column; }
	.ohp-lp-verify-form { grid-template-columns: 1fr; }
	.ohp-lp-record-head dl div, .ohp-lp-sealed dl div, .ohp-lp-verification-result dl div { grid-template-columns: 1fr; gap: 3px; }
	.ohp-lp-owned-piece dl div { grid-template-columns: 1fr; gap: 3px; }
	.ohp-lp-certificate-grid { grid-template-columns: 1fr; }
	.ohp-lp-certificate-preview img { height: 240px; }
	.ohp-lp-certificate-details dl div { grid-template-columns: 1fr; gap: 3px; }
}
