/* ==========================================================================
   Drôme Chasse & Tir — page contact
   ========================================================================== */

/* Bandeau */
.dct-contact-head {
	position: relative;
	overflow: hidden;
	padding: 46px 0 42px;
	background: linear-gradient(120deg, var(--dct-header) 0%, var(--dct-green-deep) 100%);
	color: #fff;
}
.dct-contact-head::after {
	content: "";
	position: absolute;
	top: -90px;
	right: -60px;
	width: 300px;
	height: 300px;
	border: 2px solid rgba(140,179,63,.18);
	border-radius: 50%;
	box-shadow: 0 0 0 46px rgba(140,179,63,.05);
	pointer-events: none;
}
.dct-contact-head__kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--dct-green-hi);
}
.dct-contact-head__kicker .dct-ico { width: 18px; height: 18px; }
.dct-contact-head__title {
	margin: 10px 0 8px;
	padding: 0;
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 900;
	letter-spacing: .03em;
	line-height: 1.1;
	color: #fff;
}
.dct-contact-head__desc { max-width: 620px; margin: 0; font-size: 15.5px; line-height: 1.6; color: #D3DAC8; }

/* Mise en page */
.dct-contact {
	display: grid;
	grid-template-columns: 360px 1fr;
	gap: 32px;
	align-items: start;
	padding-top: 40px;
	padding-bottom: 70px;
}
.dct-contact__intro { margin-bottom: 18px; font-size: 14.5px; line-height: 1.7; color: #4A5046; }
.dct-contact__intro p { margin: 0 0 10px; padding: 0; }

/* Cartes d'information */
.dct-cinfo { display: flex; flex-direction: column; gap: 12px; }
.dct-cinfo__card {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	background: #fff;
	box-shadow: var(--dct-shadow);
	color: var(--dct-text) !important;
	transition: border-color .2s, transform .2s;
}
a.dct-cinfo__card:hover { border-color: var(--dct-green); transform: translateY(-2px); }
.dct-cinfo__card--phone { background: var(--dct-header); border-color: var(--dct-header); color: #fff !important; }
.dct-cinfo__ico {
	display: grid;
	place-items: center;
	flex: 0 0 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(140,179,63,.14);
	color: var(--dct-green);
}
.dct-cinfo__ico .dct-ico { width: 21px; height: 21px; }
.dct-cinfo__txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.4; }
.dct-cinfo__txt em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--dct-muted); }
.dct-cinfo__card--phone .dct-cinfo__txt em { color: var(--dct-green-hi); }
.dct-cinfo__txt strong { margin-top: 3px; font-size: 15px; font-weight: 800; word-break: break-word; }
.dct-cinfo__card--phone .dct-cinfo__txt strong { font-size: 22px; letter-spacing: .02em; color: #fff; }
.dct-cinfo__txt small { margin-top: 4px; font-size: 12.5px; color: var(--dct-muted); }
.dct-cinfo__card--phone .dct-cinfo__txt small { color: #C9CFC1; }
.dct-cinfo__line { display: block; margin-top: 3px; font-size: 13.5px; color: #3E433A; }

.dct-cinfo__list { margin: 6px 0 0; padding: 0; list-style: none; }
.dct-cinfo__list li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 7px 2px; font-size: 13.5px; color: #4A5046; }
.dct-cinfo__list .dct-ico { flex: 0 0 18px; width: 18px; height: 18px; color: var(--dct-green); }

/* Formulaire */
.dct-cform {
	position: relative;
	padding: 34px 36px 30px;
	border: 1px solid var(--dct-border);
	border-top: 3px solid var(--dct-green);
	border-radius: var(--dct-radius);
	background: #fff;
	box-shadow: var(--dct-shadow);
}
.dct-cform [hidden] { display: none !important; }
.dct-cform__head h2 { margin: 0; padding: 0; font-size: 21px; font-weight: 800; letter-spacing: .02em; color: var(--dct-text); }
.dct-cform__head p { margin: 4px 0 22px; padding: 0; font-size: 13px; color: var(--dct-muted); }

.dct-cform__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.dct-field { margin: 0; padding: 0; }
.dct-field--full { grid-column: 1 / -1; }
.dct-field label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 700; color: var(--dct-text); }
.dct-field label span,
.dct-req { color: #A5432F; }

.dct-cform input[type="text"],
.dct-cform input[type="email"],
.dct-cform input[type="tel"],
.dct-cform select,
.dct-cform textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid #D5D8CF;
	border-radius: var(--dct-radius);
	background: #FAFAF7;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.4;
	color: var(--dct-text);
	transition: border-color .15s, box-shadow .15s, background .15s;
	-webkit-appearance: none;
	appearance: none;
}
.dct-cform select {
	padding-right: 38px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235E7A22' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
.dct-cform textarea { min-height: 150px; resize: vertical; }
.dct-cform input::placeholder,
.dct-cform textarea::placeholder { color: #A3A89E; }
.dct-cform input:focus,
.dct-cform select:focus,
.dct-cform textarea:focus {
	outline: none;
	border-color: var(--dct-green);
	background-color: #fff;
	box-shadow: 0 0 0 3px rgba(140,179,63,.18);
}
.dct-field.is-invalid input,
.dct-field.is-invalid select,
.dct-field.is-invalid textarea { border-color: #C0533E; box-shadow: 0 0 0 3px rgba(192,83,62,.14); }

.dct-cform__hint {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-top: 8px;
	padding: 10px 12px;
	border-radius: var(--dct-radius);
	background: rgba(140,179,63,.12);
	font-size: 13px;
	line-height: 1.45;
	color: #3E4A2A;
}
.dct-cform__hint[hidden] { display: none; }
.dct-cform__hint .dct-ico { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 1px; color: #5E7A22; }
.dct-cform__hint a { color: #4E681C; font-weight: 700; text-decoration: underline; }

.dct-cform__consent { margin: 18px 0 0; padding: 0; }
.dct-cform__consent label { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; color: #4A5046; cursor: pointer; }
.dct-cform__consent input { flex: 0 0 18px; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--dct-green); }
.dct-cform__consent a { color: #5E7A22; font-weight: 600; text-decoration: underline; }
.dct-cform__consent.is-invalid label { color: #A5432F; }

.dct-cform__alert {
	margin: 0 0 18px;
	padding: 12px 14px;
	border-left: 3px solid #C0533E;
	border-radius: var(--dct-radius);
	background: #FBEDEA;
	font-size: 14px;
	font-weight: 600;
	color: #8E3524;
}

.dct-cform__submit { margin-top: 22px; padding: 15px 26px; font-size: 13px; }
.dct-cform__submit .dct-ico { width: 16px; height: 16px; }
.dct-cform__submit:disabled { opacity: .7; cursor: wait; }
.dct-cform.is-sending .dct-cform__submit .dct-ico { animation: dct-cform-spin .8s linear infinite; }
@keyframes dct-cform-spin { to { transform: translateX(4px); } }

/* Confirmation */
.dct-cform__done { padding: 26px 6px 10px; text-align: center; }
.dct-cform__done-ico {
	display: inline-grid;
	place-items: center;
	width: 68px;
	height: 68px;
	border-radius: 50%;
	background: rgba(140,179,63,.16);
	color: var(--dct-green);
	animation: dct-cform-pop .4s cubic-bezier(.2,.8,.2,1.2) both;
}
.dct-cform__done-ico .dct-ico { width: 34px; height: 34px; stroke-width: 2.4; }
.dct-cform__done h2 { margin: 16px 0 8px; padding: 0; font-size: 22px; font-weight: 800; color: var(--dct-text); }
.dct-cform__done p { max-width: 460px; margin: 0 auto 22px; padding: 0; font-size: 15px; line-height: 1.6; color: #4A5046; }
@keyframes dct-cform-pop { from { transform: scale(.5); opacity: 0; } to { transform: none; opacity: 1; } }

/* Responsive */
@media (max-width: 980px) {
	.dct-contact { grid-template-columns: 1fr; gap: 24px; padding-top: 26px; padding-bottom: 48px; }
	.dct-contact__main { order: -1; }
}

@media (max-width: 640px) {
	.dct-contact-head { padding: 32px 0 28px; }
	.dct-cform { padding: 24px 18px 22px; }
	.dct-cform__grid { grid-template-columns: 1fr; gap: 14px; }
	.dct-cform__submit { width: 100%; justify-content: center; }
	.dct-cform input[type="text"],
	.dct-cform input[type="email"],
	.dct-cform input[type="tel"],
	.dct-cform select,
	.dct-cform textarea { font-size: 16px; } /* évite le zoom iOS */
}

/* Bouton : protégé des styles de bouton du thème parent */
.dct-cform button.dct-cform__submit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border: 0 !important;
	border-radius: var(--dct-radius) !important;
	background: var(--dct-green) !important;
	color: #10140E !important;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	box-shadow: none !important;
	cursor: pointer;
}
.dct-cform button.dct-cform__submit:hover,
.dct-cform button.dct-cform__submit:focus-visible { background: var(--dct-green-hi) !important; color: #10140E !important; }
.dct-cform button.dct-cform__submit:focus-visible { outline: 2px solid var(--dct-text); outline-offset: 2px; }
