/* Coastal-1 — Baltic Breeze */

html { font-size: 62.5%; }
html.cst-menu-open { overflow: hidden; }

*, *::before, *::after { box-sizing: border-box; padding: 0; margin: 0; }

:root {
	--cst-sand: #faf7f2;
	--cst-ink: #1a2744;
	--cst-muted: #5e6d7f;
	--cst-sea: #2d8a8e;
	--cst-sea-light: #3aabb0;
	--cst-pale: #edf5f7;
	--cst-surface: #fff;
	--cst-line: rgba(26, 39, 68, 0.08);
	--cst-shadow: 0 1.2rem 3.6rem rgba(26, 39, 68, 0.10);
	--cst-font-head: "DM Serif Display", georgia, serif;
	--cst-font-body: "Outfit", "Segoe UI", sans-serif;
}

body {
	font-family: var(--cst-font-body);
	font-size: 1.6rem;
	line-height: 1.72;
	color: var(--cst-ink);
	background: var(--cst-sand);
	text-rendering: geometricprecision;
	-webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }

.cst-shell { position: relative; overflow-x: clip; }

.cst-container {
	width: min(192rem, 100%);
	padding-right: 5rem;
	padding-left: 5rem;
	margin: 0 auto;
}

/* ── Header — floating pill ── */

.cst-header {
	position: fixed;
	top: 2rem;
	left: 50%;
	z-index: 80;
	transform: translateX(-50%);
	width: min(128rem, calc(100% - 4rem));
	background: rgba(255,255,255,0.82);
	border: 0.1rem solid rgba(26,39,68,0.08);
	border-radius: 99rem;
	backdrop-filter: blur(2rem);
	box-shadow: 0 0.4rem 2.4rem rgba(26,39,68,0.08);
	transition: background 0.3s ease, box-shadow 0.3s ease, top 0.3s ease, border-radius 0.3s ease, width 0.3s ease;
}

.cst-header.is-scrolled {
	top: 0;
	width: 100%;
	background: rgba(255,255,255,0.96);
	border-radius: 0;
	border-color: var(--cst-line);
	box-shadow: 0 0.2rem 1.6rem rgba(26,39,68,0.08);
}

.cst-header--hero {
	background: rgba(255,255,255,0.14);
	border-color: rgba(255,255,255,0.18);
}

.cst-header--hero.is-scrolled {
	background: #2d8a8e;
	border-color: rgba(255,255,255,0.12);
}

.cst-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 3rem;
	min-height: 6.4rem;
}

.cst-brand {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.cst-brand__logo {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	width: 13rem;
	height: 4.4rem;
}

.cst-brand__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
}

.cst-nav {
	display: flex;
	gap: 0.3rem;
	align-items: center;
	margin-left: auto;
}

.cst-nav a {
	padding: 0.6rem 1.4rem;
	font-size: 1.22rem;
	font-weight: 600;
	color: var(--cst-muted);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	border-radius: 99rem;
	transition: color 0.25s ease, background 0.25s ease;
}

.cst-nav a:hover {
	color: var(--cst-ink);
	background: rgba(26,39,68,0.06);
}

.cst-nav a.is-active {
	color: #fff;
	background: var(--cst-sea);
}

.cst-header--hero .cst-nav a { color: rgba(255,255,255,0.85); }
.cst-header--hero .cst-nav a:hover { color: #fff; background: rgba(255,255,255,0.14); }
.cst-header--hero .cst-nav a.is-active { color: #fff; background: var(--cst-sea); }
.cst-header--hero.is-scrolled .cst-nav a { color: rgba(255,255,255,0.78); }
.cst-header--hero.is-scrolled .cst-nav a:hover { color: #fff; background: rgba(255,255,255,0.14); }
.cst-header--hero.is-scrolled .cst-nav a.is-active { color: var(--cst-sea); background: #fff; }

.cst-menu-toggle {
	position: relative;
	z-index: 1001;
	display: none;
	flex: 0 0 4rem;
	width: 4rem;
	height: 4rem;
	margin-left: auto;
	cursor: pointer;
	background: transparent;
	border: 0;
}

.cst-menu-toggle span {
	display: block;
	width: 2.2rem;
	height: 0.2rem;
	margin: 0.45rem auto;
	background: var(--cst-ink);
	border-radius: 0.2rem;
	transform-origin: center;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

.cst-header--hero .cst-menu-toggle span { background: #fff; }
.cst-header--hero.is-scrolled .cst-menu-toggle span { background: #fff; }

.cst-menu-toggle.is-open span:nth-child(1) { transform: translateY(0.65rem) rotate(45deg); }
.cst-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.cst-menu-toggle.is-open span:nth-child(3) { transform: translateY(-0.65rem) rotate(-45deg); }

/* ── Main ── */

.cst-main { padding-top: 10rem; }
.cst-main--hero { padding-top: 0; }

/* ── Hero ── */

.cst-hero {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 80vh;
	height: 80dvh;
	overflow: hidden;
}

.cst-hero::before {
	position: absolute;
	inset: 0 0 auto;
	z-index: 15;
	height: 22rem;
	pointer-events: none;
	content: "";
	background: linear-gradient(180deg, rgba(0,0,0,0.32) 0%, transparent 100%);
}

/* ── Thumbs bar — under slider, full container ── */

.cst-thumbs-bar {
	position: relative;
	z-index: 2;
	margin-top: 3rem;
	padding-bottom: clamp(2rem, 3vw, 4rem);
}

.cst-thumbs-bar__strip {
	display: flex;
	gap: 1rem;
}

.cst-thumbs-bar__item {
	flex: 1 1 0;
	overflow: hidden;
	border-radius: 1.2rem;
	aspect-ratio: 16 / 10;
	box-shadow: 0 0.4rem 1.6rem rgba(26,39,68,0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cst-thumbs-bar__item:hover {
	transform: translateY(-0.3rem);
	box-shadow: 0 0.8rem 2.4rem rgba(26,39,68,0.16);
}

.cst-thumbs-bar__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cst-thumbs-bar__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	background: var(--cst-sea);
	color: #fff;
	text-align: center;
	font-size: 1.24rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	line-height: 1.3;
}

.cst-thumbs-bar__cta:hover {
	background: var(--cst-sea-light);
}

.cst-thumbs-bar__cta .material-symbols-rounded {
	font-size: 2.4rem;
}

@media (width <= 76rem) {
	.cst-thumbs-bar__strip { gap: 0.6rem; }
	.cst-thumbs-bar__item { border-radius: 0.8rem; }
	.cst-thumbs-bar__cta { font-size: 1.1rem; }
}

@media (width <= 48rem) {
	.cst-thumbs-bar__item:nth-child(3),
	.cst-thumbs-bar__item:nth-child(4) { display: none; }
}

.cst-hero__wave {
	position: absolute;
	bottom: -0.1rem;
	left: 0;
	z-index: 16;
	width: 100%;
	height: 8rem;
	pointer-events: none;
}

.cst-hero__wave svg { display: block; width: 100%; height: 100%; }

/* ── Slider ── */

.cst-home-slider {
	width: 100%;
	height: 100%;
	--swiper-pagination-bottom: 4rem;
}

.cst-home-slider--demo,
.cst-home-slider .swiper-wrapper,
.cst-home-slider .swiper-slide { height: 100%; }

.cst-home-slider .swiper-slide {
	position: relative;
	overflow: hidden;
}

.cst-home-slider .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cst-home-slider__overlay {
	position: absolute;
	inset: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0,0,0,0.04) 0%, rgba(0,0,0,0.14) 40%, rgba(0,0,0,0.48) 100%);
}

.cst-home-slider__content {
	text-align: center;
	color: #fff;
	padding-bottom: 6rem;
}

.cst-home-slider__content h2 {
	font-family: var(--cst-font-head);
	font-size: clamp(4.2rem, 4.5vw + 1rem, 9rem);
	font-weight: 400;
	line-height: 0.94;
	text-wrap: balance;
	text-shadow: 0 0.2rem 2rem rgba(0,0,0,0.2);
}

.cst-home-slider__content div {
	max-width: 48ch;
	margin: 1.6rem auto 0;
	font-size: clamp(1.52rem, 0.4vw + 1.4rem, 1.88rem);
	color: rgba(255,255,255,0.84);
	text-shadow: 0 0.1rem 0.6rem rgba(0,0,0,0.14);
}

/* Pagination & nav */
.cst-hero-pagination, .cst-hero-nav { position: absolute; z-index: 99; }

.cst-hero .swiper-horizontal > .swiper-pagination-bullets,
.cst-hero .swiper-pagination-bullets.swiper-pagination-horizontal,
.cst-hero .swiper-pagination-custom,
.cst-hero .swiper-pagination-fraction { z-index: 99; }

.cst-hero-pagination .swiper-pagination-bullet {
	width: 1rem;
	height: 1rem;
	background: rgba(255,255,255,0.4);
	opacity: 1;
	transition: background 0.3s ease, transform 0.3s ease;
}

.cst-hero-pagination .swiper-pagination-bullet-active {
	background: var(--cst-sea-light);
	transform: scale(1.3);
}

.cst-hero .swiper-button-prev,
.cst-hero .swiper-button-next { color: rgba(255,255,255,0.8); z-index: 99; }

/* ── Intro — glass card overlapping hero ── */

.cst-intro-wrap {
	position: relative;
	z-index: 30;
	margin-top: 0;
	padding: 0 0 clamp(4rem, 6vw, 8rem);
}

.cst-intro-card {
	padding: clamp(3rem, 4vw, 5rem) 0 0;
}

.cst-intro {
	display: grid;
	grid-template-columns: 1fr minmax(28rem, 44%);
	gap: clamp(2.4rem, 3vw, 4.8rem);
	align-items: center;
}

.cst-intro__eyebrow {
	display: inline-flex;
	width: fit-content;
	padding: 0.5rem 1.4rem;
	font-size: 1.08rem;
	font-weight: 700;
	color: var(--cst-sea);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	background: rgba(45,138,142,0.08);
	border: 0.1rem solid rgba(45,138,142,0.2);
	border-radius: 99rem;
}

.cst-intro__title {
	margin-top: 1.2rem;
	font-family: var(--cst-font-head);
	font-size: clamp(3rem, 2.2vw + 1.4rem, 5.2rem);
	font-weight: 400;
	line-height: 0.98;
	color: var(--cst-ink);
}

.cst-intro__lead {
	max-width: 46ch;
	margin-top: 1.2rem;
	font-size: clamp(1.48rem, 0.2vw + 1.4rem, 1.68rem);
	line-height: 1.72;
	color: var(--cst-muted);
}

.cst-intro__media {
	overflow: hidden;
	border-radius: 1.8rem;
	aspect-ratio: 4 / 3;
}

.cst-intro__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ── Sections ── */

.cst-section {
	padding: clamp(4.4rem, 6vw, 8rem) 0;
}

.cst-section--white { background: #fff; }

.cst-section__head {
	margin-bottom: clamp(2.4rem, 3vw, 3.6rem);
	text-align: center;
}

.cst-section__title {
	font-family: var(--cst-font-head);
	font-size: clamp(2.8rem, 1.2vw + 1.8rem, 4rem);
	font-weight: 400;
	line-height: 1;
	color: var(--cst-ink);
}

.cst-section__subtitle {
	max-width: 52ch;
	margin: 0.8rem auto 0;
	font-size: 1.52rem;
	color: var(--cst-muted);
}

/* ── Amenities inside intro card ── */

.cst-intro-amenities {
	margin-top: 2.8rem;
	padding-top: 2.4rem;
	border-top: 0.1rem solid var(--cst-line);
}

.cst-intro-amenities__title {
	margin-bottom: 1.4rem;
	font-family: var(--cst-font-body);
	font-size: 1.28rem;
	font-weight: 700;
	color: var(--cst-muted);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	text-align: center;
}

/* ── Amenities — flowing chips ── */

.cst-amenities-flow {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

.cst-amenity-chip {
	display: inline-flex;
	gap: 0.7rem;
	align-items: center;
	padding: 0.8rem 1.8rem;
	font-size: 1.36rem;
	font-weight: 500;
	color: var(--cst-ink);
	background: var(--cst-pale);
	border-radius: 99rem;
	transition: background 0.25s ease, transform 0.25s ease;
}

.cst-amenity-chip:hover {
	background: rgba(45,138,142,0.12);
	transform: translateY(-0.2rem);
}

.cst-amenity-chip__icon {
	font-size: 1.8rem;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
	line-height: 1;
	color: var(--cst-sea);
}

/* ── Features — horizontal scroll strip ── */

.cst-feature-swiper {
	width: calc(100% - 4rem);
	margin: 0 auto;
	padding-bottom: 4rem;
}

.cst-feature-pagination {
	bottom: 0 !important;
}

.cst-feature-pagination .swiper-pagination-bullet {
	width: 0.8rem;
	height: 0.8rem;
	background: var(--cst-muted);
	opacity: 0.3;
}

.cst-feature-pagination .swiper-pagination-bullet-active {
	background: var(--cst-sea);
	opacity: 1;
}

.cst-feature {
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 0.1rem solid var(--cst-line);
	border-radius: 2rem;
	box-shadow: 0 0.6rem 2rem rgba(26,39,68,0.07);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}


.cst-feature:hover {
	transform: translateY(-0.4rem);
	box-shadow: 0 1.2rem 3.2rem rgba(26,39,68,0.13);
}

.cst-feature__img {
	width: 100%;
	height: 22rem;
	object-fit: cover;
}

.cst-feature__body { padding: 2rem 2.2rem 2.4rem; }

.cst-feature__title {
	font-family: var(--cst-font-head);
	font-size: 2.2rem;
	font-weight: 400;
	line-height: 1;
	color: var(--cst-ink);
}

.cst-feature__text {
	margin-top: 0.6rem;
	font-size: 1.4rem;
	line-height: 1.6;
	color: var(--cst-muted);
}

/* ── Gallery preview ── */

.cst-gallery-preview__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 1rem;
	height: clamp(28rem, 34vw, 46rem);
}

.cst-gallery-preview__item {
	display: block;
	overflow: hidden;
	border-radius: 1.6rem;
}

.cst-gallery-preview__item:first-child { grid-row: 1 / -1; }

.cst-gallery-preview__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.cst-gallery-preview__item:hover img { transform: scale(1.05); }

.cst-gallery-preview__actions {
	display: flex;
	justify-content: center;
	margin-top: 2.8rem;
}

.cst-gallery-preview__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.8rem;
	padding: 1.3rem 3.2rem;
	font-size: 1.3rem;
	font-weight: 700;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	background: var(--cst-sea);
	border-radius: 99rem;
	box-shadow: 0 0.8rem 2.4rem rgba(45,138,142,0.26);
	transition: background 0.25s ease, transform 0.25s ease;
}

.cst-gallery-preview__cta:hover {
	background: var(--cst-sea-light);
	transform: translateY(-0.15rem);
}

/* ── Rich content ── */

.cst-rich {
	font-size: clamp(1.52rem, 0.12vw + 1.48rem, 1.68rem);
	line-height: 1.76;
	color: #2a3348;
}

.cst-rich h2, .cst-rich h3, .cst-rich h4 {
	margin-top: 2.4rem;
	margin-bottom: 1.2rem;
	font-family: var(--cst-font-head);
	font-weight: 400;
	line-height: 1.1;
	color: var(--cst-ink);
}

.cst-rich h2 { font-size: clamp(2.4rem, 1vw + 1.8rem, 3.2rem); }
.cst-rich h3 { font-size: clamp(2rem, 0.8vw + 1.6rem, 2.8rem); }

.cst-rich p, .cst-rich ul, .cst-rich ol, .cst-rich blockquote { margin: 1.4rem 0; }
.cst-rich ul, .cst-rich ol { padding-left: 2rem; }
.cst-rich li { margin-bottom: 0.5rem; }

.cst-rich blockquote {
	padding: 1.6rem 2rem;
	background: rgba(45,138,142,0.06);
	border-left: 0.3rem solid var(--cst-sea);
	border-radius: 0 1.2rem 1.2rem 0;
}

.cst-table-wrap {
	width: 100%;
	margin: 1.6rem 0;
	overflow-x: auto;
	background: #fff;
	border: 0.1rem solid var(--cst-line);
	border-radius: 1.2rem;
}

.cst-table-wrap table { width: 100%; min-width: 64rem; table-layout: fixed; border-collapse: collapse; }
.cst-table-wrap th, .cst-table-wrap td { padding: 1rem 1.2rem; text-align: left; border: 0.1rem solid var(--cst-line); }
.cst-table-wrap th { font-weight: 600; color: var(--cst-ink); background: var(--cst-pale); }

/* ── Page hero (subpages) ── */

.cst-page-hero {
	position: relative;
	display: grid;
	align-items: end;
	background: var(--cst-ink);
	min-height: clamp(36rem, 50vh, 56rem);
	overflow: hidden;
	isolation: isolate;
}

.cst-page-hero::after {
	position: absolute;
	inset: 0;
	z-index: -1;
	content: "";
	background: linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.48) 100%);
}

.cst-page-hero__image {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cst-page-hero__wave {
	position: absolute;
	bottom: -0.1rem;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 6rem;
	pointer-events: none;
}

.cst-page-hero__wave svg { display: block; width: 100%; height: 100%; }

.cst-page-hero__content {
	position: relative;
	z-index: 1;
	padding-bottom: clamp(5rem, 7vh, 8rem);
	color: #fff;
}

.cst-page-hero__eyebrow {
	display: inline-flex;
	padding: 0.5rem 1.4rem;
	margin-bottom: 1rem;
	font-size: 1.08rem;
	font-weight: 700;
	color: rgba(255,255,255,0.82);
	text-transform: uppercase;
	letter-spacing: 0.14em;
	background: rgba(255,255,255,0.1);
	border: 0.1rem solid rgba(255,255,255,0.2);
	border-radius: 99rem;
}

.cst-page-hero__title {
	max-width: 60%;
	font-family: var(--cst-font-head);
	font-size: clamp(3.6rem, 2.5vw + 2rem, 7rem);
	font-weight: 400;
	line-height: 0.94;
}

.cst-page-hero__lead {
	max-width: 52ch;
	margin-top: 1rem;
	font-size: clamp(1.48rem, 0.3vw + 1.4rem, 1.8rem);
	color: rgba(255,255,255,0.84);
}

/* ── Content split / Contact ── */

.cst-card {
	padding: clamp(2.4rem, 3vw, 4.4rem);
	background: #fff;
	border: 0.1rem solid var(--cst-line);
	border-radius: 2rem;
	box-shadow: var(--cst-shadow);
}

.cst-content-split {
	display: grid;
	grid-template-columns: 1fr minmax(28rem, 42%);
	gap: 3rem;
	align-items: start;
}

.cst-content-split.is-no-image { grid-template-columns: 1fr; }
.cst-content-split__text { min-width: 0; }

.cst-content-split__media {
	overflow: hidden;
	border-radius: 1.6rem;
	min-height: 28rem;
	box-shadow: 0 1rem 3rem rgba(26,39,68,0.1);
}

.cst-content-split__media img { width: 100%; height: 100%; object-fit: cover; }

.cst-contact-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: start;
}

.cst-contact-layout__content, .cst-contact-layout__form { min-width: 0; }
.cst-contact-layout__form .lake-form { margin-top: 0; }

/* ── Gallery grid ── */

.cst-gallery-grid {
	columns: 3;
	column-gap: 1rem;
}

.cst-gallery-item {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 1.4rem;
	margin-bottom: 1rem;
	break-inside: avoid;
}

.cst-gallery-item img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.5s ease;
}

.cst-gallery-item:hover img { transform: scale(1.05); }

/* ── Empty / Flash / Form loading ── */

.cst-empty-content {
	padding: 2.4rem;
	font-size: 1.52rem;
	color: var(--cst-muted);
	background: var(--cst-pale);
	border: 0.1rem dashed rgba(45,138,142,0.3);
	border-radius: 1.2rem;
}

/* ── Forms ── */

.lake-form { display: grid; gap: 1.6rem; margin-top: 1.6rem; }
.lake-honeypot { position: absolute; left: -999.9rem; }
.lake-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.lake-form__group { display: grid; gap: 0.5rem; }
.lake-form__group--full { grid-column: 1 / -1; }

.lake-form label {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--cst-muted);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.lake-form input:not([type="checkbox"]),
.lake-form textarea,
.lake-form select {
	width: 100%;
	padding: 1.2rem 1.4rem;
	font: inherit;
	font-size: 1.52rem;
	color: var(--cst-ink);
	background: var(--cst-sand);
	border: 0.1rem solid rgba(26,39,68,0.12);
	border-radius: 1.2rem;
	outline: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.lake-form input:not([type="checkbox"]):focus,
.lake-form textarea:focus,
.lake-form select:focus {
	border-color: var(--cst-sea);
	box-shadow: 0 0 0 0.3rem rgba(45,138,142,0.12);
}

.lake-form textarea { min-height: 14rem; resize: vertical; }

.lake-form__captcha { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: center; font-size: 1.44rem; color: var(--cst-muted); }
.lake-form__captcha input { width: 10rem; }
.lake-form__rodo { margin-top: 1.2rem; font-size: 0.95rem; line-height: 1.5; color: rgba(0, 0, 0, 0.45); }
.lake-form__rodo p { margin: 0 0 0.4rem; }
.lake-form__rodo p:last-child { margin-bottom: 0; }
.lake-form__error { margin-top: 0.5rem; font-size: 1.2rem; color: #b91c1c; }
.lake-form__error ul { padding-left: 1.6rem; margin: 0; }
.lake-flash--form-errors ul { padding-left: 1.8rem; margin: 0; }

.lake-btn {
	display: inline-flex;
	gap: 0.8rem;
	align-items: center;
	justify-content: center;
	padding: 1.3rem 2.6rem;
	font-size: 1.36rem;
	font-weight: 700;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
	background: var(--cst-sea);
	border: 0;
	border-radius: 99rem;
	box-shadow: 0 0.6rem 1.8rem rgba(45,138,142,0.22);
	transition: background 0.25s ease, transform 0.25s ease;
}

.lake-btn:hover { background: var(--cst-sea-light); transform: translateY(-0.1rem); }

.lake-flash { padding: 1.2rem 1.4rem; margin-bottom: 1rem; font-size: 1.4rem; border-radius: 1.2rem; }
.lake-flash--success { color: #065f46; background: #d1fae5; }
.lake-flash--error { color: #991b1b; background: #fee2e2; }

.lake-form-loading, .cst-form-loading {
	padding: 1.2rem 1.4rem;
	font-size: 1.34rem;
	color: var(--cst-muted);
	background: var(--cst-pale);
	border-radius: 1.2rem;
}

/* ── Footer ── */

.cst-footer {
	margin-top: 0;
	padding: clamp(4.4rem, 5vw, 7rem) 0 clamp(2.4rem, 3vw, 3.6rem);
	color: rgba(255,255,255,0.8);
	background: var(--cst-ink);
}

.cst-footer__inner { display: flex; flex-wrap: wrap; gap: 3rem; justify-content: space-between; }

.cst-footer__name {
	font-family: var(--cst-font-head);
	font-size: clamp(2.8rem, 0.8vw + 2.2rem, 3.8rem);
	font-weight: 400;
	line-height: 0.95;
	color: #fff;
}

.cst-footer__meta { margin-top: 0.8rem; font-size: 1.44rem; color: rgba(255,255,255,0.5); }

.cst-footer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 2rem;
	font-size: 1.24rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

.cst-footer__links a { color: rgba(255,255,255,0.5); transition: color 0.2s ease; }
.cst-footer__links a:hover { color: #fff; }

.cst-footer__bottom {
	margin-top: 3rem;
	padding-top: 2rem;
	font-size: 1.2rem;
	color: rgba(255,255,255,0.3);
	border-top: 0.1rem solid rgba(255,255,255,0.1);
}

.cst-footer__bottom a { color: var(--cst-sea-light); }

/* ── Reveal ── */

.cst-reveal {
	opacity: 0;
	transform: translateY(2.4rem);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.cst-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ── Responsive ── */

@media (max-width: 1217px) {
	.cst-hero .swiper-button-prev,
	.cst-hero .swiper-button-next { display: none; }

	.cst-feature:first-child { margin-left: 0; }
}

@media (width <= 106rem) {
	.cst-intro { grid-template-columns: 1fr; }
	.cst-content-split { grid-template-columns: 1fr; }
	.cst-gallery-grid { columns: 2; }
}

@media (width <= 92rem) {
	.cst-menu-toggle { display: block; }

	.cst-nav {
		position: fixed;
		inset: -0.2rem;
		z-index: 1000;
		display: flex;
		visibility: hidden;
		flex-flow: column nowrap;
		gap: 1.2rem;
		align-items: center;
		justify-content: center;
		width: calc(100vw + 0.4rem);
		height: calc(100vh + 0.4rem);
		padding: 4rem 2rem;
		margin: 0;
		pointer-events: none;
		background: #1a2744;
		opacity: 0;
		transform: translateY(-1rem);
		transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
	}

	.cst-nav.is-open { visibility: visible; pointer-events: auto; opacity: 1; transform: translateY(0); }
	.cst-nav a { padding: 1.2rem 2rem; font-size: clamp(1.8rem, 2.5vw, 2.6rem); color: rgba(255,255,255,0.82); }
	.cst-nav a:hover { color: #fff; background: rgba(255,255,255,0.1); }
	.cst-nav a.is-active { color: #fff; background: var(--cst-sea); }
	.cst-header--hero .cst-nav a { color: rgba(255,255,255,0.82); }
	.cst-footer__links { flex-direction: column; }
}

@media (width <= 76rem) {
	.cst-container { padding-right: 2rem; padding-left: 2rem; }
	.cst-header { width: calc(100% - 2rem); top: 1rem; }
	.cst-header.is-scrolled { width: 100%; top: 0; }
	.cst-header__inner { padding: 0 2rem; min-height: 5.6rem; }
	.cst-intro-wrap { margin-top: 0; }
	.cst-page-hero__title { max-width: 100%; }
	.cst-gallery-preview__grid { grid-template-columns: 1fr; grid-template-rows: auto; height: auto; }
	.cst-gallery-preview__item:first-child { grid-row: span 1; }
	.cst-gallery-preview__item { aspect-ratio: 16 / 9; }
	.cst-gallery-grid { columns: 1; }
	.cst-contact-layout { grid-template-columns: 1fr; }
	.lake-form__grid { grid-template-columns: 1fr; }
	.cst-home-slider__content h2 { font-size: clamp(3rem, 5.5vw, 5rem); }
}
