/* ==========================================================================
   Dr.GOLF 会員登録フォーム - 共通スタイル
   (user_new.php / kanri_user_new.php / kanri_user_add.php で共有)
   ========================================================================== */

.reg-page {
	width: min(95%, 900px);
	margin: 36px auto 0;
}

.reg-breadcrumb {
	font-size: 12px;
	color: #8a8a8a;
	margin-bottom: 18px;
	display: flex; align-items: center; gap: 8px;
}
.reg-breadcrumb a { color: #8a8a8a; text-decoration: none; }
.reg-breadcrumb a:hover { color: #1b4332; }
.reg-breadcrumb .sep { color: #c8ccd2; }
.reg-breadcrumb .current { color: #1b4332; font-weight: 600; }

.reg-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(27, 67, 50, .1);
	margin-bottom: 28px;
	gap: 20px;
	flex-wrap: wrap;
}
.reg-header .eyebrow {
	font-size: 11px;
	letter-spacing: .32em;
	color: #c9963b;
	font-weight: 600;
	text-transform: uppercase;
	margin-bottom: 10px;
}
.reg-header h1 {
	font-family: 'Cormorant Garamond', 'Shippori Mincho', 'Yu Mincho', serif;
	font-size: 36px; font-weight: 600;
	color: #1b4332; line-height: 1;
	margin: 0 0 8px;
}
.reg-header .sub {
	font-size: 13px; color: #6a6a6a; margin-top: 4px;
}
.reg-header .mode-pill {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 14px;
	border-radius: 20px;
	font-size: 11px; letter-spacing: .1em;
	text-transform: uppercase; font-weight: 600;
	white-space: nowrap;
}
.mode-pill.public   { background: #fff; color: #1b4332; border: 1.5px solid #1b4332; }
.mode-pill.tablet   { background: #fef3d6; color: #a06d14; border: 1.5px solid #c9963b; }
.mode-pill.admin    { background: #e4ebf7; color: #2d5fbd; border: 1.5px solid #3b82f6; }

/* ---- Notice banners ---- */
.notice {
	background: #fef3d6;
	border: 1px solid #c9963b;
	border-left: 3px solid #c9963b;
	border-radius: 8px;
	padding: 14px 18px;
	margin-bottom: 22px;
	font-size: 13px;
	color: #5e4a1a;
	line-height: 1.7;
	display: flex; gap: 12px;
}
.notice i { color: #c9963b; margin-top: 2px; font-size: 16px; flex-shrink: 0; }
.notice strong { color: #1b4332; }

/* ---- Form section ---- */
.reg-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.reg-section {
	background: #fff;
	border: 1px solid rgba(27, 67, 50, .08);
	border-radius: 14px;
	padding: 26px 30px;
	box-shadow: 0 1px 3px rgba(27, 67, 50, .03), 0 8px 20px rgba(27, 67, 50, .05);
}

.reg-section .section-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(27, 67, 50, .06);
}
.reg-section .section-head .s-icon {
	width: 34px; height: 34px;
	background: #f5f8f6;
	color: #40916c;
	border-radius: 8px;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 14px;
}
.reg-section .section-head .s-title {
	font-family: 'Cormorant Garamond', 'Shippori Mincho', 'Yu Mincho', serif;
	font-size: 20px;
	font-weight: 600;
	color: #1b4332;
	margin: 0;
	line-height: 1;
}
.reg-section .section-head .s-num {
	font-family: 'Cormorant Garamond', serif;
	font-size: 22px;
	font-weight: 600;
	color: #c9963b;
	font-style: italic;
	margin-left: auto;
	line-height: 1;
}

/* ---- Form grid ---- */
.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 22px;
}
.form-grid .full { grid-column: 1 / -1; }

.field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.field label {
	font-size: 12px;
	color: #4a4a4a;
	font-weight: 600;
	letter-spacing: .02em;
	display: flex; align-items: center; gap: 6px;
}
.field label .req {
	font-size: 9px;
	letter-spacing: .05em;
	color: #fff;
	background: #c9963b;
	padding: 2px 6px;
	border-radius: 4px;
	font-weight: 600;
}
.field label .opt {
	font-size: 10px;
	color: #8a8a8a;
	letter-spacing: .05em;
	font-weight: 500;
}
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field input[type="number"],
.field input[type="password"],
.field input[type="date"],
.field select {
	width: 100%;
	padding: 11px 14px;
	font-size: 14px;
	font-family: inherit;
	color: #1a1a1a;
	background: #fbfcfb;
	border: 1.5px solid #e2e5ea;
	border-radius: 8px;
	outline: 0;
	transition: border-color .15s, background .15s, box-shadow .15s;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}
.field input:focus,
.field select:focus {
	border-color: #40916c;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(64, 145, 108, .15);
}
.field .hint {
	font-size: 11px;
	color: #8a8a8a;
	letter-spacing: .02em;
	margin-top: 2px;
}
.field .hint.warn { color: #c0392b; }

/* Radio group */
.radio-row {
	display: flex; gap: 12px; flex-wrap: wrap;
}
.radio-opt {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 18px;
	background: #fff;
	border: 1.5px solid #e2e5ea;
	border-radius: 10px;
	cursor: pointer;
	transition: all .15s;
	font-size: 14px;
	flex: 1;
	min-width: 0;
	justify-content: center;
}
.radio-opt:hover { border-color: #40916c; }
.radio-opt input[type="radio"] {
	width: 16px; height: 16px;
	accent-color: #40916c;
}
.radio-opt.selected {
	border-color: #40916c;
	background: #eef6f1;
	color: #1b4332;
	font-weight: 600;
}

/* Terms / agreement section */
.terms-box {
	background: #fafaf7;
	border: 1px solid rgba(27, 67, 50, .08);
	border-radius: 10px;
	padding: 22px 26px;
	max-height: 340px;
	overflow-y: auto;
	font-size: 13px;
	color: #4a4a4a;
	line-height: 1.8;
}
.terms-box h4 {
	font-family: 'Cormorant Garamond', 'Shippori Mincho', serif;
	color: #1b4332;
	font-size: 16px;
	font-weight: 700;
	margin: 1.4em 0 .6em;
	padding-left: 10px;
	border-left: 3px solid #c9963b;
}
.terms-box h4:first-child { margin-top: 0; }
.terms-box p { margin: .4em 0; font-size: 12px; }
.terms-box .fee-table {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 8px 12px;
	margin: 12px 0;
	font-size: 13px;
}
.terms-box .fee-table .ft-label {
	background: #40916c;
	color: #fff;
	padding: 8px 12px;
	border-radius: 6px;
	text-align: center;
	font-weight: 600;
}
.terms-box .fee-table .ft-value {
	background: #fff;
	border: 1px solid rgba(27, 67, 50, .08);
	padding: 8px 12px;
	border-radius: 6px;
}

/* Submit area */
.reg-submit {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin: 30px 0 40px;
	flex-wrap: wrap;
}
.btn-primary, .btn-secondary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 36px;
	border: 0;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .05em;
	cursor: pointer;
	font-family: inherit;
	text-decoration: none;
	transition: all .15s;
}
.btn-primary {
	background: #1b4332;
	color: #fff;
	box-shadow: 0 6px 14px rgba(27, 67, 50, .3);
}
.btn-primary:hover {
	background: #2d6a4f;
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(27, 67, 50, .4);
}
.btn-primary i { color: #e9c46a; }

.btn-secondary {
	background: #fff;
	color: #4a4a4a;
	border: 1px solid rgba(27, 67, 50, .15);
}
.btn-secondary:hover { background: #f5f5f0; color: #1b4332; border-color: rgba(27, 67, 50, .3); }

/* Responsive */
@media screen and (max-width: 768px) {
	.reg-page { width: 94%; margin-top: 18px; }
	.reg-header h1 { font-size: 28px; }
	.reg-section { padding: 20px; }
	.form-grid { grid-template-columns: 1fr; gap: 14px; }
	.radio-row { flex-direction: column; }
	.radio-opt { flex: 1 1 auto; }
	.terms-box { padding: 16px; font-size: 12px; }
	.terms-box .fee-table { grid-template-columns: 1fr; }
	.btn-primary, .btn-secondary { width: 100%; justify-content: center; }
}
