@import url("https://fonts.googleapis.com/css2?family=Great+Vibes&family=Lora:wght@400;500;600;700&family=Rye&display=swap");

:root {
	color-scheme: light;
	--color-navy: #0b2a6b;
	--color-blue: #1f4aa8;
	--color-red: #c8102e;
	--color-red-dark: #8f0a20;
	--color-gold: #d4a52a;
	--color-gold-light: #f2d675;
	--color-gold-dark: #9c7418;
	--color-ivory: #f5efe0;
	--color-cream: #e8dcc0;
	--color-wood: #3b2417;
	--color-wood-mid: #5a3a22;
	--color-sunset: #f26b1d;
	--color-sunset-dark: #d9411e;
	--color-ink: #1a1210;
	--color-white: #fff;
	--font-display: "Rye", Georgia, serif;
	--font-script: "Great Vibes", cursive;
	--font-body: "Lora", Georgia, serif;
	--gradient-gold: linear-gradient(135deg, var(--color-gold-light), var(--color-gold), var(--color-gold-dark));
	--shadow-warm: 0 8px 24px rgb(26 18 16 / 14%);
	--border-gold: 1px solid rgb(212 165 42 / 72%);
	--radius-small: 6px;
	--content-width: 1200px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 5rem;
}

body {
	min-width: 320px;
	margin: 0;
	background: var(--color-ivory);
	color: var(--color-ink);
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

img,
picture,
video {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

a {
	color: var(--color-blue);
	text-decoration-color: rgb(31 74 168 / 35%);
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--color-red-dark);
}

:focus-visible {
	outline: 3px solid var(--color-sunset);
	outline-offset: 3px;
}

::selection {
	background: var(--color-gold-light);
	color: var(--color-ink);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.65em;
	color: var(--color-navy);
	font-family: var(--font-display);
	font-weight: 400;
	line-height: 1.2;
}

h1 {
	font-size: clamp(2.3rem, 5vw, 4.5rem);
}

h2 {
	font-size: clamp(1.8rem, 3.5vw, 3rem);
}

h3 {
	font-size: clamp(1.35rem, 2.5vw, 2rem);
}

p {
	margin: 0 0 1rem;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
[type="button"],
[type="submit"] {
	cursor: pointer;
}

.container-site {
	width: min(var(--content-width), calc(100% - 3rem));
	margin-inline: auto;
}

.section {
	padding-block: clamp(3.5rem, 7vw, 6.5rem);
}

.section--light {
	background: var(--color-ivory);
	color: var(--color-ink);
}

.section--cream {
	background: var(--color-cream);
	color: var(--color-ink);
}

.section--dark {
	background: var(--color-navy);
	color: var(--color-ivory);
}

.section--wood {
	background-color: var(--color-wood);
	background-image:
		linear-gradient(90deg, rgb(26 18 16 / 25%), transparent 45%, rgb(26 18 16 / 18%)),
		repeating-linear-gradient(0deg, transparent 0 52px, rgb(232 220 192 / 7%) 53px, transparent 55px),
		linear-gradient(120deg, var(--color-wood-mid), var(--color-wood) 65%);
	color: var(--color-ivory);
}

.section--dark h1,
.section--dark h2,
.section--dark h3,
.section--wood h1,
.section--wood h2,
.section--wood h3 {
	color: var(--color-gold-light);
}

.eyebrow {
	margin-bottom: 0.75rem;
	color: var(--color-red);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.script-accent {
	color: var(--color-gold);
	font-family: var(--font-script);
	font-size: 1.5em;
	font-weight: 400;
	line-height: 1;
}

.text-gold {
	color: var(--color-gold-light);
}

.ornament-divider {
	display: flex;
	align-items: center;
	gap: 1rem;
	width: min(100%, 26rem);
	margin: 1.5rem auto;
	color: var(--color-gold);
}

.ornament-divider::before,
.ornament-divider::after {
	height: 1px;
	flex: 1;
	background: var(--gradient-gold);
	content: "";
}

.site-header {
	position: relative;
	z-index: 10;
	background: var(--color-navy);
	border-bottom: 2px solid var(--color-gold);
	color: var(--color-ivory);
}

.site-header a {
	color: var(--color-ivory);
	text-decoration: none;
}

.site-header a:hover,
.site-header a[aria-current="page"] {
	color: var(--color-gold-light);
}

.site-brand {
	color: var(--color-gold-light) !important;
	font-family: var(--font-display);
}

.site-nav {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.5vw, 2rem);
}

.btn {
	display: inline-flex;
	min-height: 2.85rem;
	align-items: center;
	justify-content: center;
	padding: 0.7rem 1.25rem;
	border: 1px solid transparent;
	border-radius: var(--radius-small);
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.btn:hover {
	transform: translateY(-1px);
}

.btn-primary {
	border-color: var(--color-red);
	background: var(--color-red);
	color: var(--color-white);
}

.btn-primary:hover {
	border-color: var(--color-gold);
	background: var(--color-gold);
	color: var(--color-ink);
}

.btn-sunset {
	border-color: var(--color-sunset);
	background: var(--color-sunset);
	color: var(--color-white);
}

.btn-sunset:hover {
	border-color: var(--color-gold-light);
	background: var(--color-gold-light);
	color: var(--color-ink) !important;
}

.btn-outline-gold {
	border-color: var(--color-gold);
	background: transparent;
	color: var(--color-gold-light);
}

.btn-outline-gold:hover {
	background: var(--color-gold);
	color: var(--color-ink);
}

.event-card {
	overflow: hidden;
	border: var(--border-gold);
	border-radius: var(--radius-small);
	background: var(--color-white);
	box-shadow: var(--shadow-warm);
}

.event-card__body {
	padding: 1.25rem;
}

.form-control {
	width: 100%;
	min-height: 2.9rem;
	padding: 0.65rem 0.8rem;
	border: 1px solid #9b8a70;
	border-radius: var(--radius-small);
	background: var(--color-white);
	color: var(--color-ink);
}

.form-control:focus {
	border-color: var(--color-blue);
	outline: 3px solid rgb(31 74 168 / 18%);
	outline-offset: 1px;
}

.site-footer {
	padding-block: 3rem;
	border-top: 2px solid var(--color-gold);
	background: var(--color-wood);
	color: var(--color-ivory);
}

.site-footer h2,
.site-footer h3 {
	color: var(--color-gold-light);
}

.site-footer a {
	color: var(--color-cream);
}

.site-footer a:hover {
	color: var(--color-gold-light);
}

#preloader {
	position: fixed;
	z-index: 2000;
	display: grid;
	place-items: center;
	overflow: hidden;
	background-color: var(--color-navy);
	background-image:
		repeating-linear-gradient(135deg, transparent 0 36px, rgb(245 239 224 / 3%) 37px, transparent 39px),
		radial-gradient(ellipse at center, #173c82 0%, var(--color-navy) 68%);
	color: var(--color-ivory);
	inset: 0;
	opacity: 1;
	transition: opacity 320ms ease, visibility 320ms ease;
	visibility: visible;
}

#preloader::before,
#preloader::after {
	position: absolute;
	display: block;
	border-radius: 50%;
	content: "";
}

#preloader::before {
	width: 5.5rem;
	aspect-ratio: 1;
	border: 1px solid var(--color-gold);
	box-shadow: inset 0 0 0 7px rgb(212 165 42 / 12%), 0 0 30px rgb(242 214 117 / 15%);
	color: var(--color-gold-light);
	content: "★";
	font-family: Georgia, serif;
	font-size: 2.6rem;
	line-height: 5.25rem;
	text-align: center;
	text-shadow: 0 2px 12px rgb(242 214 117 / 35%);
}

#preloader::after {
	width: 7rem;
	aspect-ratio: 1;
	border: 2px solid transparent;
	border-top-color: var(--color-gold-light);
	border-right-color: rgb(200 16 46 / 72%);
	animation: preloader-spin 1.6s linear infinite;
}

#preloader.preloader-show {
	opacity: 1;
	visibility: visible;
}

#preloader.preloader-hide {
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}

@keyframes preloader-spin {
	to {
		transform: rotate(1turn);
	}
}

@media (max-width: 767.98px) {
	.container-site {
		width: min(100% - 2rem, var(--content-width));
	}

	.site-nav {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.75rem 1.1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	#preloader::after {
		animation: none;
	}
}

.site-header {
	position: sticky;
	top: 0;
	box-shadow: 0 5px 22px rgb(26 18 16 / 18%);
}

.site-header .navbar {
	min-height: 82px;
}

.brand-lockup {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	margin-right: 2rem;
}

.brand-lockup img {
	width: 58px;
	height: 62px;
	object-fit: contain;
}

.brand-name {
	display: grid;
	color: var(--color-gold-light);
	font-family: var(--font-display);
	font-size: 1.05rem;
	line-height: 1.15;
}

.brand-name small {
	margin-top: 0.2rem;
	color: var(--color-ivory);
	font-family: var(--font-body);
	font-size: 0.62rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.site-header .navbar-toggler {
	border-color: var(--color-gold);
}

.site-header .navbar-toggler:focus {
	box-shadow: 0 0 0 0.2rem rgb(242 214 117 / 28%);
}

.site-header .nav-link {
	color: var(--color-ivory);
	font-size: 0.9rem;
}

.site-header .nav-link:hover,
.site-header .nav-link[aria-current="page"] {
	color: var(--color-gold-light);
}

.nav-quote {
	margin-left: 0.35rem;
}

.hero {
	position: relative;
	background: var(--color-wood);
	color: var(--color-white);
}

.hero .carousel,
.hero .carousel-inner,
.hero .carousel-item {
	min-height: min(760px, calc(100svh - 82px));
}

.hero-slide {
	position: relative;
	display: grid;
	min-height: min(760px, calc(100svh - 82px));
	place-items: center;
	overflow: hidden;
	isolation: isolate;
	background: var(--color-wood);
	text-align: center;
}

.hero-slide--wedding{
	background-image: url('../img/slide-1.jpg') !important;
	background-position: bottom;
	background-size: cover;
}

.hero-slide--quince {
	background-image: url('../img/slide-2.jpg') !important;
	background-position: top;
	background-size: cover;
}

.hero-slide--family {
	background-image: url('../img/slide-3.jpg') !important;
	background-position: center;
	background-size: cover;
}

.hero-slide::after {
	position: absolute;
	z-index: 1;
	background: linear-gradient(90deg, rgb(15 12 12 / 64%), rgb(15 12 12 / 34%) 55%, rgb(15 12 12 / 50%));
	content: "";
	inset: 0;
}

.hero-copy {
	position: relative;
	z-index: 2;
	max-width: 920px;
	padding-block: 8rem 9rem;
	text-shadow: 0 2px 18px rgb(0 0 0 / 35%);
}

.hero-kicker {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	margin-bottom: 1.3rem;
	color: var(--color-gold-light);
	font-size: 0.77rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.hero-kicker .script-accent {
	font-size: 2.3rem;
	letter-spacing: 0;
	text-transform: none;
}

.hero-copy h1,
.hero-copy h2 {
	max-width: 850px;
	margin-inline: auto;
	color: var(--color-white);
	font-size: clamp(2.5rem, 5.6vw, 5.2rem);
	text-wrap: balance;
}

.hero-description {
	max-width: 650px;
	margin: 1.2rem auto 1.8rem;
	color: var(--color-ivory);
	font-size: clamp(1rem, 1.45vw, 1.2rem);
	text-wrap: balance;
}

.hero-actions,
.about-actions,
.cta-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.85rem;
}

.hero-actions .btn {
	gap: 0.6rem;
}

.hero .carousel-control-prev,
.hero .carousel-control-next {
	z-index: 3;
	width: 8%;
}

.hero .carousel-control-prev-icon,
.hero .carousel-control-next-icon {
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid rgb(242 214 117 / 65%);
	border-radius: 50%;
	background-color: rgb(11 42 107 / 52%);
	background-size: 45%;
}

.hero .carousel-indicators {
	z-index: 3;
	margin-bottom: 1.55rem;
}

.hero .carousel-indicators [data-bs-target] {
	width: 2.2rem;
	height: 3px;
	border: 0;
	background-color: var(--color-ivory);
	opacity: 0.58;
}

.hero .carousel-indicators .active {
	background-color: var(--color-gold-light);
	opacity: 1;
}

.hero-counter {
	position: absolute;
	z-index: 3;
	right: max(1.5rem, calc((100vw - var(--content-width)) / 2));
	bottom: 1.4rem;
	color: var(--color-ivory);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
}

.hero-counter i {
	display: inline-block;
	width: 2rem;
	height: 1px;
	margin: 0 0.35rem 0.25rem;
	background: var(--color-gold);
}

.hero-scroll {
	position: absolute;
	z-index: 4;
	bottom: 1.35rem;
	left: max(1.5rem, calc((100vw - var(--content-width)) / 2));
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	color: var(--color-ivory);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.hero-scroll:hover {
	color: var(--color-gold-light);
}

.hero-scroll span {
	width: 1px;
	height: 1.3rem;
	background: var(--color-gold);
}

.welcome-section {
	padding-bottom: 2.5rem;
}

.welcome-layout,
.about-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
	align-items: center;
	gap: clamp(2.5rem, 7vw, 6.5rem);
}

.welcome-copy h2,
.about-copy h2 {
	max-width: 650px;
	text-wrap: balance;
}

.welcome-name {
	color: var(--color-gold-dark);
	font-family: var(--font-script);
	font-size: 1.3em;
}

.welcome-lead {
	font-size: 1.12rem;
	font-weight: 600;
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: 0.6rem;
	color: var(--color-red-dark);
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: none;
}

.text-link:hover {
	color: var(--color-blue);
}

.photo-salon{
	background-image: url('../img/salon.jpeg');
	background-position: center;
	background-size: cover;
}

.photo-detalles{
	background-image: url('../img/detalles.jpeg');
	background-position: center;
	background-size: cover;
}

.photo-ambiente{
	background-image: url('../img/ambiente.jpg');
	background-position: center;
	background-size: cover;
}

.photo-instalaciones{
	background-image: url('../img/instalaciones.jpg');
	background-position: center;
	background-size: cover;
}

.photo-placeholder {
	position: relative;
	min-height: 240px;
	overflow: hidden;
}

.photo-placeholder::before {
	position: absolute;
	inset: 0.7rem;
	border: 1px dashed rgb(242 214 117 / 60%);
	content: "";
}

.photo-placeholder::after {
	position: absolute;
	right: 1.2rem;
	bottom: 1.2rem;
	left: 1.2rem;
	padding: 0.4rem 0.6rem;
	background: rgb(26 18 16 / 76%);
	color: var(--color-ivory);
	content: attr(data-placeholder);
	font-size: 0.72rem;
	letter-spacing: 0.05em;
	text-align: center;
}

.welcome-visual {
	min-height: 390px;
	box-shadow: var(--shadow-warm);
	transform: rotate(1deg);
}

.visual-stamp {
	position: absolute;
	top: 1.5rem;
	left: 1.5rem;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 0.65rem;
	border: 1px solid var(--color-gold);
	background: var(--color-wood);
	color: var(--color-gold-light);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.welcome-note {
	margin: 1.5rem auto 0;
	color: var(--color-wood-mid);
	font-family: var(--font-script);
	font-size: 1.8rem;
	text-align: center;
}

.section-heading {
	max-width: 760px;
	margin: 0 auto 2.5rem;
	text-align: center;
}

.section-heading > p:last-child {
	margin-bottom: 0;
}

.event-types {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin: 0 0 clamp(4rem, 7vw, 6rem);
	padding: 0;
	border-top: var(--border-gold);
	border-left: var(--border-gold);
	list-style: none;
}

.event-types li {
	display: flex;
	min-height: 85px;
	align-items: center;
	gap: 0.8rem;
	padding: 1rem;
	border-right: var(--border-gold);
	border-bottom: var(--border-gold);
	color: var(--color-ink);
	font-weight: 600;
}

.event-types i {
	width: 1.4rem;
	color: var(--color-red);
	font-size: 1.15rem;
	text-align: center;
}

.package-heading {
	margin-bottom: 2rem;
	text-align: center;
}

.package-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 1.25rem;
}

.package-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid rgb(90 58 34 / 35%);
	border-radius: var(--radius-small);
	background: var(--color-white);
	box-shadow: var(--shadow-warm);
}

.package-card--featured {
	border: 2px solid var(--color-gold);
}

.package-top {
	padding: 1.2rem 1.5rem;
	border-bottom: 2px solid var(--color-gold);
	color: var(--color-white);
	text-align: center;
}

.package-top span {
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.package-top h3 {
	margin: 0.25rem 0 0;
	color: inherit;
	font-size: 2rem;
}

.package-top--bronze {
	background: #70452e;
}

.package-top--silver {
	background: #46515c;
}

.package-top--gold {
	background: var(--color-gold-dark);
}

.package-content {
	flex: 1;
	padding: 1.35rem 1.5rem 1.5rem;
}

.package-content > p {
	font-weight: 700;
}

.package-content ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.package-content li {
	position: relative;
	margin-top: 0.55rem;
	padding-left: 1.35rem;
	font-size: 0.92rem;
	line-height: 1.5;
}

.package-content li::before {
	position: absolute;
	left: 0;
	color: var(--color-gold-dark);
	content: "✦";
	font-size: 0.8rem;
}

.section-action {
	margin-top: 2rem;
	text-align: center;
}

.section-action .btn,
.cta-actions .btn {
	gap: 0.55rem;
}

.about-layout {
	grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1fr);
}

.about-visual {
	min-height: 420px;
	border-color: rgb(242 214 117 / 70%);
}

.about-visual::before {
	border-color: rgb(242 214 117 / 42%);
}

.about-copy h2 {
	color: var(--color-gold-light);
}

.about-copy .eyebrow {
	color: var(--color-gold-light);
}

.about-copy p:not(.eyebrow) {
	color: var(--color-ivory);
}

.about-actions {
	justify-content: flex-start;
	margin-top: 1.5rem;
}

.text-link--light {
	color: var(--color-gold-light);
}

.text-link--light:hover {
	color: var(--color-white);
}

.gallery-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 2rem;
}

.gallery-heading h2 {
	margin-bottom: 0.45rem;
}

.gallery-heading p:last-child {
	margin: 0;
}

.gallery-grid {
	display: grid;
	grid-template-columns: 1.35fr 1fr 1fr;
	grid-template-rows: repeat(2, minmax(180px, 1fr));
	gap: 0.9rem;
}

.gallery-placeholder {
	min-height: 190px;
	background-color: var(--color-wood-mid);
}

.gallery-placeholder--large {
	grid-row: span 2;
	min-height: 390px;
	background-image: url('../img/gallery/g-8.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-placeholder--g1 {
	background-image: url('../img/gallery/g-1.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-placeholder--g2 {
	background-image: url('../img/gallery/g-2.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-placeholder--g3 {
	background-image: url('../img/gallery/g-3.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-placeholder::after {
	font-size: 0.68rem;
}

.contact-cta {
	padding-block: clamp(3rem, 6vw, 5rem);
	background-color: var(--color-red-dark);
	background-image: repeating-linear-gradient(135deg, transparent 0 40px, rgb(245 239 224 / 3%) 41px, transparent 43px);
	color: var(--color-ivory);
}

.cta-layout {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}

.cta-layout h2 {
	margin-bottom: 0.6rem;
	color: var(--color-white);
}

.cta-layout p:last-child {
	max-width: 620px;
	margin-bottom: 0;
}

.cta-layout .eyebrow {
	color: var(--color-gold-light);
}

.cta-actions {
	flex-shrink: 0;
}

.btn-cta-light {
	border-color: var(--color-ivory);
	background: var(--color-ivory);
	color: var(--color-red-dark);
}

.btn-cta-light:hover {
	border-color: var(--color-gold-light);
	background: var(--color-gold-light);
	color: var(--color-ink);
}

.btn-cta-outline {
	border-color: var(--color-ivory);
	background: transparent;
	color: var(--color-ivory);
}

.btn-cta-outline:hover {
	border-color: var(--color-gold-light);
	background: var(--color-gold-light);
	color: var(--color-ink);
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr 1fr;
	gap: 3rem;
}

.footer-brand img {
	width: 88px;
	height: auto;
	margin-bottom: 1rem;
}

.footer-brand p {
	max-width: 290px;
	color: var(--color-cream);
}

.footer-column h2 {
	margin-bottom: 1rem;
	font-family: var(--font-body);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.footer-column ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-column li + li {
	margin-top: 0.45rem;
}

.footer-column address {
	margin-bottom: 0.6rem;
	font-style: normal;
}

.footer-contact > a {
	display: block;
	width: fit-content;
	margin-top: 0.45rem;
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(212 165 42 / 42%);
}

.footer-bottom p {
	margin: 0;
	color: var(--color-cream);
	font-size: 0.82rem;
}

.footer-bottom > a {
	display: grid;
	width: 2.6rem;
	aspect-ratio: 1;
	place-items: center;
	border: 1px solid var(--color-gold);
	border-radius: 50%;
	color: var(--color-gold-light);
	text-decoration: none;
}

.footer-bottom > a:hover {
	background: var(--color-gold);
	color: var(--color-ink);
}

@media (max-width: 991.98px) {
	.site-header .navbar {
		padding-block: 0.65rem;
	}

	.site-header .navbar-collapse {
		padding-block: 0.8rem 0.4rem;
	}

	.site-header .site-nav {
		align-items: stretch !important;
		gap: 0.25rem;
	}

	.site-header .nav-link {
		padding: 0.55rem 0.2rem;
	}

	.nav-quote {
		width: fit-content;
		margin: 0.5rem 0 0;
	}

	.event-types {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.package-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.package-card:last-child {
		grid-column: 1 / -1;
	}

	.cta-layout {
		align-items: flex-start;
		flex-direction: column;
	}
	
	.cta-actions {
		justify-content: flex-start;
	}
}

@media (max-width: 767.98px) {
	.container-site {
		width: min(100% - 2rem, var(--content-width));
	}

	.hero .carousel,
	.hero .carousel-inner,
	.hero .carousel-item,
	.hero-slide {
		min-height: 650px;
	}

	.hero-copy {
		padding: 7rem 1rem 8rem;
	}

	.hero-copy h1,
	.hero-copy h2 {
		font-size: clamp(2.3rem, 9vw, 3.5rem);
	}

	.hero-kicker {
		flex-wrap: wrap;
		gap: 0.3rem 0.6rem;
	}

	.hero-kicker .script-accent {
		font-size: 2rem;
	}

	.hero-placeholder::before {
		inset: 0.75rem;
	}

	.hero-placeholder::after {
		top: 1.3rem;
		right: 1.3rem;
		max-width: calc(100% - 2.6rem);
		font-size: 0.58rem;
	}

	.hero .carousel-control-prev,
	.hero .carousel-control-next {
		width: 13%;
	}

	.hero-counter {
		right: 1rem;
	}

	.hero-scroll {
		left: 1rem;
		font-size: 0.62rem;
	}

	.welcome-layout,
	.about-layout {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.welcome-visual {
		min-height: 280px;
		transform: none;
	}

	.event-types {
		grid-template-columns: 1fr 1fr;
		margin-bottom: 3.5rem;
	}

	.event-types li {
		min-height: 76px;
		gap: 0.55rem;
		padding: 0.75rem;
		font-size: 0.85rem;
	}

	.event-types i {
		width: 1.1rem;
		font-size: 1rem;
	}

	.package-grid {
		grid-template-columns: 1fr;
	}

	.package-card:last-child {
		grid-column: auto;
	}

	.about-visual {
		min-height: 290px;
	}

	.gallery-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.8rem;
	}

	.gallery-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 230px 170px 170px;
		gap: 0.65rem;
	}

	.gallery-placeholder--large {
		grid-column: 1 / -1;
		grid-row: auto;
		min-height: 0;
	}

	.gallery-placeholder {
		min-height: 0;
	}

	.photo-placeholder::after {
		right: 0.65rem;
		bottom: 0.65rem;
		left: 0.65rem;
		font-size: 0.62rem;
	}

	.cta-actions {
		align-items: stretch;
		flex-direction: column;
		width: 100%;
	}

	.cta-actions .btn {
		width: 100%;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 2rem 1.25rem;
	}

	.footer-brand {
		grid-column: 1 / -1;
	}

	.footer-contact {
		grid-column: 1 / -1;
	}

	.footer-bottom {
		align-items: flex-start;
	}
}

@media (max-width: 380px) {
	.brand-name {
		font-size: 0.88rem;
	}

	.brand-lockup {
		gap: 0.45rem;
	}

	.brand-lockup img {
		width: 48px;
		height: 52px;
	}

	.hero-actions .btn {
		width: 100%;
	}
}

.page-hero {
	position: relative;
	display: grid;
	min-height: 430px;
	place-items: center;
	overflow: hidden;
	color: var(--color-ivory);
	isolation: isolate;
	text-align: center;
}

.hero-placeholder {
	background-image: url('../img/hero.jpg');
	background-position: center;
	background-size: cover;
}

.page-hero::after {
	position: absolute;
	z-index: 1;
	background: linear-gradient(90deg, rgb(13 15 20 / 67%), rgb(13 15 20 / 39%) 52%, rgb(13 15 20 / 53%));
	content: "";
	inset: 0;
}

.page-hero-content {
	position: relative;
	z-index: 2;
	max-width: 900px;
	padding-block: 5rem;
	text-shadow: 0 2px 18px rgb(0 0 0 / 42%);
}

.page-hero-content h1 {
	margin-bottom: 0.85rem;
	color: var(--color-gold-light);
	font-size: clamp(3rem, 7vw, 5.5rem);
}

.page-hero-content > p:last-child {
	max-width: 700px;
	margin: 0 auto;
	font-size: clamp(1.05rem, 2vw, 1.3rem);
	text-wrap: balance;
}

.story-layout,
.facilities-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.9fr);
	align-items: center;
	gap: clamp(2.5rem, 7vw, 6rem);
}

.story-copy h2,
.facilities-copy h2 {
	text-wrap: balance;
}

.story-lead {
	font-size: 1.12rem;
	font-weight: 600;
}

.story-visual {
	min-height: 390px;
	box-shadow: var(--shadow-warm);
}

.story-visual::before,
.facilities-visual::before {
	inset: 0.9rem;
}

.commitment-section .section-heading {
	margin-bottom: 2rem;
}

.values-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.value-item {
	padding: 1.5rem 1.25rem;
	border: 1px solid rgb(156 116 24 / 42%);
	border-top: 3px solid var(--color-gold);
	border-radius: var(--radius-small);
	background: var(--color-white);
	box-shadow: var(--shadow-warm);
}

.value-icon {
	display: grid;
	width: 3rem;
	aspect-ratio: 1;
	margin-bottom: 1rem;
	place-items: center;
	border: 1px solid var(--color-gold);
	border-radius: 50%;
	background: var(--color-ivory);
	color: var(--color-red-dark);
	font-size: 1.2rem;
}

.value-item h3 {
	margin-bottom: 0.55rem;
	font-family: var(--font-body);
	font-size: 1.15rem;
	font-weight: 700;
}

.value-item p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.65;
}

.facilities-layout {
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.85fr);
}

.facilities-copy h2 {
	color: var(--color-gold-light);
}

.facilities-copy .eyebrow {
	color: var(--color-gold-light);
}

.facilities-copy > p:not(.eyebrow) {
	color: var(--color-ivory);
}

.facility-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem 1rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.facility-list li {
	position: relative;
	padding-left: 1.4rem;
	color: var(--color-ivory);
	font-size: 0.92rem;
}

.facility-list li::before {
	position: absolute;
	left: 0;
	color: var(--color-gold-light);
	content: "✦";
}

.facilities-copy > .btn {
	gap: 0.55rem;
	margin-top: 0.25rem;
}

.facilities-visual {
	min-height: 440px;
	border-color: rgb(242 214 117 / 70%);
	background-color: #354153;
}

.facilities-visual::before {
	border-color: rgb(242 214 117 / 45%);
}

.celebrate-section .section-heading {
	margin-bottom: 2rem;
}

.celebrate-section .event-types {
	margin-bottom: 0;
}

@media (max-width: 991.98px) {
	.values-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.page-hero {
		min-height: 380px;
	}

	.page-hero-content {
		padding-block: 4rem;
	}

	.story-layout,
	.facilities-layout {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.story-visual,
	.facilities-visual {
		min-height: 280px;
	}

	.facilities-visual {
		grid-row: 1;
	}

	.values-grid {
		grid-template-columns: 1fr;
		gap: 0.8rem;
	}

	.value-item {
		display: grid;
		grid-template-columns: 3rem 1fr;
		column-gap: 0.9rem;
		padding: 1rem;
	}

	.value-icon {
		grid-row: span 2;
		margin: 0;
	}

	.value-item h3 {
		align-self: end;
		margin-bottom: 0.3rem;
	}

	.value-item p {
		grid-column: 2;
	}

	.facility-list {
		grid-template-columns: 1fr;
	}
}

.packages-intro-inner {
	max-width: 820px;
	text-align: center;
}

.packages-intro-inner h2 {
	text-wrap: balance;
}

.packages-intro-inner > p:last-child {
	margin-bottom: 0;
	font-size: 1.05rem;
}

.event-options-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.event-option {
	min-height: 215px;
	padding: 1.35rem;
	border-top: 2px solid var(--color-gold);
	background: rgb(255 255 255 / 68%);
}

.event-option > i {
	display: inline-grid;
	width: 2.5rem;
	aspect-ratio: 1;
	margin-bottom: 0.9rem;
	place-items: center;
	border: 1px solid var(--color-gold);
	border-radius: 50%;
	color: var(--color-red-dark);
}

.event-option h3 {
	margin-bottom: 0.45rem;
	font-family: var(--font-body);
	font-size: 1.08rem;
	font-weight: 700;
}

.event-option p {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.55;
}

.event-option--wide {
	grid-column: 2 / span 2;
}

.package-grid--details {
	align-items: stretch;
}

.package-grid--details .package-content {
	display: flex;
	flex-direction: column;
}

.package-grid--details .package-content ul {
	flex: 1;
}

.package-grid--details .package-top h3 {
	font-size: clamp(1.4rem, 2.4vw, 2rem);
}

.btn-package {
	display: flex;
	width: 100%;
	gap: 0.5rem;
	margin-top: 1.4rem;
	font-size: 0.86rem;
}

.btn-package--bronze {
	border-color: #70452e;
	background: #70452e;
	color: var(--color-white);
}

.btn-package--silver {
	border-color: #46515c;
	background: #46515c;
	color: var(--color-white);
}

.btn-package--gold {
	border-color: var(--color-gold-dark);
	background: var(--color-gold-dark);
	color: var(--color-white);
}

.btn-package:hover {
	border-color: var(--color-gold-light);
	background: var(--color-gold-light);
	color: var(--color-ink);
}

.comparison-section .section-heading {
	margin-bottom: 2rem;
}

.comparison-table-wrap {
	overflow-x: auto;
	border: 1px solid rgb(156 116 24 / 46%);
	border-radius: var(--radius-small);
	background: var(--color-white);
	box-shadow: var(--shadow-warm);
}

.comparison-table-wrap:focus-visible {
	outline-offset: 4px;
}

.comparison-table {
	width: 100%;
	min-width: 700px;
	border-collapse: collapse;
	font-size: 0.92rem;
}

.comparison-table th,
.comparison-table td {
	padding: 0.8rem 1rem;
	border-bottom: 1px solid rgb(90 58 34 / 14%);
	text-align: center;
}

.comparison-table thead th {
	background: var(--color-navy);
	color: var(--color-ivory);
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 400;
}

.comparison-table thead th:first-child {
	width: 52%;
	text-align: left;
}

.comparison-table tbody th {
	color: var(--color-ink);
	font-weight: 600;
	text-align: left;
}

.comparison-table tbody tr:nth-child(even) {
	background: #fbf8f0;
}

.comparison-table tbody tr:last-child th,
.comparison-table tbody tr:last-child td {
	border-bottom: 0;
}

.comparison-table td {
	width: 16%;
}

.included {
	color: #3c6b3f;
	font-size: 1rem;
}

.not-included {
	color: #74695d;
	font-size: 1.1rem;
}

.service-details-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 2rem;
}

.service-detail {
	padding: 1.2rem 0;
	border-top: var(--border-gold);
}

.service-detail h3 {
	margin-bottom: 0.45rem;
	font-family: var(--font-body);
	font-size: 1.05rem;
	font-weight: 700;
}

.service-detail p {
	margin: 0;
	color: #51443a;
	font-size: 0.91rem;
	line-height: 1.6;
}

.quote-guide-layout {
	display: grid;
	grid-template-columns: minmax(230px, 0.8fr) minmax(0, 1.4fr) auto;
	align-items: center;
	gap: 2rem;
}

.quote-guide-copy h2 {
	margin-bottom: 0.55rem;
}

.quote-guide-copy p:last-child {
	margin: 0;
}

.quote-requirements {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.quote-requirements li {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.9rem;
	font-weight: 600;
}

.quote-requirements i {
	width: 1.2rem;
	color: var(--color-red-dark);
	text-align: center;
}

.quote-guide-button {
	gap: 0.55rem;
	white-space: nowrap;
}

@media (max-width: 991.98px) {
	.event-options-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.event-option--wide {
		grid-column: auto;
	}

	.quote-guide-layout {
		grid-template-columns: 1fr 1.5fr;
		gap: 1.5rem;
	}

	.quote-guide-button {
		grid-column: 2;
		justify-self: start;
	}
}

@media (max-width: 767.98px) {
	.event-options-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.7rem;
	}

	.event-option {
		min-height: 0;
		padding: 1rem;
	}

	.event-option h3 {
		font-size: 0.98rem;
	}

	.event-option p {
		font-size: 0.84rem;
	}

	.service-details-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 1rem;
	}

	.quote-guide-layout {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.quote-guide-button {
		grid-column: auto;
		justify-self: start;
	}
}

@media (max-width: 480px) {
	.event-options-grid,
	.service-details-grid,
	.quote-requirements {
		grid-template-columns: 1fr;
	}

	.quote-guide-button {
		width: 100%;
	}
}

.contact-intro .container-site {
	max-width: 820px;
	text-align: center;
}

.contact-intro h2 {
	text-wrap: balance;
}

.contact-intro .container-site > p:last-child {
	margin-bottom: 0;
	font-size: 1.05rem;
}

.contact-methods-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.contact-method {
	min-width: 0;
	padding: 1.5rem;
	border: 1px solid rgb(156 116 24 / 42%);
	border-top: 3px solid var(--color-gold);
	border-radius: var(--radius-small);
	background: var(--color-white);
	box-shadow: var(--shadow-warm);
}

.contact-method-icon {
	display: grid;
	width: 3rem;
	aspect-ratio: 1;
	margin-bottom: 1rem;
	place-items: center;
	border: 1px solid var(--color-gold);
	border-radius: 50%;
	background: var(--color-ivory);
	color: var(--color-red-dark);
	font-size: 1.15rem;
}

.contact-method h3 {
	margin-bottom: 0.45rem;
	font-family: var(--font-body);
	font-size: 1.15rem;
	font-weight: 700;
}

.contact-method-value {
	display: block;
	min-height: 2.2rem;
	margin-bottom: 0.3rem;
	color: var(--color-ink);
	font-size: 0.96rem;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none;
	word-break: break-word;
}

.contact-method address {
	font-style: normal;
}

.contact-method .text-link {
	margin-top: 0.3rem;
	font-size: 0.86rem;
}

.quote-form-layout {
	display: grid;
	grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.28fr);
	align-items: start;
	gap: clamp(2rem, 7vw, 6rem);
}

.quote-form-copy {
	position: sticky;
	top: 7rem;
}

.quote-form-copy h2 {
	text-wrap: balance;
}

.quote-form-copy > p:last-of-type {
	font-size: 1.05rem;
}

.quote-form-note {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: var(--border-gold);
	color: var(--color-wood-mid);
	font-size: 0.9rem;
}

.quote-form-note i {
	margin-top: 0.25rem;
	color: var(--color-gold-dark);
}

.quote-form {
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid rgb(156 116 24 / 45%);
	border-radius: var(--radius-small);
	background: var(--color-white);
	box-shadow: var(--shadow-warm);
}

.quote-form-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.15rem;
}

.form-field {
	min-width: 0;
}

.form-field--full {
	grid-column: 1 / -1;
}

.form-field label {
	display: block;
	margin-bottom: 0.4rem;
	color: var(--color-ink);
	font-size: 0.88rem;
	font-weight: 700;
}

.quote-form .form-control {
	min-height: 3rem;
	border-color: #a79780;
}

.quote-form textarea.form-control {
	min-height: 9rem;
	resize: vertical;
}

.quote-form .form-control.is-invalid {
	border-color: var(--color-red);
}

.quote-form .form-control.is-invalid:focus {
	box-shadow: 0 0 0 0.2rem rgb(200 16 46 / 16%);
}

.quote-form .text-danger {
	display: block;
	margin-top: 0.3rem;
	font-size: 0.78rem;
}

.quote-submit {
	gap: 0.6rem;
	margin-top: 1.3rem;
}

.location-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 1.4rem;
}

.location-heading h2 {
	margin-bottom: 0;
}

.location-heading address {
	margin: 0;
	font-style: normal;
	text-align: right;
}

@media (max-width: 767.98px) {
	.contact-methods-grid {
		grid-template-columns: 1fr;
	}

	.contact-method {
		display: grid;
		grid-template-columns: 3rem minmax(0, 1fr);
		column-gap: 1rem;
		padding: 1rem;
	}

	.contact-method-icon {
		grid-row: span 3;
		margin: 0;
	}

	.contact-method h3 {
		margin-bottom: 0.2rem;
	}

	.contact-method-value,
	.contact-method .text-link {
		grid-column: 2;
	}

	.quote-form-layout {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.quote-form-copy {
		position: static;
	}

	.location-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.6rem;
	}

	.location-heading address {
		text-align: left;
	}

	.map-placeholder {
		min-height: 300px;
	}
}

@media (max-width: 480px) {
	.quote-form-fields {
		grid-template-columns: 1fr;
		gap: 0.9rem;
	}

	.form-field--full {
		grid-column: auto;
	}

	.quote-submit {
		width: 100%;
	}

	.map-placeholder::after {
		width: calc(100% - 2rem);
		font-size: 0.72rem;
	}
}

.gallery-page-hero .hero-placeholder {
	background-color: #3d3027;
	background-image:
		repeating-linear-gradient(0deg, transparent 0 70px, rgb(245 239 224 / 5%) 71px, transparent 73px),
		repeating-linear-gradient(90deg, transparent 0 190px, rgb(245 239 224 / 4%) 191px, transparent 193px),
	linear-gradient(125deg, #68462e, var(--color-wood) 75%);
}

.gallery-intro-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 2.5rem;
}

.gallery-intro-layout h2 {
	text-wrap: balance;
}

.gallery-intro-layout p:last-child {
	max-width: 760px;
	margin-bottom: 0;
}

.gallery-intro-layout .btn {
	gap: 0.55rem;
	white-space: nowrap;
}

.gallery-page-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 2rem;
}

.gallery-page-heading h2 {
	margin-bottom: 0;
	text-wrap: balance;
}

.gallery-count {
	flex-shrink: 0;
	margin: 0;
	color: var(--color-wood-mid);
	font-size: 0.82rem;
}

.gallery-count span {
	margin-right: 0.25rem;
	color: var(--color-red-dark);
	font-family: var(--font-display);
	font-size: 1.3rem;
}

.gallery-page-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}

.gallery-item {
	position: relative;
	display: flex;
	min-width: 0;
	aspect-ratio: 1.28;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 1rem;
	border: 1px solid var(--color-gold);
	border-radius: var(--radius-small);
	color: var(--color-ivory);
	cursor: pointer;
	isolation: isolate;
	text-align: center;
	transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.gallery-item--01{
	background-image: url('../img/gallery/g-1.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--02{
	background-image: url('../img/gallery/g-2.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--03{
	background-image: url('../img/gallery/g-3.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--04{
	background-image: url('../img/gallery/g-4.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--05{
	background-image: url('../img/gallery/g-5.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--06{
	background-image: url('../img/gallery/g-6.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--07{
	background-image: url('../img/gallery/g-7.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--08{
	background-image: url('../img/gallery/g-8.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--09{
	background-image: url('../img/gallery/g-9.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--10{
	background-image: url('../img/gallery/g-10.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--11{
	background-image: url('../img/gallery/g-11.jpg');
	background-position: center;
	background-size: cover;
}

.gallery-item--12{
	background-image: url('../img/gallery/g-12.jpg');
	background-position: center;
	background-size: cover;
}



.gallery-item::before {
	position: absolute;
	z-index: 2;
	inset: 0.6rem;
	border: 1px dashed rgb(242 214 117 / 52%);
	content: "";
	pointer-events: none;
}

.gallery-item:hover {
	box-shadow: var(--shadow-warm);
	filter: brightness(1.1);
	transform: translateY(-3px);
}

.gallery-item:hover .gallery-item-image {
	transform: scale(1.04);
}

.gallery-item-icon {
	position: absolute;
	z-index: 3;
	top: 50%;
	left: 50%;
	display: grid;
	width: 3rem;
	aspect-ratio: 1;
	place-items: center;
	border: 1px solid rgb(242 214 117 / 75%);
	border-radius: 50%;
	background: rgb(26 18 16 / 24%);
	color: var(--color-gold-light);
	font-size: 1.05rem;
	transform: translate(-50%, -55%);
}

.gallery-item-caption {
	position: absolute;
	z-index: 3;
	right: 1rem;
	bottom: 1rem;
	left: 1rem;
	color: var(--color-white);
	font-family: var(--font-body);
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.35;
	text-shadow: 0 1px 5px rgb(0 0 0 / 65%);
	text-wrap: balance;
}

.gallery-item-number {
	position: absolute;
	z-index: 3;
	top: 0.9rem;
	left: 1rem;
	color: var(--color-gold-light);
	font-family: var(--font-display);
	font-size: 0.75rem;
}

.lg-sub-html h4 {
	color: var(--color-gold-light);
	font-family: var(--font-display);
	font-size: 1.2rem;
}

.lg-sub-html p {
	color: var(--color-ivory);
	font-family: var(--font-body);
}

@media (max-width: 991.98px) {
	.gallery-page-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.gallery-intro-layout {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.gallery-intro-layout .btn {
		justify-self: start;
	}

	.gallery-page-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.65rem;
	}

	.gallery-page-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.65rem;
	}

	.gallery-item {
		aspect-ratio: 0.95;
		padding: 0.7rem;
	}

	.gallery-item::before {
		inset: 0.45rem;
	}

	.gallery-item-icon {
		width: 2.6rem;
	}

	.gallery-item-caption {
		right: 0.7rem;
		bottom: 0.75rem;
		left: 0.7rem;
		font-size: 0.75rem;
	}

	.gallery-item-number {
		top: 0.7rem;
		left: 0.75rem;
	}
}
