/* CT Coming Soon — Frontend Styles */
:root {
	--ct-primary:  #1e302e;
	--ct-dark:     #1e302e;
	--ct-accent:   #9BB8D3;
	--ct-light:    #C8DFF0;
	--ct-white:    #ffffff;
	--ct-overlay:  rgba(30, 48, 46, 0.75);
	--ct-radius:   4px;
	--ct-transition: 0.2s ease;
}

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

html { scroll-behavior: smooth; }

body.ct-cs-body {
	font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: #333;
	line-height: 1.65;
	background: #fff;
}


/* ─── HEADER ────────────────────────────────────── */
.ct-header {
	background: var(--ct-white);
	position: sticky;
	top: 0;
	z-index: 200;
	box-shadow: 0 2px 12px rgba(0,0,0,.35);
}

.ct-header__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 14px 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.ct-header__logo img {
	max-height: 70px;
	width: auto;
	display: block;
}

.ct-header__site-name {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--ct-white);
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ct-header__phone a {
	color: var(--ct-accent);
	text-decoration: none;
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .03em;
	white-space: nowrap;
	transition: color var(--ct-transition);
}

.ct-header__phone a:hover { color: var(--ct-light); }

/* ─── HERO ──────────────────────────────────────── */
.ct-hero {
	position: relative;
	min-height: 50vh;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.ct-hero__overlay {
	position: absolute;
	inset: 0;
	background: var(--ct-overlay);
}

.ct-hero__content {
	position: relative;
	z-index: 1;
	max-width: 100%;
	padding: 60px 24px;
    color: #fff;
}

/* Typography inside hero (comes from wp_editor output) */
.ct-hero__content h1 {
	font-size: clamp(2.2rem, 5.5vw, 4rem);
	font-weight: 700;
	color: var(--ct-white);
	line-height: 1.15;
	letter-spacing: .05em;
	margin-bottom: 24px;
	text-transform: uppercase;
}

.ct-hero__content h2 {
font-size: clamp(1.5rem, 3.5vw, 2.4rem);
  font-weight: 600;
  color: #fff;
  margin-bottom: 20px;
  line-height: normal;
}

.ct-hero__content h3 {
	font-size: clamp(1.2rem, 2.5vw, 1.8rem);
	color: var(--ct-light);
	margin-bottom: 16px;
}

.ct-hero__content p {
	font-size: clamp(.95rem, 2vw, 1.15rem);
	color: rgba(255,255,255);
	font-weight: 700;
	margin-bottom: 14px;
}

.ct-hero__content p:last-child { margin-bottom: 0; }

.ct-hero__content a {
	color: var(--ct-accent);
	text-decoration: underline;
}

/* ─── CONTACT ───────────────────────────────────── */
.ct-contact {
	padding: 40px 20px;
	background: #f6f8fa;
}

.ct-container {
	max-width: 720px;
	margin: 0 auto;
}

.ct-contact__heading {
	font-size: clamp(1.8rem, 4vw, 2.4rem);
	font-weight: 700;
	color: var(--ct-dark);
	text-align: center;
	margin-bottom: 8px;
}

.ct-contact__sub {
	text-align: center;
	color: #666;
	font-size: 1.05rem;
	margin-bottom: 48px;
}

/* ─── FORM WRAP ──────────────────────────────────── */
.ct-form-wrap { width: 100%; }

/* ── iframe embeds (Typeform, JotForm, etc.) ─────── */
.ct-form-wrap iframe {
	width: 100%;
	border: none;
	min-height: 480px;
	border-radius: var(--ct-radius);
}

/* ─── CF7 STYLED FORM ────────────────────────────── */
/* Used when the CF7 form body includes the HTML
   wrapper divs from the starter template.            */

.ct-cf7-form {
	width: 100%;
}

/* Two-column row for Name + Email */
.ct-cf7-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

fieldset {
  border: none;
  padding: 0;
  margin: 0;
}

.wpcf7 .screen-reader-response {
	display: none;
}

/* Fields inside a row don't need their own bottom margin */
.ct-cf7-row > .ct-cf7-field { margin-bottom: 0; }

/* Hide CF7 labels — placeholders serve as the visual cue */
.wpcf7-form label,
.wpcf7-form .ct-cf7-field > label {
	display: none !important;
}

/* Inputs — CF7 wraps each control in .wpcf7-form-control-wrap */
.ct-cf7-field .wpcf7-form-control-wrap { display: block; }

.ct-cf7-field input[type="text"],
.ct-cf7-field input[type="email"],
.ct-cf7-field input[type="tel"],
.ct-cf7-field input[type="url"],
.ct-cf7-field input[type="number"],
.ct-cf7-field select,
.ct-cf7-field textarea {
	display: block;
	width: 100%;
	padding: 13px 16px;
	border: 1px solid #d0d7de;
	border-radius: var(--ct-radius);
	font-family: inherit;
	font-size: .95rem;
	color: #333;
	background: #fff;
	transition: border-color var(--ct-transition), box-shadow var(--ct-transition);
	outline: none;
	-webkit-appearance: none;
	box-sizing: border-box;
}

.ct-cf7-field input:focus,
.ct-cf7-field select:focus,
.ct-cf7-field textarea:focus {
	border-color: var(--ct-primary);
	box-shadow: 0 0 0 3px rgba(46,74,87,.15);
}

.ct-cf7-field textarea {
	resize: vertical;
	min-height: 150px;
	line-height: 1.6;
}

/* Validation — CF7 adds .wpcf7-not-valid on the input */
.ct-cf7-field input.wpcf7-not-valid,
.ct-cf7-field textarea.wpcf7-not-valid {
	border-color: #e74c3c;
	box-shadow: 0 0 0 3px rgba(231,76,60,.12);
}

.ct-cf7-field .wpcf7-not-valid-tip {
	display: block;
	color: #9b2222;
	font-size: .78rem;
	margin-top: 5px;
	font-weight: 500;
}

/* Submit row */
.ct-cf7-submit { margin-top: 6px; }

.ct-cf7-submit input[type="submit"],
.ct-cf7-submit .wpcf7-submit {
	display: block;
	width: 100%;
	padding: 15px 32px;
	background: var(--ct-primary);
	color: var(--ct-white) !important;
	font-family: inherit;
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	border: none;
	border-radius: var(--ct-radius);
	cursor: pointer;
	transition: background var(--ct-transition), transform var(--ct-transition);
	-webkit-appearance: none;
}

.ct-cf7-submit input[type="submit"]:hover,
.ct-cf7-submit .wpcf7-submit:hover { background: var(--ct-dark); }

.ct-cf7-submit input[type="submit"]:active,
.ct-cf7-submit .wpcf7-submit:active { transform: translateY(1px); }

/* Spinner (CF7 adds it next to the button) */
.ct-cf7-submit .wpcf7-spinner {
	display: inline-block;
	vertical-align: middle;
	margin-left: 10px;
}

/* Response messages */
.ct-cf7-form .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 13px 18px;
	border-radius: var(--ct-radius);
	font-size: .9rem;
	font-weight: 500;
	border: none !important;
}

.ct-cf7-form .wpcf7-mail-sent-ok {
	background: #eaf7ec;
	color: #1e6632;
}

.ct-cf7-form .wpcf7-mail-sent-ng,
.ct-cf7-form .wpcf7-spam-blocked,
.ct-cf7-form .wpcf7-validation-errors,
.ct-cf7-form .wpcf7-acceptance-missing {
	background: #fdf0f0;
	color: #9b2222;
}

/* ── Gravity Forms fallback ──────────────────────── */
.ct-form-wrap .gfield_label {
	font-size: .8rem !important;
	font-weight: 700 !important;
	color: var(--ct-dark) !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
}
.ct-form-wrap .gfield_required_text,
.ct-form-wrap .gfield_required { color: #c0392b !important; }
.ct-form-wrap .gform_button {
	display: block;
	width: 100%;
	padding: 15px 32px;
	background: var(--ct-primary) !important;
	color: var(--ct-white) !important;
	font-family: inherit !important;
	font-size: .95rem !important;
	font-weight: 700 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	border: none !important;
	border-radius: var(--ct-radius) !important;
	cursor: pointer;
}
.ct-form-wrap .gform_button:hover { background: var(--ct-dark) !important; }

/* ── WPForms fallback ────────────────────────────── */
.ct-form-wrap .wpforms-field-label {
	font-size: .8rem !important;
	font-weight: 700 !important;
	color: var(--ct-dark) !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
}
.ct-form-wrap .wpforms-submit {
	display: block !important;
	width: 100% !important;
	padding: 15px 32px !important;
	background: var(--ct-primary) !important;
	color: var(--ct-white) !important;
	font-family: inherit !important;
	font-size: .95rem !important;
	font-weight: 700 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	border: none !important;
	border-radius: var(--ct-radius) !important;
}
.ct-form-wrap .wpforms-submit:hover { background: var(--ct-dark) !important; }

/* ─── FOOTER ────────────────────────────────────── */
.ct-footer {
	background: var(--ct-dark);
	padding: 28px 24px;
	text-align: center;
}

.ct-footer__inner {
	color: rgba(255,255,255,.55);
	font-size: .82rem;
	letter-spacing: .02em;
}

.ct-footer__inner a {
	color: var(--ct-accent);
	text-decoration: none;
	transition: color var(--ct-transition);
}

.ct-footer__inner a:hover { color: var(--ct-light); }

.ct-footer__inner p { margin: 0; }

/* ─── RESPONSIVE ─────────────────────────────────── */
@media (max-width: 640px) {
	.ct-header__inner { padding: 12px 20px; }

	.ct-hero { min-height: 30vh; }

	.ct-hero__content { padding: 48px 20px; }


	.ct-form__row--two { grid-template-columns: 1fr; gap: 0; }
}
