/* Social events (6.0). Direction A's chrome and tokens, Option A's shared
   location pieces (l-btn, l-h2, --l-wrap, --l-tear, the gallery, the FAQ)
   from location.css and the gift cards' link cards from gift-cards.css.
   Everything here is se- prefixed and scoped to body.acs-social-events.
   Type takes the style guide's scale by tag: h1 H1, h2 H2, the line under a
   heading Body L, paragraphs Body Base, notes Body S. Mobile first; tablets
   from 640, desktop from 1024. */

body.acs-social-events .se *,
body.acs-social-events .se *::before,
body.acs-social-events .se *::after {
	box-sizing: border-box;
}

/* One section gap between every section (60px, 120 from 1024); the gift
   cards sheet this page borrows the link cards from resets it */
body.acs-social-events main > section + section {
	margin-top: var(--acs-section-gap);
}

/* Links to a section stop clear of the pinned header and its torn edge */
body.acs-social-events .se > section[id] {
	scroll-margin-top: calc(var(--acs-pin-h) + 1.5rem);
}

body.acs-social-events .se .l-btn {
	margin-top: 0;
	justify-content: center;
}

body.acs-social-events .se .l-h2 {
	text-wrap: balance;
}

/* ---------- Section heads: heading, then its line 12px under ---------- */

body.acs-social-events .se-head {
	max-width: 46rem;
	margin: 0 auto 2rem;
	text-align: center;
}

body.acs-social-events .se-head__sub {
	margin: 0.75rem 0 0;
	color: var(--acs-ink-soft);
	font-size: var(--acs-text-lg-size);
	line-height: var(--acs-text-lg-lh);
	text-wrap: balance;
}

/* ---------- 6.0.1 Hero ---------- */

/* As the Partners hero: the red fades into the photo, the paper tears top
   and bottom. Phones stack it, photo on top. */
body.acs-social-events .se-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	margin-top: -0.5rem; /* tucked under the logo row */
	padding-bottom: calc(var(--l-tear) + 1.5rem);
	background: var(--acs-red);
	color: var(--acs-white);
}

body.acs-social-events .se-hero::before,
body.acs-social-events .se-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	z-index: 3;
	height: var(--l-tear);
	background: 0 0 / 100% 100% no-repeat;
	pointer-events: none;
}

body.acs-social-events .se-hero::before {
	top: -1px;
	background-image: url("../directions/a/media/masks/hero-top.png");
}

body.acs-social-events .se-hero::after {
	bottom: -1px;
	background-image: url("../directions/a/media/masks/hero-bottom.png");
}

body.acs-social-events .se-hero__media {
	position: relative;
	height: clamp(15rem, 68vw, 20rem);
	background: var(--acs-placeholder-deep);
}

body.acs-social-events .se-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* The red washes down over the photo on phones */
body.acs-social-events .se-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(var(--l-red-rgb), 0.15) 0%,
		rgba(var(--l-red-rgb), 0.25) 45%,
		rgba(var(--l-red-rgb), 1) 100%
	);
}

body.acs-social-events .se-hero__copy {
	position: relative;
	z-index: 1;
	padding: 1.75rem var(--acs-gutter) 0;
}

body.acs-social-events .se-hero__title {
	margin: 0;
	font-family: var(--acs-font-display);
	font-weight: 400;
	font-size: var(--acs-h1-size);
	line-height: var(--acs-h1-lh);
	text-transform: uppercase;
	color: var(--acs-white);
}

body.acs-social-events .se-hero__accent {
	display: block;
	color: var(--acs-yellow);
}

body.acs-social-events .se-hero__sub {
	max-width: 34rem;
	margin: 1.125rem 0 0;
	font-size: var(--acs-text-xl-size);
	line-height: var(--acs-text-xl-lh);
}

body.acs-social-events .se-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.75rem;
}

/* The white button on the red needs no outline of its own */
body.acs-social-events .se-hero .l-btn--secondary {
	box-shadow: none;
}

body.acs-social-events .se-hero__facts {
	display: grid;
	gap: 0.5rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	font-size: var(--acs-text-base-size);
	line-height: var(--acs-text-base-lh);
}

body.acs-social-events .se-hero__facts li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}

body.acs-social-events .se-hero__facts svg {
	flex-shrink: 0;
	margin-top: 0.125rem;
	color: var(--acs-yellow);
}

/* The site's red focus ring vanishes on the red band: white here */
body.acs-social-events .se-hero :focus-visible {
	outline-color: var(--acs-white);
}

/* ---------- 6.0.2 Occasions ---------- */

body.acs-social-events .se-occasions,
body.acs-social-events .se-inc,
body.acs-social-events .se-feature,
body.acs-social-events .se-enquiry {
	width: min(var(--l-wrap), 100% - 2 * var(--acs-gutter));
	margin-inline: auto;
}

body.acs-social-events .se-occasions__list {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ---------- 6.0.3 Birthdays ---------- */

/* As the Partners giving sections: the photo with 16px corners at one
   side, the copy facing it. Stacked on phones, the photo first. */
body.acs-social-events .se-feature {
	display: grid;
	gap: 1.75rem;
	color: var(--acs-ink);
}

/* Grey until the photo arrives (CLAUDE.md rule 5) */
body.acs-social-events .se-feature__media {
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: 1rem;
	background: var(--acs-line);
}

body.acs-social-events .se-feature__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.acs-social-events .se-feature__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

body.acs-social-events .se-feature__body {
	margin: 0.75rem 0 0;
	color: var(--acs-ink-soft);
	font-size: var(--acs-text-lg-size);
	line-height: var(--acs-text-lg-lh);
}

body.acs-social-events .se-feature__notes {
	display: grid;
	gap: 0.625rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
	font-size: var(--acs-text-base-size);
	line-height: var(--acs-text-base-lh);
}

body.acs-social-events .se-feature__notes li {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
}

body.acs-social-events .se-feature__notes svg {
	flex-shrink: 0;
	margin-top: 0.0625rem;
	color: var(--acs-red);
}

body.acs-social-events .se-feature .l-btn {
	margin-top: 1.75rem;
}

/* ---------- 6.0.4 What's included ---------- */

body.acs-social-events .se-inc__list {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* The link cards' look; facts, not links, so they do not lift */
body.acs-social-events .se-inc__card {
	padding: 1.75rem 1.5rem;
	border: 1.5px solid var(--acs-line);
	border-radius: 0.75rem;
	background: var(--acs-white);
	color: var(--acs-ink);
}

body.acs-social-events .se-inc__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--acs-yellow);
	color: var(--acs-ink);
}

body.acs-social-events .se-inc__title {
	margin: 1.25rem 0 0;
	font-family: var(--acs-font-display);
	font-weight: 400;
	font-size: var(--acs-h5-size);
	line-height: var(--acs-h5-lh);
	text-transform: uppercase;
	text-wrap: balance;
}

body.acs-social-events .se-inc__body {
	margin: 0.5rem 0 0;
	color: var(--acs-ink-soft);
	font-size: var(--acs-text-base-size);
	line-height: var(--acs-text-base-lh);
}

/* ---------- 6.0.5 Gallery: Option A's, on the scale ---------- */

body.acs-social-events .l-gallery__title {
	font-size: var(--acs-h2-size);
	line-height: var(--acs-h2-lh);
	text-wrap: balance;
}

/* ---------- 6.0.6 Enquiry form ---------- */

body.acs-social-events .se-enquiry {
	display: grid;
	gap: 2rem;
}

/* Left aligned beside the form, the line fills its column */
body.acs-social-events .se-enquiry__intro .se-head__sub {
	text-wrap: pretty;
}

body.acs-social-events .se-enquiry__note {
	margin: 1.25rem 0 0;
	color: var(--acs-ink);
	font-size: var(--acs-text-base-size);
	line-height: var(--acs-text-base-lh);
}

body.acs-social-events .se-enquiry__note + .se-enquiry__note {
	margin-top: 0.5rem;
}

body.acs-social-events .se-enquiry__intro .l-btn {
	margin-top: 1.5rem;
}

/* The form on a white card, as the white link cards */
body.acs-social-events .se-form {
	padding: 1.5rem 1.25rem;
	border: 1px solid var(--acs-line);
	border-radius: 0.75rem;
	background: var(--acs-white);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}

body.acs-social-events .se-form__grid {
	display: grid;
	gap: 1rem;
}

body.acs-social-events .se-field label {
	display: block;
	margin-bottom: 0.375rem;
	color: var(--acs-ink);
	font-size: var(--acs-text-sm-size);
	line-height: var(--acs-text-sm-lh);
	font-weight: 700;
}

body.acs-social-events .se-field__optional {
	color: var(--acs-ink-soft);
	font-weight: 400;
}

/* Fields: 16px text so phones do not zoom in on focus; the border is the
   soft ink, which reads at 3:1 on white where the hairline grey does not */
body.acs-social-events .se-field input,
body.acs-social-events .se-field select,
body.acs-social-events .se-field textarea {
	display: block;
	width: 100%;
	min-height: 3rem;
	margin: 0;
	padding: 0 0.875rem;
	border: 1px solid var(--acs-ink-soft);
	border-radius: var(--acs-radius);
	background: var(--acs-white);
	color: var(--acs-ink);
	font: inherit;
	font-size: 1rem;
	line-height: 1.5rem;
}

body.acs-social-events .se-field textarea {
	min-height: 7rem;
	padding: 0.75rem 0.875rem;
	resize: vertical;
}

body.acs-social-events .se-field input:hover,
body.acs-social-events .se-field select:hover,
body.acs-social-events .se-field textarea:hover {
	border-color: var(--acs-ink);
}

body.acs-social-events .se-field__select {
	position: relative;
	display: block;
}

body.acs-social-events .se-field__select select {
	appearance: none;
	padding-right: 2.5rem;
	cursor: pointer;
}

body.acs-social-events .se-field__select svg {
	position: absolute;
	top: 50%;
	right: 0.875rem;
	transform: translateY(-50%);
	color: var(--acs-red);
	pointer-events: none;
}

body.acs-social-events .se-form__submit {
	width: 100%;
	margin-top: 1.5rem;
	border: 0;
	font-family: inherit;
	cursor: pointer;
}

/* ---------- 6.0.8 Other ways to party: the link cards, two across ---------- */

body.acs-social-events .gc-links {
	margin-top: var(--acs-section-gap);
	margin-bottom: 0;
}

/* ================= Large phones and tablets ================= */

@media (min-width: 640px) {
	body.acs-social-events .se-hero__facts {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem 1.5rem;
	}

	body.acs-social-events .se-occasions__list,
	body.acs-social-events .se-inc__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	/* An odd last card sits centred under the rows of two */
	body.acs-social-events .se-occasions__list > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc(50% - 0.625rem);
	}

	body.acs-social-events .se-form {
		padding: 2rem;
	}

	body.acs-social-events .se-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	body.acs-social-events .se-field--wide {
		grid-column: 1 / -1;
	}

	body.acs-social-events .se-form__submit {
		width: auto;
		min-width: 13rem;
	}
}

@media (min-width: 768px) {
	body.acs-social-events .gc-links__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: min(56rem, 100%);
		margin-inline: auto;
	}
}

/* ================= Desktop ================= */

@media (min-width: 1024px) {
	/* The header carries the torn edge under it, so the band drops its own */
	body.acs-social-events .se-hero::before {
		display: none;
	}

	body.acs-social-events .se-hero {
		flex-direction: row;
		align-items: center;
		min-height: 34rem;
		margin-top: 0;
		padding-bottom: 0;
	}

	body.acs-social-events .se-hero__media {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 56%;
		height: auto;
	}

	body.acs-social-events .se-hero__media::after {
		background: linear-gradient(
			90deg,
			rgba(var(--l-red-rgb), 1) 0%,
			rgba(var(--l-red-rgb), 0.82) 14%,
			rgba(var(--l-red-rgb), 0.45) 36%,
			rgba(var(--l-red-rgb), 0.15) 64%,
			rgba(var(--l-red-rgb), 0.05) 100%
		);
	}

	/* The copy starts on the grid's left edge, as every section below */
	body.acs-social-events .se-hero__copy {
		display: flex;
		flex-direction: column;
		justify-content: center;
		width: 54%;
		padding: calc(var(--l-tear) + 3rem) 1.5rem calc(var(--l-tear) + 3rem) max(var(--acs-gutter), (100% - var(--l-wrap)) / 2);
	}

	/* Heading block to its content: 56px from 1024 (32px below) */
	body.acs-social-events .se-head,
	body.acs-social-events .gc-links__title {
		margin-bottom: 3.5rem;
	}

	/* Photo and copy side by side from here: in a narrower column the
	   heading ran to a third line (the two-line rule) */
	body.acs-social-events .se-feature {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
		gap: 4rem;
	}

	body.acs-social-events .se-feature--flip .se-feature__media {
		order: 2;
	}

	body.acs-social-events .se-enquiry {
		grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
		align-items: start;
		gap: 4rem;
	}

	body.acs-social-events .se-form {
		padding: 2.5rem;
	}
}

/* Occasions three across (the short last row of two centred) and four
   included cards a row, once each has room for its title on two lines */
@media (min-width: 1200px) {
	body.acs-social-events .se-occasions__list {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	body.acs-social-events .se-occasions__list > li {
		grid-column: span 2;
	}

	body.acs-social-events .se-occasions__list > :last-child:nth-child(odd) {
		grid-column: span 2;
		justify-self: stretch;
		width: auto;
	}

	body.acs-social-events .se-occasions__list > :nth-child(4) {
		grid-column: 2 / span 2;
	}

	body.acs-social-events .se-inc__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
