@font-face {
	font-family: 'Day Coast';
	src: url('../fonts/day-coast-display-grunge-font-2026-04-07-06-21-08-utc/DayCoast1.otf') format('opentype');
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: 'Surfen';
	src: url('../fonts/surfen-modern-bold-font-2026-04-07-05-47-07-utc/WOFF/Surfen-Regular.woff2') format('woff2');
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: 'GC Grind';
	src: url('../fonts/gc-grind.woff2') format('woff2');
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

:root {
	--container-max: 1200px;
	--content-max: 720px;
	--space-1: 0.5rem;
	--space-2: 1rem;
	--space-3: 1.5rem;
	--space-4: 2.5rem;

	--color-primary: var(--wp--preset--color--primary, #1e729a);
	--color-background: var(--wp--preset--color--background, #EEF7F5);
	--color-text: var(--wp--preset--color--text, #202020);
	--color-white: var(--wp--preset--color--white, #ffffff);

	--font-heading: var(--wp--preset--font-family--heading, 'Signika Negative', system-ui, sans-serif);
	--font-body: var(--wp--preset--font-family--body, Roboto, system-ui, sans-serif);
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--font-body);
	color: var(--color-text);
	background: var(--color-background);
	line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 600;
	color: var(--color-text);
	margin-top: 0;
}

body.juliansurf-font-preview-day-coast :is(h1, h2, h3, h4, h5, h6, [role="heading"]) {
	font-family: 'Day Coast', system-ui, sans-serif !important;
	font-weight: 400;
	letter-spacing: 0;
}

body.juliansurf-font-preview-surfen :is(h1, h2, h3, h4, h5, h6, [role="heading"]) {
	font-family: 'Surfen', system-ui, sans-serif !important;
	font-weight: 400;
	letter-spacing: 0;
}

body.juliansurf-font-preview-gc-grind :is(h1, h2, h3, h4, h5, h6, [role="heading"]) {
	font-family: 'GC Grind', system-ui, sans-serif !important;
	font-weight: 400;
	letter-spacing: 0;
}

.container {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--space-4) var(--space-2);
}
/* Classic templates (page, article, archive…): smaller gap right under the header. */
.site-main > .container:first-child { padding-top: var(--space-3); }

a {
	color: var(--color-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}
a:hover { text-decoration: none; }

img { max-width: 100%; height: auto; }

.skip-link {
	position: absolute;
	left: -9999px;
}
.skip-link:focus {
	left: 1rem;
	top: 1rem;
	background: var(--color-white);
	padding: 0.5rem 1rem;
	z-index: 9999;
}

/* Announcement bar — thin strip above the header (Réglages > En-tête) */
.site-announcement {
	background: var(--color-primary);
	color: var(--color-white);
}
.site-announcement__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0.55rem var(--space-2);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem 0.75rem;
	font-family: var(--font-body);
	font-size: 0.9rem;
	line-height: 1.35;
	text-align: center;
}
.site-announcement__text { font-weight: 500; }
/* "Ouvert" indicator */
.site-announcement__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #5ee6a0;
	box-shadow: 0 0 0 0 rgba(94, 230, 160, 0.6);
	animation: site-announcement-pulse 2s ease-out infinite;
}
@keyframes site-announcement-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(94, 230, 160, 0.6); }
	70%  { box-shadow: 0 0 0 7px rgba(94, 230, 160, 0); }
	100% { box-shadow: 0 0 0 0 rgba(94, 230, 160, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.site-announcement__dot { animation: none; }
}
.site-announcement__link {
	color: var(--color-white);
	font-family: var(--font-heading);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}
.site-announcement__link:hover,
.site-announcement__link:focus-visible { text-decoration-thickness: 2px; }
@media (max-width: 720px) {
	.site-announcement__inner { font-size: 0.8rem; padding: 0.5rem var(--space-2); }
}

/* Header — pill nav + separate CTA */
.site-header {
	background: var(--color-background, #fff);
	padding: 1rem 0;
}
.site-header__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--space-2);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

/* The pill has an explicit height; the CTA is a slimmer button, vertically
   centred against it by .site-header__inner (align-items: center). */
.site-header__bar {
	height: 72px;
}
.site-header__cta {
	height: 48px;
}

/* The "pill" that holds the logo + nav */
.site-header__bar {
	display: flex;
	align-items: center;
	gap: 1.85rem;
	background: var(--color-white, #fff);
	border: 1px solid rgba(32, 32, 32, 0.08);
	border-radius: 8px;
	padding: 0 1.5rem 0 1.1rem;
}

.site-header__brand {
	display: inline-flex;
	align-items: center;
}
.site-header__brand .custom-logo {
	max-height: 40px;
	width: auto;
	display: block;
}
.site-header__brand-title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.25rem;
	text-decoration: none;
	color: var(--color-text);
	padding: 0 0.5rem;
}

/* Burger button — hidden on desktop */
.site-header__burger {
	display: none;
	width: 40px;
	height: 40px;
	padding: 0;
	margin-left: auto;
	background: transparent;
	border: 0;
	cursor: pointer;
	position: relative;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
}
.site-header__burger span {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--color-text, #202020);
	border-radius: 2px;
	transition: transform 0.2s ease, opacity 0.15s ease;
	transform-origin: center;
}
[data-menu-open="true"] .site-header__burger span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
[data-menu-open="true"] .site-header__burger span:nth-child(2) {
	opacity: 0;
}
[data-menu-open="true"] .site-header__burger span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Inline CTA inside the mobile nav panel (hidden on desktop) */
.site-header__nav-cta { display: none; }

.site-header__nav-list {
	list-style: none;
	display: flex;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	align-items: center;
}
.site-header__nav-list > li { position: relative; }
.site-header__nav-list a {
	font-family: var(--font-heading);
	font-weight: 500;
	font-size: 1rem;
	text-decoration: none;
	color: var(--color-text);
	transition: color 0.15s ease;
}
.site-header__nav-list a:hover { color: var(--color-primary); }
/* Parent items without URL only open their sub-menu */
.site-header__nav-list a:not([href]) { cursor: default; }

/* Indicate parent items with a small chevron */
.site-header__nav-list .menu-item-has-children > a {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}
.site-header__nav-list .menu-item-has-children > a::after {
	content: '';
	width: 6px;
	height: 6px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	opacity: 0.6;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s ease, opacity 0.15s ease;
}
.site-header__nav-list .menu-item-has-children:hover > a::after,
.site-header__nav-list .menu-item-has-children:focus-within > a::after {
	opacity: 1;
}
.site-header__nav-list .menu-item-has-children:hover > a::after,
.site-header__nav-list .menu-item-has-children:focus-within > a::after {
	transform: translateY(0) rotate(225deg);
}

/* Dropdown sub-menu */
.site-header__nav-list .sub-menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 50%;
	transform: translateX(-50%) translateY(-6px);
	background: var(--color-white, #fff);
	border: 1px solid rgba(32, 32, 32, 0.08);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(32, 32, 32, 0.08);
	list-style: none;
	margin: 0;
	padding: 0.4rem;
	min-width: 220px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
	z-index: 50;
}
.site-header__nav-list .menu-item-has-children:hover > .sub-menu,
.site-header__nav-list .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
	transition-delay: 0s;
}
.site-header__nav-list .sub-menu li { list-style: none; }
.site-header__nav-list .sub-menu a {
	display: block;
	padding: 0.55rem 0.85rem;
	font-size: 0.9rem;
	border-radius: 6px;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}
.site-header__nav-list .sub-menu a:hover {
	background: rgba(30, 114, 154, 0.08);
	color: var(--color-primary);
}

/* Separate CTA on the right — brand blue */
.site-header__cta {
	display: inline-flex;
	align-items: center;
	background: var(--color-primary, #1e729a);
	color: var(--color-white, #fff);
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0 1.45rem;
	border-radius: 8px;
	text-decoration: none;
	transition: filter 0.15s ease, transform 0.15s ease;
}
.site-header__cta:hover { filter: brightness(1.1); transform: translateY(-1px); }

@media (max-width: 720px) {
	/* The pill takes the full width: logo on the left, burger on the right. */
	.site-header__bar { flex: 1; min-width: 0; height: 58px; padding: 0 0.5rem 0 0.85rem; gap: 0; }
	.site-header__brand .custom-logo { max-height: 32px; }
	/* Show burger, hide desktop CTA and inline nav */
	.site-header__burger { display: inline-flex; }
	.site-header__cta { display: none; }

	/* Mobile nav panel — opens just below the header bar. --js-nav-top is set by
	   the header script (bar bottom), so the admin bar and announcement never overlap. */
	.site-header__nav {
		position: fixed;
		top: var(--js-nav-top, 0px);
		left: 0;
		right: 0;
		bottom: 0;
		background: #fff;
		border-top: 1px solid rgba(32, 32, 32, 0.08);
		padding: 0.5rem 1.5rem 2rem;
		overflow-y: auto;
		overscroll-behavior: contain;
		transform: translateY(-8px);
		opacity: 0;
		visibility: hidden;
		transition: transform 0.2s ease, opacity 0.2s ease, visibility 0s linear 0.2s;
		z-index: 80;
	}
	[data-menu-open="true"] .site-header__nav {
		transform: translateY(0);
		opacity: 1;
		visibility: visible;
		transition: transform 0.2s ease, opacity 0.2s ease;
	}
	.site-header__nav-list {
		flex-direction: column;
		gap: 0;
		align-items: stretch;
	}
	.site-header__nav-list > li {
		border-bottom: 1px solid rgba(32, 32, 32, 0.08);
	}
	.site-header__nav-list > li > a {
		display: block;
		padding: 1rem 0;
		font-size: 1.15rem;
	}

	/* Submenus: always expanded inline on mobile */
	.site-header__nav-list .menu-item-has-children > a::after { display: none; }
	.site-header__nav-list .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0 0 0.5rem 1rem;
		min-width: 0;
	}
	.site-header__nav-list .sub-menu a {
		padding: 0.5rem 0;
		font-size: 1rem;
		color: rgba(32, 32, 32, 0.7);
	}

	/* Inline CTA inside the mobile nav panel */
	.site-header__nav-cta {
		display: inline-flex;
		justify-content: center;
		align-items: center;
		margin-top: 1.5rem;
		width: 100%;
		background: var(--color-primary, #1e729a);
		color: #fff;
		font-family: var(--font-heading);
		font-weight: 600;
		font-size: 1rem;
		padding: 1rem;
		border-radius: 8px;
		text-decoration: none;
	}

	/* The burger needs to stay above the open panel */
	.site-header__burger { z-index: 100; }
	.site-header { position: relative; z-index: 90; }
}

/* Posts list */
.post-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--space-3);
}
.post-card {
	border: 1px solid rgba(32, 32, 32, 0.08);
	border-radius: 8px;
	overflow: hidden;
	background: var(--color-white);
}
.post-card__thumb img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
}
.post-card .entry-header,
.post-card .entry-summary { padding: 0 var(--space-2); }
.post-card .entry-header { padding-top: var(--space-2); }
.post-card .entry-summary { padding-bottom: var(--space-2); }

/* Entry */
.entry-title a {
	text-decoration: none;
	color: inherit;
}
.entry-meta {
	color: rgba(32, 32, 32, 0.6);
	font-size: 0.9rem;
	margin-top: 0;
}
.entry-content > * + * { margin-top: var(--space-2); }

/* Buttons */
.wp-block-button__link,
.button {
	font-family: var(--font-heading);
	font-weight: 600;
	background-color: var(--color-primary);
	color: var(--color-white);
	border-radius: 8px;
	padding: 0.65rem 1.5rem;
	display: inline-block;
	text-decoration: none;
	transition: filter 0.15s ease;
}
.wp-block-button__link:hover,
.button:hover { filter: brightness(1.1); }

/* Footer */
.site-footer {
	margin-top: 5rem;
	background: var(--color-background, #fff);
	color: var(--color-text);
}
.site-footer__inner {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--space-2);
}

/* Wrapper that holds the 4 columns inside a light tinted block. */
.site-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 2.5rem;
	padding: 3.5rem 2.5rem;
	background: var(--wp--preset--color--mist, #EEF7F5);
	border-radius: 8px;
}
@media (max-width: 980px) {
	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
		padding: 2.5rem 1.75rem;
	}
}
@media (max-width: 580px) {
	.site-footer__grid {
		grid-template-columns: 1fr;
		padding: 2rem 1.5rem;
	}
}

.site-footer__col {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	min-width: 0;
}

/* Col 1: Brand */
.site-footer__col--brand { gap: 1.25rem; }
.site-footer__brand img,
.site-footer__brand .custom-logo { max-width: 180px; height: auto; display: block; }
.site-footer__brand-title {
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--color-text);
	text-decoration: none;
}
.site-footer__about {
	font-family: var(--font-body);
	color: rgba(32, 32, 32, 0.7);
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0;
	max-width: 34ch;
}
.site-footer__cta {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	background: var(--color-primary, #1e729a);
	color: var(--color-white, #fff);
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0.75rem 1.5rem;
	border-radius: 8px;
	text-decoration: none;
	transition: filter 0.15s ease, transform 0.15s ease;
}
.site-footer__cta:hover { filter: brightness(1.1); transform: translateY(-1px); }

/* Headings inside columns */
.site-footer__heading {
	font-family: var(--font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 0.5rem;
	line-height: 1.2;
}
.site-footer__heading--mt { margin-top: 1.5rem; }

/* Contact info */
.site-footer__contact-line {
	font-family: var(--font-body);
	color: rgba(32, 32, 32, 0.75);
	font-size: 0.95rem;
	line-height: 1.55;
	margin: 0;
}
.site-footer__contact-line a {
	color: inherit;
	text-decoration: none;
}
.site-footer__contact-line a:hover { color: var(--color-primary); }

/* Link lists (Quick links, Location de matériel) */
.site-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.site-footer__links a {
	color: rgba(32, 32, 32, 0.75);
	font-family: var(--font-body);
	font-size: 0.95rem;
	text-decoration: none;
	transition: color 0.15s ease;
}
.site-footer__links a:hover { color: var(--color-primary); }
/* WP wp_nav_menu emits .menu-item wrappers — flatten them. */
.site-footer__links li, .site-footer__links .menu-item { list-style: none; }

/* Bottom bar */
.site-footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 1.5rem 0;
}
.site-footer__copy {
	font-family: var(--font-body);
	color: rgba(32, 32, 32, 0.6);
	font-size: 0.9rem;
	margin: 0;
}

/* Social icons (bottom right) */
.site-footer__socials {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.5rem;
	align-items: center;
}
.site-footer__socials a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: rgba(32, 32, 32, 0.7);
	font-family: var(--font-body);
	font-size: 0.9rem;
	text-decoration: none;
	transition: color 0.15s ease;
}
.site-footer__socials a:hover { color: var(--color-primary); }
.site-footer__socials svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
	display: block;
}

/* Pagination */
.wp-pagenavi, .nav-links {
	display: flex;
	gap: var(--space-1);
	margin-top: var(--space-3);
}

/* ----------------------------------------------------------------------
   Global spacing rhythm for juliansurf blocks on the front-page.
   Keeps specificity = 1 with :where() so individual blocks can override.
   ---------------------------------------------------------------------- */
:root {
	--js-section-py: 5.5rem;
	--js-section-py-mobile: 3rem;
	--js-section-gap: 2rem;
}

/* Vertical breathing room between sections (block-level padding). */
.front-page__content > :where([class*="wp-block-juliansurf-"]) {
	padding-top: var(--js-section-py);
	padding-bottom: var(--js-section-py);
}

@media (max-width: 860px) {
	.front-page__content > :where([class*="wp-block-juliansurf-"]) {
		padding-top: var(--js-section-py-mobile);
		padding-bottom: var(--js-section-py-mobile);
	}
}

/* First section sits right under the header: the header already provides spacing,
   so neither the container nor the first section add a big top gap. */
.front-page__content { padding-top: 0; }
.front-page__content > :where([class*="wp-block-juliansurf-"]):first-child {
	padding-top: 1.5rem;
}
@media (max-width: 860px) {
	.front-page__content > :where([class*="wp-block-juliansurf-"]):first-child {
		padding-top: 1rem;
	}
}

/* A bit more space between heading + description across blocks. */
.front-page__content :where(
	.juliansurf-hero__title,
	.juliansurf-split__heading,
	.juliansurf-about__heading,
	.juliansurf-courses__heading,
	.juliansurf-services__heading,
	.juliansurf-instructors__heading,
	.juliansurf-instructors__featured-heading,
	.juliansurf-pricing__heading,
	.juliansurf-locations__heading,
	.juliansurf-rentals__heading,
	.juliansurf-trust__heading,
	.juliansurf-faq__heading,
	.juliansurf-journey__heading
) + :where(p, .juliansurf-hero__catchlines) {
	margin-top: 1rem;
}

/* Loosen vertical rhythm inside content columns / single-cell sections. */
.front-page__content :where(
	.juliansurf-hero__content > * + *,
	.juliansurf-split__content > * + *,
	.juliansurf-about__content > * + *,
	.juliansurf-courses__content > * + *,
	.juliansurf-instructors__left > * + *,
	.juliansurf-services__left > * + *
) {
	margin-top: 1.5rem;
}

/* Header blocks (centered eyebrow/heading/subheading) — more space below. */
.front-page__content :where(
	.juliansurf-locations__header,
	.juliansurf-pricing__header,
	.juliansurf-rentals__header,
	.juliansurf-trust__header,
	.juliansurf-journey__header
) {
	margin-bottom: 3rem;
}

/* Pricing / Locations / Rentals card grids — a bit more breathing room. */
.front-page__content :where(
	.juliansurf-pricing__grid,
	.juliansurf-locations__grid,
	.juliansurf-rentals__grid
) {
	gap: 1.75rem;
}

/* Features grid (courses) — looser. */
.front-page__content .juliansurf-courses__features { gap: 1.75rem 2rem; }

/* CTA blocks should sit a little further from preceding content. */
.front-page__content :where(
	.juliansurf-hero__cta,
	.juliansurf-split__cta,
	.juliansurf-about__cta,
	.juliansurf-courses__cta,
	.juliansurf-services__cta
) {
	margin-top: 2rem;
}
