/* Hey Global Events — design details Elementor has no native control for.
   Colours come from Elementor Site Settings, so changing a global colour updates these too. */

html { scroll-behavior: smooth; }
body.hg-site { -webkit-font-smoothing: antialiased; letter-spacing: -0.01em; }
body.hg-site ::selection { background: var(--e-global-color-primary); color: var(--e-global-color-hgcream); }
.hg-site a { text-decoration: none; }
.hg-site .elementor-widget-text-editor p { margin-top: 0; }
.hg-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- accent text (use in any heading: <span class="hg-accent">…</span>) */
.hg-accent { color: var(--e-global-color-primary); }
.hg-lime { color: var(--e-global-color-accent); }
.hg-ink { color: var(--e-global-color-secondary); }
.hg-gradient {
	background: linear-gradient(110deg, var(--e-global-color-primary) 10%, var(--e-global-color-hgcoral2) 55%, #d68a3f 100%);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
}

/* ---------- section backgrounds */
.hg-hero {
	background-image:
		radial-gradient(130% 110% at 15% -10%, rgba(224, 86, 58, .08) 0%, rgba(242, 237, 227, 0) 55%),
		radial-gradient(120% 120% at 100% 0%, rgba(199, 209, 74, .12) 0%, rgba(242, 237, 227, 0) 50%) !important;
}
.hg-pagehero {
	background-image:
		radial-gradient(120% 120% at 20% 0%, rgba(224, 86, 58, .08) 0%, rgba(242, 237, 227, 0) 55%),
		linear-gradient(180deg, var(--e-global-color-hgdeep) 0%, var(--e-global-color-hgbg) 100%) !important;
}

/* ---------- eyebrow label with dot */
.hg-eyebrow .elementor-heading-title { display: flex; align-items: center; gap: 10px; }
.hg-eyebrow .elementor-heading-title::before {
	content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%;
	background: var(--e-global-color-primary);
}
.hg-eyebrow--dark .elementor-heading-title::before { background: var(--e-global-color-accent); }
.hg-eyebrow--lg .elementor-heading-title::before { width: 10px; height: 10px; }
.hg-video-label .elementor-heading-title::before { background: var(--e-global-color-primary); }

/* ---------- max widths */
.hg-mw-xs { max-width: 320px !important; } .hg-mw-sm { max-width: 384px !important; } .hg-mw-md { max-width: 448px !important; }
.hg-mw-lg { max-width: 512px !important; } .hg-mw-xl { max-width: 576px !important; } .hg-mw-2xl { max-width: 672px !important; }
.hg-mw-3xl { max-width: 768px !important; } .hg-mw-180 { max-width: 180px !important; }
.hg-svg-icon .elementor-icon svg, .elementor-icon svg [stroke="currentColor"] { fill: none; }
.hg-center { margin-left: auto !important; margin-right: auto !important; }
.hg-self-start { align-self: flex-start; }
.e-con.hg-auto { --width: auto; width: auto !important; flex: 0 1 auto; }

/* ---------- aspect ratios (images and boxes) */
.elementor-widget.hg-ar img { width: 100%; height: auto; object-fit: cover; display: block; }
.elementor-widget.hg-ar-4-3 img { aspect-ratio: 4 / 3; }
.elementor-widget.hg-ar-16-9 img { aspect-ratio: 16 / 9; }
.elementor-widget.hg-ar-16-10 img { aspect-ratio: 16 / 10; }
.elementor-widget.hg-ar-3-4 img { aspect-ratio: 3 / 4; }
.e-con.hg-ar-4-3 { aspect-ratio: 4 / 3; }
.e-con.hg-ar-16-9 { aspect-ratio: 16 / 9; }

/* ---------- buttons */
.hg-btn .elementor-button-icon { font-size: 13px; transition: transform .3s; transform: rotate(-45deg); }
.hg-btn .elementor-button-icon svg { width: 1em; height: 1em; }
.hg-btn .elementor-button:hover .elementor-button-icon { transform: rotate(-45deg) translateX(3px); }
.hg-btn--flat .elementor-button-icon, .hg-btn--flat .elementor-button:hover .elementor-button-icon { transform: none; }
.hg-btn .elementor-button { transition: background-color .3s, color .3s, border-color .3s; }
.hg-btn-disabled .elementor-button { cursor: not-allowed; pointer-events: none; }
.hg-btn-disabled .elementor-button-content-wrapper,
.elementor-widget-button.elementor-align-justify .elementor-button-content-wrapper { justify-content: center; }

/* full-width text link with hairline ("Plan your event  →") */
.hg-linkrow .elementor-button {
	display: flex; width: 100%; background: transparent !important;
	border-top: 1px solid var(--e-global-color-hgline) !important; transition: color .3s;
}
.hg-linkrow .elementor-button-content-wrapper { width: 100%; justify-content: space-between !important; }
.hg-linkrow .elementor-button-icon { font-size: 15px; transition: transform .3s; }
.hg-linkrow .elementor-button-icon svg { width: 1em; height: 1em; }
.hg-linkrow--down .elementor-button { padding-bottom: 20px !important; border-bottom: 1px solid var(--e-global-color-hgline) !important; }
.hg-linkrow--down .elementor-button-icon { transform: rotate(45deg); color: var(--e-global-color-primary); }
.hg-linkrow--down .elementor-button-icon svg { fill: var(--e-global-color-primary); }
.hg-linkrow--down .elementor-button:hover .elementor-button-icon { transform: rotate(45deg) translateX(3px); }
.hg-card-hover:hover .hg-linkrow .elementor-button { color: var(--e-global-color-primary) !important; }
.hg-card-hover:hover .hg-linkrow .elementor-button svg { fill: var(--e-global-color-primary); }
.hg-textlink a:hover { color: var(--e-global-color-primary) !important; }
.hg-hover-coral a { transition: color .3s; }
.hg-hover-coral a:hover { color: var(--e-global-color-primary) !important; }
.hg-inline-link a { color: var(--e-global-color-primary); text-decoration: underline; }

/* ---------- pills (Icon List widget, inline) */
.hg-pills .elementor-icon-list-items { display: flex !important; flex-wrap: wrap; gap: 8px; margin: 0 !important; }
.hg-pills .elementor-icon-list-item {
	margin: 0 !important; padding: 6px 14px !important; line-height: 1.2;
	border: 1.5px solid var(--e-global-color-hgline); border-radius: 999px; transition: all .3s;
}
.hg-pills .elementor-icon-list-item::after { display: none !important; }
.hg-pills .elementor-icon-list-item > a { padding: 0 !important; }
.hg-pills--dark .elementor-icon-list-item { border-color: var(--e-global-color-hglined); }
.hg-pills--md .elementor-icon-list-items, .hg-pills--big .elementor-icon-list-items { gap: 10px; }
.hg-pills--md .elementor-icon-list-item { padding: 8px 16px !important; }
.hg-pills--big .elementor-icon-list-item { padding: 10px 16px !important; }
.hg-pills--hover .elementor-icon-list-item:hover { background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); }
.hg-pills--hover .elementor-icon-list-item:hover .elementor-icon-list-text { color: var(--e-global-color-hgcream) !important; }

/* ---------- check lists */
.hg-checks .elementor-icon-list-item { align-items: flex-start !important; }
.hg-checks .elementor-icon-list-icon { padding-top: 3px; }
.hg-checks--rows .elementor-icon-list-item {
	border-top: 1px solid var(--e-global-color-hgline); padding: 16px 0 !important; margin: 0 !important; align-items: center !important;
}
.hg-checks--rows .elementor-icon-list-icon { padding-top: 0; }
.hg-checks--grid .elementor-icon-list-items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 32px; }
.hg-checks--grid .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.hg-checks--grid .elementor-icon-list-item::after { display: none !important; }
@media (max-width: 1024px) { .hg-checks--grid .elementor-icon-list-items { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .hg-checks--grid .elementor-icon-list-items { grid-template-columns: 1fr; } }

/* footer link lists */
.hg-linklist .elementor-icon-list-item a { transition: color .3s; }

/* ---------- "What we do" rows */
.hg-row { color: inherit; }
.hg-row-title .elementor-heading-title { transition: color .3s; }
.hg-row:hover .hg-row-title .elementor-heading-title { color: var(--e-global-color-primary) !important; }
.hg-arrow-circle .elementor-icon { border-color: var(--e-global-color-hgline) !important; transition: background-color .3s, border-color .3s; }
.hg-row:hover .hg-arrow-circle .elementor-icon { background: var(--e-global-color-primary); border-color: var(--e-global-color-primary) !important; }

/* ---------- dry hire bar rows */
.hg-barrow { transition: background-color .3s; cursor: pointer; }
.hg-barrow:hover { background-color: var(--e-global-color-hgcard); }
.hg-barrow:hover .hg-row-title .elementor-heading-title { color: var(--e-global-color-primary) !important; }
.hg-barrow > .e-con { flex: 1 1 auto !important; width: auto !important; }
.hg-cap { flex: none !important; }
.hg-cap .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
	background: var(--e-global-color-primary); border-radius: 999px; padding: 8px 16px;
}
.hg-cap .elementor-heading-title::after { content: "→"; font-size: 13px; letter-spacing: 0; }
@media (max-width: 480px) { .hg-cap .elementor-heading-title { white-space: normal; } }

/* ---------- badges & chips */
.hg-badge .elementor-heading-title { display: inline-block; background: var(--e-global-color-primary); border-radius: 999px; padding: 4px 12px; }
.hg-tile { position: relative; overflow: hidden; }
.hg-chip { position: absolute !important; right: 12px; bottom: 12px; width: auto !important; }
.hg-chip .elementor-heading-title { background: var(--e-global-color-hgcream); border-radius: 4px; padding: 4px 10px; }

/* ---------- hero stamp */
.e-con.hg-stamp {
	--width: 150px; width: 150px !important; height: 110px; flex: none;
	border: 1.5px solid var(--e-global-color-hgline); border-radius: 50%;
	transform: rotate(-6deg); margin: 0 0 32px auto !important; gap: 2px;
}
@media (max-width: 639px) { .e-con.hg-stamp { margin-left: 0 !important; } }

/* ---------- video boxes */
.hg-video { position: relative; overflow: hidden; }
.hg-video::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
	background: linear-gradient(180deg, rgba(28, 23, 18, .15) 0%, rgba(28, 23, 18, 0) 40%, rgba(28, 23, 18, .55) 100%);
}
.hg-video-label { position: absolute !important; left: 24px; bottom: 20px; z-index: 2; width: auto !important; }

/* ---------- caption band */
.hg-band .hg-line { flex: 1 1 auto !important; height: 1px; min-height: 1px; width: auto !important; }
@media (max-width: 639px) { .hg-band .hg-line { display: none; } }

/* ---------- ticker */
.hg-ticker-wrap { overflow: hidden; }
.hg-ticker .elementor-icon-list-items {
	display: inline-flex !important; flex-wrap: nowrap !important; white-space: nowrap; width: max-content;
	margin: 0 !important; animation: hgTicker 26s linear infinite;
}
.hg-ticker .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.hg-ticker .elementor-icon-list-item::after { display: none !important; }
.hg-ticker .elementor-icon-list-text { padding-left: 32px !important; display: inline-flex; align-items: center; }
.hg-ticker .elementor-icon-list-text::after {
	content: "✦"; margin-left: 32px; font-size: 14px; font-weight: 400; letter-spacing: 0;
	color: var(--e-global-color-accent);
}
@keyframes hgTicker { to { transform: translateX(-50%); } }

/* ---------- carousel */
.hg-carousel { border: 1px solid var(--e-global-color-hgline); border-radius: 12px; overflow: hidden; background: var(--e-global-color-hgcard); }
.hg-carousel .swiper-slide-inner { position: relative; margin: 0; }
.hg-carousel .swiper-slide-image { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.hg-carousel .swiper-slide-inner::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(28, 23, 18, 0) 55%, rgba(28, 23, 18, .72) 100%);
}
.hg-carousel .elementor-image-carousel-caption { position: absolute; left: 24px; right: 24px; bottom: 20px; z-index: 2; text-align: left; }
.hg-carousel .elementor-swiper-button {
	width: 44px; height: 44px; border-radius: 50%; background: rgba(243, 236, 223, .85);
	display: flex; align-items: center; justify-content: center;
}
.hg-carousel .swiper-pagination { position: static !important; padding: 16px 0; }
.hg-carousel .swiper-pagination-bullet { transition: width .3s; }
.hg-carousel .swiper-pagination-bullet-active { width: 24px !important; border-radius: 999px !important; }

/* ---------- reveal animation (Elementor "Fade In Up", softened to match the design) */
@keyframes hgFadeUp { from { opacity: 0; transform: translate3d(0, 28px, 0); } to { opacity: 1; transform: none; } }
.elementor-element.animated.fadeInUp { animation-name: hgFadeUp; animation-duration: .9s !important; animation-timing-function: cubic-bezier(.16, 1, .3, 1); }

/* ---------- alternate image side (Experiences) */
@media (min-width: 1025px) { .hg-flip > :first-child { order: 2; } }

/* ---------- header */
.hg-header {
	position: fixed !important; top: 0; left: 0; right: 0; z-index: 50;
	background-color: rgba(243, 236, 223, .70);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border-bottom: 1px solid transparent; transition: all .3s;
}
.admin-bar .hg-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hg-header { top: 46px; } }
.hg-header.hg-scrolled {
	background-color: rgba(243, 236, 223, .90); border-bottom-color: var(--e-global-color-hgline);
	box-shadow: 0 10px 30px -18px rgba(28, 23, 18, .25); --padding-top: 12px !important; --padding-bottom: 12px !important;
}
.hg-header .hg-logo img { transition: width .3s; }
.hg-header > .e-con-inner { transition: padding .3s; }
.hg-header.hg-scrolled .hg-logo img { width: 95px !important; }
body.elementor-editor-active .hg-header { position: relative !important; top: 0; }

/* Pro Nav Menu */
.hg-nav .elementor-nav-menu--main .elementor-item { font-weight: 600; }
.hg-nav .sub-arrow { color: var(--e-global-color-primary); font-weight: 400; }
.hg-nav .sub-arrow svg { fill: var(--e-global-color-primary); }
.hg-nav .elementor-nav-menu--main .sub-menu {
	min-width: 256px !important; padding: 8px !important; border-radius: 8px; overflow: hidden;
	background: var(--e-global-color-hgcard); border: 1px solid var(--e-global-color-hgline);
	box-shadow: 0 24px 60px -28px rgba(23, 20, 15, .5);
}
.hg-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item { border-radius: 6px; }
.hg-nav .elementor-nav-menu--main .hg-menu-cta { display: none !important; }
.hg-nav .elementor-nav-menu--dropdown { background: var(--e-global-color-hgcard); border-top: 1px solid var(--e-global-color-hgline); }
.hg-nav .elementor-nav-menu--dropdown a { border-bottom: 1px solid var(--e-global-color-hgline); font-weight: 700 !important; font-size: 15px !important; color: var(--e-global-color-secondary) !important; }
.hg-nav .elementor-nav-menu--dropdown .hg-menu-cta a {
	justify-content: center; margin: 16px 0 8px; border-radius: 999px; border: 0;
	background: var(--e-global-color-primary) !important; color: var(--e-global-color-hgcream) !important;
	font-size: 12px !important; font-weight: 800 !important; text-transform: uppercase; letter-spacing: .12em;
}

/* ---------- popups (Dry Hire bar previews) */
.elementor-popup-modal .dialog-widget-content { border-radius: 16px; overflow: hidden; border: 1px solid var(--e-global-color-hgline); }
.elementor-popup-modal .dialog-close-button {
	width: 36px; height: 36px; top: 16px !important; right: 16px !important; border-radius: 50%;
	background: rgba(243, 236, 223, .9); display: flex; align-items: center; justify-content: center;
}
