:root {
  --jf-bg: #05070d;
  --jf-bg-soft: #09111d;
  --jf-surface: rgba(13, 20, 33, .92);
  --jf-surface-solid: #0d1421;
  --jf-card: linear-gradient(150deg, rgba(18, 29, 46, .96), rgba(7, 12, 21, .96));
  --jf-line: rgba(172, 255, 231, .16);
  --jf-text: #f7f9ff;
  --jf-copy: #c5cfdd;
  --jf-muted: #91a1b5;
  --jf-lime: #d8ff38;
  --jf-mint: #52f2ca;
  --jf-aqua: #57c8ff;
  --jf-violet: #8c72ff;
  --jf-shadow: 0 28px 80px rgba(0, 0, 0, .32);
}

html[data-jf-theme="light"] {
  --jf-bg: #f5f9f7;
  --jf-bg-soft: #eaf3ef;
  --jf-surface: rgba(255, 255, 255, .94);
  --jf-surface-solid: #fff;
  --jf-card: linear-gradient(150deg, #fff, #edf6f2);
  --jf-line: rgba(7, 104, 91, .16);
  --jf-text: #0a1720;
  --jf-copy: #354852;
  --jf-muted: #63737c;
  --jf-shadow: 0 24px 70px rgba(24, 63, 57, .13);
}

body.jf-fc27-surface {
  position: relative;
  color: var(--jf-text) !important;
  background:
    radial-gradient(circle at 13% 7%, rgba(82, 242, 202, .13), transparent 26rem),
    radial-gradient(circle at 88% 22%, rgba(140, 114, 255, .14), transparent 30rem),
    var(--jf-bg) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  line-height: 1.55;
}

.jf-page-ambient {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .33;
  background-image:
    linear-gradient(rgba(87, 200, 255, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(87, 200, 255, .08) 1px, transparent 1px);
  background-size: 54px 54px;
  -webkit-mask-image: linear-gradient(to bottom, #000, transparent 82%);
  mask-image: linear-gradient(to bottom, #000, transparent 82%);
}

html[data-jf-theme="light"] .jf-page-ambient { opacity: .16; }

.jf-fc27-surface h1,
.jf-fc27-surface h2,
.jf-fc27-surface h3,
.jf-fc27-surface h4,
.jf-fc27-surface h5,
.jf-fc27-surface h6,
.jf-fc27-surface .product_title {
  color: var(--jf-text) !important;
  font-family: "Arial Black", Impact, ui-sans-serif, system-ui, sans-serif !important;
  letter-spacing: -.035em;
}

.jf-fc27-surface p,
.jf-fc27-surface li,
.jf-fc27-surface label,
.jf-fc27-surface td,
.jf-fc27-surface th,
.jf-fc27-surface address { color: var(--jf-copy); }

.jf-fc27-surface a { transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }

/* Intestazione condivisa */
.jf-fc27-surface #header.header-color {
  border-bottom: 1px solid var(--jf-line) !important;
  background: rgba(5, 7, 13, .88) !important;
  box-shadow: 0 12px 36px rgba(0, 0, 0, .12) !important;
  backdrop-filter: blur(18px);
}

html[data-jf-theme="light"] .jf-fc27-surface #header.header-color { background: rgba(255, 255, 255, .9) !important; }

.jf-fc27-surface #header .navbar { min-height: 82px; }
.jf-fc27-surface #header #logo_img { width: auto !important; max-width: 250px !important; max-height: 66px !important; object-fit: contain; }
.jf-fc27-surface #header .navbar-nav > li > a,
.jf-fc27-surface #header .navbar-nav > li > a > span { color: var(--jf-copy) !important; font-size: 14px; font-weight: 800; }
.jf-fc27-surface #header .navbar-nav > li > a:hover,
.jf-fc27-surface #header .navbar-nav > li.active > a { color: var(--jf-text) !important; background: rgba(255, 255, 255, .07) !important; }
html[data-jf-theme="light"] .jf-fc27-surface #header .navbar-nav > li > a:hover,
html[data-jf-theme="light"] .jf-fc27-surface #header .navbar-nav > li.active > a { background: rgba(7, 75, 66, .08) !important; }
.jf-fc27-surface #header .kleo-main-header { border: 0 !important; background: transparent !important; }
.jf-fc27-surface #header .navbar-toggle { border-color: var(--jf-line) !important; background: var(--jf-surface) !important; }
.jf-fc27-surface #header .icon-bar { background: var(--jf-text) !important; }

.jf-theme-toggle {
  position: fixed;
  z-index: 100004;
  top: 102px;
  right: 18px;
  min-height: 44px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid var(--jf-line);
  border-radius: 14px;
  color: var(--jf-text);
  background: var(--jf-surface);
  box-shadow: 0 14px 38px rgba(0, 0, 0, .2);
  backdrop-filter: blur(16px);
  font: 850 12px/1 Inter, ui-sans-serif, system-ui, sans-serif;
  cursor: pointer;
}
.jf-theme-toggle:hover { border-color: rgba(82, 242, 202, .42); transform: translateY(-1px); }
.jf-theme-icon { font-size: 17px; }

/* Struttura e navigazione contestuale */
.jf-fc27-surface #main,
.jf-fc27-surface #main-container { color: var(--jf-text); background: transparent !important; }
.jf-fc27-surface #main > .container-wrap,
.jf-fc27-surface #main-container > .container-wrap { background-color: transparent !important; background-image: none !important; }
.jf-fc27-surface.woocommerce-page #main-container .container-wrap,
.jf-fc27-surface.jf-has-login-shell #main-container .container-wrap {
  background-color: transparent !important;
  background-image: none !important;
}
.jf-fc27-surface .jf-legacy-course-promo { display: none !important; }
.jf-fc27-surface #main-container { position: relative; min-height: 65vh; padding-bottom: 90px; }
.jf-fc27-surface #main-container > .container,
.jf-fc27-surface #main-container > .container-full { position: relative; z-index: 1; }
.jf-fc27-surface .main-title,
.jf-fc27-surface .breadcrumb-extra { border-color: var(--jf-line) !important; background: transparent !important; }
.jf-fc27-surface .breadcrumb,
.jf-fc27-surface .breadcrumb a { color: var(--jf-muted) !important; }

.jf-context-bar {
  position: relative;
  z-index: 3;
  width: min(1180px, calc(100% - 40px));
  min-height: 54px;
  margin: 28px auto 8px;
  padding: 10px 14px 10px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid var(--jf-line);
  border-radius: 17px;
  color: var(--jf-muted);
  background: var(--jf-surface);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .12);
  backdrop-filter: blur(16px);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.jf-context-bar b { color: var(--jf-lime); }
html[data-jf-theme="light"] .jf-context-bar b { color: #587900 !important; }
.jf-context-bar nav { display: flex; align-items: center; gap: 5px; }
.jf-context-bar nav { scrollbar-width: none; -ms-overflow-style: none; }
.jf-context-bar nav::-webkit-scrollbar { display: none; }
.jf-context-bar a { padding: 8px 10px; border-radius: 10px; color: var(--jf-copy) !important; }
.jf-context-bar a:hover { color: var(--jf-text) !important; background: rgba(255, 255, 255, .07); }

/* Login WP-Client */
.jf-fc27-surface.page-id-9 #main > .container-wrap,
.jf-fc27-surface.page-id-9 #main-container > .container-wrap,
.jf-fc27-surface.page-id-9 #main-container .container-wrap,
.jf-fc27-surface.page-id-9 #main-container .vc_row,
.jf-fc27-surface.page-id-9 #main-container .vc_column-inner,
.jf-fc27-surface.page-id-9 #main-container .wpb_wrapper {
  min-height: 0 !important;
  background-color: transparent !important;
  background-image: none !important;
}
.jf-fc27-surface.page-id-9 .jf-login-source-row,
.jf-fc27-surface.jf-has-login-shell .jf-login-source-row { display: none !important; }

.jf-login-shell {
  width: min(1100px, calc(100% - 40px));
  min-height: 610px;
  margin: 46px auto 20px;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  border: 1px solid var(--jf-line);
  border-radius: 34px;
  background: var(--jf-surface);
  box-shadow: var(--jf-shadow);
  overflow: hidden;
}

.jf-login-card {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: clamp(32px, 5vw, 58px) !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--jf-text) !important;
  background: transparent !important;
}
.jf-login-intro { margin-bottom: 28px; }
.jf-eyebrow { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 18px; color: var(--jf-mint); font-size: 11px; font-weight: 950; letter-spacing: .16em; text-transform: uppercase; }
.jf-eyebrow::before { width: 30px; height: 2px; content: ""; background: currentColor; box-shadow: 0 0 12px currentColor; }
.jf-login-intro h1 { margin: 0 0 18px; font-size: clamp(42px, 5vw, 65px) !important; line-height: .96 !important; }
.jf-login-intro h1 span { color: transparent; background: linear-gradient(100deg, var(--jf-lime), var(--jf-mint), var(--jf-aqua)); -webkit-background-clip: text; background-clip: text; }
html[data-jf-theme="light"] .jf-login-intro h1 span { background-image: linear-gradient(100deg, #587900, #007b68, #146d94); }
.jf-login-intro p { margin: 0; font-size: 16px; }

.jf-login-card #loginform,
.jf-login-card .wpc_form_login { width: 100% !important; }
.jf-login-card #loginform p { margin: 0 0 17px !important; }
.jf-login-card #loginform label { display: block; margin-bottom: 7px; color: var(--jf-copy) !important; font-weight: 800; }
.jf-login-card #loginform input[type="text"],
.jf-login-card #loginform input[type="password"] {
  width: 100% !important;
  height: 52px !important;
  padding: 0 15px !important;
  border: 1px solid var(--jf-line) !important;
  border-radius: 14px !important;
  color: var(--jf-text) !important;
  background: rgba(255, 255, 255, .055) !important;
  box-shadow: none !important;
}
html[data-jf-theme="light"] .jf-login-card #loginform input[type="text"],
html[data-jf-theme="light"] .jf-login-card #loginform input[type="password"] { background: rgba(7, 75, 66, .05) !important; }
.jf-login-card #loginform input:focus { border-color: var(--jf-mint) !important; box-shadow: 0 0 0 3px rgba(82, 242, 202, .12) !important; outline: 0; }
.jf-login-card #wp-submit { min-height: 50px !important; padding: 0 24px !important; border: 0 !important; border-radius: 14px !important; color: #07100d !important; background: linear-gradient(100deg, var(--jf-lime), var(--jf-mint)) !important; box-shadow: 0 14px 38px rgba(82, 242, 202, .18); font-weight: 950 !important; text-transform: none !important; }
.jf-login-card .forgetmenot { display: flex; align-items: center; gap: 8px; }
.jf-login-card a { color: var(--jf-mint) !important; font-weight: 800; }

.jf-login-visual {
  position: relative;
  min-height: 610px;
  background:
    linear-gradient(rgba(87, 200, 255, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(87, 200, 255, .08) 1px, transparent 1px),
    repeating-radial-gradient(circle at 50% 48%, transparent 0 43px, rgba(82, 242, 202, .075) 44px 45px),
    radial-gradient(circle at 52% 38%, rgba(82, 242, 202, .2), transparent 29%),
    linear-gradient(145deg, #111d2e, #070c15);
  background-size: 40px 40px, 40px 40px, auto, auto, auto;
  overflow: hidden;
}
.jf-login-visual::after { position: absolute; inset: auto 0 0; z-index: 2; height: 145px; content: ""; background: linear-gradient(transparent, rgba(3, 7, 12, .96)); }
.jf-login-john { position: absolute; left: 50%; bottom: 0; width: 104%; height: 94%; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 32px 30px rgba(0, 0, 0, .48)); transform: translateX(-50%); }
.jf-image-brand { position: absolute; z-index: 4; left: 50%; bottom: 22px; width: min(330px, 68%); height: auto; padding: 11px 16px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 15px; background: rgba(5, 7, 13, .68); backdrop-filter: blur(10px); transform: translateX(-50%); }
.jf-visual-badge { position: absolute; z-index: 4; top: 20px; right: 20px; padding: 9px 12px; border-radius: 999px; color: #07100d; background: linear-gradient(90deg, var(--jf-lime), var(--jf-mint)); font-size: 10px; font-weight: 950; letter-spacing: .12em; }

/* Contenitori WooCommerce */
.jf-fc27-surface.woocommerce-page #main-container > .container,
.jf-fc27-surface.woocommerce-page #main-container > .container-full,
.jf-fc27-surface.woocommerce #main-container > .container {
  width: min(1180px, calc(100% - 40px)) !important;
  margin-inline: auto !important;
  padding: 44px clamp(20px, 4vw, 46px) !important;
  border: 1px solid var(--jf-line);
  border-radius: 30px;
  background: var(--jf-surface) !important;
  box-shadow: var(--jf-shadow);
}
.jf-fc27-surface.woocommerce-page #main-container .content-area,
.jf-fc27-surface.woocommerce #main-container .content-area { width: 100% !important; }

.jf-fc27-surface .woocommerce-breadcrumb { color: var(--jf-muted) !important; }
.jf-fc27-surface .woocommerce-breadcrumb a { color: var(--jf-mint) !important; }
.jf-fc27-surface .woocommerce-result-count,
.jf-fc27-surface .woocommerce-ordering { color: var(--jf-muted); }

.jf-fc27-surface .woocommerce-message,
.jf-fc27-surface .woocommerce-info,
.jf-fc27-surface .woocommerce-error {
  margin-bottom: 22px !important;
  padding: 18px 20px 18px 54px !important;
  border: 1px solid var(--jf-line) !important;
  border-top: 1px solid var(--jf-line) !important;
  border-radius: 16px !important;
  color: var(--jf-copy) !important;
  background: var(--jf-surface-solid) !important;
  box-shadow: none !important;
}
.jf-fc27-surface .woocommerce-message::before,
.jf-fc27-surface .woocommerce-info::before { color: var(--jf-mint) !important; }
.jf-fc27-surface .woocommerce-error::before { color: #ff708f !important; }

.jf-fc27-surface .woocommerce a.button,
.jf-fc27-surface .woocommerce button.button,
.jf-fc27-surface .woocommerce input.button,
.jf-fc27-surface .woocommerce #respond input#submit,
.jf-fc27-surface .woocommerce a.button.alt,
.jf-fc27-surface .woocommerce button.button.alt,
.jf-fc27-surface .woocommerce input.button.alt,
.jf-fc27-surface .button,
.jf-fc27-surface .btn-default {
  min-height: 46px !important;
  padding: 0 20px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent !important;
  border-radius: 13px !important;
  color: #07100d !important;
  background: linear-gradient(100deg, var(--jf-lime), var(--jf-mint)) !important;
  box-shadow: 0 12px 34px rgba(82, 242, 202, .16) !important;
  font-weight: 950 !important;
  text-transform: none !important;
}
.jf-fc27-surface .woocommerce a.button:hover,
.jf-fc27-surface .woocommerce button.button:hover,
.jf-fc27-surface .woocommerce input.button:hover,
.jf-fc27-surface .button:hover { transform: translateY(-2px); filter: brightness(1.04); }
.jf-fc27-surface .woocommerce button.button:disabled,
.jf-fc27-surface .woocommerce button.button.disabled { opacity: .5; }

.jf-fc27-surface .woocommerce form .form-row input.input-text,
.jf-fc27-surface .woocommerce form .form-row textarea,
.jf-fc27-surface .woocommerce form.login input,
.jf-fc27-surface .woocommerce form.register input,
.jf-fc27-surface .woocommerce .quantity .qty,
.jf-fc27-surface .select2-container--default .select2-selection--single,
.jf-fc27-surface select,
.jf-fc27-surface input[type="text"],
.jf-fc27-surface input[type="email"],
.jf-fc27-surface input[type="password"],
.jf-fc27-surface input[type="tel"],
.jf-fc27-surface textarea {
  min-height: 48px;
  padding: 11px 14px !important;
  border: 1px solid var(--jf-line) !important;
  border-radius: 12px !important;
  color: var(--jf-text) !important;
  background: rgba(255, 255, 255, .055) !important;
  box-shadow: none !important;
}
html[data-jf-theme="light"] .jf-fc27-surface input,
html[data-jf-theme="light"] .jf-fc27-surface textarea,
html[data-jf-theme="light"] .jf-fc27-surface select,
html[data-jf-theme="light"] .jf-fc27-surface .select2-selection { background: rgba(7, 75, 66, .05) !important; }
.jf-fc27-surface input:focus,
.jf-fc27-surface textarea:focus,
.jf-fc27-surface select:focus { border-color: var(--jf-mint) !important; box-shadow: 0 0 0 3px rgba(82, 242, 202, .12) !important; outline: 0; }
.jf-fc27-surface .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--jf-text) !important; line-height: 45px; }
.jf-fc27-surface .select2-dropdown { border-color: var(--jf-line); color: var(--jf-text); background: var(--jf-surface-solid); }

/* Negozio e pacchetti */
.jf-fc27-surface .woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.jf-fc27-surface ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.jf-fc27-surface .woocommerce ul.products::before,
.jf-fc27-surface .woocommerce ul.products::after,
.jf-fc27-surface ul.products::before,
.jf-fc27-surface ul.products::after { display: none !important; }
.jf-fc27-surface .woocommerce ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  padding: 18px !important;
  border: 1px solid var(--jf-line);
  border-radius: 22px;
  background: var(--jf-card);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .14);
  overflow: hidden;
}
.jf-fc27-surface ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  padding: 18px !important;
  border: 1px solid var(--jf-line);
  border-radius: 22px;
  background: var(--jf-card) !important;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .14);
  overflow: hidden;
}
.jf-fc27-surface .woocommerce ul.products li.product:hover { transform: translateY(-4px); border-color: rgba(82, 242, 202, .38); }
.jf-fc27-surface ul.products li.product:hover { transform: translateY(-4px); border-color: rgba(82, 242, 202, .38); }
.jf-fc27-surface .woocommerce ul.products li.product h2,
.jf-fc27-surface .woocommerce ul.products li.product h3,
.jf-fc27-surface ul.products li.product h2,
.jf-fc27-surface ul.products li.product h3 { font-size: 21px !important; line-height: 1.12 !important; }
.jf-fc27-surface .woocommerce ul.products li.product .price { color: var(--jf-lime) !important; font-size: 20px !important; font-weight: 950; }
.jf-fc27-surface ul.products li.product .price { color: var(--jf-lime) !important; font-size: 20px !important; font-weight: 950; }
html[data-jf-theme="light"] .jf-fc27-surface .woocommerce ul.products li.product .price { color: #587900 !important; }
html[data-jf-theme="light"] .jf-fc27-surface ul.products li.product .price { color: #587900 !important; }
.jf-fc27-surface .woocommerce span.onsale { min-width: 0; min-height: 0; padding: 8px 11px !important; border-radius: 999px !important; color: #07100d !important; background: var(--jf-lime) !important; line-height: 1 !important; }
.jf-fc27-surface span.onsale { min-width: 0; min-height: 0; padding: 8px 11px !important; border-radius: 999px !important; color: #07100d !important; background: var(--jf-lime) !important; line-height: 1 !important; }
.jf-fc27-surface .woocommerce ul.products li.product img { border-radius: 16px; }
.jf-fc27-surface ul.products li.product img { border-radius: 16px; }

.jf-branded-frame { position: relative !important; overflow: hidden; }
.jf-commerce-brand { position: absolute !important; z-index: 5; left: 50% !important; bottom: 12px !important; width: min(230px, 62%) !important; height: auto !important; margin: 0 !important; padding: 8px 12px !important; border: 1px solid rgba(255, 255, 255, .14); border-radius: 12px !important; background: rgba(5, 7, 13, .68); backdrop-filter: blur(9px); transform: translateX(-50%); pointer-events: none; }

/* Scheda prodotto */
.jf-fc27-surface.single-product div.product { display: block; }
.jf-fc27-surface.single-product div.product > .row { width: 100%; margin: 0 !important; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; gap: clamp(28px, 5vw, 64px); }
.jf-fc27-surface.single-product div.product > .row::before,
.jf-fc27-surface.single-product div.product > .row::after { display: none !important; }
.jf-fc27-surface.single-product div.product .woocommerce-product-gallery,
.jf-fc27-surface.single-product div.product .summary { float: none !important; width: auto !important; margin: 0 !important; }
.jf-fc27-surface.single-product div.product .woocommerce-product-gallery { padding: 16px; border: 1px solid var(--jf-line); border-radius: 24px; background: linear-gradient(145deg, rgba(82, 242, 202, .08), rgba(140, 114, 255, .08)); }
.jf-fc27-surface.single-product div.product .woocommerce-product-gallery img { border-radius: 17px; }
.jf-fc27-surface.single-product .summary .product_title { margin-bottom: 18px; font-size: clamp(38px, 4.7vw, 62px) !important; line-height: .98 !important; }
.jf-fc27-surface.single-product .summary .price { color: var(--jf-lime) !important; font: 950 clamp(38px, 4vw, 58px)/1 "Arial Black", sans-serif !important; }
html[data-jf-theme="light"] .jf-fc27-surface.single-product .summary .price { color: #587900 !important; }
.jf-fc27-surface.single-product .summary del { color: var(--jf-muted) !important; opacity: .75; }
.jf-fc27-surface.single-product .summary ins { text-decoration: none; }
.jf-fc27-surface.single-product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.jf-fc27-surface.single-product .woocommerce-tabs,
.jf-fc27-surface.single-product .related,
.jf-fc27-surface.single-product #reviews { grid-column: 1 / -1; }
.jf-fc27-surface.single-product .woocommerce-tabs { margin-top: 26px; padding-top: 30px; border-top: 1px solid var(--jf-line); }
.jf-fc27-surface .woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; border-bottom: 1px solid var(--jf-line); }
.jf-fc27-surface .woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--jf-line) !important; }
.jf-fc27-surface .woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 6px 0 0 !important; border: 1px solid var(--jf-line) !important; border-radius: 12px 12px 0 0 !important; background: rgba(255, 255, 255, .04) !important; }
.jf-fc27-surface .woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--jf-surface-solid) !important; }
.jf-fc27-surface .woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--jf-copy) !important; }
.jf-fc27-surface .star-rating span::before,
.jf-fc27-surface .stars a { color: #ffc928 !important; }

/* Carrello, pagamento, account e ordini */
.jf-fc27-surface .woocommerce table.shop_table,
.jf-fc27-surface .woocommerce table.my_account_orders,
.jf-fc27-surface .woocommerce table.woocommerce-table {
  border: 1px solid var(--jf-line) !important;
  border-collapse: separate !important;
  border-radius: 18px !important;
  background: var(--jf-surface-solid) !important;
  overflow: hidden;
}
.jf-fc27-surface .woocommerce table.shop_table th,
.jf-fc27-surface .woocommerce table.shop_table td { padding: 16px !important; border-color: var(--jf-line) !important; }
.jf-fc27-surface .woocommerce table.shop_table th { color: var(--jf-text) !important; background: rgba(82, 242, 202, .055); }
.jf-fc27-surface .woocommerce table.shop_table td.product-name a,
.jf-fc27-surface .woocommerce-info a,
.jf-fc27-surface .woocommerce-info button { color: var(--jf-mint) !important; }
.jf-fc27-surface .order-review-wrap,
.jf-fc27-surface .kleo-cart-totals {
  border: 1px solid var(--jf-line) !important;
  border-radius: 22px;
  background: var(--jf-card) !important;
  box-shadow: var(--jf-shadow);
}
.jf-fc27-surface .cart-checkout-nav,
.jf-fc27-surface .cart-checkout-nav a,
.jf-fc27-surface .cart-checkout-nav span { color: var(--jf-copy) !important; }
.jf-fc27-surface.woocommerce-cart .col-sm-8 > .cart-collaterals { display: none !important; }
.jf-fc27-surface .woocommerce .cart-collaterals .cart_totals,
.jf-fc27-surface .woocommerce-checkout-review-order,
.jf-fc27-surface .woocommerce form.checkout_coupon,
.jf-fc27-surface .woocommerce form.login,
.jf-fc27-surface .woocommerce form.register,
.jf-fc27-surface .woocommerce-MyAccount-content,
.jf-fc27-surface .woocommerce-customer-details,
.jf-fc27-surface .woocommerce-order-details {
  padding: clamp(22px, 4vw, 34px) !important;
  border: 1px solid var(--jf-line) !important;
  border-radius: 20px !important;
  background: var(--jf-card) !important;
}
.jf-fc27-surface .woocommerce-checkout #payment { border: 1px solid var(--jf-line) !important; border-radius: 18px !important; color: var(--jf-copy); background: var(--jf-surface-solid) !important; }
.jf-fc27-surface .woocommerce-checkout #payment div.payment_box { color: var(--jf-copy) !important; background: rgba(87, 200, 255, .08) !important; }
.jf-fc27-surface .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: rgba(87, 200, 255, .08) !important; }

.jf-fc27-surface.woocommerce-account.logged-in .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 26px; }
.jf-fc27-surface.woocommerce-account.logged-in .woocommerce::before,
.jf-fc27-surface.woocommerce-account.logged-in .woocommerce::after { display: none; }
.jf-fc27-surface .woocommerce-MyAccount-navigation { width: auto !important; float: none !important; }
.jf-fc27-surface .woocommerce-MyAccount-navigation ul { margin: 0; padding: 10px; border: 1px solid var(--jf-line); border-radius: 18px; background: var(--jf-surface-solid); list-style: none; }
.jf-fc27-surface .woocommerce-MyAccount-navigation li { margin: 3px 0; }
.jf-fc27-surface .woocommerce-MyAccount-navigation a { display: block; padding: 11px 12px; border-radius: 10px; color: var(--jf-copy) !important; font-weight: 800; }
.jf-fc27-surface .woocommerce-MyAccount-navigation li.is-active a,
.jf-fc27-surface .woocommerce-MyAccount-navigation a:hover { color: #07100d !important; background: linear-gradient(90deg, var(--jf-lime), var(--jf-mint)); }
.jf-fc27-surface .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.jf-fc27-surface .woocommerce-LostPassword a { color: var(--jf-mint) !important; }
.jf-fc27-surface .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.jf-fc27-surface .woocommerce-Address { width: auto !important; padding: 22px; border: 1px solid var(--jf-line); border-radius: 18px; background: var(--jf-surface-solid); }

/* Recensioni */
.jf-fc27-surface #reviews,
.jf-fc27-surface .cr-all-reviews-shortcode,
.jf-fc27-surface .cr-reviews-grid { color: var(--jf-copy) !important; background: transparent !important; }
.jf-fc27-surface #reviews .commentlist li,
.jf-fc27-surface .cr-review-card-inner { border: 1px solid var(--jf-line) !important; border-radius: 18px !important; background: var(--jf-surface-solid) !important; box-shadow: none !important; }
.jf-fc27-surface .cr-summaryBox-wrap,
.jf-fc27-surface .cr-overall-rating-wrap { color: var(--jf-copy) !important; background: var(--jf-surface-solid) !important; }

/* Area Studenti: dashboard, contenuti, profilo e moduli operativi */
.jf-student-area:not(.page-id-9) #main-container > .template-page {
  width: min(1180px, calc(100% - 40px)) !important;
  margin: 28px auto 64px !important;
  padding: clamp(24px, 4vw, 46px) !important;
  float: none !important;
  border: 1px solid var(--jf-line);
  border-radius: 30px;
  background: var(--jf-surface) !important;
  box-shadow: var(--jf-shadow);
  overflow: hidden;
}
.jf-student-area #main-container article,
.jf-student-area #main-container .wrap-content { min-width: 0; }
.jf-student-area #main-container img { max-width: 100%; height: auto; }
.jf-student-area #main-container a { color: var(--jf-mint); font-weight: 750; }
.jf-student-area #main-container hr { border-color: var(--jf-line); }
.jf-student-area #main-container .vc_row-has-fill,
.jf-student-area #main-container .vc_col-has-fill > .vc_column-inner {
  border: 1px solid var(--jf-line);
  border-radius: 22px;
  background-color: rgba(82, 242, 202, .045) !important;
  background-image: linear-gradient(145deg, rgba(82, 242, 202, .045), rgba(140, 114, 255, .055)) !important;
}
.jf-student-area #main-container .wpb_single_image img,
.jf-student-area #main-container .vc_single_image-wrapper { border-radius: 18px; }
.jf-student-area #main-container section.container-wrap {
  width: 100% !important;
  margin: 0 0 14px !important;
  color: var(--jf-copy) !important;
  background-color: transparent !important;
  background-image: none !important;
}
.jf-student-area #main-container section.container-wrap.custom-color {
  padding: 14px !important;
  border: 1px solid var(--jf-line);
  border-radius: 18px;
  background: var(--jf-card) !important;
}
.jf-student-area #main-container section.container-wrap > .container,
.jf-student-area #main-container section.container-wrap > .container-full {
  width: 100% !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}
.jf-student-area #main-container section.container-wrap.custom-color h1,
.jf-student-area #main-container section.container-wrap.custom-color h2,
.jf-student-area #main-container section.container-wrap.custom-color h3,
.jf-student-area #main-container section.container-wrap.custom-color p { color: var(--jf-text) !important; }

.jf-student-panel,
.jf-student-area .wpc_client_files_container,
.jf-student-area .wpc_private_messages_shortcode,
.jf-student-area .wpc_client_client_pages_list,
.jf-student-area .wpc_client_pages_tree,
.jf-student-area .wppb-user-forms,
.jf-student-area .gform_wrapper,
.jf-student-area .wpc_form:not(.wpc_form_login) {
  padding: clamp(18px, 3vw, 30px) !important;
  border: 1px solid var(--jf-line) !important;
  border-radius: 22px !important;
  color: var(--jf-copy) !important;
  background: var(--jf-card) !important;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .13);
}
.jf-student-area .wpc_filters_wrapper,
.jf-student-area .wpc_msg_top_nav_wrapper,
.jf-student-area .wpc_msg_controls_line,
.jf-student-area .wpc_files_bulk_actions_block,
.jf-student-area .wpc_files_search_block {
  margin-bottom: 16px !important;
  padding: 12px !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--jf-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, .035);
}
.jf-student-area table,
.jf-student-area .wpc_client_files_table,
.jf-student-area .wpc_private_messages_table {
  width: 100% !important;
  border: 1px solid var(--jf-line) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: 16px;
  background: var(--jf-surface-solid) !important;
  overflow: hidden;
}
.jf-student-area table th,
.jf-student-area table td,
.jf-student-area .wpc_file_row > *,
.jf-student-area .wpc_msg_item > * { padding: 13px 14px !important; border-color: var(--jf-line) !important; }
.jf-student-area table th { color: var(--jf-text) !important; background: rgba(82, 242, 202, .07) !important; }
.jf-student-area table tr:nth-child(even) td { background: rgba(255, 255, 255, .025); }
.jf-student-area .wpc_file_block,
.jf-student-area .wpc_page_block,
.jf-student-area .wpc_msg_item,
.jf-student-area .wpc_msg_message_line {
  margin-bottom: 12px;
  padding: 15px !important;
  border: 1px solid var(--jf-line) !important;
  border-radius: 15px !important;
  color: var(--jf-copy) !important;
  background: var(--jf-surface-solid) !important;
}
.jf-student-area .wpc_msg_avatar img { border-radius: 50%; }
.jf-student-area .wpc_msg_message_content,
.jf-student-area .wpc_file_description_value,
.jf-student-area .wpc_description { color: var(--jf-copy) !important; }
.jf-student-area .wpc_button,
.jf-student-area .wpc_submit,
.jf-student-area .wpc_msg_new_message_button,
.jf-student-area .wpc_msg_send_new_message,
.jf-student-area .wpc_msg_send_answer,
.jf-student-area .wpc_files_search_button,
.jf-student-area .wpc_files_bulk_actions_apply_button,
.jf-student-area .wppb-user-forms input[type="submit"],
.jf-student-area .gform_button {
  min-height: 44px !important;
  padding: 0 18px !important;
  border: 0 !important;
  border-radius: 12px !important;
  color: #07100d !important;
  background: linear-gradient(100deg, var(--jf-lime), var(--jf-mint)) !important;
  box-shadow: 0 12px 30px rgba(82, 242, 202, .15) !important;
  font-weight: 900 !important;
}
.jf-student-area .wpc_pagination_links,
.jf-student-area .wpc_msg_pagination_buttons { display: flex; flex-wrap: wrap; gap: 7px; }
.jf-student-area .wpc_pagination_links a,
.jf-student-area .wpc_msg_pagination_buttons a { padding: 8px 11px; border: 1px solid var(--jf-line); border-radius: 9px; background: var(--jf-surface-solid); }
.jf-student-area .wppb-form-field,
.jf-student-area .gfield { margin-bottom: 18px !important; }
.jf-student-area .wppb-form-field label,
.jf-student-area .gfield_label { color: var(--jf-text) !important; font-weight: 850 !important; }
.jf-student-area .gform_not_found {
  padding: 16px 18px;
  border: 1px solid rgba(255, 112, 143, .35);
  border-radius: 14px;
  color: #ffb7c6;
  background: rgba(255, 112, 143, .08);
}

/* Videolezioni: sostituisce i vecchi riquadri fissi da 300 px */
.jf-student-area.page-id-1718 .jf-video-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.jf-student-area.page-id-1718 .jf-video-grid > :not(.test11) { grid-column: 1 / -1; }
.jf-student-area.page-id-1718 .jf-video-card {
  position: relative;
  min-width: 0;
  margin: 0 !important;
  padding: 16px !important;
  border: 1px solid var(--jf-line);
  border-radius: 20px;
  background: var(--jf-card);
  overflow: hidden;
}
.jf-student-area.page-id-1718 .jf-video-card::before {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 12px;
  padding: 5px 8px;
  border-radius: 999px;
  content: attr(data-lesson);
  color: #07100d;
  background: linear-gradient(100deg, var(--jf-lime), var(--jf-mint));
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .1em;
}
.jf-student-area.page-id-1718 .jf-video-card > div {
  width: 100% !important;
  min-width: 0;
  padding: 0 !important;
  display: block !important;
}
.jf-student-area.page-id-1718 .jf-video-card > div > div {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9;
  padding: 0 !important;
  border: 1px solid var(--jf-line);
  border-radius: 14px;
  background: #02050a;
  overflow: hidden;
}
.jf-student-area.page-id-1718 .jf-video-card h1 { margin: 14px 0 2px !important; font-size: clamp(22px, 3vw, 31px) !important; }
.jf-student-area.page-id-1718 .fluid-width-video-wrapper {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto;
  padding-top: 0 !important;
  border: 0;
  border-radius: 0;
  background: #02050a;
  overflow: hidden;
}
.jf-student-area.page-id-1718 .fluid-width-video-wrapper iframe { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; }

/* Footer */
.jf-fc27-surface #footer,
.jf-fc27-surface #socket { border-color: var(--jf-line) !important; color: #aab8c8 !important; background: #070b12 !important; }
.jf-fc27-surface #footer h1,
.jf-fc27-surface #footer h2,
.jf-fc27-surface #footer h3,
.jf-fc27-surface #footer h4,
.jf-fc27-surface #footer p,
.jf-fc27-surface #footer a { color: #dce4ef !important; }
.jf-fc27-surface #footer img { max-width: 100%; height: auto; }

@media (max-width: 991px) {
  .jf-fc27-surface #header .navbar-collapse { border: 1px solid var(--jf-line); border-radius: 0 0 18px 18px; background: var(--jf-surface-solid) !important; box-shadow: var(--jf-shadow); }
  .jf-login-shell { grid-template-columns: 1fr; }
  .jf-login-visual { min-height: 520px; }
  .jf-fc27-surface .woocommerce ul.products,
  .jf-fc27-surface ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jf-fc27-surface.single-product div.product > .row { grid-template-columns: 1fr; }
  .jf-fc27-surface.woocommerce-account.logged-in .woocommerce { grid-template-columns: 1fr; }
  .jf-fc27-surface .woocommerce-MyAccount-navigation ul { display: flex; gap: 5px; overflow-x: auto; }
  .jf-fc27-surface .woocommerce-MyAccount-navigation li { flex: 0 0 auto; }
  .jf-fc27-surface.woocommerce-cart .col-sm-8 > .cart-collaterals { display: block !important; }
  .jf-fc27-surface.woocommerce-cart .kleo-cart-totals { display: none !important; }
  .jf-student-area.page-id-1718 .jf-video-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .jf-theme-toggle { top: 86px; right: 64px; width: 42px; min-height: 42px; padding: 0; }
  .jf-theme-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .jf-context-bar { width: calc(100% - 26px); margin-top: 16px; flex-direction: column; align-items: flex-start; gap: 6px; }
  .jf-context-bar nav { width: 100%; overflow-x: auto; }
  .jf-login-shell { width: calc(100% - 26px); margin-top: 24px; border-radius: 24px; }
  .jf-login-card { padding: 28px 22px !important; }
  .jf-login-intro h1 { font-size: clamp(40px, 13vw, 56px) !important; }
  .jf-login-visual { min-height: 430px; }
  .jf-image-brand { width: 72%; bottom: 16px; }
  .jf-fc27-surface.woocommerce-page #main-container > .container,
  .jf-fc27-surface.woocommerce-page #main-container > .container-full,
  .jf-fc27-surface.woocommerce #main-container > .container { width: calc(100% - 26px) !important; padding: 24px 18px !important; border-radius: 22px; }
  .jf-fc27-surface .woocommerce ul.products,
  .jf-fc27-surface ul.products { grid-template-columns: 1fr; }
  .jf-fc27-surface .woocommerce table.shop_table { display: block; overflow-x: auto; }
  .jf-fc27-surface .woocommerce-Addresses { grid-template-columns: 1fr; }
  .jf-fc27-surface .woocommerce form .form-row-first,
  .jf-fc27-surface .woocommerce form .form-row-last { width: 100% !important; float: none !important; }
  .jf-student-area:not(.page-id-9) #main-container > .template-page { width: calc(100% - 26px) !important; margin-top: 18px !important; padding: 22px 16px !important; border-radius: 22px; }
  .jf-student-area .jf-student-panel,
  .jf-student-area .wpc_client_files_container,
  .jf-student-area .wpc_private_messages_shortcode,
  .jf-student-area .wppb-user-forms,
  .jf-student-area .gform_wrapper { padding: 15px !important; border-radius: 16px !important; }
  .jf-student-area table,
  .jf-student-area .wpc_client_files_table,
  .jf-student-area .wpc_private_messages_table { display: block; overflow-x: auto; }
  .jf-student-area .wpc_filters_wrapper,
  .jf-student-area .wpc_msg_top_nav_wrapper,
  .jf-student-area .wpc_msg_controls_line { align-items: stretch; flex-direction: column; }
  .jf-student-area .wpc_filters_wrapper input,
  .jf-student-area .wpc_filters_wrapper select,
  .jf-student-area .wpc_msg_top_nav_wrapper input,
  .jf-student-area .wpc_msg_top_nav_wrapper select { width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
  .jf-fc27-surface *,
  .jf-fc27-surface *::before,
  .jf-fc27-surface *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
