/* Contact page */
:root {
	--cp-gold: #d4af37;
	--cp-gold-dark: #b8952a;
	--cp-ink: #241e09;
	--cp-muted: #6b6455;
	--cp-line: #ece6d6;
	--cp-bg-soft: #faf7ef;
	--cp-dark: #14110a;
}

body { font-size: 17px; color: var(--cp-ink); }

main { margin-bottom: 5rem; }

/* global-header.css sets "* { font-size: 20px }" at desktop widths;
   let text in this page's sections size from their parent instead. */
.cp-hero *,
.cp-wrap * { font-size: inherit; }
.cp-wrap { font-size: 17px; }

.cp-wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 16px;
}

/* Banner */
.cp-hero {
	position: relative;
	padding: 96px 0 140px;
	color: #f5efe0;
	background:
		linear-gradient(180deg, rgba(20, 17, 10, 0.55), rgba(20, 17, 10, 0.88)),
		url('../img/Rectangle\ 75.webp') center / cover no-repeat;
	text-align: center;
}
.cp-eyebrow {
	font-size: 13px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--cp-gold);
	margin-bottom: 12px;
}
.cp-title {
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 600;
	font-size: clamp(38px, 6vw, 64px);
	line-height: 1.1;
}
.cp-title em { font-style: italic; color: var(--cp-gold); }
.cp-lead {
	max-width: 560px;
	margin: 16px auto 0;
	font-size: 18px;
	line-height: 1.6;
	color: #d9cfb8;
}

/* Quick contact cards (overlap the banner) */
.cp-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: -80px;
	position: relative;
	z-index: 2;
}
.cp-card {
	background: #fff;
	border-radius: 14px;
	padding: 28px 24px;
	box-shadow: 0 14px 34px rgba(36, 30, 9, 0.12);
	border-top: 3px solid var(--cp-gold);
	line-height: 1.55;
}
.cp-card h2 { font-size: 20px; margin: 14px 0 8px; }
.cp-card p { margin: 0 0 6px; }
.cp-card ul { list-style: none; padding: 0; margin: 0; }
.cp-card li { padding: 2px 0; }
.cp-card a { color: var(--cp-ink); text-decoration: none; font-weight: 600; }
.cp-card a:hover { color: var(--cp-gold-dark); }
.cp-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--cp-bg-soft);
	color: var(--cp-gold-dark);
	font-size: 22px;
}
.cp-icon-wa { background: #e7f8ee; color: #1faa53; }
.cp-link { display: inline-block; margin-top: 8px; color: var(--cp-gold-dark) !important; }
.cp-link .fa { font-size: 13px; margin-left: 4px; }
.cp-muted { color: var(--cp-muted); }

/* Section headings */
.cp-section-title {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: clamp(26px, 3.5vw, 36px);
	font-weight: 600;
	margin-bottom: 8px;
}
.cp-section-head { text-align: center; max-width: 620px; margin: 0 auto 32px; }

/* Enquiry form + side panel */
.cp-enquiry {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 28px;
	margin-top: 72px;
	align-items: stretch;
}
.cp-form-box {
	background: #fff;
	border: 1px solid var(--cp-line);
	border-radius: 16px;
	padding: 36px;
}
.cp-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 20px;
	margin-top: 24px;
}
.cp-field { display: flex; flex-direction: column; gap: 6px; }
.cp-field-full { grid-column: 1 / -1; }
.cp-field label { font-size: 15px; font-weight: 600; }
.cp-optional { font-weight: 400; color: var(--cp-muted); }
.cp-field input,
.cp-field select,
.cp-field textarea {
	width: 100%;
	font: inherit;
	font-size: 16px;
	color: var(--cp-ink);
	padding: 12px 14px;
	border: 1px solid #d8d1bf;
	border-radius: 8px;
	background: #fff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.cp-field textarea { resize: vertical; min-height: 130px; }
.cp-field input:focus,
.cp-field select:focus,
.cp-field textarea:focus {
	outline: none;
	border-color: var(--cp-gold);
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
}
.cp-error {
	margin: 0;
	padding: 10px 14px;
	border-radius: 8px;
	background: #fdecea;
	color: #a1271b;
	font-size: 15px;
}

/* Buttons */
.cp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 24px;
	border: 2px solid var(--cp-gold);
	border-radius: 8px;
	background: var(--cp-gold);
	color: #1a1406;
	font: inherit;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}
.cp-btn:hover { background: #e6c458; transform: translateY(-1px); }
.cp-btn-ghost { background: transparent; color: #f5efe0; border-color: rgba(245, 239, 224, 0.4); }
.cp-btn-ghost:hover { background: transparent; border-color: var(--cp-gold); color: var(--cp-gold); }
.cp-btn-outline { background: transparent; color: var(--cp-gold-dark); }
.cp-btn-outline:hover { background: var(--cp-bg-soft); }

.cp-side {
	border-radius: 16px;
	padding: 36px 32px;
	color: #f5efe0;
	background:
		linear-gradient(180deg, rgba(20, 17, 10, 0.82), rgba(20, 17, 10, 0.95)),
		url('../img/Rectangle\ 57.webp') center / cover no-repeat;
	display: flex;
	flex-direction: column;
}
.cp-side h2 {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 28px;
	font-weight: 600;
	margin-bottom: 12px;
}
.cp-side p { color: #d9cfb8; line-height: 1.6; }
.cp-checks { list-style: none; padding: 0; margin: 20px 0 28px; }
.cp-checks li { padding: 7px 0; border-bottom: 1px solid rgba(245, 239, 224, 0.12); }
.cp-checks .fa { color: var(--cp-gold); margin-right: 10px; }
.cp-side-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: auto; }

/* Map */
.cp-location { margin-top: 80px; }
.cp-location-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 28px;
}
.cp-map {
	border-radius: 16px;
	overflow: hidden;
	min-height: 420px;
	box-shadow: 0 10px 28px rgba(36, 30, 9, 0.12);
}
.cp-map iframe { display: block; width: 100%; height: 100%; min-height: 420px; border: 0; }
.cp-directions {
	background: var(--cp-bg-soft);
	border-radius: 16px;
	padding: 32px;
	display: flex;
	flex-direction: column;
}
.cp-directions h3 { font-size: 22px; margin-bottom: 12px; }
.cp-directions dl { margin: 0 0 24px; }
.cp-directions dl > div { padding: 12px 0; border-bottom: 1px solid var(--cp-line); }
.cp-directions dt {
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cp-gold-dark);
	font-weight: 700;
	margin-bottom: 2px;
}
.cp-directions dd { margin: 0; line-height: 1.5; }

/* Responsive */
@media (max-width: 1000px) {
	.cp-cards { grid-template-columns: repeat(2, 1fr); }
	.cp-enquiry,
	.cp-location-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.cp-hero { padding: 64px 0 110px; }
	.cp-cards { grid-template-columns: 1fr; gap: 14px; margin-top: -64px; }
	.cp-form-box, .cp-side, .cp-directions { padding: 24px 20px; }
	.cp-form { grid-template-columns: 1fr; }
	.cp-map, .cp-map iframe { min-height: 320px; }
	.cp-btn { width: 100%; }
}
