/* =====================
   WRAPPER RESET
====================== */
.ff-wrap *, .ff-wrap *::before, .ff-wrap *::after,
.brf-wrap *, .brf-wrap *::before, .brf-wrap *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

/* =====================
   COMMON WRAPPER STYLES
====================== */
.ff-wrap, .brf-wrap {
	font-family: "TabletGothicNarrowW02-SmBd", sans-serif;
}

/* =====================
   CONTAINER
====================== */
.ff-container, .brf-container {
	display: flex;
	align-items: flex-start;
}
.ff-container { 
    gap: 50px;
}
.brf-pricing-bar {
    background: #F8E077;
    padding: 20px 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0px 62px;
    border-radius: 8px;
    flex-wrap: wrap;
}
.brf-pricing-bar #brf-price-err {
    display: none;
}
.brf-pricing-bar .brf-price-label {
    font-weight: 500;
    font-size: 19px;
    line-height: 100%;
    letter-spacing: 6%;
    text-transform: uppercase;
    color: #002855;
    display: flex;
    align-items: center;
    gap: 10px;
}
.brf-pricing-bar .brf-price-label > span {
    font-weight: 600;
    font-size: 22px;
    line-height: 100%;
    letter-spacing: 0%;
    vertical-align: middle;
    display: block;
}
.brf-pricing-bar .brf-price-opt input {
    width: 20px;
    height: 20px;
    margin: 0;
    flex-shrink: 0;
    cursor: pointer;
    appearance: none;
    -ebkit-appearance: none;
    background: #FFFFFF0F;
    border: 1px solid #FFFFFF1A;
    border-radius: 6px;
    display: grid;
    place-content: center;
}
.brf-pricing-bar .brf-price-opt {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* =====================
   FORM COLUMN
====================== */
.ff-form-col, .brf-form-col {
	flex: 1;
	background: transparent;
	position: relative;
}

/* =====================
   SECTIONS
====================== */
.ff-section, .brf-section {
	margin-bottom: 34px;
}
.ff-section-title, .brf-section-title {
    color: #FFBE49;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2%;
}
.ff-section-title {
    font-size: 26px;
    line-height: 100%;
    margin-bottom: 30px;
}
.ff-section-title small, .brf-section-title small {
    color: #FFBE49;
    font-weight: 600;
    text-transform: uppercase;
}
.ff-section-title small {
    font-size: 18px;
    line-height: 100%;
    letter-spacing: 2%;
}

/* Divider */
.brf-divider {
	border: none;
	border-top: 1px solid rgba(255,255,255,0.1);
	margin: 0 0 24px;
}

/* =========================
   GRIDS
========================= */
.ff-g2, .brf-g2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 20px;
}
.ff-g3 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 0 20px;
}
.brf-g3 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 0 20px;
}

/* =====================
   FORM FIELDS
====================== */
.ff-field, .brf-field {
	margin-bottom: 20px;
}
.ff-field label, .brf-field label {
    display: block;
    color: #fff;
    font-weight: 500;
    vertical-align: middle;
}
.brf-field label,
.ff-field label {
	margin-bottom: 4px;
	font-size: 16px;
	line-height: 100%;
	letter-spacing: 0%;
}
.ff-field input[type=text], .ff-field input[type=email], .ff-field input[type=tel], .ff-field input[type=date], .ff-field textarea, .brf-field input[type="text"], .brf-field input[type="email"], .brf-field input[type="tel"], .brf-field input[type="date"], .brf-field textarea {
    width: 100%;
    border-radius: 8px;
    color: #fff;
    border: 1px solid #FFFFFF1A;
    transition: all 0.4s;
    outline: none;
    background: #FFFFFF0F;
}
.ff-field input[type=text], .ff-field input[type=email], .ff-field input[type=tel], .ff-field input[type=date], .ff-field textarea {
    background: #FFFFFF0F;
    padding: 10px 20px;
    font-size: 16px;
    height: 50px;
    line-height: normal;
}
.ff-field input:focus, .ff-field textarea:focus,
.brf-field input:focus, .brf-field textarea:focus {
	border-color: #FFBE49;
}

.ff-field textarea, .brf-field textarea {
	resize: vertical;
}
.ff-field textarea { min-height: 110px; }
.brf-field textarea { min-height: 90px; }

/* Error Styles */
.ff-field input.ff-err, .ff-field textarea.ff-err,
.brf-field input.brf-err, .brf-field textarea.brf-err {
	border-color: #D50E1F !important;
}
.ff-err-msg, .brf-err-msg, .ff-sz-err, .brf-sz-err, .ff-agree-err, .brf-agree-err {
	color: #ff8080;
	font-size: 11px;
	display: none;
}
.ff-err-msg.on, .brf-err-msg.on, .ff-sz-err.on, .brf-sz-err.on, .ff-agree-err.on, .brf-agree-err.on {
	display: block;
}

.ff-field input::placeholder, .ff-field textarea::placeholder {
	color:#FFFFFF99;
    font-weight: 300;
}
.brf-field input::placeholder, .brf-field textarea::placeholder {
	color:#FFFFFF99;
    font-weight: 300;
}

/* Calendar Picker */
.ff-field input[type=date]::-webkit-calendar-picker-indicator, 
.brf-field input[type="date"]::-webkit-calendar-picker-indicator {
	filter: invert(1);
	opacity: 0.5;
	cursor: pointer;
}

/* =========================
   UNIFORM SIZE
========================= */
.ff-size-row, .brf-size-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.ff-size-row, .brf-size-row {
	gap: 30px;
	margin-bottom: 30px;
}
.ff-size-row:last-child{ margin-bottom: 0; }
.ff-size-lbl, .brf-size-lbl {
	color: #fff;
	font-weight: 600;
	vertical-align: middle;
}
.brf-size-lbl,
.ff-size-lbl { 
    font-size: 20px; line-height: 100%; letter-spacing: 0%; 
}
.ff-size-opts, .brf-size-opts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.ff-size-opts { gap: 10px; }
.brf-size-opts { gap: 16px; }

.ff-size-option, .brf-size-option {
	display: flex;
	align-items: center;
}
.ff-size-option {
	gap: 10px;
	min-width: 80px;
}
.brf-size-option { gap: 5px; }

.brf-size-option  input[type=radio],
.ff-size-option input[type=radio] {
    width: 24px;
    height: 24px;
    cursor: pointer;
    margin: 0;
    flex-shrink: 0;
    appearance: none;
    -webkit-appearance: none;
    background: #FFFFFF0F;
    border: 1px solid #FFFFFF1A;
    border-radius: 50%;
    display: grid;
    place-content: center;
}
.brf-size-option  input[type=radio]:checked,
.ff-size-option input[type=radio]:checked {
    background: #FFFFFF0F;
    border-color: #FFF;
}
.brf-size-option  input[type=radio]:checked::before,
.ff-size-option input[type=radio]:checked::before {
    content: "";
    width: 12px;
    height: 12px;
    background: #FFF;
    border-radius: 50%;
}
.ff-size-option label, .brf-size-option label {
	color: #fff;
	cursor: pointer;
	font-weight: 500;
	vertical-align: middle;
}
.ff-size-option label {
	margin: 0;
	font-size: 16px;
	line-height: 100%;
	letter-spacing: 0%;
}
.brf-size-option label {
	font-size: 13px;
}

/* =========================
   AGREEMENT
========================= */
.ff-agree-row, .brf-agree-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.brf-agree-row,
.ff-agree-row { 
    margin-bottom: 22px; 
}
.ff-agree-row:last-child{ 
    margin-bottom: 0; 
}
.brf-agree-row input[type="checkbox"],
.ff-agree-row input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 0;
    flex-shrink: 0;
    cursor: pointer;
    appearance: none;
    -ebkit-appearance: none;
    background: #FFFFFF0F;
    border: 1px solid #FFFFFF1A;
    border-radius: 6px;
    display: grid;
    place-content: center;
}
.brf-agree-row input[type="checkbox"]:checked,
.ff-agree-row input[type="checkbox"]:checked {
    background: #FFFFFF;
    border-color: #FFFFFF;
}
.brf-agree-row input[type="checkbox"]:checked::before,
.ff-agree-row input[type="checkbox"]:checked::before {
    content: "";
    width: 10px;
    height: 9px;
    background-image: url('data:image/svg+xml,<svg width="10" height="9" viewBox="0 0 10 9" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.00024 5.75006C1.00024 5.75006 2.60024 6.66258 3.40024 8C3.40024 8 5.80024 2.75 9.00024 1" stroke="%23002855" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-position: center;
}
.ff-agree-row label, .brf-agree-row label {
	color: #fff;
	cursor: pointer;
	vertical-align: middle;
}
.brf-agree-row label,
.ff-agree-row label {
	font-weight: 400;
	font-size: 18px;
	line-height: 100%;
	letter-spacing: 0%;
}

/* =========================
   FOOTER / BUTTONS
========================= */
.ff-form-footer, .brf-form-footer {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.ff-form-footer {
	gap: 24px;
	padding: 54px 0 0px;
	border-top: 1px solid #FFFFFF33;
	margin-top: 54px;
}
.brf-form-footer {
	gap: 28px;
	padding: 8px 0 30px;
}

.ff-submit-btn, .brf-submit-btn {
    background: #D50E1F;
    color: #fff;
    border: none;
    display: inline-flex;
    align-items: center;
    transition: all 0.4s;
	text-transform: uppercase;
}
.ff-submit-btn, .brf-submit-btn {
	border-radius: 70px;
	padding: 0px 40px;
	font-size: 18px;
	font-weight: 600;
	gap: 12px;
	line-height: 60px;
}
.ff-submit-btn:hover { background: #000; }
.brf-submit-btn:hover { background: #000; }
.ff-submit-btn:disabled {
	background: #555;
	cursor: not-allowed;
}
.brf-pricing-bar {
    background: #F8E077;
    padding: 20px 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 62px;
    border-radius: 8px;
}
/* Total Amount, total label */
.ff-total-wrap { 
    text-align: left; 
}
.brf-total-lbl,
.ff-total-lbl {
    color: #FFF;
    font-weight: 400;
    font-size: 14px;
    line-height: 130%;
    letter-spacing: 0%;
    vertical-align: middle;
    text-transform: uppercase;
    margin-bottom: 3px;
    display: block;
}
div#brf-total,
.ff-total-amt {
    color: #fff;
    font-weight: 600;
    font-size: 26px;
    line-height: 100%;
    letter-spacing: 6%;
    text-transform: uppercase;
}

/* =========================
   MESSAGES
========================= */
.ff-msg, .brf-msg {
	padding: 12px 16px;
	border-radius: 8px;
	margin-bottom: 16px;
	font-size: 13px;
	display: none;
}
.ff-msg.err, .brf-msg.err {
	background: rgba(213,14,31,0.2);
	color: #ff8080;
	border: 1px solid rgba(213,14,31,0.5);
	display: block;
}
.ff-msg.ok, .brf-msg.ok {
	background: rgba(46,125,50,0.2);
	color: #81c784;
	border: 1px solid rgba(46,125,50,0.5);
	display: block;
}

/* =========================
   SIDEBAR
========================= */
.ff-sidebar, .brf-sidebar {
	display: flex;
	flex-direction: column;
}
.ff-sidebar {
    position: sticky;
    width: 320px;
    flex-shrink: 0;
    gap: 20px;
    top: 20px;
    margin-top: -166px;
}

/* Sidebar Boxes */
.ff-reg-box, .ff-fee-box, .ff-coach-box, .ff-checks-box, 
.brf-pay-box, .brf-fee-box, .brf-coach-box {
    background: #9E0D13;
    border: 2px solid #FFBE49;
    color: #FFF;
}
.ff-reg-box, .ff-fee-box, .ff-coach-box, .ff-checks-box {
    border-radius: 0;
    padding:24px 30px;
}
.brf-pay-box, .brf-fee-box, .brf-coach-box {
	border-radius: 8px;
	padding: 18px;
}

/* Sidebar Title */
.sidebar-title, .sidebar-title.rf {
    font-family: Beni;
    font-weight: 700;
    text-transform: uppercase;
}
.sidebar-title {
    font-size: 34px;
    line-height: 100%;
    letter-spacing: 6%;
    margin-bottom: 14px;
}
.sidebar-title.rf {
    font-size: 50px;
    line-height: 100%;
    letter-spacing: 6%;
    text-align: center;
    margin-bottom: 24px;
}
.ff-fee-list li {
    font-weight: 400;
    font-size: 20px;
    line-height: 130%;
    letter-spacing: 0%;
    vertical-align: middle;
    padding-left: 34px;
    margin-bottom: 10px;
    position: relative;
}
.ff-fee-list li:last-child{ margin-bottom: 0; }
.ff-fee-list li:before {
    content: "";
    background-image: url('data:image/svg+xml,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.4479 19.4637C17.2393 19.4637 18.3678 19.6175 18.9905 19C19.6182 18.3776 19.4637 17.2444 19.4637 16.4479C19.4637 15.4414 19.6838 14.9786 20.4006 14.2618C21.4669 13.1956 22 12.6624 22 12C22 11.3375 21.4669 10.8044 20.4006 9.73817C19.6839 9.02137 19.4637 8.55858 19.4637 7.55206C19.4637 6.75559 19.6182 5.62243 18.9906 5C18.3679 4.38247 17.2393 4.53626 16.4479 4.53626C15.5355 4.53626 14.9015 4.23907 14.2618 3.59937C13.1956 2.53312 12.6625 2 12 2C11.3375 2 10.8044 2.53309 9.73825 3.59927L9.73815 3.59937C9.09832 4.2392 8.46427 4.53626 7.55208 4.53626C6.7556 4.53626 5.62243 4.38178 5 5.00944C4.38249 5.63214 4.53628 6.76065 4.53628 7.55206C4.53628 8.46428 4.2392 9.09832 3.59935 9.73817L3.5993 9.73822C2.5331 10.8044 2.00001 11.3375 2 12C2.00002 12.6624 2.53314 13.1956 3.59938 14.2618C4.31616 14.9786 4.53628 15.4414 4.53628 16.4479C4.53628 17.2444 4.38181 18.3776 5.00949 19C5.63218 19.6175 6.76068 19.4637 7.55206 19.4637C8.52349 19.4637 8.99128 19.6537 9.68457 20.347C10.2749 20.9374 11.0663 22 12 22C12.9337 22 13.7251 20.9374 14.3154 20.347C15.0087 19.6537 15.4765 19.4637 16.4479 19.4637Z" fill="white"/><path d="M9 12.8929C9 12.8929 10.2 13.5447 10.8 14.5C10.8 14.5 12.6 10.75 15 9.5" stroke="%239E0D13" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-size: contain;
    height: 24px;
    width: 24px;
    display: inline-block;
    position: absolute;
    left: 0;
    top: 2px;
}

/* Coach Links (ff only) */
.ff-coach-links a, .ff-coach-links a:last-child, .ff-coach-links a, .ff-coach-links a:hover, .ff-coach-links a:nth-child(2) {
	display: flex;
	align-items: center;
}
.ff-coach-links a { 
	gap: 14px;
	margin-bottom: 24px;
	font-weight: 500;
	font-size: 22px;
	line-height: 70%;
	letter-spacing: 0%;
	position: relative;
	background-image: url(/wp-content/uploads/2026/06/bottom-border-bg.png);
	background-repeat: no-repeat;
	background-position: 46px bottom;
	width: fit-content;
	background-size: contain;
	padding-bottom: 3px;
}
.ff-coach-links a:last-child { margin-bottom: 0; }
.ff-coach-links a:hover { color: var(--yellow); }
.ff-coach-links a:nth-child(2) { font-size: 18px; }

/* Additional Wrappers */
.pt_wrp { display: flex; gap: 8px; }
.pt_wrp .price {
	font-weight: 600;
	font-size: 24px;
	line-height: 100%;
	letter-spacing: 6%;
	text-align: center;
	text-transform: uppercase;
	margin-bottom: 2px;
	display: block;
}
.pt_wrp .ff-reg-btn {
	width: auto;
	text-align: center;
	background: #002855;
	padding: 10px 30px;
	margin: 0 auto;
}
.pt_wrp .ff-reg-btn .sub {
	display: block;
	font-weight: 300;
	font-size: 14px;
	line-height: 130%;
	letter-spacing: 0%;
	text-align: center;
	vertical-align: middle;
}
.ff-section.agreement .ff-section-title {
	margin-bottom: 22px;
}

/* Checks Box */
.ff-checks-box .sidebar-title {
    font-size: 44px;
    line-height: 100%;
    letter-spacing: 6%;
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.ff-checks-box .ff-checks-name {
    font-weight: 400;
    font-size: 18px;
    line-height: 128%;
    letter-spacing: 0%;
    text-align: center;
    vertical-align: middle;
}
.ff-checks-box .ff-checks-img img {
    display: block;
    width: 100%;
    margin-top: 24px;
}

/* ================
   BRF HEADER EXTRAS
================== */
.brf-header {
	text-align: center;
	margin-bottom: 20px;
}
.brf-watermark {
	font-size: 68px;
	font-weight: 900;
	color: rgba(255,255,255,0.05);
	text-transform: uppercase;
	letter-spacing: 3px;
	line-height: 1;
	white-space: nowrap;
	user-select: none;
	pointer-events: none;
}
.brf-dates {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	margin-top: 4px;
}
.brf-dates span {
	color: #FFBE49;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
}
.brf-date-dot {
	width: 5px;
	height: 5px;
	background: #FFBE49;
	border-radius: 50%;
	display: inline-block;
	flex-shrink: 0;
}

@media (max-width:600px) {
	.brf-g2, .brf-g3, .ff-g2, .ff-g3 {
		grid-template-columns: 1fr;
	}
	.brf-pricing-bar {
		flex-direction: column;
		align-items: flex-start;
		border-radius: 16px;
		gap: 14px;
	}
	.brf-form-footer {
		flex-direction: column;
	}
	.brf-watermark {
		font-size: 26px;
	}
}

/* FF Responsive Styles */
@media (max-width:1024px){
    .ff-sidebar {
        margin-top: 0;
        width: 280px;
    }
    .ff-container {
        gap: 30px;
    }
    .ff-g3 {
        grid-template-columns: 1fr 1fr;
    }
    .ff-section-title {
        font-size: 20px;
        margin-bottom: 20px;
    }
    .ff-section {
        margin-bottom: 25px;
    }
    .ff-reg-box, .ff-fee-box, .ff-coach-box, .ff-checks-box {
        padding: 15px;
    }
    .sidebar-title.rf {
        font-size: 38px;
        margin-bottom: 15px;
    }
    .sidebar-title {
        font-size: 28px;
        margin-bottom: 8px;
    }
    .ff-coach-links a {
        gap: 8px;
        margin-bottom: 12px;
        font-size: 18px;
        background-position: 40px bottom;
        padding-bottom: 2px;
    }
    .ff-coach-links a .ff-coach-icon {
        height: 25px;
        width: 25px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .ff-checks-box .sidebar-title {
        font-size: 38px;
    }
    .ff-checks-box .ff-checks-img img {
        margin-top: 18px;
    }
    .ff-size-row {
        gap: 18px;
        margin-bottom: 16px;
    }
    .ff-agree-row label {
        font-size: 16px;
    }
    .ff-agree-row {
        gap: 10px;
        margin-bottom: 15px;
    }
    .ff-form-footer {
        gap: 15px;
        padding: 34px 0 0px;
        margin-top: 34px;
    }
    .ff-submit-btn {
        padding: 0px 25px;
        font-size: 16px;
        line-height: 50px;
    }
    .ff-total-amt {
        font-size: 22px;
    }
}

@media (max-width:767px){
    .ff-g2, .ff-g3 {
        grid-template-columns: 1fr;
    }
    .ff-container {
        gap: 35px;
        flex-direction: column;
    }
    .ff-sidebar {
        width: 100%;
    }
    .ff-section-title {
        font-size: 18px;
    }
    .ff-field label {
        font-size: 15px;
    }
    .ff-field input[type=text], .ff-field input[type=email], .ff-field input[type=tel], .ff-field input[type=date], .ff-field textarea {
        border-radius: 6px;
        padding: 8px 15px;
        font-size: 16px;
        height: 44px;
    }
    .ff-size-option {
        min-width: auto;
    }
    .ff-submit-btn {
        padding: 0px 20px;
        font-size: 14px;
        line-height: 44px;
    }
    .ff-total-amt {
        font-size: 20px;
    }
    .ff-form-footer {
        padding: 25px 0 0px;
        margin-top: 25px;
    }
    .ff-size-lbl {
        font-size: 16px;
    }
    .ff-section.parent-info {
        margin-bottom: 5px;
    }
    .ff-section.emergency-contact {
        margin-bottom: 10px;
    }
    .sidebar-title.rf {
        font-size: 35px;
    }
    .ff-checks-box .sidebar-title {
        font-size: 35px;
    }
    .ff-field {
        margin-bottom: 16px;
    }
    #date_txt strong {
        font-size: 16px;
    }
    .ff-fee-list li {
        font-size: 18px;
        padding-left: 26px;
        margin-bottom: 10px;
    }
    .ff-fee-list li:before {
        height: 20px;
        width: 20px;
    }
}