/* Gathered theme. Tokens follow the Elementor Kit globals (Site Settings > Global Colors / Fonts),
   with the Framer Palmer values as fallbacks. Breakpoints: tablet <= 1199px, mobile <= 809px. */
:root {
	--gd-black: var(--e-global-color-gd_black, #000000);
	--gd-white: var(--e-global-color-gd_white, #FFFFFF);
	--gd-grey: var(--e-global-color-gd_grey, #999999);
	--gd-light: var(--e-global-color-gd_light_grey, #BBBBBB);
	--gd-dark: var(--e-global-color-gd_dark_grey, #222222);
	--gd-line: var(--e-global-color-gd_line, rgba(187, 187, 187, 0.2));
	--gd-display: var(--e-global-typography-gd_heading_3-font-family, "Inter Display"), "Inter Display", "Inter", system-ui, sans-serif;
	--gd-inter: var(--e-global-typography-gd_body-font-family, "Inter"), "Inter", "Helvetica Neue", system-ui, sans-serif;
	--gd-logo-font: var(--e-global-typography-gd_logo-font-family, "Helvetica Neue"), "Helvetica Neue", Helvetica, Arial, sans-serif;
	--gd-ease: cubic-bezier(0.44, 0, 0.56, 1);
	--gd-spring: cubic-bezier(0.22, 1, 0.36, 1);
	--gd-pad: 24px;
}
@media (max-width: 809px) { :root { --gd-pad: 20px; } }

html { -webkit-text-size-adjust: 100%; }
body.gd {
	margin: 0;
	background: var(--gd-black);
	color: var(--gd-white);
	font-family: var(--gd-inter);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
.gd :where(a) { color: inherit; }
.gd img { max-width: 100%; height: auto; }
.gd-top-anchor { position: absolute; top: 0; left: 0; width: 1px; height: 1px; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.gd-skip:focus { clip: auto; clip-path: none; width: auto; height: auto; z-index: 100; top: 8px; left: 8px; padding: 8px 12px; background: var(--gd-white); color: var(--gd-black); }

/* ---------------------------------------------------------------- header */
.gd-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 10;
	background: var(--gd-black);
	transition: transform 0.45s var(--gd-ease);
	will-change: transform;
}
.admin-bar .gd-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .gd-header { top: 46px; } }
.gd-header.is-hidden { transform: translateY(calc(-100% - 14px)); }
.gd-nav {
	box-sizing: border-box; height: 80px; padding: 20px 24px;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.gd-logo {
	font-family: var(--gd-logo-font);
	font-weight: var(--e-global-typography-gd_logo-font-weight, 500);
	font-size: var(--e-global-typography-gd_logo-font-size, 22px);
	line-height: var(--e-global-typography-gd_logo-line-height, 30.6px);
	letter-spacing: var(--e-global-typography-gd_logo-letter-spacing, -0.3px);
	color: var(--gd-white); text-decoration: none; white-space: nowrap;
}
.gd-nav__items { display: flex; align-items: center; gap: 28px; }
.gd-ig {
	font-family: var(--gd-display); font-weight: 600; font-size: 14px; line-height: 17px; letter-spacing: 0.1px;
	color: var(--gd-white); text-decoration: none; white-space: nowrap;
}
.gd-cta {
	box-sizing: border-box; height: 40px; padding: 12px 18px; border-radius: 999px;
	display: inline-flex; align-items: center; white-space: nowrap;
	background: var(--gd-white); color: var(--gd-black); text-decoration: none;
	font-family: var(--gd-inter); font-weight: 600; font-size: 13px; line-height: 15.6px; letter-spacing: 0.78px;
}
.gd-ig:focus-visible, .gd-cta:focus-visible, .gd-logo:focus-visible { outline: 2px solid var(--gd-white); outline-offset: 3px; }
.gd-header__line { height: 1px; background: var(--gd-line); }
@media (max-width: 809px) {
	.gd-nav { height: 76px; }
	.gd-nav__items { gap: 12px; }
	.gd-ig { font-weight: 400; font-size: 13px; line-height: 13px; letter-spacing: 0; text-transform: uppercase; }
	.gd-cta { height: 36px; padding: 10px 14px; }
}
@media (max-width: 359px) { .gd-ig { display: none; } }

/* ---------------------------------------------------------------- shared type */
.gd-h3 .elementor-heading-title {
	font-feature-settings: "cv01", "cv02", "cv03", "cv04", "cv05", "cv06", "cv08", "cv10", "cv12", "cv13", "ss02", "ss03", "ss07";
}
.gd-pre .elementor-heading-title { white-space: pre-wrap; }
.gd-label .elementor-heading-title { white-space: nowrap; }
.gd-line .elementor-divider { padding: 0 !important; line-height: 0; font-size: 0; }
.gd-line .elementor-divider-separator { border-top-width: 1px; }
.gd-line--soft { opacity: 0.5; }
.gd .e-con.gd-hero, .gd .e-con.gd-hero__title, .gd .e-con.gd-about, .gd .e-con.gd-booking { overflow: hidden; }

/* ---------------------------------------------------------------- hero */
.gd-hero__title { overflow: hidden; }
.gd-wordmark { container-type: inline-size; width: 100%; }
.gd-wordmark .elementor-heading-title {
	/* Framer "Fit 100%": the word fills the column width (25.5cqw with the bundled Inter Display). */
	font-size: 25.5cqw;
	line-height: 0.8085;
	letter-spacing: -0.0385em;
	text-align: center;
	white-space: nowrap;
	font-feature-settings: "salt", "ss01", "ss02", "ss03", "ss04", "ss07";
	display: block;
	height: 20.588cqw; /* Framer's fixed 816x168 text frame */
}
/* Framer scales a 816px-wide frame: each breakpoint's preset size / 8.16 = cqw. */
@media (min-width: 1200px) and (max-width: 1439px) {
	.gd .gd-wordmark .elementor-heading-title { font-size: 19.98cqw; line-height: 1.012; padding-top: 2.08cqw; height: 20.588cqw; box-sizing: border-box; letter-spacing: -0.0482em; }
}
@media (max-width: 1199px) {
	.gd .gd-wordmark .elementor-heading-title { font-size: 15.45cqw; line-height: 0.84375; padding-top: 0.35cqw; box-sizing: border-box; letter-spacing: -0.0469em; }
}
@media (max-width: 809px) {
	.gd .gd-wordmark .elementor-heading-title { font-size: 9.08cqw; line-height: 0.8947; padding-top: 0.6cqw; letter-spacing: -0.0526em; }
}

/* ---------------------------------------------------------------- about */
.gd-bar__row { align-items: flex-start; }
.gd .gd-bar__row > .elementor-widget { flex-shrink: 0; }
.gd .gd-bar__row .elementor-heading-title { white-space: nowrap; }
.gd-parallax, .gd-parallax > .elementor-widget-container { overflow: hidden; border-radius: 10px; }
.gd-parallax img {
	display: block; width: 100%;
	transform-origin: 50% 50%;
}
/* Framer "Parallex Effect": the photo sits (contained) in a box 150% as tall as the frame,
   centred, and drifts up 0.1px per px scrolled. theme.js sets --gd-s (the size of that
   contained photo relative to the frame) and --gd-par (the drift). */
.gd-js .gd-parallax img {
	object-fit: contain !important;
	transform: translate3d(0, var(--gd-par, 0px), 0) scale(var(--gd-s, 1));
	will-change: transform;
}

/* ---------------------------------------------------------------- buttons (Framer "Primary" / "Secondary") */
.gd-btn .elementor-button,
.gd-btn-link {
	position: relative; overflow: hidden; isolation: isolate;
	box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
	padding: 10px 16px; border: 2px solid var(--gd-white); border-radius: 259px;
	background: transparent; color: var(--gd-white); text-decoration: none;
	font-family: var(--e-global-typography-gd_button-font-family, "Inter Display"), "Inter Display", sans-serif;
	font-weight: var(--e-global-typography-gd_button-font-weight, 700);
	font-size: var(--e-global-typography-gd_button-font-size, 23px);
	line-height: var(--e-global-typography-gd_button-line-height, 20px);
	letter-spacing: var(--e-global-typography-gd_button-letter-spacing, -0.3px);
	text-transform: uppercase;
	transition: color 0.35s var(--gd-ease);
	-webkit-tap-highlight-color: transparent;
}
.gd-btn .elementor-button:hover, .gd-btn .elementor-button:focus-visible,
.gd-btn-link:hover, .gd-btn-link:focus-visible { color: var(--gd-black); }
.gd-btn .elementor-button:focus-visible, .gd-btn-link:focus-visible { outline: 2px solid var(--gd-white); outline-offset: 3px; }
.gd-btn .elementor-button .elementor-button-content-wrapper,
.gd-btn .elementor-button .elementor-button-text { position: relative; z-index: 1; }
.gd-filler {
	position: absolute; left: 0; right: 0; top: calc(100% + 4px); height: 100%; z-index: 0;
	background: var(--gd-white); border-radius: 30px; pointer-events: none;
	transition: top 0.45s var(--gd-ease), border-radius 0.45s var(--gd-ease);
}
.gd-btn .elementor-button:hover .gd-filler, .gd-btn .elementor-button:focus-visible .gd-filler,
.gd-btn-link:hover .gd-filler, .gd-btn-link:focus-visible .gd-filler { top: 0; border-radius: 0; }
.gd-roll { position: relative; z-index: 1; display: inline-flex; white-space: pre; }
.gd-ch { display: inline-block; overflow: hidden; height: 1lh; height: var(--gd-lh, 1.2em); vertical-align: top; }
.gd-ch > span { display: block; transition: transform 0.45s var(--gd-ease); transition-delay: calc(var(--i, 0) * 0.018s); }
.gd-btn .elementor-button:hover .gd-ch > span, .gd-btn .elementor-button:focus-visible .gd-ch > span,
.gd-btn-link:hover .gd-ch > span, .gd-btn-link:focus-visible .gd-ch > span { transform: translateY(-100%); }
@media (max-width: 809px) {
	.gd-btn-link {
		padding: 6px 12px;
		font-size: var(--e-global-typography-gd_button-font-size-mobile, 16px);
		line-height: var(--e-global-typography-gd_button-line-height-mobile, 16px);
	}
}

/* ---------------------------------------------------------------- footer */
.gd-footer { padding-top: 180px; background: var(--gd-black); }
.gd-footer__top { display: flex; justify-content: center; padding: 0 var(--gd-pad); }
.gd-footer__bottom { margin-top: 50px; }
.gd-footer__nav { box-sizing: border-box; height: 85px; padding: 24px; }
.gd-footer__line { height: 1px; background: var(--gd-line); }
.gd-footer__title { margin-top: 10px; padding: 0 24px; overflow: hidden; container-type: inline-size; }
.gd-footer__mark {
	margin: 0; color: var(--gd-white);
	font-family: var(--gd-display); font-weight: 600;
	font-size: 32.553cqw;
	line-height: 0.892; letter-spacing: -0.0474em; white-space: nowrap; text-align: center;
	font-feature-settings: "cv01", "cv02", "cv03", "cv04", "cv05", "cv06", "cv07", "cv08", "cv09", "cv10", "cv12", "cv13", "ss01", "ss02", "ss07";
	transform: translate3d(0, var(--gd-rise, 0px), 0);
	transition: transform 0.5s cubic-bezier(.2,.7,.3,1);
}
@media (max-width: 1199px) {
	.gd-footer { padding-top: 120px; }
	.gd-footer__title { padding-bottom: 10px; }
}
@media (max-width: 809px) {
	.gd-footer { padding-top: 80px; }
	.gd-footer__bottom { margin-top: 60px; }
	.gd-footer__nav { height: 77px; padding: 20px; }
	.gd-footer__title { padding: 0 20px 10px; }
}

/* ---------------------------------------------------------------- plain pages (non-Elementor) */
.gd-content { padding: 140px var(--gd-pad) 0; max-width: 1080px; margin: 0 auto; }
.gd-entry__title { font-family: var(--gd-display); font-weight: 500; font-size: 49px; line-height: 50.6px; letter-spacing: -0.8px; margin: 0 0 32px; }
.gd-entry__content { color: var(--gd-light); font-size: 17px; line-height: 1.5; }
.gd-entry__content a { color: var(--gd-white); }
.elementor-page .gd-content, .elementor-template-full-width .gd-content { padding: 0; max-width: none; }

/* ---------------------------------------------------------------- custom cursor */
.gd-cursor {
	position: fixed; top: 0; left: 0; z-index: 13; width: 16px; height: 16px; margin: -8px 0 0 -8px;
	border-radius: 50%; background: #FFFFFF; mix-blend-mode: difference; pointer-events: none;
	opacity: 0; transition: opacity 0.2s linear;
}
.gd-cursor.is-on { opacity: 1; }

/* ---------------------------------------------------------------- intro (Framer appear effects) */
@keyframes gd-drop { from { transform: translate3d(0, -520px, 0); } to { transform: none; } }
@keyframes gd-slide { from { transform: translate3d(-1520px, 0, 0); } to { transform: none; } }
@keyframes gd-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gd-rise { from { opacity: 0; transform: translate3d(0, 45px, 0); } to { opacity: 1; transform: none; } }
.gd-has-intro .gd-wordmark .elementor-heading-title { animation: gd-drop 2.8s cubic-bezier(0.69, 0, 0.05, 0.98) both; }
.gd-has-intro .gd-line--hero .elementor-divider-separator { animation: gd-slide 1.1s var(--gd-spring) 4s both; }
.gd-has-intro .gd-header { animation: gd-fade 0.6s var(--gd-ease) 4s both; }
.gd-has-intro .gd-intro--1 { animation: gd-rise 1s var(--gd-spring) 4.3s both; }
.gd-has-intro .gd-intro--2 { animation: gd-rise 1s var(--gd-spring) 4.35s both; }
.gd-skip-intro .gd-has-intro .gd-wordmark .elementor-heading-title,
.gd-skip-intro .gd-has-intro .gd-line--hero .elementor-divider-separator,
.gd-skip-intro .gd-has-intro .gd-header,
.gd-skip-intro .gd-has-intro .gd-intro--1,
.gd-skip-intro .gd-has-intro .gd-intro--2,
.elementor-editor-active .gd-wordmark .elementor-heading-title,
.elementor-editor-active .gd-line--hero .elementor-divider-separator,
.elementor-editor-active .gd-intro--1,
.elementor-editor-active .gd-intro--2 { animation: none; }

@media (prefers-reduced-motion: reduce) {
	.gd-has-intro .gd-wordmark .elementor-heading-title,
	.gd-has-intro .gd-line--hero .elementor-divider-separator,
	.gd-has-intro .gd-header,
	.gd-has-intro .gd-intro--1,
	.gd-has-intro .gd-intro--2 { animation: none; }
	.gd-ch > span, .gd-filler, .gd-footer__mark, .gd-header { transition: none; }
	.gd-js .gd-parallax img { transform: scale(var(--gd-s, 1)); }
}
.gd .e-con.gd-about__text { min-width: 0; }
