/* First Touch Camps — front-end listing ([ft_camps]) */
.ftc-camps{
	display:flex;
	flex-direction:column;
	gap:18px;
	max-width:820px;
	margin:0 auto;
}
.ftc-camp-card{
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:12px;
	padding:22px 24px;
	box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.ftc-camp-head{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:16px;
	flex-wrap:wrap;
}
.ftc-camp-title{
	margin:0 0 6px;
	font-size:22px;
	color:#1f2937;
}
.ftc-badge{
	display:inline-block;
	background:#eef2fb;
	color:#2c5aa0;
	font-size:13px;
	font-weight:600;
	padding:2px 10px;
	border-radius:999px;
	margin-right:8px;
}
.ftc-ages{
	font-size:14px;
	color:#6b7280;
}
.ftc-camp-price{
	text-align:right;
	white-space:nowrap;
}
.ftc-camp-price span{
	display:block;
	font-size:18px;
	font-weight:700;
	color:#111827;
	line-height:1.3;
}
.ftc-camp-price small{
	font-size:12px;
	font-weight:400;
	color:#6b7280;
}
.ftc-price-week{
	color:#1a7f37 !important;
}
.ftc-camp-desc{
	margin:14px 0 0;
	color:#4b5563;
	font-size:15px;
	line-height:1.55;
}
.ftc-weeks{
	margin-top:16px;
	border-top:1px solid #f0f0f0;
	padding-top:14px;
}
.ftc-weeks-label{
	display:block;
	font-weight:600;
	color:#374151;
	margin-bottom:8px;
	font-size:14px;
}
.ftc-weeks-list{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:8px;
}
.ftc-weeks-list li{
	display:flex;
	justify-content:space-between;
	align-items:center;
	background:#f8fafc;
	border-radius:8px;
	padding:10px 14px;
	font-size:15px;
	color:#1f2937;
}
.ftc-book-btn{
	display:inline-block;
	background:#2c5aa0;
	color:#fff !important;
	text-decoration:none;
	font-weight:600;
	font-size:14px;
	padding:8px 20px;
	border-radius:6px;
}
.ftc-book-btn:hover{ background:#24487f; }
.ftc-book-soon{
	color:#9ca3af;
	font-size:13px;
	font-style:italic;
}
.ftc-weeks-none,
.ftc-empty{
	color:#6b7280;
	font-style:italic;
	font-size:15px;
}
@media (max-width:560px){
	.ftc-camp-price{ text-align:left; }
	.ftc-camp-head{ flex-direction:column; }
}

/* ---- Booking form ([ft_camp_booking]) ---- */
.ftc-booking{
	max-width:640px;
	margin:0 auto;
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:12px;
	padding:24px 26px;
	box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.ftc-booking h3{ margin:22px 0 10px; font-size:18px; color:#1f2937; }
.ftc-field{ margin-bottom:14px; }
.ftc-field label{ display:block; margin-bottom:4px; }
.ftc-booking select,
.ftc-booking input[type=text],
.ftc-booking input[type=email],
.ftc-booking input[type=tel],
.ftc-booking input[type=date],
.ftc-booking textarea{
	width:100%;
	padding:9px 11px;
	border:1px solid #cbd5e1;
	border-radius:7px;
	font-size:15px;
	box-sizing:border-box;
}
.ftc-day{ display:inline-block; margin:4px 12px 4px 0; }
.ftc-day input{ width:auto; }

/* Sessions grid (ClubSpark-style day cells + All days) */
.ftc-camp-times{ font-size:14px; color:#6b7280; margin-top:4px; }
.ftc-times-row{ font-size:15px; color:#374151; }
.ftc-locked-camp{ margin:0 0 12px; font-size:24px; color:#1f2937; }
.ftc-sessions{
	display:grid; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)); gap:10px; margin:8px 0 6px;
}
.ftc-session{
	min-width:0;
	display:flex; flex-direction:column; align-items:center; gap:2px;
	background:#fff; border:2px solid #cbd5e1; border-radius:10px;
	padding:12px 8px; cursor:pointer; font:inherit; color:#1f2937;
	transition:border-color .12s, background .12s;
}
.ftc-session:hover{ border-color:#94a3b8; }
.ftc-session.is-selected{ border-color:#2c5aa0; background:#eef2fb; }
.ftc-session .s-day{ font-weight:700; font-size:14px; }
.ftc-session .s-date{ font-size:12px; color:#6b7280; }
.ftc-session .s-price{ font-size:15px; font-weight:700; margin-top:2px; }
/* The whole-week / full-term option spans its own full-width row. */
.ftc-session-all{ grid-column:1 / -1; background:#f8fafc; border-style:dashed; }
.ftc-session-all.is-selected{ border-style:solid; border-color:#1a7f37; background:#e7f6ec; }
.ftc-sessions-hint{ display:block; margin-top:4px; color:#6b7280; font-size:13px; }
.ftc-child{
	border:1px solid #e5e7eb;
	border-radius:9px;
	padding:14px;
	margin-bottom:12px;
	background:#f8fafc;
}
.ftc-child-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px;
	margin-bottom:8px;
}
.ftc-child-grid .c-dob-l{ font-size:13px; color:#6b7280; }
.ftc-child .c-flag{ display:block; margin:6px 0; }
.ftc-child .c-flag input{ width:auto; }
.ftc-remove-child{
	background:none; border:0; color:#b91c1c; cursor:pointer;
	font-size:13px; padding:4px 0; margin-top:4px;
}
.ftc-add-child{
	background:#eef2fb; color:#2c5aa0; border:0; border-radius:7px;
	padding:9px 16px; font-weight:600; cursor:pointer; font-size:14px;
}
.ftc-parent .ftc-field input{ max-width:100%; }
.ftc-consent{
	display:flex; align-items:flex-start; gap:8px;
	margin:8px 0; font-size:14px; line-height:1.45; color:#374151;
}
.ftc-consent input{ margin-top:3px; width:auto; }
.ftc-req{ color:#b91c1c; font-style:normal; font-weight:700; }
.ftc-required-note{ font-size:13px; color:#6b7280; margin:0 0 14px; }
.ftc-summary{
	display:flex; justify-content:space-between; align-items:center;
	margin:22px 0; padding:14px 16px; background:#f4f7fb; border-radius:9px;
}
.ftc-total-label{ font-weight:600; color:#374151; }
.ftc-total{ font-size:22px; font-weight:700; color:#111827; }
.ftc-breakdown{ margin:16px 0 -6px; color:#6b7280; font-size:14px; }
.ftc-breakdown:empty{ display:none; }
#ftc-booking .ftc-breakdown{ margin:16px 0 -6px !important; color:#6b7280 !important; font-size:14px !important; text-align:left !important; }
.ftc-submit{
	width:100%; background:#2c5aa0; color:#fff; border:0; border-radius:8px;
	padding:14px; font-size:17px; font-weight:600; cursor:pointer;
}
.ftc-submit:hover{ background:#24487f; }
.ftc-submit:disabled{ opacity:.65; cursor:default; }
.ftc-error{
	background:#fef2f2; border:1px solid #fecaca; color:#b91c1c;
	padding:12px 14px; border-radius:8px; margin-bottom:16px; font-size:15px;
}
@media (max-width:560px){
	.ftc-child-grid{ grid-template-columns:1fr; }
}

/* ---- Booking complete ([ftc_booking_complete]) ---- */
.ftc-complete{ display:flex; justify-content:center; padding:24px 16px; }
.ftc-complete-card{
	background:#fff; max-width:560px; width:100%; text-align:center;
	border-radius:14px; padding:40px 32px;
	box-shadow:0 8px 30px rgba(0,0,0,.08); border-top:6px solid #1a7f37;
}
.ftc-complete-tick{
	width:64px; height:64px; margin:0 auto 18px; border-radius:50%;
	background:#e7f6ec; color:#1a7f37; font-size:34px; line-height:64px; font-weight:700;
}
.ftc-complete-tick.ftc-pending{ background:#fef6e7; color:#b26a00; }
.ftc-complete-card h1{ margin:0 0 10px; font-size:26px; color:#1f2937; }
.ftc-lead{ font-size:18px; color:#111827; margin:0 0 14px; }
.ftc-complete-summary{
	width:100%; margin:18px 0; border-collapse:collapse; text-align:left; font-size:15px;
}
.ftc-complete-summary th{
	width:120px; padding:8px 10px; color:#6b7280; font-weight:600; vertical-align:top;
}
.ftc-complete-summary td{ padding:8px 10px; color:#1f2937; }
.ftc-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:20px; }
.ftc-btn{ display:inline-block; padding:12px 22px; border-radius:8px; font-size:16px; font-weight:600; text-decoration:none; }
.ftc-btn-primary{ background:#2c5aa0; color:#fff; }
.ftc-btn-primary:hover{ background:#24487f; }

/* ---- Theme hardening ----
 * Some themes style every <button> (gold skin, inline-block, no border) and
 * their rules beat ours. Scope under the #ftc-booking id + !important so our
 * session grid and buttons render correctly regardless of the active theme. */
#ftc-booking .ftc-sessions{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)) !important; gap:10px !important; }
#ftc-booking .ftc-session{
	-webkit-appearance:none !important; appearance:none !important; /* iOS Safari ignores background on native buttons without this */
	display:flex !important; flex-direction:column !important; align-items:center !important; gap:2px !important;
	background:#fff !important; color:#1f2937 !important; border:2px solid #cbd5e1 !important; border-radius:10px !important;
	padding:12px 8px !important; width:auto !important; min-width:0 !important; height:auto !important;
	text-transform:none !important; box-shadow:none !important; text-align:center !important; line-height:1.3 !important; cursor:pointer !important;
}
/* Whole-week / full-term cell spans the full width as its own row. */
#ftc-booking .ftc-session-all{ grid-column:1 / -1 !important; }
#ftc-booking .ftc-session .s-day,
#ftc-booking .ftc-session .s-date,
#ftc-booking .ftc-session .s-price{ display:block !important; color:inherit !important; margin:0 !important; }
#ftc-booking .ftc-session .s-day{ font-weight:700 !important; font-size:14px !important; }
#ftc-booking .ftc-session .s-date{ font-size:12px !important; color:#6b7280 !important; }
#ftc-booking .ftc-session .s-price{ font-size:15px !important; font-weight:700 !important; }
/* Selected = solid fill. The inset box-shadow fills the button even on iOS
 * where background can be flaky; white text sits on top. */
#ftc-booking .ftc-session.is-selected,
#ftc-booking .ftc-session.is-selected .s-day,
#ftc-booking .ftc-session.is-selected .s-date,
#ftc-booking .ftc-session.is-selected .s-price{ color:#fff !important; }
#ftc-booking .ftc-session.is-selected{ border-color:#1b3d6e !important; background:#2c5aa0 !important; box-shadow:inset 0 0 0 999px #2c5aa0 !important; }
#ftc-booking .ftc-session-all{ background:#f8fafc !important; border-style:dashed !important; }
#ftc-booking .ftc-session-all.is-selected{ border-style:solid !important; border-color:#0f5d27 !important; background:#1a7f37 !important; box-shadow:inset 0 0 0 999px #1a7f37 !important; }
#ftc-booking .ftc-submit{
	-webkit-appearance:none !important; appearance:none !important;
	background:#2c5aa0 !important; color:#fff !important; width:100% !important; border:0 !important;
	border-radius:8px !important; padding:14px !important; text-transform:none !important; box-shadow:none !important;
}
#ftc-booking .ftc-submit:hover{ background:#24487f !important; }
#ftc-booking .ftc-add-child{
	-webkit-appearance:none !important; appearance:none !important;
	background:#eef2fb !important; color:#2c5aa0 !important; border:0 !important; border-radius:7px !important;
	padding:9px 16px !important; width:auto !important; text-transform:none !important;
}
#ftc-booking .ftc-remove-child{
	-webkit-appearance:none !important; appearance:none !important;
	background:none !important; color:#b91c1c !important; border:0 !important; padding:4px 0 !important;
	width:auto !important; text-transform:none !important;
}

/* ---- Mobile ---- */
@media (max-width:600px){
	/* 16px inputs stop iOS Safari zooming in when a field is focused */
	#ftc-booking input, #ftc-booking select, #ftc-booking textarea{ font-size:16px !important; }
	#ftc-booking .ftc-session{ padding:10px 6px !important; }
	#ftc-booking .ftc-session .s-day{ font-size:13px !important; }
	#ftc-booking .ftc-session .s-price{ font-size:14px !important; }
}
