/**
 * From Deed to Key — site styles.
 *
 * 1. Base & typography
 * 2. Header / navigation
 * 3. Footer
 * 4. Elementor section library (classes applied to Elementor containers / widgets)
 * 5. WooCommerce touches
 *
 * Elementor section classes are applied under Advanced → CSS Classes. Selectors use
 * `.elementor .elementor-element.e-con.<class>` so they win over Elementor's generated
 * per-element defaults while still letting editors override with element settings.
 * Tokens (--fdtk-*) are defined in the Core plugin's components.css and mirror the
 * Elementor Global Colors / Fonts.
 */

/* 1. Base ---------------------------------------------------------------- */
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; background: var(--fdtk-white, #fff); color: var(--fdtk-ink); font: 400 16px/1.65 var(--fdtk-font-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, h4 { font-family: var(--fdtk-font-heading); font-weight: 400; line-height: 1.08; color: var(--fdtk-ink); letter-spacing: -.01em; }
h1 { font-size: clamp(44px, 6.6vw, 88px); }
h2 { font-size: clamp(34px, 4.2vw, 58px); }
h3 { font-size: clamp(22px, 2vw, 26px); }
a { color: var(--fdtk-sage); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--fdtk-gold); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: 12px; left: 12px; z-index: 1000; width: auto; height: auto; clip: auto; padding: 12px 18px; background: var(--fdtk-white); color: var(--fdtk-ink); border-radius: 8px; box-shadow: var(--fdtk-shadow); }
.site-main, .page-content { font-size: 17px; }
/* Default (non-Elementor) pages: Hello's .site-main gets brand spacing. */
body:not(.elementor-page) .site-main { max-width: calc(860px + 2 * var(--fdtk-gutter)); margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--fdtk-gutter); }
body:not(.elementor-page) .site-main .page-header .entry-title { font-size: clamp(38px, 5vw, 60px); margin: 0 0 24px; }
body.woocommerce-page:not(.elementor-page) .site-main, body.woocommerce:not(.elementor-page) .site-main { max-width: calc(var(--fdtk-max) + 2 * var(--fdtk-gutter)); }

/* 2. Header ---------------------------------------------------------------- */
:root {
	--fdtk-ja-yellow: #f7c51e;
	--fdtk-ja-yellow-deep: #e2ae0a;
	--fdtk-ja-green: #0b7a3b;
	--fdtk-ja-green-deep: #08602e;
	--fdtk-ja-ink: #1b1d1c;
	--fdtk-topbar-bg: #22262a;
	--fdtk-font-display: "Bebas Neue", "Oswald", Impact, "Arial Narrow", sans-serif;
}
.fdtk-topbar { position: relative; z-index: 52; background: var(--fdtk-topbar-bg); color: #e9ece9; font-size: 14px; }
.fdtk-topbar__inner { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-left: calc(var(--fdtk-gutter) + 230px); }
.fdtk-topbar__contact, .fdtk-topbar__social { list-style: none; display: flex; align-items: center; gap: 32px; margin: 0; padding: 0; }
.fdtk-topbar__contact li, .fdtk-topbar__contact a { display: inline-flex; align-items: center; gap: 10px; color: #e9ece9; text-decoration: none; }
.fdtk-topbar__contact a:hover { color: var(--fdtk-ja-yellow); }
.fdtk-topbar__contact .fdtk-ui-icon { color: var(--fdtk-ja-yellow); width: 20px; height: 20px; }
.fdtk-topbar__motto { letter-spacing: .02em; }
.fdtk-topbar__right { display: flex; align-items: center; gap: 30px; }
.fdtk-topbar__account { margin: 0; display: flex; gap: 8px; font-weight: 700; }
.fdtk-topbar__account a { color: #fff; text-decoration: none; }
.fdtk-topbar__account a:hover { color: var(--fdtk-ja-yellow); }
.fdtk-topbar__account span { color: #9aa19c; font-weight: 400; }
.fdtk-topbar__social { gap: 18px; }
.fdtk-topbar__social a { display: grid; place-items: center; color: #fff; }
.fdtk-topbar__social a:hover { color: var(--fdtk-ja-yellow); }

.fdtk-header { position: sticky; top: 0; z-index: 50; background: var(--fdtk-ja-yellow); box-shadow: 0 2px 0 rgba(0,0,0,.06); }
.admin-bar .fdtk-header { top: 32px; }
.fdtk-header__inner { position: relative; min-height: 90px; display: flex; align-items: center; gap: 8px; padding-left: calc(var(--fdtk-gutter) + 214px); }

/* Logo badge: white organic shape overlapping the top bar and the hero. */
.fdtk-badge-logo { position: absolute; z-index: 3; left: calc(var(--fdtk-gutter) - 12px); top: -50px; width: 226px; height: 196px; display: grid; place-items: center; padding: 26px 24px 30px; text-decoration: none; transition: transform .25s ease, width .25s ease, height .25s ease, top .25s ease; }
.fdtk-badge-logo::before, .fdtk-badge-logo::after { content: ""; position: absolute; inset: 0; border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; }
.fdtk-badge-logo::after { background: var(--fdtk-ja-yellow-deep); transform: translate(6px, 10px) rotate(-4deg); z-index: -2; }
.fdtk-badge-logo::before { background: #fff; z-index: -1; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.fdtk-badge-logo img, .fdtk-header .fdtk-badge-logo__img { display: block; width: 100%; max-width: 172px; height: auto; }
.fdtk-badge-logo:focus-visible { outline: 3px solid var(--fdtk-ja-green); outline-offset: 4px; border-radius: 40%; }

.fdtk-nav { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.fdtk-menu { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; }
.fdtk-menu > li { position: relative; }
.fdtk-menu a { display: flex; align-items: center; gap: 6px; padding: 12px 7px; color: var(--fdtk-ja-ink); font: 700 14.5px/1.2 var(--fdtk-font-body); text-decoration: none; border-radius: 8px; white-space: nowrap; transition: color .15s ease, background-color .15s ease; }
.fdtk-menu > li > a:hover, .fdtk-menu > .current-menu-item > a, .fdtk-menu > .current-menu-ancestor > a { color: var(--fdtk-ja-green); background: rgba(255,255,255,.28); }
.fdtk-menu .menu-item-has-children > a::after { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: .8; }
.fdtk-menu .sub-menu { list-style: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 250px; margin: 0; padding: 10px; background: #fff; border-top: 3px solid var(--fdtk-ja-green); border-radius: 0 0 14px 14px; box-shadow: 0 18px 40px rgba(0,0,0,.16); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s ease, transform .15s ease, visibility .15s; }
.fdtk-menu li:hover > .sub-menu, .fdtk-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.fdtk-menu .sub-menu a { padding: 11px 12px; font-weight: 600; font-size: 15px; }
.fdtk-menu .sub-menu a:hover { background: #fdf6dc; color: var(--fdtk-ja-green); }
.fdtk-header__cta { display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 18px; border-radius: 8px; background: var(--fdtk-ja-green); color: #fff; font: 800 16px/1 var(--fdtk-font-body); text-decoration: none; white-space: nowrap; box-shadow: 0 6px 16px rgba(11,122,59,.3); transition: background-color .15s ease, transform .15s ease; }
.fdtk-header__cta:hover, .fdtk-header__cta:focus-visible { background: var(--fdtk-ja-green-deep); color: #fff; transform: translateY(-1px); }
.fdtk-header__cta .fdtk-ui-icon { color: var(--fdtk-ja-yellow); }
button.fdtk-search-toggle, button.fdtk-search-toggle:hover, button.fdtk-search-toggle:focus { display: grid; place-items: center; width: 48px; height: 48px; margin-left: 4px; padding: 0; border: 0; border-left: 2px dotted rgba(27,29,28,.35); border-radius: 0; background: transparent; color: var(--fdtk-ja-ink); cursor: pointer; }
button.fdtk-search-toggle .fdtk-ui-icon { width: 24px; height: 24px; margin-left: 14px; }
button.fdtk-search-toggle:focus-visible { outline: 3px solid var(--fdtk-ja-green); outline-offset: 2px; }
.fdtk-search-panel { background: var(--fdtk-ja-ink); padding: 18px 0; }
.fdtk-search-panel__form { display: flex; gap: 10px; padding-left: calc(var(--fdtk-gutter) + 230px); }
.fdtk-search-panel input[type="search"] { flex: 1; min-height: 52px; padding: 0 18px; border: 0; border-radius: 8px; font: 500 16px var(--fdtk-font-body); }
.fdtk-search-panel button { min-height: 52px; padding: 0 24px; border: 0; border-radius: 8px; background: var(--fdtk-ja-yellow); color: var(--fdtk-ja-ink); font: 800 15px var(--fdtk-font-body); cursor: pointer; }

/* Scrolled: compact badge. */
.fdtk-scrolled .fdtk-badge-logo { top: -6px; width: 168px; height: 112px; padding: 14px 20px 18px; }
.fdtk-scrolled .fdtk-badge-logo img { max-width: 128px; }

button.fdtk-nav-toggle, button.fdtk-nav-toggle:hover, button.fdtk-nav-toggle:focus { display: none; margin-left: auto; width: 50px; height: 50px; padding: 0; border: 2px solid var(--fdtk-ja-ink); border-radius: 10px; background: transparent; color: var(--fdtk-ja-ink); cursor: pointer; }
button.fdtk-nav-toggle:focus-visible { outline: 3px solid var(--fdtk-ja-green); outline-offset: 2px; }
.fdtk-nav-toggle__bars, .fdtk-nav-toggle__bars::before, .fdtk-nav-toggle__bars::after { display: block; width: 22px; height: 2.5px; margin: 0 auto; background: var(--fdtk-ja-ink); border-radius: 2px; position: relative; transition: transform .2s ease; }
.fdtk-nav-toggle__bars::before, .fdtk-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.fdtk-nav-toggle__bars::before { top: -7px; }
.fdtk-nav-toggle__bars::after { top: 7px; }
.fdtk-nav-open .fdtk-nav-toggle__bars { background: transparent; }
.fdtk-nav-open .fdtk-nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.fdtk-nav-open .fdtk-nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1400px) {
	.fdtk-menu a { padding: 12px 5px; font-size: 14px; }
	.fdtk-menu .menu-item-has-children > a::after { width: 6px; height: 6px; }
}
@media (max-width: 1280px) {
	.fdtk-menu a { padding: 12px 5px; font-size: 13.5px; }
	.fdtk-header__cta { padding: 0 18px; min-height: 50px; font-size: 15px; }
	.fdtk-badge-logo { width: 200px; height: 176px; }
	.fdtk-topbar__inner, .fdtk-search-panel__form, .fdtk-header__inner { padding-left: calc(var(--fdtk-gutter) + 196px); }
}
@media (max-width: 1240px) {
	.fdtk-topbar__hours { display: none; }
	button.fdtk-nav-toggle, button.fdtk-nav-toggle:hover, button.fdtk-nav-toggle:focus { display: block; }
	button.fdtk-search-toggle { order: 3; }
	.fdtk-header__inner { min-height: 76px; justify-content: flex-end; gap: 10px; padding-left: var(--fdtk-gutter); }
	.fdtk-badge-logo { top: -40px; width: 170px; height: 146px; padding: 20px 18px 24px; }
	.fdtk-badge-logo img { max-width: 128px; }
	.fdtk-scrolled .fdtk-badge-logo { top: -4px; width: 140px; height: 90px; }
	.fdtk-scrolled .fdtk-badge-logo img { max-width: 104px; }
	.fdtk-topbar__inner, .fdtk-search-panel__form { padding-left: calc(var(--fdtk-gutter) + 160px); }
	.fdtk-nav-open .fdtk-header { box-shadow: none; }
	.fdtk-nav { display: none; position: fixed; inset: var(--fdtk-nav-top, 124px) 0 0 0; z-index: 49; flex-direction: column; align-items: stretch; gap: 20px; margin: 0; padding: 70px var(--fdtk-gutter) 40px; background: #fff; overflow-y: auto; }
	.fdtk-nav-open .fdtk-nav { display: flex; }
	.fdtk-nav-open { overflow: hidden; }
	.fdtk-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.fdtk-menu a { padding: 15px 4px; font-size: 18px; border-bottom: 1px solid #ece6d4; border-radius: 0; }
	.fdtk-menu > li > a:hover { background: transparent; }
	.fdtk-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 16px; background: transparent; min-width: 0; }
	.fdtk-menu .sub-menu a { font-size: 16px; }
	.fdtk-menu .menu-item-has-children > a::after { display: none; }
	.fdtk-header__cta { justify-content: center; min-height: 56px; }
}
@media (max-width: 782px) { .admin-bar .fdtk-header { top: 0; } }
@media (max-width: 640px) {
	.fdtk-topbar { font-size: 13px; }
	.fdtk-topbar__inner { min-height: 42px; padding-left: calc(var(--fdtk-gutter) + 118px); gap: 12px; }
	.fdtk-topbar__contact li:not(:first-child), .fdtk-topbar__social, .fdtk-topbar__contact .fdtk-topbar__motto { display: none; }
	.fdtk-topbar__right { margin-left: auto; }
	.fdtk-header__inner { min-height: 66px; }
	.fdtk-badge-logo { left: calc(var(--fdtk-gutter) - 8px); top: -34px; width: 132px; height: 116px; padding: 16px 14px 20px; }
	.fdtk-badge-logo img { max-width: 100px; }
	.fdtk-scrolled .fdtk-badge-logo { top: -2px; width: 116px; height: 72px; padding: 10px 14px 14px; }
	.fdtk-scrolled .fdtk-badge-logo img { max-width: 84px; }
	.fdtk-search-panel__form { padding-left: var(--fdtk-gutter); }
	button.fdtk-search-toggle .fdtk-ui-icon { margin-left: 6px; }
	button.fdtk-search-toggle, button.fdtk-search-toggle:hover, button.fdtk-search-toggle:focus { border-left: 0; width: 44px; }
}

/* Hero slider ---------------------------------------------------------------- */
.fdtk-hs { position: relative; overflow: hidden; background: #141615; color: #fff; isolation: isolate; }
.fdtk-hs__track { display: grid; }
.fdtk-hs__slide { grid-area: 1 / 1; position: relative; display: flex; align-items: center; min-height: clamp(560px, 82vh, 760px); opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.fdtk-hs__slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.fdtk-hs__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.06); transition: transform 8s ease-out; }
.fdtk-hs__slide.is-active .fdtk-hs__bg { transform: scale(1); }
.fdtk-hs__bg--right { object-position: 75% center; }
.fdtk-hs__bg--left { object-position: 25% center; }
.fdtk-hs__bg--top { object-position: center 20%; }
.fdtk-hs__bg--bottom { object-position: center 80%; }
.fdtk-hs__slide::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(14,15,14,.88) 0%, rgba(14,15,14,.72) 38%, rgba(14,15,14,.22) 72%, rgba(14,15,14,.1) 100%), linear-gradient(0deg, rgba(14,15,14,.55), transparent 35%); }
.fdtk-hs__inner { width: 100%; max-width: calc(var(--fdtk-max) + 2 * var(--fdtk-gutter)); margin: 0 auto; padding: clamp(110px, 12vw, 150px) var(--fdtk-gutter) clamp(130px, 12vw, 150px); }
.fdtk-hs__copy { max-width: 640px; }
.fdtk-hs__kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--fdtk-ja-yellow); font: 800 13px/1.3 var(--fdtk-font-body); letter-spacing: .16em; text-transform: uppercase; }
.fdtk-hs__kicker::before { content: ""; width: 28px; height: 3px; background: var(--fdtk-ja-green); }
.fdtk-hs__logo { display: block; width: min(100%, 560px); height: auto; filter: drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 8px 18px rgba(0,0,0,.45)); }
.fdtk-hs__rule { display: block; width: min(100%, 560px); height: 4px; margin: 22px 0 18px; background: var(--fdtk-ja-green); border-radius: 2px; }
.fdtk-hs__title { margin: 0; color: #fff; font: 400 clamp(44px, 6.2vw, 82px)/1 var(--fdtk-font-heading); letter-spacing: -.02em; text-shadow: 0 4px 24px rgba(0,0,0,.35); }
.fdtk-hs__title em { color: var(--fdtk-ja-yellow); }
.fdtk-hs__title--display { font: 400 clamp(40px, 5.4vw, 72px)/.95 var(--fdtk-font-display); letter-spacing: .01em; text-transform: uppercase; }
.fdtk-hs__text { max-width: 560px; margin: 18px 0 0; font-size: 18px; line-height: 1.6; color: #e8ebe8; }
.fdtk-hs__meta { list-style: none; display: flex; flex-wrap: wrap; align-items: stretch; gap: 18px 0; margin: 28px 0 0; padding: 0; }
.fdtk-hs__meta li { display: flex; align-items: center; gap: 16px; padding-right: 28px; }
.fdtk-hs__meta li + li { padding-left: 28px; border-left: 2px solid rgba(255,255,255,.35); }
.fdtk-hs__icon { flex: none; color: var(--fdtk-ja-yellow); }
.fdtk-hs__meta strong { display: block; font: 800 19px/1.2 var(--fdtk-font-body); letter-spacing: .01em; text-transform: uppercase; color: #fff; }
.fdtk-hs__meta small { display: block; margin-top: 4px; font-size: 14px; color: #dde2de; }
.fdtk-hs__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.fdtk-hs__btn { display: inline-flex; align-items: center; gap: 12px; min-height: 64px; padding: 0 30px 0 38px; border-radius: 6px; background: var(--fdtk-ja-yellow); color: var(--fdtk-ja-ink); font: 800 19px/1 var(--fdtk-font-body); text-decoration: none; box-shadow: 0 10px 24px rgba(0,0,0,.25); transition: background-color .15s ease, transform .15s ease; }
.fdtk-hs__btn:hover, .fdtk-hs__btn:focus-visible { background: #ffd43b; color: var(--fdtk-ja-ink); transform: translateY(-2px); }
.fdtk-hs__btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.fdtk-hs__btn--ghost { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.7); box-shadow: none; padding: 0 30px; }
.fdtk-hs__btn--ghost:hover, .fdtk-hs__btn--ghost:focus-visible { background: rgba(255,255,255,.12); color: #fff; }
.fdtk-hs__controls { position: absolute; z-index: 5; left: 0; right: 0; bottom: 76px; display: flex; align-items: center; justify-content: flex-end; gap: 12px; max-width: calc(var(--fdtk-max) + 2 * var(--fdtk-gutter)); margin: 0 auto; padding: 0 var(--fdtk-gutter); pointer-events: none; }
.fdtk-hs__controls > * { pointer-events: auto; }
.fdtk-hs button.fdtk-hs__arrow, .fdtk-hs button.fdtk-hs__arrow:hover, .fdtk-hs button.fdtk-hs__arrow:focus, .fdtk-hs button.fdtk-hs__pause, .fdtk-hs button.fdtk-hs__pause:hover, .fdtk-hs button.fdtk-hs__pause:focus { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 2px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(0,0,0,.25); color: #fff; cursor: pointer; transition: background-color .15s ease, border-color .15s ease; }
.fdtk-hs button.fdtk-hs__arrow:hover, .fdtk-hs button.fdtk-hs__pause:hover { background: var(--fdtk-ja-yellow); border-color: var(--fdtk-ja-yellow); color: var(--fdtk-ja-ink); }
.fdtk-hs button:focus-visible { outline: 3px solid var(--fdtk-ja-yellow); outline-offset: 2px; }
.fdtk-hs__pause span { width: 12px; height: 14px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; }
.fdtk-hs__pause.is-paused span { width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent currentColor; margin-left: 4px; }
.fdtk-hs__dots { display: flex; gap: 8px; margin: 0 6px; }
.fdtk-hs button.fdtk-hs__dot, .fdtk-hs button.fdtk-hs__dot:hover, .fdtk-hs button.fdtk-hs__dot:focus { width: 12px; height: 12px; padding: 0; border: 2px solid #fff; border-radius: 999px; background: transparent; cursor: pointer; transition: width .3s ease, background-color .3s ease; }
.fdtk-hs button.fdtk-hs__dot.is-active { width: 34px; background: var(--fdtk-ja-yellow); border-color: var(--fdtk-ja-yellow); }

/* Quick search band under the slider */
.elementor .elementor-element.e-con.fdtk-searchband { --padding-top: 0px; --padding-bottom: 0px; --padding-left: var(--fdtk-gutter); --padding-right: var(--fdtk-gutter); --container-max-width: var(--fdtk-max); position: relative; z-index: 6; margin-top: -48px; }
.fdtk-searchband .fdtk-search--inline { grid-template-columns: auto 1fr 1fr 1.2fr auto; border-top: 5px solid var(--fdtk-ja-yellow); border-radius: 14px; padding: 20px 22px; box-shadow: 0 24px 50px rgba(0,0,0,.18); }
.fdtk-searchband .fdtk-search--inline::before { content: "Find a professional"; align-self: center; padding-right: 10px; font: 400 24px/1.1 var(--fdtk-font-heading); color: var(--fdtk-ink); white-space: nowrap; }
.fdtk-searchband .fdtk-search .fdtk-btn.fdtk-btn--gold { background: var(--fdtk-ja-green); color: #fff; border-radius: 8px; }
.fdtk-searchband .fdtk-search .fdtk-btn.fdtk-btn--gold:hover { background: var(--fdtk-ja-green-deep); color: #fff; }

@media (max-width: 1024px) {
	.fdtk-searchband .fdtk-search--inline { grid-template-columns: 1fr 1fr; }
	.fdtk-searchband .fdtk-search--inline::before { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
	.fdtk-hs__slide { min-height: 640px; align-items: flex-end; }
	.fdtk-hs__slide::before { background: linear-gradient(0deg, rgba(14,15,14,.94) 0%, rgba(14,15,14,.78) 50%, rgba(14,15,14,.35) 100%); }
	.fdtk-hs__inner { padding-top: 120px; padding-bottom: 112px; }
	.fdtk-hs__meta li { padding-right: 0; width: 100%; }
	.fdtk-hs__meta li + li { padding-left: 0; border-left: 0; }
	.fdtk-hs__btn { width: 100%; justify-content: center; min-height: 58px; font-size: 17px; }
	.fdtk-hs__controls { justify-content: center; bottom: 46px; }
	.fdtk-hs button.fdtk-hs__arrow { display: none; }
	.elementor .elementor-element.e-con.fdtk-searchband { margin-top: -28px; }
	.fdtk-searchband .fdtk-search--inline { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.fdtk-hs__slide, .fdtk-hs__bg, .fdtk-badge-logo { transition: none; }
	.fdtk-hs__bg, .fdtk-hs__slide.is-active .fdtk-hs__bg { transform: none; }
}

/* Footer logo */
.fdtk-logo { display: inline-flex; align-items: flex-end; gap: 8px; text-decoration: none; }
.fdtk-logo .fdtk-logo__img { display: block; width: auto; max-width: none; height: 46px; }
.fdtk-logo__tag { font: 800 9px/1 var(--fdtk-font-body); letter-spacing: .22em; text-transform: uppercase; color: var(--fdtk-gold-2); padding-bottom: 6px; }

/* 3. Footer -------------------------------------------------------------- */
.fdtk-footer { background: var(--fdtk-sage-deep); color: #e8eee9; padding: 72px 0 28px; font-size: 14.5px; }
.fdtk-footer a { color: #f4f1ea; text-decoration: none; }
.fdtk-footer a:hover { color: var(--fdtk-gold-2); text-decoration: underline; }
.fdtk-footer__grid { display: grid; grid-template-columns: 1.3fr repeat(3, .7fr) 1.1fr; gap: 40px; }
.fdtk-footer__brand p { max-width: 340px; color: #d8e1db; }
.fdtk-footer__motto { font: italic 400 20px/1.3 var(--fdtk-font-heading); color: var(--fdtk-gold-2) !important; }
.fdtk-logo--light .fdtk-logo__img, .fdtk-footer .fdtk-logo img { filter: brightness(0) invert(1); height: 46px; }
.fdtk-logo--light .fdtk-logo__tag { color: var(--fdtk-gold-2); }
.fdtk-footer__heading { margin: 0 0 16px; font: 800 12.5px/1.3 var(--fdtk-font-body); letter-spacing: .12em; text-transform: uppercase; color: #fffaf3; }
.fdtk-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fdtk-footer__news p { margin: 0 0 14px; color: #d8e1db; }
.fdtk-footer .fdtk-form { gap: 12px; }
.fdtk-footer .fdtk-field label { color: #d8e1db; }
.fdtk-footer .fdtk-form .fdtk-field input { background-color: rgba(255,255,255,.08); border-color: rgba(255,255,255,.28); color: #fff; min-height: 46px; }
.fdtk-footer .fdtk-form .fdtk-field input::placeholder { color: #c9d4cd; }
.fdtk-footer .fdtk-form .fdtk-field input:focus { border-color: var(--fdtk-gold-2); box-shadow: 0 0 0 3px rgba(239,211,168,.25); }
.fdtk-footer .fdtk-consent, .fdtk-footer .fdtk-consent__note { color: #cdd8d1; font-size: 12.5px; }
.fdtk-footer .fdtk-consent__note a { color: var(--fdtk-gold-2); }
.fdtk-footer .fdtk-btn { min-height: 46px; }
.fdtk-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; margin-top: 52px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); font-size: 12.5px; color: #c9d4cd; }
.fdtk-footer__bottom p { margin: 0; }
.fdtk-footer__legal, .fdtk-footer__social { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0; padding: 0; }
@media (max-width: 1100px) { .fdtk-footer__grid { grid-template-columns: 1fr 1fr 1fr; } .fdtk-footer__brand, .fdtk-footer__news { grid-column: span 3; } }
@media (max-width: 640px) { .fdtk-footer__grid { grid-template-columns: 1fr 1fr; } .fdtk-footer__brand, .fdtk-footer__news { grid-column: 1 / -1; } }

/* Sticky mobile ticket CTA (event pages) --------------------------------- */
.fdtk-sticky-cta { display: none; }
@media (max-width: 768px) {
	.fdtk-sticky-cta { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; background: var(--fdtk-sage-deep); color: #fff; border-radius: 999px; box-shadow: 0 12px 30px rgba(0,0,0,.25); transform: translateY(140%); transition: transform .25s ease; }
	.fdtk-sticky-cta.is-visible { transform: none; }
	.fdtk-sticky-cta p { margin: 0; font-size: 13px; line-height: 1.3; }
	.fdtk-sticky-cta strong { display: block; font-size: 14px; }
	.fdtk-sticky-cta .fdtk-btn { min-height: 44px; padding: 0 18px; font-size: 14px; }
}

/* 4. Elementor section library -------------------------------------------- */
.elementor .elementor-element.e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; }
.elementor .elementor-widget-heading .elementor-heading-title { font-family: var(--fdtk-font-heading); font-weight: 400; color: inherit; }
.elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Sections */
.elementor .elementor-element.e-con.fdtk-sec { --padding-top: clamp(64px, 9vw, 104px); --padding-bottom: clamp(64px, 9vw, 104px); --padding-left: var(--fdtk-gutter); --padding-right: var(--fdtk-gutter); --container-max-width: var(--fdtk-max); --gap: 0px; --row-gap: 0px; color: var(--fdtk-ink); }
.elementor .elementor-element.e-con.fdtk-sec--tight { --padding-top: 0px; }
.elementor .elementor-element.e-con.fdtk-sec--cream { background: var(--fdtk-cream); }
.elementor .elementor-element.e-con.fdtk-sec--sand { background: var(--fdtk-sand); }
.elementor .elementor-element.e-con.fdtk-sec--dark { background: var(--fdtk-sage); color: #fff; }
.fdtk-sec--dark .elementor-heading-title { color: #fff; }
.fdtk-sec--dark .fdtk-head__intro { color: #dbe5df; }


/* Section heading row: eyebrow + H2 left, intro right */
.elementor .elementor-element.e-con.fdtk-head { --display: grid; --gap: 20px 70px; --row-gap: 20px; --column-gap: 70px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .72fr); align-items: end; margin-bottom: clamp(32px, 4vw, 52px); }
.elementor .elementor-element.e-con.fdtk-head--center { grid-template-columns: 1fr; justify-items: center; text-align: center; max-width: 820px; margin-inline: auto; }
.fdtk-head__intro, .fdtk-head__intro p { font-size: 17.5px; color: var(--fdtk-muted); }
.fdtk-head .fdtk-stack { display: flex; flex-direction: column; gap: 12px; }

/* Utility text widgets */
.fdtk-eyebrow, .elementor .fdtk-eyebrow p { margin: 0; font: 800 12px/1.4 var(--fdtk-font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--fdtk-gold-ink); }
.fdtk-eyebrow--light, .elementor .fdtk-eyebrow--light p { color: var(--fdtk-gold-2); }
.fdtk-lead p { font-size: 18px; line-height: 1.65; }

/* Elementor stacks / grids */
.elementor .elementor-element.e-con.fdtk-stack { --display: flex; --flex-direction: column; --gap: 14px; --row-gap: 14px; --align-items: stretch; }
.elementor .elementor-element.e-con.fdtk-head--center .elementor-element.e-con.fdtk-stack { --align-items: center; }
.elementor .elementor-element.e-con.fdtk-row { --display: flex; --flex-direction: row; --flex-wrap: wrap; --gap: 12px; --row-gap: 12px; --column-gap: 12px; --align-items: center; --width: auto; }
.elementor .elementor-element.e-con.fdtk-row > .elementor-widget { --container-widget-width: auto; width: auto; }
.elementor .elementor-element.e-con.fdtk-grid-2,
.elementor .elementor-element.e-con.fdtk-grid-3,
.elementor .elementor-element.e-con.fdtk-grid-4 { --display: grid; display: grid; --gap: 18px; --row-gap: 18px; --column-gap: 18px; }
.elementor .elementor-element.e-con.fdtk-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.elementor .elementor-element.e-con.fdtk-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.elementor .elementor-element.e-con.fdtk-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Buttons (Elementor Button widget + class) */
.elementor .fdtk-b .elementor-button { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; border: 1px solid transparent; font: 800 15px/1.2 var(--fdtk-font-body); fill: currentColor; transition: transform .2s ease, background-color .2s ease; }
.elementor .fdtk-b .elementor-button:hover { transform: translateY(-2px); }
.elementor .fdtk-b--gold .elementor-button { background: var(--fdtk-gold); color: var(--fdtk-ink); }
.elementor .fdtk-b--gold .elementor-button:hover { background: #ddb47c; color: var(--fdtk-ink); }
.elementor .fdtk-b--light .elementor-button { background: #fff; color: var(--fdtk-sage); }
.elementor .fdtk-b--outline .elementor-button { background: transparent; border-color: var(--fdtk-sage); color: var(--fdtk-sage); }
.elementor .fdtk-b--outline-light .elementor-button { background: transparent; border-color: rgba(255,255,255,.6); color: #fff; }
.elementor .fdtk-b--outline-light .elementor-button:hover { background: rgba(255,255,255,.1); }
.elementor .fdtk-b--dark .elementor-button { background: var(--fdtk-sage); color: #fff; }

/* HERO */
.elementor .elementor-element.e-con.fdtk-hero { --padding-left: var(--fdtk-gutter); --padding-right: var(--fdtk-gutter); --padding-top: clamp(56px, 8vw, 88px); --padding-bottom: clamp(56px, 8vw, 88px); --min-height: 720px; --container-max-width: var(--fdtk-max); --justify-content: center; position: relative; color: #fff; overflow: hidden; background-color: var(--fdtk-sage); background-position: center; background-size: cover; }
.elementor .elementor-element.e-con.fdtk-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(50,83,72,.88) 0%, rgba(72,105,90,.76) 46%, rgba(132,105,74,.22) 80%); pointer-events: none; }
.elementor .elementor-element.e-con.fdtk-hero::after { content: ""; position: absolute; right: -140px; bottom: -230px; width: 560px; height: 560px; border: 1px solid rgba(214,168,107,.42); border-radius: 50%; pointer-events: none; }
.fdtk-hero > .e-con-inner, .fdtk-hero > .elementor-element { position: relative; z-index: 1; }
.elementor .elementor-element.e-con.fdtk-hero__grid { --display: grid; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .75fr); --gap: 64px; --column-gap: 64px; --row-gap: 40px; align-items: center; }
.fdtk-hero h1.elementor-heading-title { color: #fff; font-size: clamp(46px, 6.6vw, 88px); line-height: 1.02; letter-spacing: -.035em; }
.fdtk-hero h1 em { font-style: italic; color: var(--fdtk-gold-2); }
.fdtk-hero .fdtk-lead p { color: #f0f3ef; max-width: 640px; }
.elementor .e-con.fdtk-page-head h1.elementor-heading-title { max-width: 920px; }
.fdtk-hero__stats { display: flex; flex-wrap: wrap; gap: 18px 34px; margin-top: 18px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.24); max-width: 640px; }
.fdtk-hero__stats div { font-size: 13px; color: #e5ece8; }
.fdtk-hero__stats strong { display: block; color: #fff; font: 400 22px/1.2 var(--fdtk-font-heading); }
.elementor .elementor-element.e-con.fdtk-searchcard { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 30px; --padding-right: 30px; --gap: 10px; --row-gap: 10px; background: rgba(255,255,255,.97); color: var(--fdtk-ink); border-radius: var(--fdtk-radius); box-shadow: 0 30px 70px rgba(0,0,0,.25); }
.fdtk-searchcard .elementor-heading-title { color: var(--fdtk-sage) !important; font-size: 30px; line-height: 1.12; }
.fdtk-searchcard .elementor-widget-text-editor { color: var(--fdtk-muted); }

/* Quick links */
.elementor .elementor-element.e-con.fdtk-quicklinks { --padding-left: 0px; --padding-right: 0px; background: #fff; border-bottom: 1px solid var(--fdtk-line); }
.fdtk-quicklinks nav ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.fdtk-quicklinks nav a { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 22px 12px; border-right: 1px solid var(--fdtk-line); text-align: center; color: var(--fdtk-ink); font: 800 12px/1.3 var(--fdtk-font-body); letter-spacing: .07em; text-transform: uppercase; text-decoration: none; }
.fdtk-quicklinks nav li:last-child a { border-right: 0; }
.fdtk-quicklinks nav a:hover { background: var(--fdtk-cream); color: var(--fdtk-gold-ink); }
.fdtk-quicklinks nav a span { color: var(--fdtk-gold); font-size: 20px; line-height: 1; }

/* Value cards */
.elementor .elementor-element.e-con.fdtk-value-card { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px; --gap: 12px; --row-gap: 12px; --min-height: 250px; border: 1px solid var(--fdtk-line); border-radius: 20px; background: #fff; }
.fdtk-value-card .fdtk-eyebrow { margin-bottom: 28px; }
.fdtk-value-card .elementor-heading-title { color: var(--fdtk-sage); font-size: 25px; line-height: 1.12; }
.fdtk-value-card .elementor-widget-text-editor { color: var(--fdtk-muted); font-size: 15px; }

/* Feature card (conference / podcast) */
.elementor .elementor-element.e-con.fdtk-feature { --display: grid; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); --gap: 0px; --row-gap: 0px; --column-gap: 0px; border-radius: 28px; overflow: hidden; background: #fff; box-shadow: var(--fdtk-shadow); }
.elementor .elementor-element.e-con.fdtk-feature--sand { background: #efe4d6; box-shadow: none; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
.elementor .elementor-element.e-con.fdtk-feature__media { --min-height: 520px; position: relative; background-color: var(--fdtk-sand); background-size: cover; background-position: center; }
.elementor .elementor-element.e-con.fdtk-feature__copy { --padding-top: clamp(32px, 5vw, 58px); --padding-bottom: clamp(32px, 5vw, 58px); --padding-left: clamp(24px, 5vw, 58px); --padding-right: clamp(24px, 5vw, 58px); --gap: 16px; --row-gap: 16px; --justify-content: center; }
.fdtk-feature__copy h2.elementor-heading-title { color: var(--fdtk-sage); font-size: clamp(34px, 4vw, 50px); line-height: 1.05; }
.fdtk-feature__copy .elementor-widget-text-editor { color: var(--fdtk-muted); font-size: 16.5px; }
.fdtk-datebubble { position: absolute; top: 28px; left: 28px; width: 110px; height: 110px; border-radius: 50%; display: grid; place-items: center; text-align: center; background: var(--fdtk-gold); color: var(--fdtk-ink); font: 900 18px/1.1 var(--fdtk-font-body); letter-spacing: .06em; }
.fdtk-meta-list { list-style: none; margin: 8px 0; padding: 18px 0; border-top: 1px solid var(--fdtk-line); border-bottom: 1px solid var(--fdtk-line); display: grid; gap: 10px; font-weight: 700; color: var(--fdtk-ink); }
.fdtk-meta-list li { display: flex; gap: 12px; align-items: center; }
.fdtk-meta-list .fdtk-icon { color: var(--fdtk-gold-ink); }
.fdtk-podcast-art { position: absolute; inset: auto 0 0 0; padding: 32px; color: #fff; background: linear-gradient(0deg, rgba(46,58,53,.85), rgba(46,58,53,0)); }
.fdtk-podcast-art strong { display: block; margin-top: 8px; font: 400 30px/1.12 var(--fdtk-font-heading); }

/* Marketplace layout */
.elementor .elementor-element.e-con.fdtk-market { --display: grid; display: grid; grid-template-columns: minmax(0, .74fr) minmax(0, 1.26fr); --gap: 32px; --column-gap: 32px; --row-gap: 24px; align-items: stretch; }
.elementor .elementor-element.e-con.fdtk-panel-sage { --padding-top: 36px; --padding-bottom: 36px; --padding-left: 34px; --padding-right: 34px; --gap: 16px; --row-gap: 16px; position: relative; overflow: hidden; color: #fff; border-radius: var(--fdtk-radius); background: linear-gradient(160deg, #648578, var(--fdtk-sage)); }
.elementor .elementor-element.e-con.fdtk-panel-sage::after { content: ""; position: absolute; width: 230px; height: 230px; right: -90px; bottom: -90px; border: 1px solid rgba(239,211,168,.45); border-radius: 50%; pointer-events: none; }
.fdtk-panel-sage .elementor-heading-title { color: #fff; font-size: clamp(34px, 3.6vw, 46px); }
.fdtk-panel-sage .elementor-widget-text-editor { color: #eef2ee; }

/* Development showcase */
.elementor .elementor-element.e-con.fdtk-dev { --display: grid; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); --gap: 0px; --row-gap: 0px; --column-gap: 0px; border-radius: 28px; overflow: hidden; color: #fff; background: linear-gradient(160deg, #5b7b6f, #435d54); }
.elementor .elementor-element.e-con.fdtk-dev__media { --min-height: 600px; background-color: #435d54; background-size: cover; background-position: center; }
.elementor .elementor-element.e-con.fdtk-dev__copy { --padding-top: clamp(32px, 5vw, 56px); --padding-bottom: clamp(32px, 5vw, 56px); --padding-left: clamp(24px, 5vw, 56px); --padding-right: clamp(24px, 5vw, 56px); --gap: 14px; --row-gap: 14px; --justify-content: center; }
.fdtk-dev__copy h2.elementor-heading-title { color: #fff; font-size: clamp(40px, 4.4vw, 56px); }
.fdtk-dev__copy .elementor-widget-text-editor { color: #edf2ef; }
.fdtk-location p { color: var(--fdtk-gold-2); font-weight: 800; margin: 0; }
.fdtk-features { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; margin: 8px 0 12px; }
.fdtk-features div { padding: 13px 0; border-top: 1px solid rgba(255,255,255,.2); font-size: 13.5px; color: #e4ebe6; }
.fdtk-features strong { display: block; color: var(--fdtk-gold-2); font: 400 22px/1.2 var(--fdtk-font-heading); }

/* Commerce cards (dark section) */
.elementor .elementor-element.e-con.fdtk-commerce-card { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 26px; --padding-right: 26px; --gap: 10px; --row-gap: 10px; --min-height: 250px; border-radius: 20px; background: #fff; color: var(--fdtk-ink); }
.fdtk-commerce-card .elementor-heading-title { color: var(--fdtk-ink); font-size: 25px; margin-top: 20px; }
.fdtk-commerce-card .elementor-widget-text-editor { color: var(--fdtk-muted); font-size: 14.5px; }
.fdtk-commerce-card .fdtk-card-link a, .fdtk-card-link a { font-weight: 800; color: var(--fdtk-gold-ink); text-decoration: none; }
.fdtk-commerce-card .fdtk-card-link { margin-top: auto; }
.fdtk-icon-chip { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--fdtk-cream); color: var(--fdtk-gold-ink); }

/* CTA band */
.elementor .elementor-element.e-con.fdtk-cta-band { --padding-top: clamp(56px, 7vw, 80px); --padding-bottom: clamp(56px, 7vw, 80px); --padding-left: var(--fdtk-gutter); --padding-right: var(--fdtk-gutter); --container-max-width: var(--fdtk-max); color: #fff; background: linear-gradient(105deg, #5d7e71, #7f9170); }
.elementor .elementor-element.e-con.fdtk-cta-band__grid { --display: grid; display: grid; grid-template-columns: minmax(0, 1fr) auto; --gap: 32px; --column-gap: 32px; --row-gap: 24px; align-items: center; }
.fdtk-cta-band h2.elementor-heading-title { color: #fff; font-size: clamp(32px, 4vw, 50px); max-width: 820px; }
.fdtk-cta-band .elementor-widget-text-editor { color: #eef2ea; max-width: 720px; }

/* Generic content blocks used on inner pages */
.elementor .elementor-element.e-con.fdtk-card-plain { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px; --gap: 10px; --row-gap: 10px; border: 1px solid var(--fdtk-line); border-radius: 20px; background: #fff; }
.fdtk-sec--cream .elementor-element.e-con.fdtk-card-plain { border-color: #eadcc8; }
.fdtk-card-plain .elementor-heading-title { color: var(--fdtk-sage); font-size: 25px; line-height: 1.15; }
.fdtk-card-plain .elementor-widget-text-editor { color: var(--fdtk-muted); font-size: 15.5px; }
.elementor .elementor-element.e-con.fdtk-split { --display: grid; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); --gap: clamp(28px, 5vw, 72px); --column-gap: clamp(28px, 5vw, 72px); --row-gap: 32px; align-items: center; }
.elementor .elementor-element.e-con.fdtk-split--top { align-items: start; }
.elementor .elementor-element.e-con.fdtk-split--wide { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.elementor .elementor-element.e-con.fdtk-image-frame { --min-height: 460px; border-radius: 28px; overflow: hidden; background-size: cover; background-position: center; background-color: var(--fdtk-sand); }
.fdtk-prose-w { font-size: 17px; line-height: 1.75; color: var(--fdtk-ink); }
.fdtk-prose-w h3 { font-size: 26px; margin: 28px 0 10px; }
.fdtk-check-list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fdtk-check-list li { position: relative; padding-left: 30px; }
.fdtk-check-list li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 16px; height: 9px; border-left: 2px solid var(--fdtk-sage); border-bottom: 2px solid var(--fdtk-sage); transform: rotate(-45deg); }
.fdtk-sec--dark .fdtk-check-list li::before { border-color: var(--fdtk-gold-2); }
.fdtk-faq details { border-bottom: 1px solid var(--fdtk-line); padding: 18px 0; }
.fdtk-faq details:first-child { border-top: 1px solid var(--fdtk-line); }
.fdtk-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px; font: 400 21px/1.3 var(--fdtk-font-heading); color: var(--fdtk-ink); }
.fdtk-faq summary::-webkit-details-marker { display: none; }
.fdtk-faq summary::after { content: "+"; font: 400 26px/1 var(--fdtk-font-body); color: var(--fdtk-gold-ink); }
.fdtk-faq details[open] summary::after { content: "–"; }
.fdtk-faq details p { margin: 12px 0 0; color: var(--fdtk-muted); }
.fdtk-pill-list ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fdtk-pill-list li { padding: 10px 18px; border-radius: 999px; background: #fff; border: 1px solid var(--fdtk-line); font-weight: 700; font-size: 14.5px; }
.fdtk-sec--dark .fdtk-pill-list li { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: #fff; }
.fdtk-di-rock img { width: min(100%, 520px); height: auto; }

/* Page hero for Elementor-built inner pages */
.elementor .elementor-element.e-con.fdtk-page-head { --padding-top: clamp(64px, 9vw, 112px); --padding-bottom: clamp(52px, 7vw, 84px); --padding-left: var(--fdtk-gutter); --padding-right: var(--fdtk-gutter); --container-max-width: var(--fdtk-max); --gap: 16px; --row-gap: 16px; position: relative; overflow: hidden; color: #fff; background-color: var(--fdtk-sage); background-image: linear-gradient(160deg, #5b7b6f, var(--fdtk-sage-deep)); background-size: cover; background-position: center; }
.elementor .elementor-element.e-con.fdtk-page-head::after { content: ""; position: absolute; width: 460px; height: 460px; right: -160px; bottom: -220px; border: 1px solid rgba(214,168,107,.4); border-radius: 50%; pointer-events: none; }
.elementor .elementor-element.e-con.fdtk-page-head--image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(50,83,72,.9), rgba(72,105,90,.74) 55%, rgba(132,105,74,.28)); pointer-events: none; }
.fdtk-page-head > .e-con-inner { position: relative; z-index: 1; }
.fdtk-page-head h1.elementor-heading-title { color: #fff; font-size: clamp(42px, 6vw, 76px); line-height: 1.03; max-width: 920px; letter-spacing: -.025em; }
.fdtk-page-head h1 em { color: var(--fdtk-gold-2); }
.elementor .e-con.fdtk-page-head .elementor-widget-text-editor { color: #eef2ee; font-size: 18.5px; max-width: 700px; }

/* Event hero (conference) */
.elementor .elementor-element.e-con.fdtk-event-hero { --min-height: 680px; }
.fdtk-event-facts { display: flex; flex-wrap: wrap; gap: 14px 30px; margin-top: 6px; font-weight: 700; color: #fff; }
.fdtk-event-facts span { display: inline-flex; gap: 10px; align-items: center; }
.fdtk-event-facts .fdtk-icon { color: var(--fdtk-gold-2); }
.elementor .elementor-element.e-con.fdtk-countdown-card { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 30px; --padding-right: 30px; --gap: 14px; --row-gap: 14px; background: rgba(255,255,255,.97); color: var(--fdtk-ink); border-radius: var(--fdtk-radius); box-shadow: 0 30px 70px rgba(0,0,0,.25); }
.fdtk-countdown-card .elementor-heading-title { color: var(--fdtk-sage) !important; font-size: 28px; }
.fdtk-countdown-card .elementor-widget-text-editor { color: var(--fdtk-muted); }

/* Responsive: Elementor section library */
@media (max-width: 1024px) {
	.elementor .elementor-element.e-con.fdtk-hero__grid,
	.elementor .elementor-element.e-con.fdtk-feature,
	.elementor .elementor-element.e-con.fdtk-feature--sand,
	.elementor .elementor-element.e-con.fdtk-market,
	.elementor .elementor-element.e-con.fdtk-dev,
	.elementor .elementor-element.e-con.fdtk-split,
	.elementor .elementor-element.e-con.fdtk-head,
	.elementor .elementor-element.e-con.fdtk-cta-band__grid { grid-template-columns: minmax(0, 1fr); }
	.elementor .elementor-element.e-con.fdtk-grid-4, .elementor .elementor-element.e-con.fdtk-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.elementor .elementor-element.e-con.fdtk-hero { --min-height: 0px; }
	.elementor .elementor-element.e-con.fdtk-feature__media { --min-height: 380px; }
	.elementor .elementor-element.e-con.fdtk-dev__media { --min-height: 420px; }
	.elementor .elementor-element.e-con.fdtk-image-frame { --min-height: 360px; }
	.fdtk-quicklinks nav ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.fdtk-quicklinks nav li:nth-child(3n) a { border-right: 0; }
	.fdtk-quicklinks nav li:nth-child(-n+3) a { border-bottom: 1px solid var(--fdtk-line); }
	.elementor .elementor-element.e-con.fdtk-searchcard { max-width: 640px; }
}
@media (max-width: 640px) {
	.elementor .elementor-element.e-con.fdtk-grid-4,
	.elementor .elementor-element.e-con.fdtk-grid-3,
	.elementor .elementor-element.e-con.fdtk-grid-2 { grid-template-columns: minmax(0, 1fr); }
	.fdtk-quicklinks nav ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fdtk-quicklinks nav li a { border-bottom: 1px solid var(--fdtk-line); }
	.fdtk-quicklinks nav li:nth-child(3n) a { border-right: 1px solid var(--fdtk-line); }
	.fdtk-quicklinks nav li:nth-child(2n) a { border-right: 0; }
	.fdtk-features { grid-template-columns: 1fr; }
	.elementor .elementor-element.e-con.fdtk-searchcard, .elementor .elementor-element.e-con.fdtk-countdown-card { --padding-left: 22px; --padding-right: 22px; }
	.fdtk-hero__stats { gap: 14px 22px; }
	.elementor .fdtk-row .fdtk-b, .elementor .fdtk-row .fdtk-b .elementor-button { width: 100%; justify-content: center; }
	.elementor .elementor-element.e-con.fdtk-row > .elementor-widget { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.elementor .fdtk-b .elementor-button, .fdtk-menu .sub-menu, .fdtk-sticky-cta { transition: none; }
	.elementor .fdtk-b .elementor-button:hover { transform: none; }
}

/* 5. WooCommerce -------------------------------------------------------- */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .wc-block-components-button:not(.is-link) { border-radius: 999px !important; font-weight: 800 !important; }
.wc-block-components-button:not(.is-link), .woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--fdtk-gold) !important; color: var(--fdtk-ink) !important; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price { color: var(--fdtk-sage); font-weight: 800; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--fdtk-font-heading); font-size: 22px; font-weight: 400; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: grid; gap: 4px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: 10px; text-decoration: none; color: var(--fdtk-ink); font-weight: 700; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--fdtk-cream); color: var(--fdtk-gold-ink); }

/* Dark-section and gradient fallbacks (gradients are background-images, which Elementor's
   lazy-background loader suppresses until the section scrolls into view — keep a solid colour). */
.elementor .fdtk-sec--dark .fdtk-eyebrow p, .elementor .fdtk-cta-band .fdtk-eyebrow p, .elementor .fdtk-panel-sage .fdtk-eyebrow p, .elementor .fdtk-dev .fdtk-eyebrow p, .elementor .fdtk-page-head .fdtk-eyebrow p, .elementor .fdtk-hero .fdtk-eyebrow p { color: var(--fdtk-gold-2); }
.elementor .fdtk-sec--dark .fdtk-panel .fdtk-eyebrow p { color: var(--fdtk-gold-ink); }
.elementor .fdtk-sec--dark .fdtk-head__intro p { color: #dbe5df; }
.elementor .elementor-element.e-con.fdtk-panel-sage { background-color: var(--fdtk-sage); }
.elementor .elementor-element.e-con.fdtk-dev { background-color: #4f6b60; }
.elementor .elementor-element.e-con.fdtk-cta-band { background-color: #6b8571; }
.elementor .elementor-element.e-con.fdtk-page-head { background-color: var(--fdtk-sage-deep); }

/* CSS-mask icons (usable inside Elementor text widgets, which strip inline SVG) */
.fdtk-ico { display: inline-block; flex: none; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; vertical-align: -4px; }
.fdtk-ico--calendar { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E"); }
.fdtk-ico--pin { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.fdtk-ico--spark { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M6 18l2.5-2.5M15.5 8.5 18 6'/%3E%3C/svg%3E"); }
.fdtk-meta-list .fdtk-ico, .fdtk-event-facts .fdtk-ico { color: var(--fdtk-gold-ink); }
.fdtk-event-facts .fdtk-ico { color: var(--fdtk-gold-2); }

/* Photo galleries (Elementor Gallery widget) */
.fdtk-photo-gallery .gallery { margin: 0; }
.fdtk-photo-gallery .gallery-item { margin: 0; }
.fdtk-photo-gallery .gallery-item img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; border-radius: 14px; border: 0 !important; transition: transform .3s ease, box-shadow .3s ease; }
.fdtk-photo-gallery .gallery-item a:hover img, .fdtk-photo-gallery .gallery-item a:focus-visible img { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(0,0,0,.18); }
.fdtk-photo-gallery .gallery-item a:focus-visible { outline: 3px solid var(--fdtk-gold); outline-offset: 3px; border-radius: 14px; }
.elementor .fdtk-photo-gallery { margin-bottom: 28px; }

/* Podcast artwork / site plan */
.elementor .elementor-element.e-con.fdtk-feature__media--art { --min-height: 0px; background: #0f0f0f; display: flex; align-items: center; }
.fdtk-podcast-artwork img { width: 100%; height: 100%; object-fit: cover; }
.elementor .elementor-element.e-con.fdtk-feature--sand { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: stretch; }
.fdtk-podcast-banner { margin: 0 0 32px; border-radius: 22px; overflow: hidden; box-shadow: var(--fdtk-shadow); }
.fdtk-podcast-banner img { display: block; width: 100%; height: auto; }
.fdtk-site-plan img { width: 100%; height: auto; border-radius: 18px; border: 1px solid var(--fdtk-line); box-shadow: var(--fdtk-shadow); }
.elementor .fdtk-site-plan { margin-bottom: 28px; }

/* Plugin panels used as Elementor containers */
.elementor .elementor-element.e-con.fdtk-panel { --border-radius: var(--fdtk-radius); border-radius: var(--fdtk-radius); border: 1px solid var(--fdtk-line); background-color: var(--fdtk-white); box-shadow: var(--fdtk-shadow); --padding-top: clamp(22px, 3vw, 32px); --padding-bottom: clamp(22px, 3vw, 32px); --padding-left: clamp(20px, 3vw, 32px); --padding-right: clamp(20px, 3vw, 32px); }
.fdtk-sec--dark .fdtk-panel { color: var(--fdtk-ink); }
.fdtk-page-head .fdtk-search--inline { margin-top: 12px; color: var(--fdtk-ink); }
