/* ==========================================================================
   Dr.GOLF — Premium Theme
   Black-based with gold accents. Deep green used sparingly on hero overlays.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&family=Noto+Sans+JP:wght@300;400;500;600;700&family=Shippori+Mincho:wght@500;600;700&display=swap');

:root {
	/* Color — base */
	--color-bg-dark: #0a0a0a;
	--color-bg-dark-2: #141414;
	--color-bg-soft: #fafaf7;
	--color-bg-paper: #ffffff;

	/* Color — brand */
	--color-gold: #c9a961;
	--color-gold-bright: #d9b873;
	--color-gold-deep: #a88942;
	--color-green: #1b4332;

	/* Color — text */
	--color-text-primary: #1a1a1a;
	--color-text-secondary: #4a4a4a;
	--color-text-muted: #8a8a8a;
	--color-text-on-dark: #f4f1ea;
	--color-text-on-dark-muted: rgba(244, 241, 234, .65);

	/* Rules */
	--rule-on-dark: rgba(201, 169, 97, .25);
	--rule-on-light: rgba(10, 10, 10, .08);

	/* Typography */
	--font-sans: 'Inter', 'Noto Sans JP', 'Yu Gothic UI', 'Hiragino Sans', sans-serif;
	--font-display: 'Cormorant Garamond', 'Shippori Mincho', 'Yu Mincho', serif;
	--tracking-eyebrow: .42em;
	--tracking-tight: .015em;
	--tracking-wide: .08em;

	/* Spacing */
	--section-y: 120px;
	--section-y-mobile: 72px;
	--container-max: 1200px;
	--container-pad: 32px;

	/* Elevation / motion */
	--shadow-soft: 0 10px 40px rgba(0, 0, 0, .08);
	--shadow-card: 0 16px 48px rgba(0, 0, 0, .12);
	--shadow-deep: 0 24px 64px rgba(0, 0, 0, .22);
	--ease-premium: cubic-bezier(.2, .7, .2, 1);
	--trans-fast: 200ms var(--ease-premium);
	--trans-med: 400ms var(--ease-premium);
}

/* ==========================================================================
   Base reset
   ========================================================================== */

*, *::before, *::after {
	box-sizing: border-box;
}

html, body {
	margin: 0;
	padding: 0;
}

body {
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.75;
	color: var(--color-text-primary);
	background: var(--color-bg-soft);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "palt" 1, "lnum" 1;
	font-variant-numeric: lining-nums;
}

/* Ensure all digits across the site use clean lining figures,
   never Cormorant's oldstyle text figures that look like lowercase letters. */
.num,
.number,
.price-tag,
.card-number,
.step-number,
.hero-title,
.section-title,
.page-title {
	font-variant-numeric: lining-nums tabular-nums;
	font-feature-settings: "lnum" 1, "tnum" 1, "palt" 1;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--trans-fast);
}

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: var(--tracking-tight);
}

p {
	margin: 0 0 1em;
}

p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Layout primitives
   ========================================================================== */

.container {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--container-pad);
}

.container--narrow {
	max-width: 900px;
}

.section {
	padding: var(--section-y) 0;
}

.section--dark {
	background: var(--color-bg-dark);
	color: var(--color-text-on-dark);
}

.section--ivory {
	background: var(--color-bg-soft);
}

.section--paper {
	background: var(--color-bg-paper);
}

@media (max-width: 768px) {
	.section {
		padding: var(--section-y-mobile) 0;
	}
	:root {
		--container-pad: 24px;
	}
}

@media (max-width: 400px) {
	:root {
		--container-pad: 20px;
	}
}

/* ==========================================================================
   Typography components
   ========================================================================== */

.eyebrow {
	display: inline-block;
	font-family: var(--font-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
	padding-left: 34px;
	position: relative;
	margin-bottom: 20px;
}

.eyebrow::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: 22px;
	height: 1px;
	background: var(--color-gold);
}

.eyebrow--center {
	padding-left: 0;
	margin-bottom: 24px;
}

.eyebrow--center::before {
	display: none;
}

.section-title {
	font-family: var(--font-display);
	font-size: clamp(32px, 4.5vw, 54px);
	font-weight: 500;
	line-height: 1.1;
	margin-bottom: 24px;
	color: inherit;
}

.section-title .accent {
	color: var(--color-gold);
	font-style: italic;
	font-weight: 400;
}

.section-lead {
	font-size: 16px;
	line-height: 1.9;
	color: var(--color-text-secondary);
	max-width: 640px;
	margin-bottom: 56px;
}

.section--dark .section-lead {
	color: var(--color-text-on-dark-muted);
}

.section-header {
	margin-bottom: 64px;
}

.section-header--center {
	text-align: center;
}

.section-header--center .eyebrow {
	padding-left: 0;
}

.section-header--center .eyebrow::before {
	display: none;
}

.section-header--center .section-lead {
	margin-left: auto;
	margin-right: auto;
}

.gold-rule {
	width: 48px;
	height: 1px;
	background: var(--color-gold);
	margin: 0 0 28px;
	border: 0;
}

.gold-rule--center {
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	padding: 0 36px;
	font-family: var(--font-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background var(--trans-fast), color var(--trans-fast),
		border-color var(--trans-fast), transform var(--trans-fast);
	white-space: nowrap;
}

.btn:hover {
	transform: translateY(-1px);
}

.btn-primary {
	background: var(--color-gold);
	color: #0a0a0a;
	border-color: var(--color-gold);
}

.btn-primary:hover {
	background: var(--color-gold-bright);
	border-color: var(--color-gold-bright);
}

.btn-ghost {
	background: transparent;
	color: var(--color-gold);
	border-color: var(--color-gold);
}

.btn-ghost:hover {
	background: var(--color-gold);
	color: #0a0a0a;
}

.btn-ghost-dark {
	background: transparent;
	color: var(--color-text-primary);
	border-color: rgba(10, 10, 10, .35);
}

.btn-ghost-dark:hover {
	background: var(--color-text-primary);
	color: var(--color-bg-soft);
	border-color: var(--color-text-primary);
}

.btn--wide {
	min-width: 260px;
}

.btn-group {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

/* ==========================================================================
   Card
   ========================================================================== */

.card {
	background: var(--color-bg-paper);
	padding: 40px 36px;
	border: 1px solid var(--rule-on-light);
	transition: transform var(--trans-med), box-shadow var(--trans-med);
}

.card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-card);
}

.card--dark {
	background: var(--color-bg-dark-2);
	border-color: var(--rule-on-dark);
	color: var(--color-text-on-dark);
}

.card--flat {
	box-shadow: none;
}

.card--flat:hover {
	transform: none;
}

.card-number {
	font-family: var(--font-display);
	font-size: 56px;
	font-weight: 400;
	font-style: italic;
	line-height: 1;
	color: var(--color-gold);
	margin-bottom: 24px;
}

.card-title {
	font-family: var(--font-sans);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: .02em;
	margin-bottom: 14px;
	color: inherit;
}

.card-text {
	font-size: 15px;
	line-height: 1.85;
	color: var(--color-text-secondary);
}

.card--dark .card-text {
	color: var(--color-text-on-dark-muted);
}

/* ==========================================================================
   Grid helpers
   ========================================================================== */

.grid {
	display: grid;
	gap: 24px;
}

.grid-2 {
	grid-template-columns: repeat(2, 1fr);
}

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

.grid-4 {
	grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 900px) {
	.grid-3, .grid-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.grid-2, .grid-3, .grid-4 {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   PageTop button — refined
   ========================================================================== */

#PageTopBtn {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 50;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity var(--trans-med), transform var(--trans-med);
	pointer-events: none;
}

#PageTopBtn.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

#PageTopBtn a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	background: rgba(10, 10, 10, .82);
	color: var(--color-gold);
	border: 1px solid var(--color-gold);
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background var(--trans-fast);
	backdrop-filter: blur(6px);
}

#PageTopBtn a:hover {
	background: var(--color-gold);
	color: #0a0a0a;
}

#PageTopBtn a .material-icons {
	font-size: 18px;
}

/* ==========================================================================
   Utility
   ========================================================================== */

.text-center { text-align: center; }
.text-gold { color: var(--color-gold); }
.text-muted { color: var(--color-text-muted); }

.hidden { display: none !important; }

/* ==========================================================================
   CTA band (shared across pages)
   ========================================================================== */

.cta-band {
	background:
		linear-gradient(180deg, rgba(10, 10, 10, .88), rgba(10, 10, 10, .88)),
		radial-gradient(ellipse at 70% 30%, rgba(27, 67, 50, .32), transparent 60%);
	text-align: center;
	padding: 120px 0;
	color: var(--color-text-on-dark);
}

.cta-band .eyebrow {
	padding-left: 0;
}

.cta-band .eyebrow::before {
	display: none;
}

.cta-band .section-title {
	margin-bottom: 32px;
	color: #fff;
}

.cta-band .section-lead {
	margin: 0 auto 48px;
	color: rgba(244, 241, 234, .82);
}

.cta-band .btn-group {
	justify-content: center;
}

@media (max-width: 720px) {
	.cta-band {
		padding: 80px 0;
	}
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
