/* ==========================================================================
   GoFahren Premium UI — v2
   Light + Dark themes, animated, content-safe design layer.
   Emitted by mu-plugin "gofahren-premium.php". Delete that file to revert.
   Only visual styling: no posts, templates, options or data are modified.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');

/* ==================== 1. DESIGN TOKENS ==================================== */
:root{
  --gf-h:'Sora','Inter',system-ui,sans-serif;
  --gf-b:'Inter','Segoe UI',Roboto,system-ui,sans-serif;

  --gf-gold:#C9A96A;
  --gf-gold-2:#E9D6A6;
  --gf-teal:#1C3A3E;
  --gf-teal-2:#2F5F63;

  --gf-r:18px;
  --gf-r-sm:12px;
  --gf-r-lg:28px;
  --gf-ease:cubic-bezier(.22,.61,.36,1);
  --gf-max:1200px;
}

/* --- LIGHT THEME -------------------------------------------------------- */
html,
html[data-gf-theme="light"]{
  --gf-bg:#F6F8F7;
  --gf-bg-2:#EDF1EF;
  --gf-surface:#FFFFFF;
  --gf-surface-2:#FAFCFB;
  --gf-head:#0A1210;
  --gf-text:#2B3633;
  --gf-muted:#6B7A75;
  --gf-line:rgba(10,18,16,.10);
  --gf-line-2:rgba(10,18,16,.06);
  --gf-shadow:0 28px 60px -32px rgba(10,18,16,.38);
  --gf-shadow-sm:0 14px 34px -22px rgba(10,18,16,.30);
  --gf-header-bg:rgba(255,255,255,.82);
  --gf-header-line:rgba(10,18,16,.08);
  --gf-veil-1:rgba(8,14,13,.90);
  --gf-veil-2:rgba(8,14,13,.62);
  --gf-veil-3:rgba(8,14,13,.22);
  --gf-btn-fg:#151009;
  --gf-btn-bg:linear-gradient(120deg,var(--gf-gold-2) 0%,var(--gf-gold) 55%,#B8955A 100%);
  --gf-btn-glow:rgba(201,169,106,.80);
  --gf-ghost-fg:#0A1210;
  --gf-ghost-line:rgba(10,18,16,.16);
  --gf-dark-band:#0B1210;
  --gf-input-bg:#FFFFFF;
  --gf-scroll-track:#E7ECEA;
  --gf-scroll-thumb:#B7C3BF;
}

/* --- DARK THEME --------------------------------------------------------- */
html[data-gf-theme="dark"]{
  --gf-bg:#080D0C;
  --gf-bg-2:#0C1312;
  --gf-surface:#111A19;
  --gf-surface-2:#16211F;
  --gf-head:#F1F5F4;
  --gf-text:#C4CFCC;
  --gf-muted:#8B9A96;
  --gf-line:rgba(255,255,255,.11);
  --gf-line-2:rgba(255,255,255,.06);
  --gf-shadow:0 30px 70px -34px rgba(0,0,0,.85);
  --gf-shadow-sm:0 16px 38px -24px rgba(0,0,0,.80);
  --gf-header-bg:rgba(9,14,13,.78);
  --gf-header-line:rgba(255,255,255,.08);
  --gf-veil-1:rgba(4,8,8,.94);
  --gf-veil-2:rgba(4,8,8,.72);
  --gf-veil-3:rgba(4,8,8,.30);
  --gf-btn-fg:#151009;
  --gf-btn-bg:linear-gradient(120deg,var(--gf-gold-2) 0%,var(--gf-gold) 55%,#B8955A 100%);
  --gf-btn-glow:rgba(201,169,106,.55);
  --gf-ghost-fg:#F1F5F4;
  --gf-ghost-line:rgba(255,255,255,.22);
  --gf-dark-band:#0C1413;
  --gf-input-bg:rgba(255,255,255,.04);
  --gf-scroll-track:#101817;
  --gf-scroll-thumb:#33423F;
}

/* Elementor global tokens follow the theme as well */
html,
.elementor-kit-431{
  --e-global-color-primary:var(--gf-teal);
  --e-global-color-secondary:var(--gf-muted);
  --e-global-color-text:var(--gf-text);
  --e-global-color-accent:var(--gf-gold);
  --e-global-typography-primary-font-family:"Sora";
  --e-global-typography-secondary-font-family:"Sora";
  --e-global-typography-text-font-family:"Inter";
  --e-global-typography-accent-font-family:"Sora";
  --e-global-typography-primary-font-weight:700;
  --e-global-typography-secondary-font-weight:600;
}

/* ==================== 2. BASE ============================================ */
html{ background:var(--gf-bg); scroll-behavior:smooth; }

body,
.popularfx-body{
  background:var(--gf-bg) !important;
  color:var(--gf-text) !important;
  font-family:var(--gf-b)!important;
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  transition:background-color .45s var(--gf-ease),color .45s var(--gf-ease);
}

h1,h2,h3,h4,h5,h6,
.elementor-heading-title{
  font-family:var(--gf-h) !important;
  color:var(--gf-head) !important;
  letter-spacing:-.02em;
  line-height:1.15;
  font-weight:700;
}
.elementor-heading-title{ margin-bottom:.32em; }

body p{ color:inherit; }
p{ margin-bottom:1.05em; }

::selection{ background:var(--gf-gold); color:#151009; }

a{ color:var(--gf-teal-2); text-decoration:none; transition:color .22s var(--gf-ease); }
html[data-gf-theme="dark"] a{ color:var(--gf-gold-2); }
a:hover,a:focus{ color:var(--gf-gold); }

::-webkit-scrollbar{ width:12px; height:12px; }
::-webkit-scrollbar-track{ background:var(--gf-scroll-track); }
::-webkit-scrollbar-thumb{ background:var(--gf-scroll-thumb); border-radius:20px; border:3px solid var(--gf-scroll-track); }
::-webkit-scrollbar-thumb:hover{ background:var(--gf-gold); }

/* Kill hardcoded Elementor white/black widget surfaces in dark mode */
html[data-gf-theme="dark"] .elementor-widget-text-editor,
html[data-gf-theme="dark"] .elementor-widget-text-editor p,
html[data-gf-theme="dark"] .elementor-widget-text-editor li,
html[data-gf-theme="dark"] .elementor-widget-text-editor span,
html[data-gf-theme="dark"] .elementor-tab-content,
html[data-gf-theme="dark"] .elementor-widget-text-editor h1,
html[data-gf-theme="dark"] .elementor-widget-text-editor h2,
html[data-gf-theme="dark"] .elementor-widget-text-editor h3,
html[data-gf-theme="dark"] .elementor-widget-text-editor h4,
html[data-gf-theme="dark"] .elementor-widget-text-editor h5,
html[data-gf-theme="dark"] .elementor-widget-text-editor h6{
  color:var(--gf-text) !important;
}
html[data-gf-theme="dark"] .elementor-heading-title{ color:var(--gf-head) !important; }

/* ==================== 3. LAYOUT RHYTHM ================================= */
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con{ --container-max-width:var(--gf-max); }

.elementor-section,
.e-con{ position:relative; }

/* consistent vertical rhythm for top level bands */
.elementor-location-header ~ * .elementor-section,
.elementor-location-header ~ * .e-con{
  /* no-op guard, real spacing handled per-band below */
}

main .elementor-section,
.elementor-page .elementor-section{
  padding-top:clamp(48px,6vw,96px);
  padding-bottom:clamp(48px,6vw,96px);
}
main .elementor-section .elementor-section,
.elementor-page .e-con .e-con{
  padding-top:0;
  padding-bottom:0;
}

/* readable measure for long text */
.elementor-widget-text-editor > .elementor-widget-container > p,
.elementor-widget-text-editor > .elementor-widget-container > ul,
.elementor-widget-text-editor > .elementor-widget-container > ol{
  max-width:78ch;
}
.elementor-widget-text-editor p:last-child{ margin-bottom:0; }

/* ==================== 4. HEADER ======================================== */
.elementor-location-header{
  background:var(--gf-header-bg) !important;
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--gf-header-line) !important;
  box-shadow:0 10px 34px -28px rgba(0,0,0,.55);
  position:sticky; top:0; z-index:99;
  transition:background-color .45s var(--gf-ease),border-color .45s var(--gf-ease);
}
.elementor-location-header .elementor-section,
.elementor-location-header .e-con{ background:transparent !important; padding-top:0 !important; padding-bottom:0 !important; }

.elementor-location-header img,
.elementor-location-header .custom-logo,
.elementor-location-header .elementor-site-logo img{
  max-height:52px;
  width:auto;
  transition:transform .3s var(--gf-ease),filter .3s var(--gf-ease);
}
.elementor-location-header a:hover img{ transform:translateY(-1px) scale(1.02); }
html[data-gf-theme="dark"] .elementor-location-header img{ filter:brightness(1.06) contrast(1.03); }

/* nav */
.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu .elementor-item{
  font-family:var(--gf-h) !important;
  font-size:15.5px !important;
  font-weight:600 !important;
  color:var(--gf-head) !important;
  padding:12px 14px !important;
  letter-spacing:.01em;
  position:relative;
  background:transparent !important;
}
.elementor-nav-menu .elementor-item:after{
  content:"";
  position:absolute; left:14px; right:14px; bottom:7px; height:2px;
  background:linear-gradient(90deg,var(--gf-gold),var(--gf-teal-2));
  transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--gf-ease);
  border-radius:2px;
}
.elementor-nav-menu .elementor-item:hover:after,
.elementor-nav-menu .current-menu-item > .elementor-item:after,
.elementor-nav-menu .elementor-item.elementor-item-active:after{ transform:scaleX(1); }
.elementor-nav-menu .elementor-item:hover{ color:var(--gf-gold) !important; }

/* dropdown panel */
.elementor-nav-menu--dropdown{
  background:var(--gf-surface) !important;
  border:1px solid var(--gf-line) !important;
  border-radius:var(--gf-r) !important;
  box-shadow:var(--gf-shadow) !important;
  padding:8px !important;
  overflow:hidden;
}
.elementor-nav-menu--dropdown a{ color:var(--gf-head) !important; border-radius:10px !important; }
.elementor-nav-menu--dropdown a:hover{ background:var(--gf-surface-2) !important; color:var(--gf-gold) !important; }

.elementor-menu-toggle{
  border:1px solid var(--gf-line) !important;
  border-radius:12px !important;
  padding:8px !important;
  color:var(--gf-head) !important;
  background:var(--gf-surface) !important;
  transition:transform .25s var(--gf-ease);
}
.elementor-menu-toggle:hover{ transform:translateY(-1px); }

/* ==================== 5. BUTTONS (animated) ============================ */
.elementor-button,
a.elementor-button,
.elementor-button.elementor-size-sm,
.elementor-button.elementor-size-md,
.elementor-button.elementor-size-lg,
input[type="submit"],
button[type="submit"],
.elementor-button-link{
  font-family:var(--gf-h) !important;
  font-weight:600 !important;
  font-size:15px !important;
  letter-spacing:.02em;
  color:var(--gf-btn-fg) !important;
  background:var(--gf-btn-bg) !important;
  background-size:180% 100% !important;
  border:0 !important;
  border-radius:999px !important;
  padding:15px 32px !important;
  box-shadow:0 16px 34px -16px var(--gf-btn-glow) !important;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .28s var(--gf-ease),box-shadow .28s var(--gf-ease),background-position .6s var(--gf-ease);
}
.elementor-button:after,
input[type="submit"]:after,
button[type="submit"]:after{
  content:"";
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg,transparent 18%,rgba(255,255,255,.62) 50%,transparent 82%);
  transform:translateX(-130%);
  transition:transform .7s var(--gf-ease);
}
.elementor-button:hover,
a.elementor-button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover{
  transform:translateY(-3px);
  background-position:100% 0 !important;
  box-shadow:0 26px 50px -18px var(--gf-btn-glow) !important;
  color:var(--gf-btn-fg) !important;
}
.elementor-button:hover:after,
input[type="submit"]:hover:after,
button[type="submit"]:hover:after{ transform:translateX(130%); }
.elementor-button:active{ transform:translateY(-1px) scale(.99); }
.elementor-button .elementor-button-text{ position:relative; z-index:1; }

/* gentle auto-shine on hero CTAs */
.elementor-element-4d305fd .elementor-button:after{ animation:gf-cta-shine 4.5s var(--gf-ease) 1.6s infinite; }
@keyframes gf-cta-shine{
  0%,72%{ transform:translateX(-130%); }
  86%,100%{ transform:translateX(130%); }
}

/* All Elementor button variants keep the rich gold gradient treatment.
   (A previous ghost-pill override for .elementor-button-link was removed
   because the site's CTAs use that exact class.) */
.elementor-button.elementor-button-link{
  background:var(--gf-btn-bg) !important;
  color:var(--gf-btn-fg) !important;
  border:0 !important;
  box-shadow:0 16px 34px -16px var(--gf-btn-glow) !important;
}
.elementor-button.elementor-button-link:hover{
  background-position:100% 0 !important;
  color:var(--gf-btn-fg) !important;
  box-shadow:0 26px 50px -18px var(--gf-btn-glow) !important;
}

/* ==================== 6. HERO ========================================== */
.elementor-element-4d305fd{
  position:relative;
  overflow:hidden;
  min-height:clamp(460px,62vh,680px);
  display:flex;
  align-items:center;
  background-size:cover !important;
  background-position:center center !important;
  border-bottom:1px solid var(--gf-line);
}
.elementor-element-4d305fd:before{
  content:"";
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(115deg,var(--gf-veil-1) 0%,var(--gf-veil-2) 45%,var(--gf-veil-3) 100%),
    radial-gradient(1200px 520px at 84% 12%,rgba(201,169,106,.30),transparent 62%);
}
.elementor-element-4d305fd > *{ position:relative; z-index:2; }
.elementor-element-4d305fd .elementor-container,
.elementor-element-4d305fd .e-con-inner{ width:100%; }

.elementor-element-4d305fd .elementor-heading-title{
  color:#fff !important;
  font-size:clamp(2.05rem,4.6vw,3.75rem) !important;
  font-weight:800 !important;
  letter-spacing:-.028em;
  line-height:1.06;
  text-wrap:balance;
  text-shadow:0 3px 34px rgba(0,0,0,.42);
}
.elementor-element-4d305fd .elementor-widget-text-editor,
.elementor-element-4d305fd .elementor-widget-text-editor p,
.elementor-element-4d305fd p{
  color:rgba(255,255,255,.88) !important;
  font-size:1.07rem;
  max-width:66ch;
}
.elementor-element-4d305fd .elementor-widget-container{ max-width:800px; }
.elementor-element-4d305fd .elementor-button{ margin-top:10px; }

/* ==================== 7. SECTIONS & CARDS ============================== */
/* light feature band -> elevated card */
.elementor-element-f1f734e{
  background:var(--gf-surface) !important;
  border:1px solid var(--gf-line) !important;
  border-radius:var(--gf-r-lg) !important;
  box-shadow:var(--gf-shadow) !important;
  padding:clamp(26px,3.4vw,52px) !important;
  margin-top:36px !important;
  margin-bottom:36px !important;
  transition:background-color .45s var(--gf-ease),border-color .45s var(--gf-ease),box-shadow .45s var(--gf-ease);
}

/* rich dark band (theme aware) */
.elementor-element-fe4ea6d{
  background:linear-gradient(125deg,#0A1110 0%,#101D1B 52%,#17302F 100%) !important;
  color:rgba(255,255,255,.90) !important;
}
html[data-gf-theme="dark"] .elementor-element-fe4ea6d{
  background:linear-gradient(125deg,#0C1514 0%,#122220 52%,#1A3533 100%) !important;
}
.elementor-element-fe4ea6d .elementor-heading-title{ color:#fff !important; }
.elementor-element-fe4ea6d .elementor-widget-text-editor,
.elementor-element-fe4ea6d .elementor-widget-text-editor p,
.elementor-element-fe4ea6d .elementor-widget-text-editor li,
.elementor-element-fe4ea6d p,
.elementor-element-fe4ea6d li{ color:rgba(255,255,255,.84) !important; }
.elementor-element-fe4ea6d a{ color:var(--gf-gold-2) !important; }
.elementor-element-fe4ea6d a:hover{ color:#fff !important; }

/* generic surfaces for other top level bands */
.elementor-section,
.e-con{ transition:background-color .45s var(--gf-ease); }

html[data-gf-theme="dark"] .elementor-section,
html[data-gf-theme="dark"] .e-con{ background-color:transparent !important; }

/* ==================== 8. HEADINGS DECOR ================================ */
.elementor-widget-heading .elementor-heading-title{ position:relative; }

/* gold rule under section h2s */
.elementor-heading-title.elementor-size-default{ position:relative; }
.elementor-widget-heading h2.elementor-heading-title:after{
  content:"";
  display:block;
  width:56px; height:3px;
  margin-top:14px;
  border-radius:3px;
  background:linear-gradient(90deg,var(--gf-gold),transparent);
}
.elementor-element-4d305fd .elementor-widget-heading h2.elementor-heading-title:after,
.elementor-element-fe4ea6d .elementor-widget-heading h2.elementor-heading-title:after{
  background:linear-gradient(90deg,var(--gf-gold-2),transparent);
}

/* inline emoji used as icons */
.elementor-heading-title img.emoji{
  height:1.02em; width:1.02em;
  vertical-align:-.14em;
  margin-right:.22em;
  filter:drop-shadow(0 6px 14px rgba(201,169,106,.38));
}

/* ==================== 9. IMAGES & MEDIA ================================ */
.elementor img{ border-radius:14px; }
.elementor-widget-image img{
  border-radius:var(--gf-r) !important;
  box-shadow:var(--gf-shadow-sm);
  transition:transform .5s var(--gf-ease),box-shadow .5s var(--gf-ease);
}
.elementor-widget-image:hover img{ transform:translateY(-4px) scale(1.012); box-shadow:var(--gf-shadow); }

/* ==================== 10. LISTS & FAQ ================================== */
.elementor-widget-text-editor ul{ list-style:none; padding-left:0; margin-left:0; }
.elementor-widget-text-editor ul li{
  position:relative;
  padding:7px 0 7px 32px;
  margin-bottom:3px;
}
.elementor-widget-text-editor ul li:before{
  content:"";
  position:absolute; left:4px; top:16px;
  width:9px; height:9px; border-radius:50%;
  background:linear-gradient(135deg,var(--gf-gold),var(--gf-teal-2));
  box-shadow:0 0 0 4px rgba(201,169,106,.16);
}

/* accordion / FAQ */
.e-n-accordion-item,
.elementor-accordion .elementor-accordion-item{
  background:var(--gf-surface) !important;
  border:1px solid var(--gf-line) !important;
  border-radius:var(--gf-r) !important;
  margin-bottom:14px !important;
  overflow:hidden;
  box-shadow:var(--gf-shadow-sm);
  transition:transform .3s var(--gf-ease),box-shadow .3s var(--gf-ease),border-color .3s var(--gf-ease),background-color .45s var(--gf-ease);
}
.e-n-accordion-item:hover,
.elementor-accordion-item:hover{
  transform:translateY(-3px);
  border-color:rgba(201,169,106,.55) !important;
  box-shadow:var(--gf-shadow);
}

.e-n-accordion-item-title,
.elementor-accordion .elementor-tab-title{
  font-family:var(--gf-h) !important;
  font-weight:600 !important;
  font-size:1.05rem !important;
  color:var(--gf-head) !important;
  padding:20px 24px !important;
  background:transparent !important;
  transition:color .25s var(--gf-ease);
}
.e-n-accordion-item-title-text,
.elementor-accordion .elementor-tab-title a{ color:var(--gf-head) !important; }

.e-n-accordion-item-title-icon,
.elementor-accordion .elementor-accordion-icon{
  color:var(--gf-gold) !important;
  transition:transform .3s var(--gf-ease);
}
.e-n-accordion-item[open] .e-n-accordion-item-title-icon{ transform:rotate(180deg); }

.elementor-tab-content,
.e-n-accordion-item .e-n-accordion-item-content{
  color:var(--gf-text) !important;
  padding:2px 24px 24px !important;
  border-top:1px dashed var(--gf-line) !important;
  background:transparent !important;
  font-family:var(--gf-b) !important;
}

/* ==================== 11. FORMS ======================================== */
input[type="text"],input[type="email"],input[type="tel"],input[type="number"],
input[type="password"],input[type="search"],select,textarea,
.forminator-input,.wpforms-field input,.wpforms-field textarea{
  font-family:var(--gf-b) !important;
  border:1px solid var(--gf-line) !important;
  border-radius:var(--gf-r-sm) !important;
  padding:14px 16px !important;
  background:var(--gf-input-bg) !important;
  color:var(--gf-text) !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.03);
  transition:border-color .22s var(--gf-ease),box-shadow .22s var(--gf-ease),background-color .45s var(--gf-ease);
}
input::placeholder,textarea::placeholder{ color:var(--gf-muted) !important; opacity:.85; }
input:focus,select:focus,textarea:focus{
  outline:none !important;
  border-color:var(--gf-gold) !important;
  box-shadow:0 0 0 4px rgba(201,169,106,.20) !important;
}

/* ==================== 12. REVIEWS / FORUM ============================== */
.glsr-review,.site-reviews-review{
  background:var(--gf-surface) !important;
  border:1px solid var(--gf-line) !important;
  border-radius:var(--gf-r) !important;
  box-shadow:var(--gf-shadow-sm);
  padding:22px;
  color:var(--gf-text) !important;
}
.site-reviews,.glsr,.wpforo-wrap{ border-radius:var(--gf-r); }

/* ==================== 13. FOOTER ======================================= */
.elementor-location-footer{
  background:linear-gradient(180deg,#0A1110,#070C0B) !important;
  color:rgba(255,255,255,.74) !important;
  border-top:3px solid var(--gf-gold) !important;
  position:relative;
}
html[data-gf-theme="dark"] .elementor-location-footer{
  background:linear-gradient(180deg,#0B1312,#060A09) !important;
}
.elementor-location-footer .elementor-section,
.elementor-location-footer .e-con{ background:transparent !important; }
.elementor-location-footer .elementor-heading-title{ color:#fff !important; }
.elementor-location-footer .elementor-widget-text-editor,
.elementor-location-footer p,
.elementor-location-footer li,
.elementor-location-footer span{ color:rgba(255,255,255,.74) !important; }
.elementor-location-footer a{
  color:rgba(255,255,255,.86) !important;
  transition:color .22s var(--gf-ease),transform .22s var(--gf-ease);
  display:inline-block;
}
.elementor-location-footer a:hover{ color:var(--gf-gold-2) !important; transform:translateX(3px); }
.elementor-location-footer img{ max-height:48px; width:auto; opacity:.96; }
.elementor-location-footer ul{ list-style:none; padding-left:0; }
.elementor-location-footer ul li{ padding:4px 0; }

/* ==================== 14. THEME TOGGLE UI ============================== */
.gf-ui{
  position:fixed; z-index:2147483000;
  font-family:var(--gf-h);
}

/* scroll progress */
#gf-progress{
  position:fixed; top:0; left:0; height:3px; width:0;
  background:linear-gradient(90deg,var(--gf-gold),var(--gf-teal-2),var(--gf-gold));
  background-size:200% 100%;
  z-index:2147483600;
  animation:gf-progress-flow 6s linear infinite;
  transition:width .12s linear,opacity .3s var(--gf-ease);
  box-shadow:0 0 14px rgba(201,169,106,.55);
}
@keyframes gf-progress-flow{ to{ background-position:200% 0; } }

/* theme switch pill */
#gf-theme-toggle{
  position:fixed; right:22px; bottom:22px;
  display:inline-flex; align-items:center; gap:10px;
  padding:7px 8px;
  border:1px solid var(--gf-line);
  border-radius:999px;
  background:var(--gf-surface);
  color:var(--gf-head);
  box-shadow:var(--gf-shadow);
  cursor:pointer;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  transition:transform .28s var(--gf-ease),box-shadow .28s var(--gf-ease),background-color .45s var(--gf-ease),border-color .45s var(--gf-ease);
}
#gf-theme-toggle:hover{ transform:translateY(-3px) scale(1.03); box-shadow:0 30px 60px -26px rgba(0,0,0,.6); }
#gf-theme-toggle:active{ transform:translateY(-1px) scale(.99); }

.gf-tt-icons{ display:inline-flex; align-items:center; gap:6px; padding-left:4px; }
.gf-tt-icons svg{ width:17px; height:17px; display:block; }
.gf-tt-sun{ color:var(--gf-gold); }
.gf-tt-moon{ color:var(--gf-teal-2); }
html[data-gf-theme="dark"] .gf-tt-moon{ color:var(--gf-gold-2); }

.gf-tt-knob{
  position:relative; width:52px; height:28px; border-radius:999px;
  background:linear-gradient(120deg,var(--gf-bg-2),var(--gf-surface-2));
  border:1px solid var(--gf-line);
  display:inline-block; overflow:hidden; flex:0 0 auto;
}
.gf-tt-knob:before{
  content:"";
  position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%;
  background:var(--gf-btn-bg);
  box-shadow:0 6px 14px -4px var(--gf-btn-glow);
  transition:transform .42s var(--gf-ease);
}
html[data-gf-theme="dark"] .gf-tt-knob:before{ transform:translateX(24px); }
.gf-tt-label{ font-size:12.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; opacity:.85; padding-right:6px; }

/* back to top */
#gf-top{
  position:fixed; right:26px; bottom:88px;
  width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center;
  border:1px solid var(--gf-line);
  background:var(--gf-surface);
  color:var(--gf-head);
  box-shadow:var(--gf-shadow-sm);
  cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .3s var(--gf-ease),transform .3s var(--gf-ease),visibility .3s,background-color .45s var(--gf-ease);
  z-index:2147483000;
}
#gf-top.gf-show{ opacity:1; visibility:visible; transform:translateY(0); }
#gf-top:hover{ transform:translateY(-3px); border-color:var(--gf-gold); color:var(--gf-gold); }
#gf-top svg{ width:18px; height:18px; }

/* ==================== 15. MOTION ======================================= */
@keyframes gf-rise{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }
.elementor-section,.e-con,.e-n-accordion-item{ animation:gf-rise .7s var(--gf-ease) both; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .elementor-section,.e-con,.e-n-accordion-item{ animation:none !important; }
  .elementor-button:after{ animation:none !important; }
  #gf-progress{ animation:none !important; }
  *{ transition:none !important; }
}

/* ==================== 16. RESPONSIVE =================================== */
@media (max-width:1024px){
  .elementor-section.elementor-section-boxed > .elementor-container,
  .e-con{ --container-max-width:960px; }
  .elementor-element-4d305fd{ min-height:min(60vh,520px); }
}
@media (max-width:767px){
  body{ font-size:16px; }
  main .elementor-section,.elementor-page .elementor-section{
    padding-top:clamp(34px,9vw,60px);
    padding-bottom:clamp(34px,9vw,60px);
  }
  .elementor-element-4d305fd{ min-height:400px; }
  .elementor-element-4d305fd .elementor-heading-title{ font-size:clamp(1.75rem,8.4vw,2.5rem) !important; }
  .elementor-element-f1f734e{ margin-top:18px !important; margin-bottom:18px !important; border-radius:18px !important; }
  .elementor-button{ padding:13px 24px !important; }
  .elementor-location-header img{ max-height:44px; }
  #gf-theme-toggle{ right:14px; bottom:14px; }
  #gf-top{ right:18px; bottom:78px; }
  .gf-tt-label{ display:none; }
}
