/* TTO Seasons — Spring / Summer / Autumn / Winter front page looks */

body.tto-szn-spring { --ss-accent: #f7b6d2; --ss-deep: #b8487c; --ss-soft: #fdeef5; --ss-ink: #5a1d3a; }
body.tto-szn-summer { --ss-accent: #ffc93c; --ss-deep: #c98a00; --ss-soft: #fff6dc; --ss-ink: #4d3500; }
body.tto-szn-autumn { --ss-accent: #f0a053; --ss-deep: #c4561a; --ss-soft: #fdf0e4; --ss-ink: #4e220a; }
body.tto-szn-winter { --ss-accent: #a9dcff; --ss-deep: #2f7fb5; --ss-soft: #eaf5fd; --ss-ink: #12324a; }

/* ===== Hero takeover (TTO New Front Page) ===== */
body.tto-szn-on .tfp-hero { border-top: 4px solid var(--ss-accent); }
body.tto-szn-on .tfp-hero h1 .tto-szn-hl,
body.tto-szn-on .tfp-hero h1 .tfp-hl { color: var(--ss-accent) !important; }

.tto-szn-fx { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.tto-szn-fx__photo { position: absolute; inset: 0; background-size: cover; background-position: center; animation: tto-szn-drift 30s ease-in-out infinite alternate; }
@keyframes tto-szn-drift { from { transform: scale(1.02); } to { transform: scale(1.08) translateX(-1.5%); } }
.tto-szn-fx__tint { position: absolute; inset: 0; }

.tto-szn-fx--spring .tto-szn-fx__tint {
	background:
		radial-gradient(ellipse at 88% 12%, rgba(247,182,210,.35), transparent 45%),
		linear-gradient(90deg, rgba(40,34,62,.55) 0%, rgba(60,40,80,.25) 50%, rgba(247,182,210,.12) 100%);
}
.tto-szn-fx--summer .tto-szn-fx__tint {
	background:
		radial-gradient(circle at 86% 14%, rgba(255,214,102,.55), rgba(255,201,60,.18) 22%, transparent 48%),
		linear-gradient(90deg, rgba(14,48,74,.5) 0%, rgba(14,48,74,.2) 50%, rgba(255,190,70,.12) 100%);
}
.tto-szn-fx--autumn .tto-szn-fx__tint {
	background:
		radial-gradient(ellipse at 85% 15%, rgba(240,160,83,.35), transparent 45%),
		linear-gradient(90deg, rgba(46,24,12,.6) 0%, rgba(80,36,14,.3) 50%, rgba(196,86,26,.2) 100%);
}
.tto-szn-fx--winter .tto-szn-fx__tint {
	background:
		radial-gradient(ellipse at 85% 10%, rgba(200,232,255,.3), transparent 45%),
		linear-gradient(90deg, rgba(10,24,48,.68) 0%, rgba(18,44,80,.4) 50%, rgba(150,200,240,.15) 100%),
		linear-gradient(0deg, rgba(220,240,255,.18) 0%, transparent 30%);
}
body.tto-szn-winter .tto-szn-fx__photo { filter: saturate(.7) brightness(.9); }

/* falling bits */
.tto-szn-fx__parts { position: absolute; inset: 0; }
.tto-szn-p { position: absolute; top: -40px; display: block; transform: scale(var(--s, 1)); animation: tto-szn-fall 14s linear infinite; opacity: .9; }
.tto-szn-fx.is-resting .tto-szn-p { animation-play-state: paused; opacity: 0; transition: opacity 2s; }
@keyframes tto-szn-fall {
	0%   { transform: translate(0, -40px) rotate(0deg) scale(var(--s, 1)); }
	50%  { transform: translate(var(--x, 40px), 50vh) rotate(200deg) scale(var(--s, 1)); }
	100% { transform: translate(0, 110vh) rotate(420deg) scale(var(--s, 1)); }
}
.tto-szn-fx--spring .tto-szn-p { width: 12px; height: 10px; border-radius: 80% 0 80% 0; background: linear-gradient(135deg, #ffe1ee, #f49ac1); box-shadow: 0 0 4px rgba(255,255,255,.4); }
.tto-szn-fx--autumn .tto-szn-p { width: 16px; height: 16px; border-radius: 0 70% 0 70%; background: linear-gradient(135deg, #f6b25c, #c4561a 70%, #8a3b12); }
.tto-szn-fx--autumn .tto-szn-p:nth-child(3n) { background: linear-gradient(135deg, #f3d36b, #c98a1b); }
.tto-szn-fx--winter .tto-szn-p { width: 6px; height: 6px; border-radius: 50%; background: #fff; box-shadow: 0 0 8px 2px rgba(200,232,255,.8); animation-duration: 18s; }
.tto-szn-fx--summer .tto-szn-p {
	width: 7px; height: 7px; border-radius: 50%; background: rgba(255,236,170,.95);
	box-shadow: 0 0 12px 4px rgba(255,214,102,.55);
	animation-name: tto-szn-float;
}
@keyframes tto-szn-float {
	0%, 100% { transform: translate(0, 0) scale(var(--s, 1)); opacity: .2; }
	50% { transform: translate(var(--x, 30px), -40px) scale(var(--s, 1)); opacity: .95; }
}

/* layout: text left, season card right */
@media (min-width: 900px) {
	body.tto-szn-on .tfp-hero-inner:has(.tto-szn-card) {
		display: grid; grid-template-columns: minmax(0, 1fr) 290px; column-gap: 48px; align-items: start;
	}
	body.tto-szn-on .tfp-hero-inner:has(.tto-szn-card) > * { grid-column: 1; }
	body.tto-szn-on .tfp-hero-inner > .tto-szn-card { grid-column: 2; grid-row: 1 / span 6; align-self: center; }
}

/* ===== Season card ===== */
.tto-szn-card {
	position: relative; color: #fff; text-align: center;
	background: rgba(14, 22, 40, .72);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	border: 1px solid rgba(255,255,255,.22); border-top: 3px solid var(--ss-accent);
	border-radius: 20px; padding: 20px 20px 16px; margin-top: 8px;
	box-shadow: 0 22px 50px -22px rgba(0,0,0,.7);
	font-family: Poppins, system-ui, sans-serif;
}
.tto-szn-card__icon { width: 64px; height: 64px; margin: -50px auto 6px; filter: drop-shadow(0 4px 14px rgba(0,0,0,.35)); }
.tto-szn-card__icon svg { width: 100%; height: 100%; display: block; }
body.tto-szn-summer .tto-szn-card__icon { animation: tto-szn-spin 40s linear infinite; }
@keyframes tto-szn-spin { to { transform: rotate(360deg); } }
.tto-szn-card__irish { font-family: Fraunces, Georgia, serif; font-style: italic; font-size: 26px; line-height: 1.1; color: var(--ss-accent); }
.tto-szn-card__name { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-top: 4px; color: #fff; }
.tto-szn-card__fest { font-size: 13px; color: rgba(255,255,255,.75); margin-top: 6px; }
.tto-szn-card__sun { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 14px 0 10px; }
.tto-szn-card__cell { background: rgba(255,255,255,.08); border-radius: 12px; padding: 9px 4px 7px; }
.tto-szn-card__cell b { display: block; font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.tto-szn-card__cell span { display: block; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.7); margin-top: 2px; }
.tto-szn-card__foot { font-size: 12.5px; color: var(--ss-accent); font-weight: 600; }

@media (max-width: 899px) {
	.tto-szn-card { max-width: 420px; margin-top: 48px; }
}

/* Ask Tallaght chip */
.tto-szn-chip {
	cursor: pointer; border: 1px solid var(--ss-accent) !important;
	background: var(--ss-soft) !important; color: var(--ss-ink) !important;
	border-radius: 999px; padding: .4rem .85rem; font: 600 .85rem/1.2 Poppins, system-ui, sans-serif;
}
.tto-szn-chip:hover { background: var(--ss-accent) !important; }

/* ===== "This season in Tallaght" band ===== */
.tto-szn-band {
	background: var(--ss-soft);
	border-top: 1px solid rgba(0,0,0,.05); border-bottom: 1px solid rgba(0,0,0,.05);
	padding: 34px 0 38px; font-family: Poppins, system-ui, sans-serif; color: #1c2533;
}
.tto-szn-band__wrap { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.tto-szn-band__head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.tto-szn-band__icon { width: 36px; height: 36px; flex: none; }
.tto-szn-band__icon svg { width: 100%; height: 100%; display: block; }
body.tto-szn-winter .tto-szn-band__icon svg g { stroke: var(--ss-deep); }
.tto-szn-band__title { margin: 0 !important; font-family: Poppins, system-ui, sans-serif; font-weight: 800; font-size: clamp(1.3rem, 2.6vw, 1.7rem); color: #1c2533; line-height: 1.2; }
.tto-szn-band__irish { font-family: Fraunces, Georgia, serif; font-style: italic; font-weight: 500; color: var(--ss-deep); margin-left: 4px; }
.tto-szn-band__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.tto-szn-link {
	display: flex; flex-direction: column; gap: 6px;
	background: #fff; border-radius: 16px; padding: 18px 20px;
	border: 1px solid rgba(0,0,0,.06); border-left: 5px solid var(--ss-deep);
	box-shadow: 0 8px 22px -16px rgba(20,30,50,.4);
	text-decoration: none !important; color: #1c2533 !important;
	transition: transform .15s, box-shadow .15s;
}
a.tto-szn-link:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -16px rgba(20,30,50,.5); }
.tto-szn-link strong { font-size: 1.05rem; font-weight: 700; }
.tto-szn-link span { font-size: .93rem; color: #4a5566; line-height: 1.45; }
.tto-szn-link em { font-style: normal; font-weight: 700; font-size: .85rem; color: var(--ss-deep); margin-top: auto; padding-top: 4px; }

.tto-szn-card--inband { max-width: 360px; margin: 26px auto 0; background: #1c2a40; }
.tto-szn-card--inband .tto-szn-card__icon { margin-top: -46px; }

@media (max-width: 760px) {
	.tto-szn-band__grid { grid-template-columns: 1fr; gap: 10px; }
	.tto-szn-band { padding: 26px 0 28px; }
}

@media (prefers-reduced-motion: reduce) {
	.tto-szn-fx__photo, body.tto-szn-summer .tto-szn-card__icon { animation: none; }
	.tto-szn-fx__parts { display: none; }
}
