/*
 * Theme Name: 321 Child Theme
 * Theme URI: https://www.321webmarketing.com/
 * Author: 321 Web Marketing
 * Author URI: https://www.321webmarketing.com/
 * Description: 321 inspired child theme for the Genesis Framework.
 * Version: 1.0.2
 * License: GPL-3.0-or-later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 * Text Domain: tto-child
 * Domain Path: /languages
 * Template: genesis
 */

@charset 'UTF-8';

/* ## Custom Theme CSS
--------------------------------------------- */
/* ============================================================
   Coastal Shield clone: parent-theme conflict sweep.
   The ported source stylesheet (assets/css/source.css) is a
   Tailwind v4 build with layers unwrapped; it wins order ties.
   These reasserts cover declarations the Tailwind preflight
   never makes, where parent/Bootstrap element rules leak in.
   All values in px (parent sets html{font-size:62.5%}).
   ============================================================ */

body {
	font-size: 16px;
	color: #0a2342;
}

h1, h2, h3, h4, h5, h6 {
	color: inherit;
	letter-spacing: normal;
	line-height: inherit;
}

a {
	color: inherit;
	text-decoration: none;
}

ul, ol, menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

ul li::marker, ul li::before {
	content: none;
}

/* Genesis wraps: neutralize around our cloned chrome + full-bleed sections */
.site-header > .wrap,
.site-footer > .wrap {
	max-width: none;
	width: auto;
	padding: 0;
	display: block;
}
.site-header, .site-footer {
	background: transparent;
	padding: 0;
	border: none;
}

/* content wrappers must not constrain the cloned sections */
.site-inner, .content-sidebar-wrap, .content, .entry, .entry-content {
	max-width: none;
	width: auto;
	margin: 0;
	padding: 0;
	float: none;
}
.site-inner > .wrap {
	max-width: none;
	width: auto;
	padding: 0;
}


/* ============================================================
   Gravity Forms restyle to match the source design form
   (labels above, bordered p-4 inputs, 2-col grid, no legends)
   ============================================================ */
.csi-gform .gform_required_legend,
.csi-gform .gfield_required,
.csi-gform .gform-field-decorator {
	display: none !important;
}
.csi-gform .gform_wrapper .gform_fields {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.csi-gform .gform_wrapper .gfield {
	grid-column: span 1;
}
.csi-gform .gform_wrapper .gfield--type-name,
.csi-gform .gform_wrapper .gfield--type-textarea {
	grid-column: 1 / -1;
}
@media (max-width: 767px) {
	.csi-gform .gform_wrapper .gform_fields { grid-template-columns: 1fr; }
	.csi-gform .gform_wrapper .gfield { grid-column: 1 / -1; }
}
.csi-gform .gform_wrapper .ginput_complex {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
@media (max-width: 767px) {
	.csi-gform .gform_wrapper .ginput_complex { grid-template-columns: 1fr; }
}
.csi-gform .gform_wrapper label.gfield_label,
.csi-gform .gform_wrapper .ginput_complex label {
	font-size: 16px;
	font-weight: 600;
	color: rgba(10, 35, 66, 0.9);
	margin-bottom: 12px;
	display: block;
	line-height: 1.4;
}
.csi-gform .gform_wrapper input[type="text"],
.csi-gform .gform_wrapper input[type="email"],
.csi-gform .gform_wrapper input[type="tel"],
.csi-gform .gform_wrapper textarea {
	width: 100% !important;
	padding: 16px !important;
	border-radius: 6px !important;
	border: 1px solid rgba(10, 35, 66, 0.1) !important;
	background: #fff !important;
	color: gray !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	outline: none !important;
	box-shadow: none !important;
	min-height: 0 !important;
	height: auto !important;
	line-height: 1.4 !important;
}
.csi-gform .gform_wrapper input::placeholder,
.csi-gform .gform_wrapper textarea::placeholder {
	color: rgba(128, 128, 128, 0.6);
}
.csi-gform .gform_wrapper textarea {
	height: 134px !important;
	min-height: 134px !important;
}
.csi-gform .gform_footer {
	margin-top: 16px;
	padding: 0;
}
.csi-gform .gform_wrapper .gform_validation_errors {
	border-radius: 6px;
	padding: 12px 16px;
}

/* ============================================================
   Advanced Columns transparent shells + page layout grid
   ============================================================ */
.csi-gb-shell,
.csi-gb-shell > .gb-layout-column-wrap,
.csi-gb-shell .gb-block-layout-column,
.csi-gb-shell .gb-block-layout-column-inner {
	max-width: none;
	width: auto;
	margin: 0;
	padding: 0;
	display: block;
}

/* section rhythm: the design gaps sections selectively (see content JSON gap flags) */
.entry-content {
	display: block;
	overflow: hidden;
	margin-bottom: 0;
}
.entry-content > .csi-gap {
	margin-top: 56px;
}
@media (min-width: 1024px) {
	.entry-content > .csi-gap { margin-top: 96px; }
}
/* privacy prose page offset per design */
.csi-prose { margin-top: 40px; }

/* privacy prose page */
.csi-prose .gb-block-layout-column-inner {
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: gray;
	font-size: 14px;
}
.csi-prose .gb-block-layout-column-inner > * {
	max-width: 896px;
}
@media (min-width: 640px) { .csi-prose .gb-block-layout-column-inner { padding-inline: 24px; } }
@media (min-width: 1024px) { .csi-prose .gb-block-layout-column-inner { padding-inline: 32px; } }
.csi-prose h1.csi-prose-h1 {
	color: #0a2342;
	font-size: clamp(24px, 2.5vw, 40px);
	line-height: 120%;
	font-weight: 700;
	margin: 0;
}
.csi-prose p { margin: 0; line-height: 20px; }
.csi-prose h1.csi-prose-h1 + p { margin-top: 16px; }
.csi-prose p a { text-decoration: underline; }
.csi-prose p a:hover { color: #0f1b35; }

/* GF submit: design-true navy pill (GF Orbital button vars + hard assert) */
.csi-gform .gform_wrapper {
	--gf-ctrl-btn-bg-color-primary: #0a2342;
	--gf-ctrl-btn-bg-color-hover-primary: rgba(10, 35, 66, 0.8);
	--gf-ctrl-btn-bg-color-focus-primary: rgba(10, 35, 66, 0.8);
	--gf-ctrl-btn-border-color-primary: #0a2342;
	--gf-ctrl-btn-color-primary: #fff;
	--gf-ctrl-btn-radius: 6px;
}
.csi-gform .gform_footer button[type="submit"] {
	background: #0a2342 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 6px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	padding: 12px 12px 12px 20px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px !important;
	width: fit-content !important;
	cursor: pointer !important;
	transition: all .3s ease-in-out !important;
}
.csi-gform .gform_footer button[type="submit"]:hover {
	background: rgba(10, 35, 66, 0.8) !important;
}

/* team cards: name panel fills the card width (parent button resets break stretch) */
button[data-team-index] > div {
	width: 100%;
}
button[data-team-index] {
	background: none;
	border: none;
	padding: 0;
}

/* ============================================================
   Footer newsletter (GF form 2) styled like the source form:
   bordered pill = email input + Subscribe button inline;
   consent checkbox in tiny grey text below.
   ============================================================ */
.csi-newsletter .gform_required_legend,
.csi-newsletter .gfield_required,
.csi-newsletter .gform-field-decorator,
.csi-newsletter .gfield_label,
.csi-newsletter .gfield_consent_description {
	display: none !important;
}
.csi-newsletter .gform_wrapper form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.csi-newsletter .gform_wrapper .gform_fields {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
/* pill: email field + footer button share a bordered row via form-level grid */
.csi-newsletter .gform_wrapper form {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-areas: "pill pill" "consent consent";
	border: none;
}
.csi-newsletter .gform_wrapper .gform-body {
	grid-area: pill;
	display: contents;
}
.csi-newsletter .gform_wrapper .gform_fields {
	display: contents;
}
.csi-newsletter .gfield--type-email {
	grid-column: 1;
	grid-row: 1;
	border: 1px solid rgba(10, 35, 66, 0.12);
	border-right: none;
	border-radius: 6px 0 0 6px;
	padding: 8px;
	background: transparent;
}
.csi-newsletter .gfield--type-email input {
	width: 100% !important;
	border: none !important;
	outline: none !important;
	background: transparent !important;
	font-size: 14px !important;
	color: rgba(10, 35, 66, 0.7) !important;
	padding: 6px 4px !important;
	min-height: 0 !important;
	height: auto !important;
	box-shadow: none !important;
}
.csi-newsletter .gform_footer {
	grid-column: 2;
	grid-row: 1;
	margin: 0 !important;
	padding: 8px !important;
	border: 1px solid rgba(10, 35, 66, 0.12);
	border-left: none;
	border-radius: 0 6px 6px 0;
	display: flex;
	align-items: center;
}
.csi-newsletter .gform_footer button[type="submit"],
.csi-newsletter .gform_footer input[type="submit"] {
	background: #0a2342 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 4px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	padding: 10px 12px !important;
	cursor: pointer !important;
	transition: all .3s ease-in-out !important;
	line-height: 1 !important;
	width: auto !important;
}
.csi-newsletter .gform_footer button[type="submit"]:hover,
.csi-newsletter .gform_footer input[type="submit"]:hover {
	background: rgba(10, 35, 66, 0.8) !important;
}
.csi-newsletter .gfield--type-consent {
	grid-area: consent;
}
.csi-newsletter .gfield--type-consent .gfield_checkbox,
.csi-newsletter .gfield--type-consent .ginput_container_consent {
	display: flex;
	align-items: center;
	gap: 8px;
}
.csi-newsletter .gfield--type-consent input[type="checkbox"] {
	width: 14px;
	height: 14px;
	accent-color: #28446b;
	margin: 0;
}
.csi-newsletter .gfield--type-consent label {
	font-size: 12px;
	color: rgba(128, 128, 128, 0.6);
	font-weight: 400;
	cursor: pointer;
	margin: 0;
}
.csi-newsletter .gform_wrapper .gform_validation_errors {
	grid-area: consent;
	font-size: 12px;
	padding: 8px;
	border-radius: 6px;
}
.csi-newsletter .validation_message {
	font-size: 11px;
	padding: 2px 0 0;
	background: none;
	border: none;
}
