/*
 * DadSquad+ and Claim Your Pass on Elementor.
 *
 * Both pages carry the old templates' class names (ds-dsplus-*, ds-claim-*)
 * on their containers and the body carries ds-fitfat-home ds-dsplus [ds-claim],
 * so dadsquad-neon.css styles them as it did the PHP templates. This sheet
 * restates the grid layouts that lived on plain divs for Elementor containers
 * and covers the widget wrappers. Loads after dadsquad-home.css, which holds
 * the shared widget conventions (kickers, tags, buttons, photos, cards).
 */

/* The wrapper container that plays #main-content. */
.elementor .e-con.ds-page-wrap { padding: 0 !important; gap: 0; }

/* Grids and rows ----------------------------------------------------------- */
.elementor .e-con.ds-dsplus-hero__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 60px; align-items: center; }
.elementor .e-con.ds-claim .e-con.ds-dsplus-hero__grid { align-items: start; }
.elementor .e-con.ds-dsplus-reasons__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.elementor .e-con.ds-dsplus-reasons__grid > .e-con:nth-child(2),
.elementor .e-con.ds-dsplus-reasons__grid > .e-con:nth-child(4) { margin-top: 44px; }
.elementor .e-con.ds-claim-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.elementor .e-con.ds-dsplus-split { display: grid; grid-template-columns: minmax(0, 1.5fr) auto; gap: 52px; align-items: center; }
.elementor .e-con.ds-dsplus-more__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; }
.elementor .e-con.ds-dsplus-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 26px 0 32px; }
.elementor .e-con.ds-dsplus-stat { gap: 0; }
.elementor .e-con.ds-dsplus-lanes .e-con.ds-dsplus-lanes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.elementor .e-con.ds-dsplus-perks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; max-width: 900px; margin-left: auto; margin-right: auto; }
.elementor .e-con.ds-dsplus-join__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px; align-items: stretch; }
/* Three cards across left the affiliate form, which carries a whole form, far
 * taller than the two beside it. The two short cards share the left column
 * and the form takes the right, so the block reads as two even halves. */
.elementor .e-con.ds-dsplus-join__grid > .e-con:nth-child(1) { grid-column: 1; grid-row: 1; }
.elementor .e-con.ds-dsplus-join__grid > .e-con:nth-child(2) { grid-column: 1; grid-row: 2; }
.elementor .e-con.ds-dsplus-join__card--affiliate { grid-column: 2; grid-row: 1 / span 2; }
.elementor .e-con.ds-dsplus-price-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 20px; }
.elementor .e-con.ds-dsplus-hero__actions,
.elementor .e-con.ds-claim-closing__actions { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 16px; }
.elementor .e-con.ds-claim-closing__actions { justify-content: center; gap: 14px; }
.elementor .e-con.ds-dsplus-price-row > .elementor-widget,
.elementor .e-con.ds-dsplus-hero__actions > .elementor-widget,
.elementor .e-con.ds-claim-closing__actions > .elementor-widget,
.elementor .e-con.ds-ff-form-card__head > .elementor-widget__width-auto { width: auto; flex: 0 0 auto; max-width: 100%; }

.elementor .e-con.ds-dsplus-merchants .e-con.ds-dsplus-split { margin-top: 60px; padding-top: 44px !important; border-top: 1px solid var(--n-line-subtle, rgba(255, 255, 255, 0.08)); }

@media (max-width: 1024px) {
	.elementor .e-con.ds-dsplus-hero__grid,
	.elementor .e-con.ds-dsplus-more__grid { grid-template-columns: 1fr; gap: 40px; }
	.elementor .e-con.ds-dsplus-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
	.elementor .e-con.ds-dsplus-reasons__grid,
	.elementor .e-con.ds-claim-steps,
	.elementor .e-con.ds-dsplus-perks,
	.elementor .e-con.ds-dsplus-join__grid { grid-template-columns: 1fr; }
	.elementor .e-con.ds-dsplus-reasons__grid > .e-con:nth-child(2),
	.elementor .e-con.ds-dsplus-reasons__grid > .e-con:nth-child(4) { margin-top: 0; }
	.elementor .e-con.ds-dsplus-join__grid > .e-con:nth-child(1),
	.elementor .e-con.ds-dsplus-join__grid > .e-con:nth-child(2),
	.elementor .e-con.ds-dsplus-join__card--affiliate { grid-column: auto; grid-row: auto; }
	.elementor .e-con.ds-dsplus-split { grid-template-columns: 1fr; gap: 26px; }
}

/* Hero media --------------------------------------------------------------- */
.elementor .ds-ffw-hero__photo img { height: 420px; border: 1px solid var(--n-line); clip-path: var(--n-cut-card); }
.elementor .e-con.ds-dsplus-hero__aside { margin-top: 22px; padding-left: 16px !important; border-left: 2px solid var(--n-teal); gap: 0; }
.elementor .ds-ffw-more__photo img { height: 460px; min-height: 460px; border: 1px solid var(--n-line); clip-path: var(--n-cut-card); }

/* Price chip and note ------------------------------------------------------ */
.elementor .ds-ffw-price p { margin: 0; line-height: 1; }
.elementor .e-con.ds-dsplus-price-row > .elementor-widget.ds-ffw-price__note,
.elementor .e-con.ds-dsplus-hero__actions > .elementor-widget.ds-ffw-price__note { max-width: 280px; }

/* Lanes (the two wide teal/gold links) ------------------------------------- */
.elementor a.e-con.ds-dsplus-lane {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	row-gap: 6px;
	column-gap: 0;
	padding: 26px 30px !important;
	text-decoration: none;
	color: inherit;
	transition: transform 0.2s ease, filter 0.2s ease;
	clip-path: var(--n-cut-card);
}
.elementor a.e-con.ds-dsplus-lane:hover { transform: translateY(-2px); filter: brightness(1.08); }
.elementor .e-con.ds-dsplus-lane > .ds-dsplus-lane__lbl,
.elementor .e-con.ds-dsplus-lane > .ds-dsplus-lane__title { grid-column: 1; }
.elementor .e-con.ds-dsplus-lane > .ds-dsplus-lane__arrow { grid-column: 2; grid-row: 1 / 3; width: auto; }
.elementor .e-con.ds-dsplus-lane--teal { background: var(--n-teal); }
.elementor .e-con.ds-dsplus-lane--gold { background: var(--n-gold); }

/* Founding note: a centred 720px column in the original. */
.elementor .ds-ffw-founding__note p { max-width: 720px; margin-left: auto; margin-right: auto; }

/* Hello's reset gives labels a line-height of 1; the old theme inherited 1.5. */
.elementor .ds-form label,
.elementor .ds-form .ds-form__label { line-height: 1.5; }

.elementor .ds-ffw-btn--teal .elementor-button { box-shadow: 0 0 15px var(--n-teal-glow); }

/* Inside the subpage wrapper the kicker is a left-aligned row with a 34px
 * gold rule instead of the dot (the old stylesheet's subpage variant). */
.elementor .e-con.ds-subpage-wrap .elementor-widget.ds-ffw-kicker { margin-bottom: 16px; }
.elementor .e-con.ds-subpage-wrap .ds-ffw-kicker .elementor-heading-title { display: flex; gap: 14px; text-align: left; }
.elementor .e-con.ds-subpage-wrap .ds-ffw-kicker .elementor-heading-title::before { width: 34px; height: 2px; flex: 0 0 34px; box-shadow: none; }

/* Margins the brand stylesheet puts on these rows collapsed with their
 * neighbours in the original's block flow; inside flex containers they add. */
.elementor .e-con.ds-claim-closing__actions { margin-top: 0; }
.elementor .e-con.ds-dsplus-affiliate .e-con.ds-dsplus-price-row { margin-top: 14px; }
.elementor .e-con.ds-dsplus-join__card--affiliate > .e-con.ds-ff-form-card__head { margin-bottom: 20px; }

/* Join cards --------------------------------------------------------------- */
/* The head's 20px collapsed into the form's 24px in the original. */
.elementor .e-con.ds-ff-form-card__head { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: 0; gap: 0; }
.elementor .e-con.ds-ff-form { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.elementor .ds-ffw-btn--block { width: 100%; }
.elementor .ds-ffw-btn--block .elementor-button { width: 100%; display: flex; }
.elementor .ds-ffw-guarantees .ds-ff-form__guarantees { margin-top: 10px; }

/* The subpage form skin needs its wrapper; the plugin form carries it. */
.elementor .e-con.ds-claim__formwrap { gap: 0; }
.elementor .e-con.ds-ff-section.ds-dsplus-join.ds-subpage-wrap { min-height: 80vh; }

/* FAQ (nested accordion) --------------------------------------------------- */
.elementor .e-con.ds-dsplus-faq__list { max-width: 860px; margin-left: auto; margin-right: auto; gap: 0; }
.elementor .ds-dsplus-faq__list .e-n-accordion {
	--n-accordion-title-normal-color: #ffffff;
	--n-accordion-title-hover-color: #ffffff;
	--n-accordion-title-active-color: var(--n-gold);
	--n-accordion-title-font-size: 15px;
	--n-accordion-border-width: 0px;
	--n-accordion-border-style: none;
	--n-accordion-border-color: transparent;
	--n-accordion-border-radius: 0px;
	--n-accordion-padding: 20px 26px;
	--n-accordion-icon-gap: 0px;
	--n-accordion-item-title-space-between: 14px;
	--n-accordion-item-title-distance-from-content: 0px;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item {
	background: var(--n-card);
	border: 1px solid var(--n-line);
	clip-path: var(--n-cut-card);
	border-radius: 0;
	padding: 0;
}
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item .e-n-accordion-item-title {
	padding: 20px 26px;
	margin: 0;
	border: 0;
	background: transparent;
	display: block;
	cursor: pointer;
	list-style: none;
	outline: none;
	font-family: var(--n-font-display);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.5px;
	color: #ffffff;
}
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title { color: var(--n-gold); }
.elementor .ds-dsplus-faq__list .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item-title-icon { display: none; }
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item-title-header { display: block; }
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item-title-text { font: inherit; color: inherit; letter-spacing: inherit; margin: 0; display: block; }
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item > .e-con { margin: 0; padding: 0 26px 22px !important; border: 0; gap: 0; }
.elementor .ds-dsplus-faq__list .e-n-accordion .e-n-accordion-item > .e-con p { font-family: var(--n-font-sans); font-size: 14.5px; line-height: 1.68; color: var(--n-text-muted); margin: 0; }
.elementor .e-con.ds-dsplus-faq__more { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 44px; text-align: center; }
.elementor .e-con.ds-dsplus-faq__more > .elementor-widget { width: auto; }
.elementor .ds-ffw-faq__email a { color: var(--n-gold); text-decoration: none; }

/* Claim page --------------------------------------------------------------- */
.elementor .ds-ffw-step__link a { display: inline-block; margin-top: 16px; color: var(--n-gold) !important; font-size: 13px; font-weight: 700; letter-spacing: 0.6px; text-decoration: none; }
.elementor .ds-ffw-step__link a:hover { text-decoration: underline; text-underline-offset: 3px; }
.elementor .e-con.ds-claim__form { scroll-margin-top: 24px; }

/* Responsive rules that must outrank the desktop rules above. ------------- */
@media (max-width: 1024px) {
	.elementor .ds-ffw-more__photo img { min-height: 320px; height: 320px; }
}
@media (max-width: 900px) {
	/* .ds-dsplus .ds-ff-section drops to 70px on phones; the bands that pin
	 * their own padding with !important in the original (hero, coffee, lanes,
	 * stop) keep it. */
	.elementor .ds-dsplus .e-con.ds-dsplus-reasons,
	.elementor .ds-dsplus .e-con.ds-dsplus-more,
	.elementor .ds-dsplus .e-con.ds-dsplus-merchants,
	.elementor .ds-dsplus .e-con.ds-dsplus-founding,
	.elementor .ds-dsplus .e-con.ds-dsplus-affiliate,
	.elementor .ds-dsplus .e-con.ds-dsplus-join,
	.elementor .ds-dsplus .e-con.ds-dsplus-faq { padding-top: 70px !important; padding-bottom: 70px !important; }
}
