/* ==========================================================================
   Sousa Football Agents — responsive.css
   Breakpoints: 1200 / 991 / 767 / 480 (max-width, mobile-aware)
   ========================================================================== */

/* ---------- <= 1200px : large tablets / small laptops ---------- */
@media (max-width: 1200px) {
	.site-header__bar { gap: 1rem; }
	.site-nav__list { gap: 0.8rem; }
	.site-nav__list a { font-size: 0.8rem; }
	.site-header__cta { padding-inline: 1rem; font-size: 0.8rem; }
	.pillars { grid-template-columns: repeat(2, 1fr); }
	.pillar:nth-child(2) { border-right: 0; }
	.team-grid,
	.posts-grid { grid-template-columns: repeat(2, 1fr); }
	.who-page-value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- <= 1100px : switch to off-canvas nav before items crowd ---------- */
@media (max-width: 1100px) {
	.site-nav { display: none; }
	.menu-trigger { display: inline-flex; grid-column: 1; grid-row: 1; justify-self: start; width: 40px; }
}

/* ---------- <= 991px : tablets — switch to off-canvas nav ---------- */
@media (max-width: 991px) {
	:root { --header-h: 72px; }
	.site-header__bar { grid-template-columns: 1fr auto 1fr; }
	.site-header__brand { grid-column: 2; }
	.site-logo { width: 130px; height: 50px; }
	.site-header__tools { grid-column: 3; grid-row: 1; justify-self: end; gap: 0.35rem; }
	.header-instagram { width: 36px; }
	.menu-overlay { width: 100%; max-width: none; padding: calc(var(--header-h) + 2rem) 2rem 2rem; }
	.menu-overlay__inner { grid-template-columns: 1fr; align-items: start; gap: 3rem; height: auto; min-height: 100%; }
	.menu-overlay__about { padding-bottom: 2rem; }
	.who-story { min-height: auto; }
	.who-story__statement-row,
	.who-story__detail-row { grid-template-columns: 120px minmax(0, 1fr); gap: 2rem; }
	.services-intro__grid { grid-template-columns: 1fr 1.35fr; gap: 3rem; }
	.services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.service-card:nth-child(3) { display: none; }
	.services-carousel__arrow--prev { left: -12px; }
	.services-carousel__arrow--next { right: -12px; }
	.team-showcase__container { gap: 5rem; }
	.site-footer__main { grid-template-columns: 1fr 1fr; }
	.site-footer__statement { grid-column: 1 / -1; }
	.site-footer__statement > p { max-width: 18ch; }

	/* Layout stacking */
	.who { grid-template-columns: 1fr; }
	.who__media { aspect-ratio: 16 / 10; order: -1; }
	.map { grid-template-columns: 1fr; }
	.alliance { grid-template-columns: 1fr; }
	.alliance__brand { min-height: 320px; }
	.contact { grid-template-columns: 1fr; }
	.who-page-storyline__grid,
	.who-page-journey__grid,
	.who-page-team__grid { grid-template-columns: 1fr; }
	.who-page-journey__intro { position: relative; top: auto; }
	.who-page-value-grid { grid-template-columns: 1fr; }
	.who-page-storyline__media { aspect-ratio: 16 / 10; }
	.who-page-team__media {
		order: -1;
		max-width: 520px;
	}
	.our-team-profile__grid { grid-template-columns: 1fr; }
	.our-team-profile__media {
		max-width: 520px;
	}
	.split,
	.ruben-hero { grid-template-columns: 1fr; }
	.ruben-hero { min-height: auto; }
	.ruben-hero__media { aspect-ratio: 4 / 3; }
	.services-anchor-nav__inner {
		display: flex;
		overflow-x: auto;
		max-width: min(760px, calc(100vw - 1.2rem));
		scrollbar-width: none;
	}
	.services-anchor-nav__inner::-webkit-scrollbar { display: none; }
	.services-anchor-nav a {
		flex: 0 0 auto;
		min-width: min(58vw, 260px);
	}
	.service-block__inner { grid-template-columns: 1fr; }
	.service-block--reverse .service-block__media { order: 0; }
	.service-block__media { aspect-ratio: 16 / 10; }
	.service-block__bg-icon {
		width: clamp(15rem, 48vw, 24rem);
	}
	.service-block--icon-left .service-block__bg-icon { left: -8rem; }
	.service-block--icon-right .service-block__bg-icon { right: -8rem; }
}

/* WordPress uses a taller admin toolbar on tablets and phones. */
@media (max-width: 782px) {
	body.admin-bar .site-header,
	body.admin-bar .menu-overlay { top: 46px; }
}

/* ---------- <= 767px : phones (landscape) ---------- */
@media (max-width: 767px) {
	:root { --space-section: clamp(4rem, 13vw, 5.5rem); }
	.container { padding-inline: clamp(1.15rem, 5vw, 2rem); }
	.hero__content { padding-block: calc(var(--header-h) + 1.25rem) 7rem; }
	.hero__media img { object-position: 46% center; }
	.hero__headline { font-size: clamp(1.65rem, 7.8vw, 2.35rem); line-height: 1.08; margin-bottom: 1rem; }
	.hero__flourish { width: min(58vw, 230px); margin-bottom: 1.25rem; }
	.hero__actions { gap: 0.7rem; }
	.hero__cta { min-height: 48px; padding: 0.82em 1.35em; font-size: 0.95rem; }
	.contact {
		grid-template-columns: 1fr;
	}
	.contact .section-head__title {
		max-width: 100%;
	}
	.form__row {
		grid-template-columns: 1fr;
	}
	.who-story { min-height: auto; }
	.who-story__sticky { position: relative; min-height: auto; padding-block: var(--space-section); overflow: visible; }
	.who-story__statement-row,
	.who-story__detail-row { grid-template-columns: 1fr; gap: 1.25rem; }
	.who-story__detail-row > [aria-hidden="true"] { display: none; }
	.who-story__statement { font-size: clamp(1.75rem, 7.4vw, 2.55rem); line-height: 1.08; letter-spacing: 0; }
	.who-story__eyebrow { padding-top: 0; }
	.who-story__detail { justify-self: start; }
	.who-story-editorial__inner { width: 100%; max-width: none; }
	.who-story-editorial__text { width: 100%; }
	.page-hero--who {
		min-height: min(590px, 78svh);
		background-position: 54% center;
	}
	.page-hero--who-simple,
	.page-hero--team {
		min-height: min(610px, 82svh);
	}
	.page-hero--who .page-hero__title,
	.page-hero--who-simple .page-hero__title,
	.page-hero--team .page-hero__title,
	.who-page-storyline__copy h2,
	.our-team-profile__content h2,
	.who-page-section-head h2,
	.who-page-journey__intro h2,
	.who-page-team__content h2 {
		font-size: clamp(1.55rem, 8.4vw, 2.55rem);
		line-height: 1.04;
	}
	.page-hero--who .page-hero__lead,
	.page-hero--team .page-hero__lead,
	.who-page-storyline__copy p,
	.who-story-editorial__lead,
	.who-story-read-more .accordion__panel-inner,
	.our-team-profile__content > p:not(.our-team-profile__role),
	.who-page-team__content > p {
		font-size: clamp(0.98rem, 4.2vw, 1.12rem);
	}
	.who-image-marquee__item {
		width: min(68vw, 280px);
	}
	.who-story-editorial__icon,
	.our-team-profile::after {
		width: min(84vw, 24rem);
		opacity: 0.035;
	}
	.who-page-storyline__icon {
		left: -9rem;
		width: min(72vw, 19rem);
		opacity: 0.075;
	}
	.who-page-value-card {
		min-height: auto;
	}
	.who-page-journey__step {
		grid-template-columns: 52px minmax(0, 1fr);
		gap: 0.7rem 1rem;
	}
	.who-page-journey__step p {
		grid-column: 2;
	}
	.who-page-team::after {
		right: -9rem;
		width: min(76vw, 20rem);
	}
	.who-cta { min-height: min(560px, 72svh); align-items: center; }
	.who-cta__background { object-position: 42% center; }
	.who-cta__content { padding-block: 6rem 4.5rem; }
	.who-cta__content > * { margin-left: 0; }
	.who-cta__eyebrow { margin-bottom: 0.85rem; }
	.who-cta h2 { max-width: 18ch; font-size: clamp(2rem, 8.7vw, 2.9rem); line-height: 1.04; }
	.who-cta p { max-width: 34ch; font-size: clamp(1.05rem, 4.6vw, 1.25rem); line-height: 1.5; }
	.who-cta__overlay {
		background:
			linear-gradient(180deg, #0B3E13 0%, rgba(11, 62, 19, 0.26) 18%, rgba(8, 37, 12, 0.46) 68%, #08250C 100%),
			linear-gradient(90deg, rgba(8, 37, 12, 0.58), rgba(11, 62, 19, 0.22));
	}
	.services-intro__eyebrow { margin-bottom: 1.25rem; }
	.services-intro__grid { grid-template-columns: 1fr; gap: 1.25rem; }
	.services-intro__lead h2 { max-width: 15ch; font-size: clamp(1.9rem, 8.2vw, 2.6rem); line-height: 1.06; }
	.services-intro__grid > p { max-width: 32ch; font-size: clamp(1.08rem, 4.8vw, 1.3rem); line-height: 1.5; }
	.services-carousel { margin-top: 2.25rem; }
	.services-grid { grid-template-columns: 1fr; }
	.service-card:nth-child(2),
	.service-card:nth-child(3) { display: none; }
	.service-card:nth-child(1),
	.service-card:nth-child(3) { margin-top: 0; }
	.service-card__media { aspect-ratio: 4 / 3; border-radius: 10px; }
	.service-card__body { padding-top: 1.25rem; }
	.service-card__title { margin-bottom: 0.65rem; font-size: clamp(1.9rem, 8.2vw, 2.55rem); line-height: 1.03; }
	.service-card__desc { max-width: 36ch; font-size: clamp(0.95rem, 4vw, 1.08rem); line-height: 1.55; }
	.service-card__cta { margin-top: 1.1rem; min-height: 46px; padding: 0.8rem 1.3rem; font-size: 0.78rem; }
	.services-carousel__arrow { top: calc((100vw - 2.3rem) * 0.375); width: 52px; height: 52px; font-size: 1.65rem; }
	.services-carousel__arrow--prev { left: -8px; }
	.services-carousel__arrow--next { right: -8px; }
	.page-hero--services {
		min-height: min(590px, 78svh);
		background-position: 54% center;
	}
	.services-anchor-nav {
		padding: 0.5rem 0 calc(0.5rem + env(safe-area-inset-bottom));
	}
	.services-anchor-nav__inner {
		border-radius: 18px;
		padding: 0.38rem;
	}
	.services-anchor-nav a {
		min-height: 42px;
		padding: 0.65rem 0.9rem;
		font-size: 0.66rem;
	}
	.service-block {
		scroll-margin-top: calc(var(--header-h) + 18px);
	}
	.service-block__media {
		aspect-ratio: 4 / 3;
		border-radius: 8px;
	}
	.service-block__top {
		margin-bottom: 0.8rem;
	}
	.service-block__bg-icon {
		top: 18%;
		width: min(68vw, 18rem);
		opacity: 0.045;
	}
	.service-block--cream .service-block__bg-icon { opacity: 0.075; }
	.service-block--icon-left .service-block__bg-icon { left: -7rem; }
	.service-block--icon-right .service-block__bg-icon { right: -7rem; }
	.service-block__title {
		font-size: clamp(1.55rem, 8.4vw, 2.45rem);
		line-height: 1.04;
	}
	.service-block__lead {
		font-size: clamp(0.98rem, 4.2vw, 1.12rem);
	}
	.team-showcase { min-height: 1050px; align-items: flex-start; padding-block: 6rem; }
	.team-showcase__container { grid-template-columns: 1fr; gap: 2.5rem; }
	.team-showcase__eyebrow { margin-bottom: 1rem; }
	.team-showcase__header h2 { max-width: 13ch; font-size: clamp(2.4rem, 10.5vw, 3.5rem); line-height: 1.02; }
	.alliance-globe { top: 74%; left: 56%; width: min(112vw, 680px); }
	.team-feature__intro { font-size: 1rem; }
	.team-showcase__logos { gap: 1.5rem; margin-bottom: 1.75rem; }
	.team-showcase__logo--ipso { height: 88px; }
	.team-showcase__logo--451 { height: 66px; }
	.site-footer__brandline { gap: 1.25rem; }
	.site-footer__brandline a { width: min(34vw, 145px); }
	.site-footer__main { grid-template-columns: 1fr; gap: 2.75rem; padding-block: 4rem; }
	.site-footer__statement { grid-column: auto; }
	.site-footer__statement > p { max-width: 15ch; font-size: clamp(2.2rem, 9.5vw, 3.25rem); line-height: 1.04; }
	.site-footer__cta { margin-top: 1.75rem; }
	.site-footer__column { padding-top: 0; }
	.site-footer__nav { display: grid; grid-template-columns: 1fr 1fr; }
	.site-footer__bottom { grid-template-columns: 1fr; gap: 0.8rem; }
	.site-footer__bottom p:last-child { text-align: left; }
	.team-grid,
	.posts-grid { grid-template-columns: 1fr; }
	.cols-3 { grid-template-columns: 1fr; }
	.pillars { grid-template-columns: 1fr; }
	.pillar { border-right: 0; border-bottom: 1px solid var(--color-line); }
	.pillar:last-child { border-bottom: 0; }
	.form__row { grid-template-columns: 1fr; }
	.alliance__brand { min-height: 280px; }
	.alliance__logo { width: min(72%, 290px); }
	.alliance__resources { grid-template-columns: 1fr; }
	.hero { align-items: center; }
	.hero__scroll { bottom: 1rem; left: 0; right: 0; gap: 0.25rem; }
	.hero__scroll-arrow { width: 30px; height: 46px; }
	.hero__scroll-text { font-size: 0.78rem; }

	/* Cursor never shows on touch (JS also guards this) */
	.custom-cursor { display: none !important; }

	/* WhatsApp label always collapsed on mobile to stay unobtrusive */
	.wa-float:hover .wa-float__text { max-width: 0; margin: 0; }
}

/* ---------- <= 480px : small phones ---------- */
@media (max-width: 480px) {
	:root { --space-section: 4rem; }
	.site-header__bar { gap: 0.5rem; padding-inline: 0.75rem; }
	.site-logo { width: 110px; height: 44px; }
	.site-header__tools { gap: 0.2rem; }
	.menu-trigger { width: 36px; }
	.header-instagram { width: 34px; }
	.menu-overlay { padding-inline: 1.25rem; }
	.menu-overlay__list a { font-size: 1.9rem; }
	.brand-text__full { display: none; }
	.hero__headline { font-size: clamp(1.4rem, 6.6vw, 1.8rem); }
	.btn { width: 100%; justify-content: center; }
	.hero__actions { width: 100%; }
	.hero__cta { width: min(100%, 300px); }
	.who-cta { min-height: 520px; }
	.who-cta h2 { font-size: clamp(1.95rem, 8.8vw, 2.55rem); }
	.who-cta p { font-size: 1.05rem; }
	.service-card__media { aspect-ratio: 1 / 1; }
	.services-carousel__arrow { top: calc((100vw - 2.3rem) / 2); width: 48px; height: 48px; }
	.site-footer__nav { gap: 0.75rem 1.25rem; }
	.alliance { padding-block: 0.5rem 1rem; gap: 1.25rem; }
	.alliance__brand { min-height: 230px; }
	.alliance__name { max-width: 100%; }
	.alliance__summary { font-size: 0.95rem; line-height: 1.55; }
	.alliance__resources { gap: 0.45rem; }
	.alliance__resource { min-height: auto; padding: 0.85rem 0; }
	.service-card__body { padding: 1.4rem 0 0; }
}

/* ---------- Touch devices: disable hover-only transforms ---------- */
@media (hover: none) {
	.custom-cursor { display: none !important; }
}

/* Keep the experimental underline CTAs compact on small screens. */
@media (max-width: 767px) {
	.btn,
	.hero__cta,
	.service-card__cta {
		width: max-content;
		min-height: 44px;
		padding: 0.68rem 0.95rem 0.62rem;
		justify-content: flex-start;
		font-size: 0.74rem;
	}
}

@media (max-width: 767px) {
	.preloader__inner {
		font-size: clamp(1rem, 4.6vw, 1.58rem);
		line-height: 1.02;
	}
	.who-story::after {
		right: -38vw;
		top: 12%;
		width: 118vw;
		opacity: 0.08;
	}
	.hero__headline {
		font-size: clamp(1rem, 4.6vw, 1.58rem);
		line-height: 1.02;
	}
	.hero__headline-line:first-child {
		white-space: nowrap;
	}
	.who-cta h2,
	.services-intro__lead h2,
	.team-showcase__header h2,
	.site-footer__statement > p {
		letter-spacing: 0;
		line-height: 0.98;
	}
	.who-story__statement {
		font-size: clamp(1.25rem, 5.1vw, 1.85rem);
	}
	.who-cta h2,
	.services-intro__lead h2,
	.team-showcase__header h2 {
		font-size: clamp(1.25rem, 5.7vw, 1.95rem);
	}
	.service-card__title {
		font-size: clamp(1.15rem, 5.2vw, 1.7rem);
		line-height: 1.05;
	}
	.site-footer__statement > p {
		font-size: clamp(1.45rem, 6.2vw, 2.1rem);
	}
	.service-card {
		border-radius: 8px;
	}
	.service-card__media {
		border-radius: 0;
	}
	.service-card__body {
		padding: 1.2rem;
	}
}

@media (max-width: 480px) {
	.btn,
	.hero__cta,
	.service-card__cta {
		width: max-content;
		max-width: 100%;
		font-size: 0.7rem;
	}
}

.who-cta__content,
.services-intro {
	text-align: center;
}

.who-cta__content {
	align-items: center;
}

.who-cta__content > * {
	margin-left: 0;
	margin-right: 0;
}

.services-intro__grid {
	display: flex;
	justify-content: center;
	gap: 0;
}

.services-intro__lead h2 {
	margin-inline: auto;
	text-align: center;
}

.who-cta .who-cta__content {
	width: 100%;
	max-width: min(1180px, calc(100vw - 2.3rem));
	margin-inline: auto;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.who-cta h2#who-cta-title {
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
	font-size: clamp(1.85rem, 8.2vw, 4.1rem);
	line-height: 0.96;
	text-align: center;
}

.who-cta .btn {
	align-self: center;
}
