/* Generated by build_site.php from the Design 2 prototype + assets/src/d2-*.css, adapted to Elementor markup. */
/* ---- Elementor bridge (pre): neutralise container / widget defaults ---- */
.fe .e-con { --width: auto; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; padding: 0; gap: 0; width: auto; max-width: none; min-width: auto; display: block; --flex-wrap: nowrap; flex-wrap: nowrap; }
.fe .e-con > .elementor-widget { width: auto; max-width: 100%; min-width: auto; margin-block-end: 0; }
:where(.fe) .elementor-widget-heading .elementor-heading-title { font-family: inherit; font-weight: inherit; color: inherit; line-height: inherit; }
.fe .elementor-widget-text-editor { font-family: inherit; font-weight: inherit; color: inherit; }
:root { --c-bg: #F5F3EE; --c-bg-alt: #ECEAE3; --c-ink: #14161A; --c-ink-soft: #3A3D43; --c-line: #C8C4BB; --c-pro-bg: #181A1D; --c-pro-ink: #E9E7E1; --c-pro-line: #2C2F33; --c-accent: #D8412F; --c-accent-ink:#FFFFFF; --ff-display: "Fraunces", Georgia, serif; --ff-body: "Inter", system-ui, sans-serif; --ff-mono: "JetBrains Mono", ui-monospace, monospace; --fs-display: clamp(3.5rem, 9vw, 8rem); --fs-h1: clamp(2.5rem, 5vw, 5rem); --fs-h2: clamp(1.75rem, 3.2vw, 3rem); --fs-h3: 1.375rem; --fs-body: 1.0625rem; --fs-small: 0.875rem; --fs-mono: 0.75rem; --s-1: 0.5rem; --s-2: 1rem; --s-3: 1.5rem; --s-4: 2rem; --s-5: 3rem; --s-6: 4.5rem; --s-7: 7rem; --s-8: 10rem; --pad-x: clamp(1.25rem, 4vw, 4rem); --grid-max: 1440px; --ease-emphasized: cubic-bezier(0.2, 0.0, 0, 1.0); --ease-standard: cubic-bezier(0.4, 0.0, 0.2, 1.0); --dur-fast: 180ms; --dur-medium: 420ms; --dur-slow: 900ms; --dur-hero: 1600ms; }
.fe.fe-d2 :where(.elementor-widget-container) *,
*::before,
*::after { box-sizing: border-box; }
html,
body.fe.fe-d2 { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
html.lenis,
html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }
body.fe.fe-d2 { background: var(--c-bg); color: var(--c-ink); font-family: var(--ff-body); font-size: var(--fs-body); line-height: 1.55; font-feature-settings: "ss01", "cv11"; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
.fe.fe-d2 :where(.elementor-widget-container) img,
.fe.fe-d2 :where(.elementor-widget-container) svg { max-width: 100% !important; display: block; }
.fe.fe-d2 :where(.elementor-widget-container) a { color: inherit; text-decoration: none; }
.fe.fe-d2 :where(.elementor-widget-container) button { font: inherit; }
.fe.fe-d2 :where(.elementor-widget-container) ul,
.fe.fe-d2 :where(.elementor-widget-container) ol { padding: 0; list-style: none; margin: 0; }
.fe.fe-d2 :where(.elementor-widget-container) h1,
.fe.fe-d2 :where(.elementor-widget-container) h2,
.fe.fe-d2 :where(.elementor-widget-container) h3,
.fe.fe-d2 :where(.elementor-widget-container) h4 { margin: 0; font-weight: 500; letter-spacing: -0.012em; }
.fe.fe-d2 :where(.elementor-widget-container) p { margin: 0 0 1em; }
::selection { background: var(--c-accent); color: var(--c-accent-ink); }
.fe.fe-d2 .mono { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-ink-soft); }
.fe.fe-d2 .btn .elementor-button { --btn-bg: var(--c-ink); --btn-ink: var(--c-bg); display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.95rem 1.6rem; background: var(--btn-bg); color: var(--btn-ink); border-radius: 999px; font-weight: 500; font-size: 0.95rem; letter-spacing: 0.01em; transition: transform var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard); will-change: transform; flex-direction: row; }
.fe.fe-d2 .btn .elementor-button:hover { transform: translateY(-2px); background: var(--c-accent); color: var(--c-accent-ink); }
.fe.fe-d2 .btn--primary .elementor-button { --btn-bg: var(--c-ink); --btn-ink: var(--c-bg); }
.fe.fe-d2 .btn--ghost .elementor-button { --btn-bg: transparent; --btn-ink: var(--c-ink); border: 1px solid var(--c-ink); border-radius: 999px; padding: calc(0.95rem - 1px) calc(1.6rem - 1px); }
.fe.fe-d2 .btn--ghost .elementor-button:hover { background: var(--c-ink); color: var(--c-bg); }
.fe.fe-d2 .btn--invert .elementor-button { --btn-bg: var(--c-pro-ink); --btn-ink: var(--c-pro-bg); }
.fe.fe-d2 .btn--invert .elementor-button:hover { background: var(--c-accent); color: var(--c-accent-ink); }
.fe.fe-d2 .btn--lg .elementor-button { padding: 1.4rem 2.5rem; font-size: 1.05rem; }
.fe.fe-d2 .nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--pad-x); background: color-mix(in oklab, var(--c-bg) 82%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: padding var(--dur-medium) var(--ease-standard); }
.fe.fe-d2 .nav.is-shrunk { padding: 0.85rem var(--pad-x); }
.fe.fe-d2 .nav__rule { position: absolute; left: var(--pad-x); right: var(--pad-x); bottom: 0; height: 1px; background: var(--c-line); transform-origin: left center; transform: scaleX(1); transition: background var(--dur-fast); }
.fe.fe-d2 .nav__brand { display: flex; align-items: baseline; gap: 0.5rem; font-family: var(--ff-display); font-size: 1.15rem; font-weight: 500; flex-direction: row; }
.fe.fe-d2 .nav__brand-mark { display: inline-grid; place-items: center; width: 1.7rem; height: 1.7rem; background: var(--c-ink); color: var(--c-bg); border-radius: 4px; font-size: 0.95rem; font-weight: 500; font-family: var(--ff-display); transform: translateY(2px); }
.fe.fe-d2 .nav__brand-name { letter-spacing: -0.005em; }
.fe.fe-d2 .nav__links { display: flex; justify-content: center; gap: var(--s-4); font-size: 0.9rem; color: var(--c-ink-soft); flex-direction: row; }
.fe.fe-d2 .nav__links a { position: relative; padding: 0.25rem 0; transition: color var(--dur-fast); }
.fe.fe-d2 .nav__links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 1px; background: var(--c-ink); transition: right var(--dur-medium) var(--ease-emphasized); }
.fe.fe-d2 .nav__links a:hover { color: var(--c-ink); }
.fe.fe-d2 .nav__links a:hover::after { right: 0; }
.fe.fe-d2 .nav__actions { display: flex; align-items: center; gap: var(--s-2); flex-direction: row; }
.fe.fe-d2 .nav__phone { font-family: var(--ff-mono); font-size: 0.78rem; letter-spacing: 0.06em; color: var(--c-ink-soft); }
.fe.fe-d2 .nav__cta .elementor-button { padding: 0.6rem 1.2rem; font-size: 0.85rem; }
@media (max-width: 880px) {
.fe.fe-d2 .nav { grid-template-columns: auto auto; }
.fe.fe-d2 .nav__links { display: none; }
}
@media (max-width: 540px) {
.fe.fe-d2 .nav__phone { display: none; }
}
.fe.fe-d2 .section-head { display: flex; flex-direction: column; gap: var(--s-2); margin-bottom: var(--s-5); }
.fe.fe-d2 .section-head__eyebrow { display: inline-block; }
.fe.fe-d2 .section-head__title { font-family: var(--ff-display); font-size: var(--fs-h1); line-height: 0.96; font-weight: 500; }
.fe.fe-d2 .section-head__sub { font-size: 1.05rem; color: var(--c-ink-soft); max-width: 36ch !important; }
.fe.fe-d2 .section-head--inline { max-width: 60ch !important; }
.fe.fe-d2 .hero { position: relative; min-height: 100vh; padding: var(--s-7) var(--pad-x) var(--s-5); display: grid; align-items: end; isolation: isolate; background: radial-gradient(120% 80% at 75% 30%, color-mix(in oklab, var(--c-bg-alt) 70%, var(--c-bg)) 0%, var(--c-bg) 60%), var(--c-bg); overflow: hidden; }
.fe.fe-d2 .hero__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.fe.fe-d2 .hero__media img { width: 100%; height: 110%; object-fit: cover; object-position: center 40%; transform: translateY(0) scale(1.04); will-change: transform; filter: contrast(1.02) saturate(1.05); }
.fe.fe-d2 .hero__veil { position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in oklab, var(--c-bg) 38%, transparent) 0%, transparent 30%, transparent 55%, color-mix(in oklab, var(--c-bg) 70%, transparent) 100%), linear-gradient(90deg, color-mix(in oklab, var(--c-bg) 55%, transparent) 0%, transparent 55%); }
.fe.fe-d2 .hero__inner { position: relative; z-index: 2; max-width: var(--grid-max) !important; width: 100%; margin: 0 auto; display: grid; grid-template-columns: 1fr; gap: var(--s-3); }
.fe.fe-d2 .hero__meta { margin-bottom: var(--s-2); }
.fe.fe-d2 .hero__title { font-family: var(--ff-display); font-size: var(--fs-display); line-height: 0.92; font-weight: 500; letter-spacing: -0.025em; margin: 0; }
.fe.fe-d2 .hero__title .line { display: block; overflow: hidden; padding-bottom: 0.05em; }
.fe.fe-d2 .hero__title .word { display: inline-block; transform: translateY(110%); will-change: transform; }
.fe.fe-d2 .hero__title em { font-style: italic; font-weight: 400; color: var(--c-ink-soft); }
.fe.fe-d2 .no-anim .hero__title .word { transform: none; }
.fe.fe-d2 .hero__sub { max-width: 48ch !important; font-size: clamp(1.05rem, 1.3vw, 1.25rem); color: var(--c-ink-soft); margin-top: var(--s-3); }
.fe.fe-d2 .hero__cta { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-3); flex-direction: row; }
.fe.fe-d2 .hero__scroll-hint { position: absolute; right: var(--pad-x); bottom: var(--s-3); writing-mode: vertical-rl; transform: rotate(180deg); display: inline-flex; align-items: center; gap: 0.5rem; flex-direction: row; }
.fe.fe-d2 .hero__scroll-hint::after { content: ""; display: inline-block; width: 1px; height: 36px; background: var(--c-ink-soft); animation: hint 1.8s var(--ease-standard) infinite; }
@keyframes hint {
  0%   { transform: scaleY(0); transform-origin: top; }
  50%  { transform: scaleY(1); transform-origin: top; }
  51%  { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}
.fe.fe-d2 .classes { padding: var(--s-8) var(--pad-x) var(--s-7); max-width: var(--grid-max) !important; margin: 0 auto; }
.fe.fe-d2 .classes__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--s-3); }
.fe.fe-d2 .class-block { position: relative; padding: var(--s-4); border: 1px solid var(--c-line); background: var(--c-bg); border-radius: 8px; transition: transform var(--dur-medium) var(--ease-emphasized), box-shadow var(--dur-medium) var(--ease-standard), opacity var(--dur-medium) var(--ease-standard); display: flex; flex-direction: column; min-height: 480px; }
.fe.fe-d2 .class-block:nth-child(1) { grid-column: 1 / span 5; }
.fe.fe-d2 .class-block:nth-child(2) { grid-column: 6 / span 7; transform: translateY(var(--s-5)); }
.fe.fe-d2 .class-block:nth-child(3) { grid-column: 3 / span 8; transform: translateY(var(--s-3)); }
.fe.fe-d2 .classes__grid:hover .class-block:not(:hover) { opacity: 0.5; }
.fe.fe-d2 .class-block:hover { transform: translateY(-6px) !important; box-shadow: 0 24px 60px -28px rgba(20,22,26,0.35); }
.fe.fe-d2 .class-block.tone-pro { background: var(--c-pro-bg); color: var(--c-pro-ink); border-color: var(--c-pro-line); }
.fe.fe-d2 .class-block.tone-pro .class-block__num { color: var(--c-accent); }
.fe.fe-d2 .class-block.tone-formal { background: var(--c-bg-alt); }
.fe.fe-d2 .class-block__num { font-family: var(--ff-display); font-size: clamp(3rem, 5vw, 5rem); line-height: 1; font-weight: 400; color: var(--c-accent); margin-bottom: var(--s-3); }
.fe.fe-d2 .class-block__title { font-family: var(--ff-display); font-size: clamp(1.6rem, 2.2vw, 2.2rem); font-weight: 500; margin-bottom: var(--s-2); line-height: 1.05; }
.fe.fe-d2 .class-block__lead { color: inherit; opacity: 0.78; max-width: 42ch !important; }
.fe.fe-d2 .class-block__items { margin-top: var(--s-3); display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.95rem; border-top: 1px solid var(--c-line); padding-top: var(--s-2); }
.fe.fe-d2 .class-block.tone-pro .class-block__items { border-color: var(--c-pro-line); }
.fe.fe-d2 .class-block__items li { padding: 0.2rem 0; opacity: 0.85; }
.fe.fe-d2 .class-block__link { margin-top: auto; padding-top: var(--s-3); font-size: 0.92rem; font-weight: 500; display: inline-flex; gap: 0.4rem; flex-direction: row; }
.fe.fe-d2 .class-block__link span { transition: transform var(--dur-fast) var(--ease-standard); }
.fe.fe-d2 .class-block__link:hover span { transform: translateX(4px); }
@media (max-width: 960px) {
.fe.fe-d2 .class-block { transform: none !important; min-height: auto; }
.fe.fe-d2 .class-block:nth-child(1),
.fe.fe-d2 .class-block:nth-child(2),
.fe.fe-d2 .class-block:nth-child(3) { grid-column: 1 / -1; }
}
.fe.fe-d2 .method { position: relative; padding: var(--s-7) var(--pad-x); max-width: var(--grid-max) !important; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); align-items: start; }
.fe.fe-d2 .method__bg { position: absolute; top: 0; bottom: 0; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; width: 100vw; z-index: 0; overflow: hidden; pointer-events: none; }
.fe.fe-d2 .method__bg img { position: absolute; left: 0; right: 0; top: -20%; width: 100%; height: 140%; object-fit: cover; object-position: center 55%; will-change: transform; filter: contrast(1.05) saturate(1.05); }
.fe.fe-d2 .method__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in oklab, var(--c-ink) 35%, transparent) 0%, color-mix(in oklab, var(--c-ink) 15%, transparent) 35%, color-mix(in oklab, var(--c-ink) 15%, transparent) 65%, color-mix(in oklab, var(--c-ink) 55%, transparent) 100%), linear-gradient(90deg, color-mix(in oklab, var(--c-ink) 45%, transparent) 0%, transparent 45%); }
.fe.fe-d2 .method__pin,
.fe.fe-d2 .method__panels { position: relative; z-index: 2; }
.fe.fe-d2 .method__pin { position: sticky; top: 50%; transform: translateY(-50%); align-self: start; z-index: 2; color: var(--c-bg); }
.fe.fe-d2 .method__pin .section-head__eyebrow { color: color-mix(in oklab, var(--c-bg) 75%, transparent); }
.fe.fe-d2 .method__intro { color: color-mix(in oklab, var(--c-bg) 80%, transparent) !important; }
.fe.fe-d2 .method__progress { background: color-mix(in oklab, var(--c-bg) 30%, transparent); }
.fe.fe-d2 .method__title { font-family: var(--ff-display); font-size: clamp(2.5rem, 5vw, 5rem); line-height: 0.96; font-weight: 500; letter-spacing: -0.02em; margin: var(--s-2) 0 var(--s-3); }
.fe.fe-d2 .method__intro { max-width: 38ch !important; color: var(--c-ink-soft); font-size: 1.05rem; }
.fe.fe-d2 .method__progress { display: block; width: 60%; height: 1px; background: var(--c-line); margin-top: var(--s-4); position: relative; overflow: hidden; }
.fe.fe-d2 .method__progress-bar { position: absolute; inset: 0; background: var(--c-accent); transform: scaleX(0); transform-origin: left; }
.fe.fe-d2 .method__panels { display: flex; flex-direction: column; gap: var(--s-6); }
.fe.fe-d2 .method-panel { display: grid; gap: var(--s-2); background: color-mix(in oklab, var(--c-bg) 90%, transparent); backdrop-filter: blur(14px) saturate(1.1); -webkit-backdrop-filter: blur(14px) saturate(1.1); border: 1px solid color-mix(in oklab, var(--c-line) 65%, transparent); border-radius: 8px; padding: var(--s-3); }
.fe.fe-d2 .method-panel__num { color: var(--c-ink); font-size: 0.8rem; font-weight: 500; }
.fe.fe-d2 .method-panel__diagram { width: 100%; height: 80px; color: var(--c-ink-soft); margin: var(--s-2) 0; }
.fe.fe-d2 .method-panel h3 { font-family: var(--ff-display); font-size: clamp(1.5rem, 2.4vw, 2.2rem); font-weight: 500; line-height: 1.05; }
.fe.fe-d2 .method-panel p { color: var(--c-ink-soft); max-width: 46ch !important; }
@media (max-width: 880px) {
.fe.fe-d2 .method { grid-template-columns: 1fr; }
.fe.fe-d2 .method__pin { position: static; }
}
.fe.fe-d2 .fleet { padding: var(--s-7) 0 var(--s-5); background: var(--c-bg-alt); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); overflow: hidden; }
.fe.fe-d2 .fleet > .section-head { padding: 0 var(--pad-x); max-width: var(--grid-max) !important; margin: 0 auto var(--s-5); }
.fe.fe-d2 .fleet__track { display: flex; gap: var(--s-3); padding: 0 var(--pad-x) var(--s-3); max-width: var(--grid-max) !important; margin: 0 auto; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--c-line) transparent; flex-direction: row; }
.fe.fe-d2 .fleet__track::-webkit-scrollbar { height: 6px; }
.fe.fe-d2 .fleet__track::-webkit-scrollbar-thumb { background: var(--c-line); border-radius: 999px; }
.fe.fe-d2 .fleet-card { flex: 0 0 clamp(280px, 32vw, 460px); scroll-snap-align: start; background: var(--c-bg); border: 1px solid var(--c-line); border-radius: 8px; padding: var(--s-3); display: flex; flex-direction: column; gap: var(--s-2); transition: transform var(--dur-medium) var(--ease-emphasized), box-shadow var(--dur-medium) var(--ease-standard); }
.fe.fe-d2 .fleet-card:hover { transform: translateY(-6px); box-shadow: 0 24px 60px -28px rgba(20,22,26,0.35); }
.fe.fe-d2 .fleet-card__tag { color: var(--c-accent); font-weight: 500; }
.fe.fe-d2 .fleet-card__media { background: var(--c-bg-alt); border-radius: 4px; padding: var(--s-3) var(--s-2); color: var(--c-ink); margin: var(--s-1) 0 var(--s-2); aspect-ratio: 5 / 2; display: grid; place-items: center; }
.fe.fe-d2 .fleet-card__media svg { width: 100%; height: 100%; }
.fe.fe-d2 .fleet-card__name { font-family: var(--ff-display); font-size: 1.7rem; font-weight: 500; }
.fe.fe-d2 .fleet-card__specs { border-top: 1px solid var(--c-line); padding-top: var(--s-2); display: flex; flex-direction: column; gap: 0.4rem; margin: 0; }
.fe.fe-d2 .fleet-card__specs > div { display: grid; grid-template-columns: 8rem 1fr; gap: var(--s-2); font-size: 0.92rem; }
.fe.fe-d2 .fleet-card__specs dt { color: var(--c-ink-soft); margin: 0; }
.fe.fe-d2 .fleet-card__specs dd { margin: 0; }
.fe.fe-d2 .fleet-card__link { margin-top: auto; padding-top: var(--s-2); font-weight: 500; font-size: 0.92rem; }
.fe.fe-d2 .fleet-card__link:hover { color: var(--c-accent); }
.fe.fe-d2 .fleet__hint { padding: 0 var(--pad-x); max-width: var(--grid-max) !important; margin: 0 auto; }
.fe.fe-d2 .proof { padding: var(--s-8) var(--pad-x) var(--s-7); max-width: var(--grid-max) !important; margin: 0 auto; }
.fe.fe-d2 .stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-3); border-top: 1px solid var(--c-ink); border-bottom: 1px solid var(--c-line); padding: var(--s-4) 0; margin-bottom: var(--s-7); }
.fe.fe-d2 .stats li { display: flex; flex-direction: column; gap: 0.5rem; }
.fe.fe-d2 .stats__num { font-family: var(--ff-display); font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1; font-weight: 500; font-variant-numeric: tabular-nums; }
.fe.fe-d2 .stats__label { font-size: 0.85rem; color: var(--c-ink-soft); max-width: 22ch !important; }
@media (max-width: 720px) {
.fe.fe-d2 .stats { grid-template-columns: repeat(2, 1fr); }
}
.fe.fe-d2 .quote { display: grid; grid-template-columns: 1fr; gap: var(--s-2); max-width: 70ch !important; margin: 0 0 var(--s-6); padding: var(--s-3) 0; border-top: 1px solid var(--c-line); }
.fe.fe-d2 .quote--offset { margin-left: auto; }
.fe.fe-d2 .quote blockquote { font-family: var(--ff-display); font-size: clamp(1.3rem, 2.4vw, 2.2rem); line-height: 1.2; font-weight: 400; font-style: italic; letter-spacing: -0.012em; margin: 0; text-wrap: balance; }
.fe.fe-d2 .quote figcaption { display: flex; flex-direction: column; gap: 0.2rem; }
.fe.fe-d2 .quote__name { font-weight: 500; }
.fe.fe-d2 .pro { background: var(--c-pro-bg); color: var(--c-pro-ink); padding: var(--s-7) var(--pad-x); position: relative; overflow: hidden; }
.fe.fe-d2 .pro::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 50% at 80% 20%, color-mix(in oklab, var(--c-accent) 28%, transparent) 0%, transparent 60%), radial-gradient(40% 40% at 0% 100%, color-mix(in oklab, var(--c-pro-ink) 6%, transparent) 0%, transparent 70%); pointer-events: none; }
.fe.fe-d2 .pro__inner { position: relative; max-width: var(--grid-max) !important; margin: 0 auto; }
.fe.fe-d2 .pro__eyebrow { color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); }
.fe.fe-d2 .pro__title { font-family: var(--ff-display); font-size: clamp(2.4rem, 5.5vw, 5.5rem); line-height: 0.95; font-weight: 500; letter-spacing: -0.02em; margin: 0 0 var(--s-5); max-width: 18ch !important; }
.fe.fe-d2 .pro__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--s-5); align-items: start; }
.fe.fe-d2 .pro__lead { font-size: 1.1rem; color: color-mix(in oklab, var(--c-pro-ink) 80%, transparent); max-width: 52ch !important; margin-bottom: var(--s-4); }
.fe.fe-d2 .pro__modules { border-top: 1px solid var(--c-pro-line); }
.fe.fe-d2 .pro__modules li { display: grid; grid-template-columns: 4ch 1fr auto; gap: var(--s-2); padding: var(--s-2) 0; align-items: baseline; border-bottom: 1px solid var(--c-pro-line); transition: background var(--dur-fast); }
.fe.fe-d2 .pro__modules li:hover { background: color-mix(in oklab, var(--c-pro-ink) 5%, transparent); }
.fe.fe-d2 .pro__modules .mono { color: color-mix(in oklab, var(--c-pro-ink) 70%, transparent); }
.fe.fe-d2 .pro__modules li > span:nth-child(2) { font-size: 1rem; }
.fe.fe-d2 .pro__date { color: var(--c-accent) !important; font-weight: 500; }
.fe.fe-d2 .pro__cta { background: color-mix(in oklab, var(--c-pro-ink) 4%, transparent); border: 1px solid var(--c-pro-line); border-radius: 8px; padding: var(--s-4); display: flex; flex-direction: column; gap: var(--s-2); }
.fe.fe-d2 .pro__cta-eyebrow { color: var(--c-accent); }
.fe.fe-d2 .pro__cta-text { color: color-mix(in oklab, var(--c-pro-ink) 80%, transparent); }
.fe.fe-d2 .pro__contact { display: flex; flex-direction: column; gap: 0.3rem; color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); }
@media (max-width: 880px) {
.fe.fe-d2 .pro__grid { grid-template-columns: 1fr; }
}
.fe.fe-d2 .locator { position: relative; padding: var(--s-7) var(--pad-x); max-width: var(--grid-max) !important; margin: 0 auto; min-height: 70vh; display: grid; grid-template-columns: 1fr; align-items: end; }
.fe.fe-d2 .locator__map { position: absolute; inset: 0; color: var(--c-ink); pointer-events: none; opacity: 0.85; }
.fe.fe-d2 .locator__map svg { width: 100%; height: 100%; }
.fe.fe-d2 .locator__card { position: relative; background: var(--c-bg); border: 1px solid var(--c-line); padding: var(--s-4); max-width: 460px !important; border-radius: 8px; display: flex; flex-direction: column; gap: var(--s-2); margin-left: auto; margin-right: 0; margin-top: var(--s-7); }
.fe.fe-d2 .locator__title { font-family: var(--ff-display); font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 500; line-height: 1; margin: var(--s-2) 0 var(--s-2); }
.fe.fe-d2 .locator__addr { font-style: normal; font-size: 1.05rem; color: var(--c-ink-soft); }
.fe.fe-d2 .locator__hours { display: flex; flex-direction: column; gap: 0.6rem; border-top: 1px solid var(--c-line); padding-top: var(--s-2); margin: var(--s-2) 0; }
.fe.fe-d2 .locator__hours > div { display: grid; grid-template-columns: 6rem 1fr; gap: var(--s-2); font-size: 0.92rem; }
.fe.fe-d2 .locator__hours dt { color: var(--c-ink-soft); margin: 0; }
.fe.fe-d2 .locator__hours dd { margin: 0; }
.fe.fe-d2 .final { background: var(--c-ink); color: var(--c-bg); padding: var(--s-8) var(--pad-x); text-align: center; position: relative; overflow: hidden; }
.fe.fe-d2 .final::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 60% at 50% 80%, color-mix(in oklab, var(--c-accent) 18%, transparent) 0%, transparent 70%); animation: breathe 6s var(--ease-standard) infinite; }
@keyframes breathe {
  0%, 100% { opacity: 0.6; }
  50%      { opacity: 1; }
}
.fe.fe-d2 .final__eyebrow { color: color-mix(in oklab, var(--c-bg) 60%, transparent); position: relative; }
.fe.fe-d2 .final__title { position: relative; font-family: var(--ff-display); font-size: clamp(3rem, 7vw, 7rem); line-height: 1; font-weight: 500; letter-spacing: -0.025em; margin: var(--s-3) 0 var(--s-5); }
.fe.fe-d2 .final .btn .elementor-button { position: relative; }
.fe.fe-d2 .final__contact { position: relative; display: flex; justify-content: center; gap: var(--s-4); margin-top: var(--s-4); color: color-mix(in oklab, var(--c-bg) 70%, transparent); flex-wrap: wrap; flex-direction: row; }
.fe.fe-d2 .final__contact a { transition: color var(--dur-fast); }
.fe.fe-d2 .final__contact a:hover { color: var(--c-accent); }
.fe.fe-d2 .foot { background: var(--c-bg); padding: var(--s-7) var(--pad-x) var(--s-3); border-top: 1px solid var(--c-line); }
.fe.fe-d2 .foot__cols { max-width: var(--grid-max) !important; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr 1.4fr; gap: var(--s-4); }
.fe.fe-d2 .foot__head { display: block; margin-bottom: var(--s-2); color: var(--c-ink); }
.fe.fe-d2 .foot__col ul { display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.92rem; }
.fe.fe-d2 .foot__col a { color: var(--c-ink-soft); transition: color var(--dur-fast); }
.fe.fe-d2 .foot__col a:hover { color: var(--c-ink); }
.fe.fe-d2 .foot__col--brand { display: flex; flex-direction: column; gap: var(--s-2); align-items: flex-start; }
.fe.fe-d2 .foot__mark { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; background: var(--c-ink); color: var(--c-bg); border-radius: 6px; font-family: var(--ff-display); font-weight: 500; font-size: 1.4rem; }
.fe.fe-d2 .foot__line { font-size: 0.92rem; color: var(--c-ink-soft); margin: 0; max-width: 30ch !important; }
.fe.fe-d2 .foot__base { max-width: var(--grid-max) !important; margin: var(--s-4) auto 0; padding-top: var(--s-2); border-top: 1px solid var(--c-line); text-align: right; }
@media (max-width: 720px) {
.fe.fe-d2 .foot__cols { grid-template-columns: 1fr 1fr; }
}
.fe.fe-d2 [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity var(--dur-slow) var(--ease-emphasized), transform var(--dur-slow) var(--ease-emphasized); will-change: opacity, transform; }
.fe.fe-d2 [data-reveal].is-in { opacity: 1; transform: translateY(0); }
.fe.fe-d2 .classes__head { display: grid; grid-template-columns: 1fr 1.1fr; gap: var(--s-5); align-items: end; margin-bottom: var(--s-6); }
.fe.fe-d2 .classes__head > div { display: flex; flex-direction: column; gap: var(--s-2); max-width: 36ch !important; }
.fe.fe-d2 .classes__hero { position: relative; margin: 0; border-radius: 8px; overflow: hidden; aspect-ratio: 16 / 10; border: 1px solid var(--c-line); }
.fe.fe-d2 .classes__hero img { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.04) saturate(1.05); transition: transform 1.2s var(--ease-emphasized); }
.fe.fe-d2 .classes__hero:hover img { transform: scale(1.03); }
.fe.fe-d2 .classes__hero figcaption { position: absolute; left: var(--s-3); bottom: var(--s-3); color: var(--c-bg); background: color-mix(in oklab, var(--c-ink) 55%, transparent); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: 0.4rem 0.8rem; border-radius: 4px; }
@media (max-width: 880px) {
.fe.fe-d2 .classes__head { grid-template-columns: 1fr; }
}
.fe.fe-d2 .fleet-card__media--photo { padding: 0; aspect-ratio: 4 / 3; background: var(--c-ink); overflow: hidden; position: relative; }
.fe.fe-d2 .fleet-card__media--photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 0.9s var(--ease-emphasized), filter 0.6s var(--ease-standard); filter: contrast(1.02); }
.fe.fe-d2 .fleet-card:hover .fleet-card__media--photo img { transform: scale(1.08); filter: contrast(1.05) saturate(1.1); }
.fe.fe-d2 .pro__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.fe.fe-d2 .pro__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 65%; filter: grayscale(0.65) brightness(0.42) contrast(1.05); opacity: 0.55; mix-blend-mode: luminosity; }
.fe.fe-d2 .pro__inner { z-index: 2; }
.fe.fe-d2 .locator__photo { position: absolute; inset: 0; margin: 0; overflow: hidden; }
.fe.fe-d2 .locator__photo > img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35) brightness(0.85) contrast(1.05); }
.fe.fe-d2 .locator__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in oklab, var(--c-bg) 35%, transparent) 0%, transparent 60%), linear-gradient(180deg, transparent 30%, color-mix(in oklab, var(--c-bg) 75%, transparent) 100%); }
.fe.fe-d2 .locator__pin { position: absolute; top: 32%; left: 38%; display: inline-flex; align-items: center; gap: 0.6rem; z-index: 2; flex-direction: row; }
.fe.fe-d2 .locator__pin-dot { width: 12px; height: 12px; background: var(--c-accent); border-radius: 50%; box-shadow: 0 0 0 4px color-mix(in oklab, var(--c-accent) 30%, transparent); }
.fe.fe-d2 .locator__pin-ring { position: absolute; left: 0; top: 50%; width: 12px; height: 12px; border: 1.5px solid var(--c-accent); border-radius: 50%; transform: translate(0, -50%) scale(1); animation: pin-pulse 2.6s var(--ease-standard) infinite; }
@keyframes pin-pulse {
  0%   { transform: translate(0, -50%) scale(1);   opacity: 0.9; }
  100% { transform: translate(0, -50%) scale(3.2); opacity: 0; }
}
.fe.fe-d2 .locator__pin-label { background: var(--c-bg); color: var(--c-ink); padding: 0.3rem 0.6rem; border-radius: 3px; border: 1px solid var(--c-line); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
.fe.fe-d2 :where(.elementor-widget-container) *,
*::before,
*::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
.fe.fe-d2 .hero__title .word { transform: none !important; }
.fe.fe-d2 .class-block { transform: none !important; }
.fe.fe-d2 [data-reveal] { opacity: 1 !important; transform: none !important; }
.fe.fe-d2 .hero__scroll-hint::after { animation: none !important; }
.fe.fe-d2 .final::before { animation: none !important; }
}
.fe.fe-d2 .sub-hero { padding: calc(var(--s-7) + 3rem) var(--pad-x) var(--s-6); border-bottom: 1px solid var(--c-line); background: radial-gradient(90% 70% at 85% 0%, color-mix(in oklab, var(--c-bg-alt) 80%, var(--c-bg)) 0%, var(--c-bg) 65%); }
.fe.fe-d2 .sub-hero__grid { max-width: var(--grid-max) !important; margin: 0 auto; display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--s-5); align-items: end; }
.fe.fe-d2 .sub-hero__copy { display: flex; flex-direction: column; gap: var(--s-2); }
.fe.fe-d2 .sub-hero__crumbs a { color: var(--c-ink); }
.fe.fe-d2 .sub-hero__crumbs a:hover { color: var(--c-accent); }
.fe.fe-d2 .sub-hero__title { font-family: var(--ff-display); font-size: clamp(3rem, 7vw, 6.2rem); line-height: .94; font-weight: 500; letter-spacing: -0.025em; }
.fe.fe-d2 .sub-hero__title em { font-style: italic; font-weight: 400; color: var(--c-ink-soft); }
.fe.fe-d2 .sub-hero__lead { font-size: clamp(1.05rem, 1.3vw, 1.22rem); color: var(--c-ink-soft); max-width: 46ch !important; margin-top: var(--s-2); }
.fe.fe-d2 .sub-hero { position: relative; overflow: hidden; }
.fe.fe-d2 .sub-hero:has(.sub-hero__media) .sub-hero__grid { position: static; min-height: clamp(400px, 50vh, 600px); }
.fe.fe-d2 .sub-hero__copy { position: relative; z-index: 1; }
.fe.fe-d2 .sub-hero__media { position: absolute; top: 0; right: 0; bottom: 0; width: min(50vw, 980px); overflow: hidden; border: 0; border-radius: 0; background: transparent; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 12%, #000 30%), linear-gradient(180deg, transparent 0%, #000 22%, #000 80%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 12%, #000 30%), linear-gradient(180deg, transparent 0%, #000 22%, #000 80%, transparent 100%); mask-composite: intersect; }
.fe.fe-d2 .sub-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 60%; filter: saturate(.94) contrast(1.03); }
.fe.fe-d2 .sub-hero__toc { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: var(--s-3); flex-direction: row; }
.fe.fe-d2 .sub-hero__toc a { padding: .45rem .9rem; border: 1px solid var(--c-line); border-radius: 999px; font-size: .88rem; transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast); }
.fe.fe-d2 .sub-hero__toc a:hover { background: var(--c-ink); color: var(--c-bg); border-color: var(--c-ink); }
.fe.fe-d2 .block { padding: var(--s-7) var(--pad-x); max-width: var(--grid-max) !important; margin: 0 auto; }
.fe.fe-d2 .band { background: var(--c-bg-alt); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.fe.fe-d2 .entry { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-5); padding-block: var(--s-5); border-top: 1px solid var(--c-line); scroll-margin-top: 110px; }
.fe.fe-d2 .entry:first-child { border-top: 1px solid var(--c-ink); }
.fe.fe-d2 .entry__head { position: sticky; top: 120px; align-self: start; display: flex; flex-direction: column; gap: var(--s-2); }
.fe.fe-d2 .entry__num { color: var(--c-accent); font-weight: 500; }
.fe.fe-d2 .entry__title { font-family: var(--ff-display); font-size: clamp(2rem, 3.6vw, 3.2rem); line-height: .98; font-weight: 500; letter-spacing: -0.02em; }
.fe.fe-d2 .entry__tag { color: var(--c-ink-soft); max-width: 32ch !important; }
.fe.fe-d2 .entry__body { display: flex; flex-direction: column; gap: var(--s-3); }
.fe.fe-d2 .entry__lead { font-size: 1.2rem; line-height: 1.5; color: var(--c-ink); }
.fe.fe-d2 .entry__text { color: var(--c-ink-soft); }
.fe.fe-d2 .spec { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 var(--s-3); margin: 0; }
.fe.fe-d2 .spec > div { border-top: 1px solid var(--c-line); padding: var(--s-2) 0; display: flex; flex-direction: column; gap: .2rem; }
.fe.fe-d2 .spec dt { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink-soft); margin: 0; }
.fe.fe-d2 .spec dd { margin: 0; font-family: var(--ff-display); font-size: 1.45rem; font-weight: 500; line-height: 1.15; }
.fe.fe-d2 .chips { display: flex; flex-wrap: wrap; gap: .5rem; flex-direction: row; }
.fe.fe-d2 .chips span { padding: .35rem .75rem; border: 1px solid var(--c-line); border-radius: 999px; font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink-soft); background: var(--c-bg); }
.fe.fe-d2 .timeline2 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-3); }
@media (min-width: 961px) {
.fe.fe-d2 .timeline2:has(> .tl:nth-child(5)) { grid-template-columns: repeat(5, 1fr); }
}
.fe.fe-d2 .tl { border-top: 1px solid var(--c-ink); padding-top: var(--s-3); display: flex; flex-direction: column; gap: .6rem; }
.fe.fe-d2 .tl__year { font-family: var(--ff-display); font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1; font-weight: 400; color: var(--c-accent); }
.fe.fe-d2 .tl__title { font-family: var(--ff-display); font-size: 1.3rem; font-weight: 500; }
.fe.fe-d2 .tl__text { color: var(--c-ink-soft); font-size: .98rem; }
.fe.fe-d2 .people { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-3); }
.fe.fe-d2 .person__photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 6px; background: var(--c-bg-alt); margin-bottom: var(--s-1); }
.fe.fe-d2 .person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transition: transform var(--dur-medium) var(--ease-emphasized); }
.fe.fe-d2 .person:hover .person__photo img { transform: scale(1.03); }
.fe.fe-d2 .person { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-4); border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-bg); transition: transform var(--dur-medium) var(--ease-emphasized), box-shadow var(--dur-medium) var(--ease-standard); }
.fe.fe-d2 .person:hover { transform: translateY(-4px); box-shadow: 0 24px 60px -28px rgba(20,22,26,.35); }
.fe.fe-d2 .person__mono { font-family: var(--ff-display); font-size: 3rem; line-height: 1; font-style: italic; color: var(--c-accent); }
.fe.fe-d2 .person__name { font-family: var(--ff-display); font-size: 1.7rem; font-weight: 500; line-height: 1.05; }
.fe.fe-d2 .person__role { color: var(--c-ink); }
.fe.fe-d2 .person__text { color: var(--c-ink-soft); font-size: .98rem; }
.fe.fe-d2 .sem-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3); }
.fe.fe-d2 .sem-grid .class-block { min-height: 420px; grid-column: auto; transform: none; }
.fe.fe-d2 .contact-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: var(--s-5); align-items: start; }
.fe.fe-d2 .form-card { padding: var(--s-4); border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-bg); }
.fe.fe-d2 .form-card__title { font-family: var(--ff-display); font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 500; line-height: 1.02; margin-bottom: var(--s-1); }
.fe.fe-d2 .form-card__note { color: var(--c-ink-soft); font-size: .9rem; }
.fe.fe-d2 .form-card__note a { text-decoration: underline; text-underline-offset: 3px; }
.fe.fe-d2 .side-card { padding: var(--s-4); border-radius: 8px; background: var(--c-pro-bg); color: var(--c-pro-ink); display: flex; flex-direction: column; gap: var(--s-2); }
.fe.fe-d2 .side-card__title { font-family: var(--ff-display); font-size: 2rem; font-weight: 500; line-height: 1; }
.fe.fe-d2 .side-card .mono { color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); }
.fe.fe-d2 .side-list { display: flex; flex-direction: column; border-top: 1px solid var(--c-pro-line); }
.fe.fe-d2 .side-list li { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--s-2); padding: .8rem 0; border-bottom: 1px solid var(--c-pro-line); font-size: .95rem; }
.fe.fe-d2 .side-list li > span:first-child { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); padding-top: .15rem; }
.fe.fe-d2 .side-list a:hover { color: var(--c-accent); }
.fe.fe-d2 .dl2 { border-top: 1px solid var(--c-ink); }
.fe.fe-d2 .dl2 a { display: grid; grid-template-columns: 4.5rem 1fr auto; gap: var(--s-2); align-items: baseline; padding: var(--s-2) 0; border-bottom: 1px solid var(--c-line); transition: padding var(--dur-medium) var(--ease-emphasized), background var(--dur-fast); }
.fe.fe-d2 .dl2 a:hover { padding-inline: var(--s-1); background: var(--c-bg-alt); }
.fe.fe-d2 .dl2 .dl2__type { font-family: var(--ff-mono); font-size: var(--fs-mono); color: var(--c-accent); letter-spacing: .06em; }
.fe.fe-d2 .dl2 .dl2__name { font-family: var(--ff-display); font-size: 1.25rem; font-weight: 500; }
.fe.fe-d2 .dl2 .dl2__go { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink-soft); }
.fe.fe-d2 .notice { display: flex; gap: var(--s-2); padding: var(--s-3); border-left: 2px solid var(--c-accent); background: var(--c-bg-alt); color: var(--c-ink-soft); font-size: .98rem; flex-direction: row; }
.fe.fe-d2 .notice strong { color: var(--c-ink); font-weight: 600; }
.fe.fe-d2 .text-link { font-weight: 500; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.fe.fe-d2 .text-link:hover { color: var(--c-accent); }
.fe.fe-d2 :where(.elementor-widget-container) a:focus-visible,
.fe.fe-d2 :where(.elementor-widget-container) button:focus-visible,
.fe.fe-d2 .elementor-button:focus-visible,
.fe.fe-d2 :where(.elementor-widget-container) input:focus-visible,
.fe.fe-d2 :where(.elementor-widget-container) select:focus-visible,
.fe.fe-d2 :where(.elementor-widget-container) textarea:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; }
@media (max-width: 1100px) {
.fe.fe-d2 .people { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 960px) {
.fe.fe-d2 .sub-hero:has(.sub-hero__media) .sub-hero__grid { min-height: 0; }
.fe.fe-d2 .sub-hero__media { position: relative; top: auto; right: auto; bottom: auto; width: auto; aspect-ratio: 4 / 3; margin: 0 calc(-1 * var(--pad-x)) calc(-1 * var(--s-6)); -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 78%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 22%, #000 78%, transparent 100%); -webkit-mask-composite: source-over; mask-composite: add; }
.fe.fe-d2 .sub-hero__grid,
.fe.fe-d2 .entry,
.fe.fe-d2 .contact-grid { grid-template-columns: 1fr; }
.fe.fe-d2 .entry__head { position: static; }
.fe.fe-d2 .timeline2 { grid-template-columns: repeat(2, 1fr); }
.fe.fe-d2 .sem-grid { grid-template-columns: 1fr; }
.fe.fe-d2 .sem-grid .class-block { min-height: auto; }
}
@media (max-width: 560px) {
.fe.fe-d2 .spec,
.fe.fe-d2 .timeline2,
.fe.fe-d2 .people { grid-template-columns: 1fr; }
.fe.fe-d2 .dl2 a { grid-template-columns: 3.5rem 1fr; }
.fe.fe-d2 .dl2 .dl2__go { display: none; }
.fe.fe-d2 .side-list li { grid-template-columns: 1fr; gap: .2rem; }
}
:root { --c-accent: #0B7A65; --c-accent-bright: #14A78B; --c-mint: #DDF2E9; --c-bg-alt: #E8EEEA; --c-pro-bg: #0F201C; --c-pro-ink: #E6F0EC; --c-pro-line: #24403A; --ff-display: "Poppins", "Inter", system-ui, sans-serif; }
.fe.fe-d2 .hero__title { line-height: 1.02; letter-spacing: -0.035em; font-weight: 600; font-size: clamp(3rem, 7.4vw, 6.6rem); }
.fe.fe-d2 .hero__title em,
.fe.fe-d2 .sub-hero__title em,
.fe.fe-d2 .section-head__title em { font-style: normal; font-weight: inherit; color: inherit; }
.fe.fe-d2 .hero .hero__media::after { background: linear-gradient(90deg, color-mix(in oklab, var(--c-bg) 80%, transparent) 0%, color-mix(in oklab, var(--c-bg) 60%, transparent) 34%, transparent 64%), linear-gradient(180deg, transparent 72%, color-mix(in oklab, var(--c-bg) 60%, transparent) 100%); }
.fe.fe-d2 .nav__social { display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 1px solid var(--c-line); border-radius: 999px; color: var(--c-ink); transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast); }
.fe.fe-d2 .nav__social svg { width: 1.1rem; height: 1.1rem; display: block; }
.fe.fe-d2 .nav__social:hover,
.fe.fe-d2 .nav__social:focus-visible { color: #fff; background: var(--c-accent); border-color: var(--c-accent); }
@media (max-width: 640px) {
.fe.fe-d2 .e-con > .nav__phone-w.elementor-widget { display: none; }
}
.fe.fe-d2 .nav__phone { white-space: nowrap; }
@media (min-width: 881px) and (max-width: 1180px) {
.fe.fe-d2 .e-con > .nav__phone-w.elementor-widget { display: none; }
}
@media (max-width: 479px) {
.fe.fe-d2 .nav__brand-name { display: none; }
}
@media (min-width: 961px) {
.fe.fe-d2 .hero--panel .hero__media { top: -24%; bottom: 24%; left: 34%; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .6) 8%, #000 16%), linear-gradient(180deg, #000 70%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .6) 8%, #000 16%), linear-gradient(180deg, #000 70%, transparent 100%); mask-composite: intersect; }
.fe.fe-d2 .hero--panel .hero__media img { object-position: 80% 50%; }
.fe.fe-d2 .hero.hero--panel .hero__media::after { background: linear-gradient(180deg, transparent 70%, color-mix(in oklab, var(--c-bg) 65%, transparent) 100%); }
}
@media (min-width: 961px) and (max-width: 1200px) {
.fe.fe-d2 .hero--panel .hero__media img { object-position: 66% 50%; }
}
@media (max-width: 960px) {
.fe.fe-d2 .hero.hero--panel { min-height: 0; padding-top: 5.8rem; display: flex; flex-direction: column; justify-content: flex-start; }
.fe.fe-d2 .hero--panel .hero__media { position: relative; inset: auto; flex: none; width: calc(100% + 2 * var(--pad-x)); max-width: none !important; height: auto; aspect-ratio: 4 / 3; margin: 0 calc(-1 * var(--pad-x)) calc(-1 * var(--s-2)); -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); }
.fe.fe-d2 .hero--panel .hero__media img { object-position: 80% 50%; }
.fe.fe-d2 .hero.hero--panel .hero__media::after { background: none; }
.fe.fe-d2 .hero--panel .hero-glass { opacity: .5; }
}
@media (min-width: 561px) and (max-width: 960px) {
.fe.fe-d2 .hero--panel .hero__media { aspect-ratio: 16 / 9; }
}
.fe.fe-d2 .hero__sub { max-width: 31ch !important; font-size: clamp(1.15rem, 1.45vw, 1.38rem); font-weight: 500; line-height: 1.45; letter-spacing: -0.005em; color: var(--c-ink); }
.fe.fe-d2 .sub-hero__lead { color: var(--c-ink); }
.fe.fe-d2 .sub-hero__title { line-height: 1.02; letter-spacing: -0.03em; font-weight: 600; font-size: clamp(2.6rem, 5.8vw, 5.2rem); }
.fe.fe-d2 .section-head__title,
.fe.fe-d2 .method__title,
.fe.fe-d2 .pro__title,
.fe.fe-d2 .quick__title,
.fe.fe-d2 .final__title,
.fe.fe-d2 .entry__title { line-height: 1.06; letter-spacing: -0.03em; font-weight: 600; }
.fe.fe-d2 .class-block__title,
.fe.fe-d2 .fleet-card__name,
.fe.fe-d2 .person__name,
.fe.fe-d2 .locator__title,
.fe.fe-d2 .tl__title,
.fe.fe-d2 .news-item__title,
.fe.fe-d2 .form-card__title,
.fe.fe-d2 .side-card__title { letter-spacing: -0.02em; font-weight: 600; line-height: 1.15; }
.fe.fe-d2 .class-block__num,
.fe.fe-d2 .tl__year,
.fe.fe-d2 .person__mono { font-weight: 500; letter-spacing: -0.03em; }
.fe.fe-d2 .person__mono { font-style: normal; }
.fe.fe-d2 .spec dd,
.fe.fe-d2 .dl2 .dl2__name,
.fe.fe-d2 .class-index__codes a,
.fe.fe-d2 .gate h3,
.fe.fe-d2 .legal h2,
.fe.fe-d2 .legal h3 { font-weight: 500; letter-spacing: -0.01em; }
.fe.fe-d2 .quote blockquote { font-style: italic; font-weight: 400; }
::selection { background: var(--c-accent-bright); color: #fff; }
.fe.fe-d2 .nav__brand-mark,
.fe.fe-d2 .foot__mark { background: var(--c-accent); color: #fff; }
.fe.fe-d2 .final { background: var(--c-pro-bg); }
.fe.fe-d2 .class-block.tone-formal { background: var(--c-mint); border-color: color-mix(in oklab, var(--c-accent) 22%, var(--c-line)); }
.fe.fe-d2 .class-block.tone-pro .class-block__num,
.fe.fe-d2 .pro .pro__cta-eyebrow { color: var(--c-accent-bright); }
.fe.fe-d2 .pro .pro__date { color: var(--c-accent-bright) !important; }
.fe.fe-d2 .block--tight + .block { padding-top: var(--s-5); }
.fe.fe-d2 .gate .elementor-button { border: 0; cursor: pointer; }
.fe.fe-d2 .hero__slogan { display: block; margin-top: .45rem; font-family: var(--ff-display); font-style: normal; font-weight: 600; font-size: 1em; letter-spacing: -0.01em; color: var(--c-accent); }
.fe.fe-d2 .foot__slogan { font-family: var(--ff-display); font-style: italic; font-size: 1.35rem; color: var(--c-accent); line-height: 1.2; }
.fe.fe-d2 .nav__links .menu-item-has-children { position: relative; }
.fe.fe-d2 .nav__links .menu-item-has-children > a { padding-right: 1.1rem; }
.fe.fe-d2 .nav__links .menu-item-has-children > a::before { content: ""; position: absolute; right: 0; top: 50%; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-75%) rotate(45deg); }
.fe.fe-d2 .nav__links .sub-menu { position: absolute; top: calc(100% + .7rem); left: -1rem; z-index: 5; min-width: 15rem; padding: .5rem; background: var(--c-bg); border: 1px solid var(--c-line); border-radius: 8px; box-shadow: 0 24px 48px -24px rgba(20,22,26,.35); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard), visibility var(--dur-fast); }
.fe.fe-d2 .nav__links .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -.8rem; height: .8rem; }
.fe.fe-d2 .nav__links .menu-item-has-children:hover > .sub-menu,
.fe.fe-d2 .nav__links .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.fe.fe-d2 .nav__links .sub-menu a { padding: .6rem .8rem; border-radius: 6px; color: var(--c-ink-soft); white-space: nowrap; }
.fe.fe-d2 .nav__links .sub-menu a::after { display: none; }
.fe.fe-d2 .nav__links .sub-menu a:hover,
.fe.fe-d2 .nav__links .sub-menu .current-menu-item > a { background: var(--c-bg-alt); color: var(--c-ink); }
.fe.fe-d2 .nav__links .current-menu-ancestor > a,
.fe.fe-d2 .nav__links .current-menu-parent > a { color: var(--c-ink); }
.fe.fe-d2 .nav__links .current-menu-ancestor > a::after,
.fe.fe-d2 .nav__links .current-menu-parent > a::after { right: 0; background: var(--c-accent); }
.fe.fe-d2 .nav-toggle { display: none; width: 2.6rem; height: 2.6rem; border: 1px solid var(--c-line); border-radius: 999px; background: transparent; align-items: center; justify-content: center; flex-direction: column; gap: 4px; cursor: pointer; }
.fe.fe-d2 .nav-toggle span { display: block; width: 1rem; height: 1.5px; background: var(--c-ink); transition: transform var(--dur-fast) var(--ease-standard), opacity var(--dur-fast); }
.fe.fe-d2 .nav.is-open .nav-toggle span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.fe.fe-d2 .nav.is-open .nav-toggle span:nth-child(2) { opacity: 0; }
.fe.fe-d2 .nav.is-open .nav-toggle span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
@media (max-width: 880px) {
.fe.fe-d2 .nav-toggle { display: inline-flex; }
.fe.fe-d2 .nav.is-open > .nav__links-w.elementor-widget { display: block; position: absolute; left: 0; right: 0; top: 100%; max-width: none !important; padding: .5rem var(--pad-x) 1.4rem; background: var(--c-bg); border-bottom: 1px solid var(--c-line); box-shadow: 0 24px 40px -24px rgba(20,22,26,.35); }
.fe.fe-d2 .nav.is-open .nav__links { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.fe.fe-d2 .nav.is-open .nav__links a { padding: .85rem 0; font-size: 1.05rem; color: var(--c-ink); border-bottom: 1px solid var(--c-line); }
.fe.fe-d2 .nav.is-open .nav__links a::after,
.fe.fe-d2 .nav.is-open .nav__links .menu-item-has-children > a::before { display: none; }
.fe.fe-d2 .nav.is-open .nav__links .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; border-radius: 0; padding: 0 0 0 1rem; background: transparent; min-width: 0; }
.fe.fe-d2 .nav.is-open .nav__links .sub-menu a { padding: .75rem 0; border-radius: 0; }
}
.fe.fe-d2 .block--tight { padding-top: var(--s-6); padding-bottom: var(--s-6); }
.fe.fe-d2 .block__foot { margin-top: var(--s-3); }
.fe.fe-d2 .news { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3); border-top: 1px solid var(--c-ink); padding-top: var(--s-3); }
.fe.fe-d2 .news-item > a { display: flex; flex-direction: column; gap: .7rem; height: 100%; padding: var(--s-3); border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-bg); transition: transform var(--dur-medium) var(--ease-emphasized), box-shadow var(--dur-medium) var(--ease-standard), border-color var(--dur-fast); }
.fe.fe-d2 .news-item > a:hover { transform: translateY(-4px); box-shadow: 0 24px 60px -28px rgba(20,22,26,.35); border-color: color-mix(in oklab, var(--c-accent) 40%, var(--c-line)); }
.fe.fe-d2 .news-item__date { color: var(--c-accent); }
.fe.fe-d2 .news-item__title { font-family: var(--ff-display); font-size: 1.55rem; font-weight: 500; line-height: 1.1; letter-spacing: -0.012em; }
.fe.fe-d2 .news-item__text { color: var(--c-ink-soft); font-size: .98rem; margin: 0; }
.fe.fe-d2 .news-item__more { margin-top: auto; padding-top: .4rem; font-weight: 500; font-size: .92rem; }
.fe.fe-d2 .news-item > a:hover .news-item__more { color: var(--c-accent); }
.fe.fe-d2 .news-empty { color: var(--c-ink-soft); border-top: 1px solid var(--c-ink); padding-top: var(--s-3); }
.fe.fe-d2 .guide-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-2); }
.fe.fe-d2 .guide-grid .class-block { min-height: 0; grid-column: auto; transform: none; padding: var(--s-3); }
.fe.fe-d2 .guide-grid .class-block__num { font-size: clamp(2.2rem, 3vw, 3rem); margin-bottom: var(--s-2); }
.fe.fe-d2 .guide-grid .class-block__title { font-size: clamp(1.35rem, 1.8vw, 1.7rem); }
.fe.fe-d2 .guide-grid .class-block__lead { font-size: .98rem; }
.fe.fe-d2 .quick { position: relative; overflow: hidden; background: var(--c-pro-bg); color: var(--c-pro-ink); }
.fe.fe-d2 .quick::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(55% 90% at 92% 0%, color-mix(in oklab, var(--c-accent-bright) 32%, transparent) 0%, transparent 60%); }
.fe.fe-d2 .quick__inner { position: relative; max-width: var(--grid-max) !important; margin: 0 auto; padding: var(--s-6) var(--pad-x); display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--s-5); align-items: center; }
.fe.fe-d2 .quick__copy { display: flex; flex-direction: column; gap: var(--s-2); align-items: flex-start; }
.fe.fe-d2 .quick__eyebrow { color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); }
.fe.fe-d2 .quick__title { font-family: var(--ff-display); font-size: clamp(2.2rem, 4.5vw, 4rem); line-height: .98; font-weight: 500; letter-spacing: -0.02em; }
.fe.fe-d2 .quick__text { color: color-mix(in oklab, var(--c-pro-ink) 75%, transparent); max-width: 44ch !important; }
.fe.fe-d2 .quick__btns { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-1); flex-direction: row; }
.fe.fe-d2 .quick .side-list a:hover { color: var(--c-accent-bright); }
.fe.fe-d2 .btn--ghost-light .elementor-button { --btn-bg: transparent; --btn-ink: var(--c-pro-ink); border: 1px solid color-mix(in oklab, var(--c-pro-ink) 40%, transparent); padding: calc(0.95rem - 1px) calc(1.6rem - 1px); }
.fe.fe-d2 .btn--ghost-light .elementor-button:hover { background: var(--c-pro-ink); color: var(--c-pro-bg); }
.fe.fe-d2 .section-head--inline { max-width: none !important; }
.fe.fe-d2 .nav__brand { align-items: center; }
.fe.fe-d2 .nav__brand-turtle { display: block; width: auto; height: 2.3rem; flex: none; transition: transform var(--dur-medium) var(--ease-emphasized); }
.fe.fe-d2 .nav__brand:hover .nav__brand-turtle { transform: translateX(3px) rotate(-3deg); }
.fe.fe-d2 .foot__turtle img { display: block; width: auto; height: 3.2rem; }
.fe.fe-d2 .sub-hero__media--mark { display: flex; align-items: center; justify-content: center; -webkit-mask-image: none; mask-image: none; flex-direction: row; }
.fe.fe-d2 .sub-hero__media--mark .sub-hero__mark { width: min(64%, 460px); }
.fe.fe-d2 .sub-hero__media--mark .sub-hero__mark img { display: block; width: 100%; height: auto; object-fit: contain; filter: none; }
html.fx .sub-hero__media--mark .sub-hero__mark img { animation: fx-float 7s ease-in-out infinite; }
@keyframes fx-float { 0%, 100% { transform: translateY(0) rotate(-1.5deg); } 50% { transform: translateY(-14px) rotate(1.5deg); } }
@media (max-width: 960px) {
.fe.fe-d2 .sub-hero__media--mark { aspect-ratio: auto; margin: var(--s-4) 0 0; padding: var(--s-2) 0; }
.fe.fe-d2 .sub-hero__media--mark .sub-hero__mark { width: min(56%, 300px); }
}
.fe.fe-d2 .sub-hero__logo { margin: .2rem 0 .4rem; }
.fe.fe-d2 .sub-hero__logo img { display: block; width: clamp(190px, 21vw, 320px); height: auto; max-width: 100% !important; }
.fe.fe-d2 .class-index { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-4); border-top: 1px solid var(--c-ink); padding-top: var(--s-3); }
.fe.fe-d2 .class-index__group { display: flex; flex-direction: column; gap: var(--s-2); }
.fe.fe-d2 .class-index__label { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink-soft); }
.fe.fe-d2 .class-index__codes { display: flex; flex-wrap: wrap; gap: .5rem; flex-direction: row; }
.fe.fe-d2 .class-index__codes a { min-width: 3.4rem; padding: .55rem .9rem; text-align: center; border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-bg); font-family: var(--ff-display); font-size: 1.35rem; font-weight: 500; line-height: 1.2; transition: border-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast); }
.fe.fe-d2 .class-index__codes a:hover { border-color: var(--c-accent); color: var(--c-accent); transform: translateY(-2px); }
.fe.fe-d2 .class-index__note { font-size: .92rem; color: var(--c-ink-soft); }
.fe.fe-d2 .class-index__note a { border-bottom: 1px solid currentColor; }
.fe.fe-d2 .ccards { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-2); }
.fe.fe-d2 .ccards--3 { grid-template-columns: repeat(3, 1fr); }
.fe.fe-d2 .class-cta { flex-direction: row; justify-content: flex-start; margin-top: var(--s-4); }
.fe.fe-d2 .ccard { display: flex; flex-direction: column; gap: .7rem; padding: var(--s-3); border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-bg); scroll-margin-top: 110px; transition: transform var(--dur-medium) var(--ease-emphasized), box-shadow var(--dur-medium) var(--ease-standard), border-color var(--dur-fast); }
.fe.fe-d2 .ccard:hover { transform: translateY(-4px); box-shadow: 0 24px 60px -28px rgba(20,22,26,.35); border-color: color-mix(in oklab, var(--c-accent) 35%, var(--c-line)); }
.fe.fe-d2 .ccard__top { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s-2); flex-direction: row; }
.fe.fe-d2 .ccard__code { font-family: var(--ff-display); font-size: 2.6rem; font-weight: 600; line-height: 1; letter-spacing: -0.04em; color: var(--c-accent); }
.fe.fe-d2 .ccard__tag { text-align: right; color: var(--c-ink-soft); }
.fe.fe-d2 .ccard__title { font-family: var(--ff-display); font-size: 1.2rem; font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; }
.fe.fe-d2 .ccard__text { font-size: .95rem; line-height: 1.5; color: var(--c-ink-soft); }
.fe.fe-d2 .ccard__spec { margin: auto 0 0; padding-top: .8rem; border-top: 1px solid var(--c-line); display: grid; gap: .35rem; }
.fe.fe-d2 .ccard__spec > div { display: flex; justify-content: space-between; gap: var(--s-2); font-size: .9rem; flex-direction: row; }
.fe.fe-d2 .ccard__spec dt { margin: 0; color: var(--c-ink-soft); }
.fe.fe-d2 .ccard__spec dd { margin: 0; font-weight: 500; text-align: right; }
.fe.fe-d2 .fleet-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3); }
.fe.fe-d2 .fleet-grid .fleet-card { flex: none; }
.fe.fe-d2 .fleet-grid .fleet-card__media { aspect-ratio: 4 / 3; }
.fe.fe-d2 .ccard > .elementor-widget:last-child { margin-top: auto; }
.fe.fe-d2 .fleet--show { position: relative; padding: var(--s-7) 0 var(--s-6); background: radial-gradient(120% 80% at 50% 0%, #163A32 0%, var(--c-pro-bg) 62%); color: var(--c-pro-ink); border: 0; overflow: hidden; }
.fe.fe-d2 .fleet--show .section-head__title { color: #fff; }
.fe.fe-d2 .fleet--show .section-head__eyebrow { color: var(--c-accent-bright); }
.fe.fe-d2 .fleet--show .section-head__sub,
.fe.fe-d2 .fleet--show .section-head__sub p { color: color-mix(in oklab, var(--c-pro-ink) 72%, transparent); }
.fe.fe-d2 .show-wrap { width: 100%; }
.fe.fe-d2 .show { position: relative; display: flex; flex-direction: column; gap: var(--s-4); }
.fe.fe-d2 .show__viewport { position: relative; overflow: hidden; touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
.fe.fe-d2 .show:not(.is-ready) .show__viewport { overflow-x: auto; scroll-snap-type: x mandatory; padding-inline: var(--pad-x); }
.fe.fe-d2 .show:not(.is-ready) .show__slide { scroll-snap-align: center; }
.fe.fe-d2 .show:not(.is-ready) .show__bar { display: none; }
.fe.fe-d2 .show.is-dragging .show__viewport { cursor: grabbing; }
.fe.fe-d2 .show__track { display: flex; flex-direction: row; gap: clamp(14px, 1.6vw, 28px); margin: 0; padding: var(--s-3) 0; list-style: none; will-change: transform; }
.fe.fe-d2 .show__slide { flex: 0 0 clamp(280px, 42vw, 680px); margin: 0; padding: 0; list-style: none; }
.fe.fe-d2 .show__card { position: relative; margin: 0; aspect-ratio: 3 / 2; border-radius: 14px; overflow: hidden; background: #0A1714; transform-origin: 50% 60%; will-change: transform; box-shadow: 0 50px 90px -45px rgba(0, 0, 0, .75); }
.fe.fe-d2 .show__card::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07); pointer-events: none; }
.fe.fe-d2 .show__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 18, 15, 0) 42%, rgba(6, 18, 15, .55) 70%, rgba(6, 18, 15, .9) 100%); pointer-events: none; }
.fe.fe-d2 .show__img { position: absolute; top: 0; left: -7%; width: 114%; max-width: none !important; height: 100%; object-fit: cover; will-change: transform; pointer-events: none; }
.fe.fe-d2 .show__cap { position: absolute; left: clamp(18px, 2.2vw, 34px); right: clamp(18px, 2.2vw, 34px); bottom: clamp(16px, 2vw, 30px); z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; color: #fff; font-style: normal; will-change: opacity, transform; }
.fe.fe-d2 .show__tag { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .09em; text-transform: uppercase; color: #0F201C; background: var(--c-accent-bright); padding: .32rem .6rem; border-radius: 999px; }
.fe.fe-d2 .show__name { font-family: var(--ff-display); font-weight: 600; font-size: clamp(1.5rem, 2.7vw, 2.6rem); line-height: 1.04; letter-spacing: -.025em; }
.fe.fe-d2 .show__meta { font-size: .95rem; color: rgba(255, 255, 255, .78); }
.fe.fe-d2 .show__bar { display: flex; flex-direction: row; align-items: center; gap: var(--s-3); width: 100%; max-width: var(--grid-max) !important; margin: 0 auto; padding: 0 var(--pad-x); }
.fe.fe-d2 .show__count { min-width: 5.6em; font-family: var(--ff-mono); font-size: .8rem; letter-spacing: .08em; color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); }
.fe.fe-d2 .show__count b { font-weight: 500; font-size: 1.15rem; color: #fff; }
.fe.fe-d2 .show__progress { position: relative; flex: 1; height: 2px; border-radius: 2px; background: var(--c-pro-line); overflow: hidden; }
.fe.fe-d2 .show__progress span { position: absolute; top: 0; bottom: 0; left: 0; width: 0; background: linear-gradient(90deg, var(--c-accent-bright), #7FE0C6); }
.fe.fe-d2 .show__ctrl { display: flex; flex-direction: row; gap: .55rem; }
.fe.fe-d2 .show__btn { display: grid; place-items: center; width: 50px; height: 50px; padding: 0; border: 1px solid var(--c-pro-line); border-radius: 50%; background: rgba(255, 255, 255, .02); color: var(--c-pro-ink); cursor: pointer; transition: background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast), transform var(--dur-medium) var(--ease-emphasized); }
.fe.fe-d2 .show__btn:hover { background: var(--c-accent-bright); border-color: var(--c-accent-bright); color: #0F201C; transform: translateY(-2px); }
.fe.fe-d2 .show__btn svg { width: 18px; height: 18px; }
.fe.fe-d2 .show__btn--prev svg { transform: rotate(180deg); }
.fe.fe-d2 .show__btn .i-play { display: none; }
.fe.fe-d2 .show.is-user-paused .show__btn .i-play { display: block; }
.fe.fe-d2 .show.is-user-paused .show__btn .i-pause { display: none; }
.fe.fe-d2 .show__all { align-self: center; width: fit-content; margin: var(--s-4) auto 0; }
.fe.fe-d2 .show__foot { display: flex; flex-direction: row; align-items: center; gap: var(--s-3); width: 100%; max-width: var(--grid-max) !important; margin: 0 auto; padding: 0 var(--pad-x); }
.fe.fe-d2 .show__foot .show__all { flex: none; margin: 0; }
.fe.fe-d2 .show__foot .show__bar-w { flex: 1 1 auto; width: auto; min-width: 0; }
.fe.fe-d2 .show__foot .show__bar { max-width: none !important; margin: 0; padding: 0; }
.fe.fe-d2 :where(.elementor-widget-container) a.locator__pin { color: inherit; text-decoration: none; cursor: pointer; }
.fe.fe-d2 :where(.elementor-widget-container) a.locator__pin .locator__pin-label { transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast); }
.fe.fe-d2 :where(.elementor-widget-container) a.locator__pin:hover .locator__pin-label,
.fe.fe-d2 :where(.elementor-widget-container) a.locator__pin:focus-visible .locator__pin-label { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }
.fe.fe-d2 .show { width: 100%; }
.fe.fe-d2 .show__bar-w { width: 100%; }
.fe.fe-d2 .show__img img { width: 100%; height: 100%; max-width: none !important; object-fit: cover; }
.fe.fe-d2 .show__img > .elementor-widget-container { height: 100%; }
.fe.fe-d2 .sub-hero__media > .fade { position: absolute; inset: 0; }
.fe.fe-d2 .fade > .fade__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 2.6s cubic-bezier(.45, 0, .25, 1); }
.fe.fe-d2 .fade > .fade__slide:first-child { opacity: 1; }
.fe.fe-d2 .fade.is-ready > .fade__slide { opacity: 0; }
.fe.fe-d2 .fade.is-ready > .fade__slide.is-on { opacity: 1; z-index: 2; }
.fe.fe-d2 .fade.is-ready > .fade__slide.is-out { opacity: 1; z-index: 1; }
.fe.fe-d2 .fade__slide > .fade__img,
.fe.fe-d2 .fade__img > .elementor-widget-container { position: absolute; inset: 0; height: 100%; }
.fe.fe-d2 .fade__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; transform-origin: 62% 55%; will-change: transform; }
.fe.fe-d2 .fade__slide:nth-child(even) .fade__img img { transform-origin: 38% 48%; }
html.fx .fade__slide.is-on .fade__img img,
html.fx .fade__slide.is-out .fade__img img { animation: fx-drift 12s linear both; }
@keyframes fx-drift { from { transform: scale(1.04); } to { transform: scale(1.13) translate3d(-1.2%, -.8%, 0); } }
.fe.fe-d2 .fade__slide > .fade__cap { position: absolute; right: var(--pad-x); bottom: 18%; z-index: 2; padding: .35rem .7rem; border-radius: 999px; background: color-mix(in oklab, var(--c-bg) 82%, transparent); color: var(--c-ink); font-size: var(--fs-mono); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.fe.fe-d2 .fade__cap em { font-style: normal; color: var(--c-ink-soft); margin-left: .5em; }
body.fe.fe-d2.elementor-editor-active .sub-hero__media > .fade { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; overflow-y: auto; }
body.fe.fe-d2.elementor-editor-active .fade > .fade__slide { position: relative; inset: auto; aspect-ratio: 4 / 3; opacity: 1; }
@media (max-width: 560px) {
.fe.fe-d2 .fade__slide > .fade__cap { right: auto; left: var(--pad-x); bottom: 16%; }
}
.fe.fe-d2 .fx-rider { position: fixed; top: 4px; left: 0; z-index: 10001; width: auto; height: 18px; pointer-events: none; opacity: 0; transform: scaleX(-1); transition: opacity .4s; }
.fe.fe-d2 .fx-rider.is-on { opacity: 1; }
.fe.fe-d2 .fx-rider.is-parked { animation: fx-park .8s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes fx-park { 0% { rotate: 0deg; } 35% { rotate: 8deg; } 100% { rotate: 0deg; } }
.fe.fe-d2 .pass-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-2); }
.fe.fe-d2 .pass { position: relative; aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; background: var(--c-mint); }
.fe.fe-d2 .pass > .pass__img,
.fe.fe-d2 .pass__img > .elementor-widget-container { position: absolute; inset: 0; height: 100%; }
.fe.fe-d2 .pass__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, 0, 1); }
.fe.fe-d2 .pass:hover .pass__img img { transform: scale(1.04); }
.fe.fe-d2 .pass > .pass__cap { position: absolute; left: .8rem; bottom: .8rem; z-index: 2; max-width: calc(100% - 1.6rem) !important; padding: .4rem .75rem; border-radius: 999px; background: color-mix(in oklab, var(--c-bg) 86%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fe.fe-d2 .pass__cap em { font-style: normal; color: var(--c-accent); margin-left: .45em; }
.fe.fe-d2 .pass-cta { flex-direction: row; justify-content: flex-start; margin-top: var(--s-4); }
@media (max-width: 960px) {
.fe.fe-d2 .pass-grid { grid-template-columns: repeat(2, 1fr); }
}
.fe.fe-d2 .hero > .hero__chip { position: absolute; right: var(--pad-x); bottom: 15%; z-index: 4; }
.fe.fe-d2 .hero__chip a { display: inline-flex; align-items: center; gap: .5em; padding: .5rem .95rem; border-radius: 999px; background: color-mix(in oklab, var(--c-bg) 84%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1px solid var(--c-line); font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink); transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast); flex-direction: row; }
.fe.fe-d2 .hero__chip a:hover { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-bg); }
@media (max-width: 960px) {
.fe.fe-d2 .hero > .hero__chip { position: relative; right: auto; bottom: auto; align-self: flex-start; margin-top: var(--s-3); }
}
.fe.fe-d2 .notfound__btns { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-3); flex-direction: row; }
.fe.fe-d2 .quiz { position: relative; display: flex; flex-direction: column; gap: var(--s-3); max-width: 900px !important; padding: clamp(1.4rem, 3vw, 2.6rem); border: 1px solid var(--c-line); border-radius: 14px; background: var(--c-bg); overflow: hidden; }
.fe.fe-d2 .quiz::after { content: ""; position: absolute; right: -18px; bottom: -22px; width: 170px; aspect-ratio: 459 / 373; background: url("img/else-turtle.svg") no-repeat center / contain; opacity: .09; pointer-events: none; }
.fe.fe-d2 .quiz > * { position: relative; z-index: 1; }
.fe.fe-d2 .quiz__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem var(--s-2); font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--c-ink-soft); flex-direction: row; }
.fe.fe-d2 .quiz__tag { color: var(--c-accent); }
.fe.fe-d2 .quiz__q { margin: 0; max-width: 36ch !important; font-family: var(--ff-display); font-size: clamp(1.3rem, 2.2vw, 1.85rem); font-weight: 600; line-height: 1.22; letter-spacing: -.015em; color: var(--c-ink); }
.fe.fe-d2 .quiz__opts { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.fe.fe-d2 .quiz__opt { width: 100%; min-width: 0; white-space: normal; overflow-wrap: break-word; text-align: left; padding: .9rem 1.1rem; border: 1px solid var(--c-line); border-radius: 10px; background: color-mix(in oklab, var(--c-mint) 30%, var(--c-bg)); color: var(--c-ink); font: inherit; font-size: 1rem; line-height: 1.4; cursor: pointer; transition: border-color .2s, background .2s, transform .25s cubic-bezier(.2, .7, 0, 1), opacity .3s; }
.fe.fe-d2 .quiz__opt:hover:not(:disabled) { border-color: var(--c-accent); transform: translateX(4px); }
.fe.fe-d2 .quiz__opt:disabled { cursor: default; opacity: .55; }
.fe.fe-d2 .quiz__opt.is-right { opacity: 1; border-color: var(--c-accent); background: color-mix(in oklab, var(--c-accent) 14%, var(--c-bg)); }
.fe.fe-d2 .quiz__opt.is-wrong { opacity: 1; border-color: #B4533F; background: color-mix(in oklab, #B4533F 10%, var(--c-bg)); }
.fe.fe-d2 .quiz__exp { margin: 0; padding: .9rem 1.1rem; border-left: 3px solid #B4533F; border-radius: 0 8px 8px 0; background: color-mix(in oklab, var(--c-mint) 40%, var(--c-bg)); color: var(--c-ink); line-height: 1.5; }
.fe.fe-d2 .quiz__exp.is-right { border-left-color: var(--c-accent); }
.fe.fe-d2 .quiz__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); flex-wrap: wrap; flex-direction: row; }
.fe.fe-d2 .quiz__note { font-size: .85rem; color: var(--c-ink-soft); }
.fe.fe-d2 .quiz__next { padding: .7rem 1.2rem; border: 1px solid var(--c-ink); border-radius: 999px; background: transparent; color: var(--c-ink); font: inherit; font-size: .95rem; cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast); }
.fe.fe-d2 .quiz__next:hover { background: var(--c-ink); color: var(--c-bg); }
.fe.fe-d2 .pcard__base { display: flex; flex-direction: column; gap: .3rem; padding-top: .8rem; border-top: 1px solid var(--c-line); }
.fe.fe-d2 .pcard__label { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink-soft); }
.fe.fe-d2 .pcard__price-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: .2rem .7rem; }
.fe.fe-d2 .pcard__price { font-family: var(--ff-display); font-size: clamp(2rem, 2.6vw, 2.5rem); font-weight: 600; line-height: 1; letter-spacing: -.03em; color: var(--c-ink); }
.fe.fe-d2 .pcard__price--text { font-size: 1.35rem; letter-spacing: -.015em; }
.fe.fe-d2 .pcard__was { font-size: .95rem; color: var(--c-ink-soft); text-decoration: line-through; text-decoration-color: color-mix(in oklab, var(--c-accent) 70%, transparent); }
.fe.fe-d2 .pcard__note { font-size: .85rem; font-weight: 500; color: var(--c-accent); }
.fe.fe-d2 .pcard__list { margin-top: auto; padding-top: .8rem; border-top: 1px solid var(--c-line); display: flex; flex-direction: column; gap: .45rem; }
.fe.fe-d2 .pcard__list > .kv-row { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: var(--s-2); font-size: .9rem; }
.fe.fe-d2 .pcard__list .kv-k { color: var(--c-ink-soft); }
.fe.fe-d2 .pcard__list .kv-v { font-weight: 500; text-align: right; white-space: nowrap; }
.fe.fe-d2 .jubilee { position: relative; overflow: hidden; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--s-4); padding: var(--s-4) var(--s-5); border-radius: 12px; background: var(--c-pro-bg); color: var(--c-pro-ink); }
.fe.fe-d2 .jubilee::before { content: ""; position: absolute; inset: auto -10% -60% auto; width: 46%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, color-mix(in oklab, var(--c-accent-bright) 26%, transparent), transparent 65%); pointer-events: none; }
.fe.fe-d2 .jubilee > * { position: relative; }
.fe.fe-d2 .jubilee__years { display: flex; flex-direction: column; gap: .2rem; padding-right: var(--s-4); border-right: 1px solid var(--c-pro-line); }
.fe.fe-d2 .jubilee__num { font-family: var(--ff-display); font-size: clamp(4rem, 8vw, 6.5rem); font-weight: 600; line-height: .85; letter-spacing: -.05em; color: var(--c-accent-bright); }
.fe.fe-d2 .jubilee__since { color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); }
.fe.fe-d2 .jubilee__mark { display: flex; flex-direction: row; align-items: flex-end; gap: .7rem; }
.fe.fe-d2 .jubilee__turtle img { display: block; width: auto; height: clamp(3.2rem, 6.2vw, 5.2rem); }
.fe.fe-d2 .jubilee__body { display: flex; flex-direction: column; gap: .6rem; }
.fe.fe-d2 .jubilee__title { font-family: var(--ff-display); font-size: clamp(1.5rem, 2.4vw, 2.2rem); font-weight: 600; line-height: 1.12; letter-spacing: -.02em; }
.fe.fe-d2 .jubilee__text { color: color-mix(in oklab, var(--c-pro-ink) 72%, transparent); max-width: 60ch !important; }
.fe.fe-d2 .jubilee__text p { margin: 0; }
.fe.fe-d2 .price-dl { display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between; gap: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--c-ink); }
.fe.fe-d2 .price-dl__copy { display: flex; flex-direction: column; gap: var(--s-2); }
.fe.fe-d2 .price-dl__title { font-family: var(--ff-display); font-size: clamp(2rem, 3.6vw, 3.2rem); font-weight: 500; line-height: 1; letter-spacing: -.02em; }
.fe.fe-d2 .price-dl__text { color: var(--c-ink-soft); max-width: 52ch !important; }
.fe.fe-d2 .price-dl__text p { margin: 0; }
@media (max-width: 960px) {
.fe.fe-d2 .jubilee { grid-template-columns: 1fr; gap: var(--s-3); padding: var(--s-4) var(--s-3); }
.fe.fe-d2 .jubilee__years { flex-direction: row; align-items: baseline; gap: .8rem; padding: 0 0 var(--s-3); border-right: 0; border-bottom: 1px solid var(--c-pro-line); }
.fe.fe-d2 .price-dl { flex-direction: column; align-items: flex-start; }
}
.fe.fe-d2 .nw { white-space: nowrap; }
.fe.fe-d2 .locator__hours .kv-k,
.fe.fe-d2 .fleet-card__specs .kv-k { color: var(--c-ink-soft); }
.fe.fe-d2 .locator__addr p { margin: 0; }
.fe.fe-d2 .side-list > .kv-row { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--s-2); padding: .8rem 0; border-bottom: 1px solid var(--c-pro-line); font-size: .95rem; }
.fe.fe-d2 .side-list .kv-k { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: color-mix(in oklab, var(--c-pro-ink) 60%, transparent); padding-top: .15rem; }
@media (max-width: 560px) {
.fe.fe-d2 .side-list > .kv-row { grid-template-columns: 1fr; gap: .2rem; }
}
.fe.fe-d2 .more-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.fe.fe-d2 .more-grid .class-block { min-height: 0; grid-column: auto; transform: none; }
.fe.fe-d2 .legal { max-width: 46rem !important; }
.fe.fe-d2 .legal h2 { font-family: var(--ff-display); font-size: 1.7rem; font-weight: 500; line-height: 1.15; letter-spacing: -0.012em; margin: var(--s-4) 0 var(--s-1); }
.fe.fe-d2 .legal h2:first-child { margin-top: 0; }
.fe.fe-d2 .legal h3 { font-family: var(--ff-display); font-size: 1.25rem; font-weight: 500; margin: var(--s-3) 0 .4rem; }
.fe.fe-d2 .legal p,
.fe.fe-d2 .legal ul { margin: 0 0 1em; color: var(--c-ink-soft); }
.fe.fe-d2 .legal ul { padding-left: 1.2rem; list-style: disc; }
.fe.fe-d2 .legal li { margin-bottom: .3em; }
.fe.fe-d2 .legal a { color: var(--c-accent); text-decoration: underline; text-underline-offset: 3px; }
.fe.fe-d2 .legal strong { color: var(--c-ink); font-weight: 600; }
.fe.fe-d2 .legal .todo { background: #FFF1BF; color: #5B4A00; padding: 0 .3em; border-radius: 3px; }
.fe.fe-d2 .legal-note { display: block; margin-bottom: var(--s-4); padding: var(--s-2) var(--s-3); border-left: 2px solid var(--c-accent); background: var(--c-bg-alt); color: var(--c-ink-soft); font-size: .95rem; }
.fe.fe-d2 .news-single .sub-hero__title { font-size: clamp(2.4rem, 5vw, 4.4rem); }
.fe.fe-d2 .news-back { display: inline-block; margin-top: var(--s-4); font-weight: 500; border-bottom: 1px solid currentColor; }
.fe.fe-d2 .news-back:hover { color: var(--c-accent); }
.fe.fe-d2 .gate { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-2); padding: var(--s-4); border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-bg); }
.fe.fe-d2 .gate__lock { width: 3.2rem; height: 3.2rem; border-radius: 50%; display: grid; place-items: center; background: var(--c-mint); color: var(--c-accent); }
.fe.fe-d2 .gate h3 { font-family: var(--ff-display); font-size: 1.8rem; font-weight: 500; line-height: 1.1; }
.fe.fe-d2 .gate p { color: var(--c-ink-soft); max-width: 52ch !important; margin: 0; }
.fe.fe-d2 .gate__form { display: flex; gap: .6rem; width: min(30rem, 100%); flex-direction: row; }
.fe.fe-d2 .gate__input { flex: 1; min-width: 0; padding: .9rem 1rem; border: 1px solid var(--c-line); border-radius: 4px; background: var(--c-bg); font: inherit; color: var(--c-ink); }
.fe.fe-d2 .gate__input:focus { outline: none; border-color: var(--c-ink); }
.fe.fe-d2 .gate__error { color: #B42318; font-size: .9rem; min-height: 1em; }
.fe.fe-d2 .locked-area .dl-list { border-top: 1px solid var(--c-ink); }
.fe.fe-d2 .locked-area .dl-item { display: grid; grid-template-columns: 4.5rem 1fr auto; gap: var(--s-2); align-items: baseline; padding: var(--s-2) 0; border-bottom: 1px solid var(--c-line); }
.fe.fe-d2 .locked-area .dl-icon { font-family: var(--ff-mono); font-size: var(--fs-mono); color: var(--c-accent); }
.fe.fe-d2 .locked-area .dl-name { font-family: var(--ff-display); font-size: 1.25rem; font-weight: 500; }
.fe.fe-d2 .locked-area .dl-desc { color: var(--c-ink-soft); font-size: .92rem; }
.fe.fe-d2 .locked-area .dl-action { font-family: var(--ff-mono); font-size: var(--fs-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink-soft); }
.fe.fe-d2 .fx-progress { position: fixed; top: 0; left: 0; right: 0; z-index: 10000; height: 2px; pointer-events: none; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--c-accent), var(--c-accent-bright) 60%, #7FE0C6); }
html.fx .nav { transition: padding var(--dur-medium) var(--ease-standard), translate .55s cubic-bezier(.2, .7, 0, 1); }
html.fx .nav.fx-tucked { translate: 0 -105%; }
html.fx .fx-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .14em; margin-bottom: -.14em; }
html.fx .fx-wi { display: inline-block; transform: translate3d(0, 112%, 0) rotate(3deg); transform-origin: 0 100%; transition: transform 1.15s cubic-bezier(.2, .7, 0, 1) calc(var(--i, 0) * 55ms + 60ms); }
html.fx .fx-in .fx-wi { transform: none; }
html.fx .fx-clip > * { clip-path: inset(0 100% 0 0); transition: clip-path 1.1s cubic-bezier(.2, .7, 0, 1) .05s; }
html.fx .fx-clip.fx-in > * { clip-path: inset(0 0 0 0); }
html.fx .fx-img { clip-path: inset(7% 7% 7% 7% round 12px); transition: clip-path 1.5s cubic-bezier(.2, .7, 0, 1); }
html.fx .fx-img img { scale: 1.16; transition: scale 1.9s cubic-bezier(.2, .7, 0, 1), transform var(--dur-medium) var(--ease-emphasized), filter var(--dur-medium); }
html.fx .fx-img.fx-in { clip-path: inset(0 0 0 0 round 0); }
html.fx .fx-img.fx-in img { scale: 1.1; }
html.fx .sub-hero__media.fx-img { clip-path: none; opacity: 0; transition: opacity 1.8s cubic-bezier(.2, .7, 0, 1); }
html.fx .sub-hero__media.fx-img.fx-in { opacity: 1; }
html.fx .fx-img:not(.sub-hero__media) { transform: skewY(var(--fx-skew, 0deg)); }
.fe.fe-d2 .fx-line { position: absolute; top: -1px; left: 0; width: 100%; height: 2px; pointer-events: none; background: linear-gradient(90deg, var(--c-accent), var(--c-accent-bright)); transform: scaleX(0); transform-origin: 0 50%; transition: transform 1.3s cubic-bezier(.2, .7, 0, 1) calc(var(--i, 0) * 140ms + 150ms); }
html.fx .fx-line-host { position: relative; }
html.fx .fx-line-host.fx-in .fx-line { transform: scaleX(1); }
.fe.fe-d2 .tl .tl__year,
.fe.fe-d2 .tl .tl__title { transition: color .35s, translate .5s cubic-bezier(.2, .7, 0, 1); }
html.fx .fx-line-host.fx-in:hover .fx-line { transform: scaleX(1) scaleY(2); transition-delay: 0s; transition-duration: .45s; }
.fe.fe-d2 .tl:hover .tl__year { color: var(--c-accent-bright); translate: 6px 0; }
.fe.fe-d2 .tl:hover .tl__title,
.fe.fe-d2 .tl:hover .tl__text { translate: 6px 0; }
.fe.fe-d2 .tl .tl__text { transition: translate .6s cubic-bezier(.2, .7, 0, 1) .04s; }
html.fx .fx-tilt { position: relative; }
html.fx .fx-tilt.is-hot { transition: transform .2s ease-out, box-shadow .45s var(--ease-standard), border-color var(--dur-fast); box-shadow: 0 30px 70px -34px rgba(15, 32, 28, .45); }
.fe.fe-d2 .fx-spot { position: absolute; inset: 0; z-index: 3; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .5s var(--ease-standard); background: radial-gradient(440px circle at var(--mx, 50%) var(--my, 50%), color-mix(in oklab, var(--c-accent-bright) 12%, transparent), transparent 62%); }
.fe.fe-d2 .fx-spot::after { content: ""; position: absolute; inset: 0; padding: 1px; border-radius: inherit; background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), color-mix(in oklab, var(--c-accent-bright) 75%, transparent), transparent 70%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.fe.fe-d2 .fx-tilt.is-hot > .fx-spot { opacity: 1; }
html.fx .fx-aura-host { position: relative; isolation: isolate; }
html.fx .fx-aura-host > .elementor-element { position: relative; z-index: 1; }
.fe.fe-d2 .fx-aura { position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0; transition: opacity .9s var(--ease-standard); mix-blend-mode: screen; background: radial-gradient(680px circle at var(--mx, 50%) var(--my, 50%), rgba(20, 167, 139, .2), transparent 60%); }
.fe.fe-d2 .fx-aura-host.is-aura > .fx-aura { opacity: 1; }
html.fx .elementor-button { position: relative; overflow: hidden; isolation: isolate; }
html.fx .elementor-button::after { content: ""; position: absolute; top: -10%; bottom: -10%; left: -70%; width: 45%; z-index: 1; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .3), transparent); transform: skewX(-20deg); transition: left .9s cubic-bezier(.2, .7, 0, 1); }
html.fx .elementor-button:hover::after { left: 130%; }
html.fx .fx-mag { transition: translate .45s cubic-bezier(.2, .7, 0, 1); }
html.fx .fx-mag.is-pull { transition: translate .15s ease-out; }
.fe.fe-d2 .fx-grain { position: fixed; inset: 0; z-index: 9998; overflow: hidden; pointer-events: none; opacity: .055; }
.fe.fe-d2 .fx-grain::before { content: ""; position: absolute; inset: -50%; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); animation: fx-grain 1.4s steps(6) infinite; }
@keyframes fx-grain { 0% { transform: translate(0, 0); } 20% { transform: translate(-5%, 3%); } 40% { transform: translate(3%, -6%); } 60% { transform: translate(-7%, -2%); } 80% { transform: translate(6%, 5%); } 100% { transform: translate(0, 0); } }
.fe.fe-d2 .fx-aurora { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; mix-blend-mode: screen; }
.fe.fe-d2 .fx-aurora::before,
.fe.fe-d2 .fx-aurora::after { content: ""; position: absolute; width: 60vmax; height: 60vmax; border-radius: 50%; filter: blur(60px); opacity: .5; }
.fe.fe-d2 .fx-aurora::before { left: -20vmax; top: -30vmax; background: radial-gradient(circle, rgba(20, 167, 139, .38), transparent 65%); animation: fx-drift-a 22s ease-in-out infinite alternate; }
.fe.fe-d2 .fx-aurora::after { right: -25vmax; bottom: -35vmax; background: radial-gradient(circle, rgba(127, 224, 198, .22), transparent 65%); animation: fx-drift-b 28s ease-in-out infinite alternate; }
@keyframes fx-drift-a { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(18vmax, 10vmax) scale(1.15); } 100% { transform: translate(34vmax, -4vmax) scale(.95); } }
@keyframes fx-drift-b { 0% { transform: translate(0, 0) scale(1.05); } 50% { transform: translate(-16vmax, -12vmax) scale(.9); } 100% { transform: translate(-30vmax, 6vmax) scale(1.12); } }
html.fx .sub-hero__media img { animation: fx-breathe-img 9s ease-in-out infinite alternate; }
@keyframes fx-breathe-img { 0% { transform: scale(1); } 100% { transform: scale(1.035); } }
html.fx .fx-img.fx-in img { animation: fx-photo-breathe var(--fx-bd, 14s) ease-in-out var(--fx-bo, 1.9s) infinite alternate; }
@keyframes fx-photo-breathe { 0% { scale: 1.1; } 100% { scale: 1.16; } }
html.fx .hero__media img { animation: fx-hero-drift 22s ease-in-out infinite alternate; }
@keyframes fx-hero-drift { 0% { scale: 1; translate: 0 0; } 100% { scale: 1.07; translate: -1.6% -1.2%; } }
.fe.fe-d2 .hero-glass { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.fe.fe-d2 .hg-pane { position: absolute; top: 0; left: -48px; width: calc(100% + 48px); height: 100%; overflow: visible; transform-origin: 0 50%; will-change: transform; }
.fe.fe-d2 .hg-pane polygon { fill: #fff; }
.fe.fe-d2 .hg-pane--a polygon { fill-opacity: .17; }
.fe.fe-d2 .hg-pane--b polygon { fill-opacity: .12; }
.fe.fe-d2 .hg-pane--c polygon { fill-opacity: .15; }
.fe.fe-d2 .hg-pane--t polygon { fill: var(--c-accent-bright); fill-opacity: .17; }
.fe.fe-d2 .hg-edge { fill: none; stroke: #fff; stroke-opacity: .5; stroke-width: 1; }
.fe.fe-d2 .fx-air--global { position: fixed; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; z-index: 40; }
html.fx .nav__cta .elementor-button .elementor-button,
html.fx .final .elementor-button { animation: fx-breathe 3.8s ease-in-out infinite; }
@keyframes fx-breathe { 0%, 100% { box-shadow: 0 0 0 0 rgba(20, 167, 139, 0); } 50% { box-shadow: 0 0 0 7px rgba(20, 167, 139, .2); } }
.fe.fe-d2 .fx-glow { position: fixed; inset: 0; z-index: 9997; pointer-events: none; opacity: 0; transition: opacity .6s; mix-blend-mode: multiply; background: radial-gradient(560px circle at var(--gx, 50%) var(--gy, 50%), rgba(20, 167, 139, .1), transparent 65%); }
html.fx-pointer .fx-glow { opacity: 1; }
.fe.fe-d2 .fx-cursor,
.fe.fe-d2 .fx-dot { position: fixed; left: 0; top: 0; z-index: 10001; pointer-events: none; border-radius: 50%; opacity: 0; will-change: transform; }
.fe.fe-d2 .fx-cursor { width: 38px; height: 38px; margin: -19px 0 0 -19px; display: grid; place-items: center; border: 1px solid rgba(11, 122, 101, .5); transition: width .4s cubic-bezier(.2, .7, 0, 1), height .4s cubic-bezier(.2, .7, 0, 1), margin .4s cubic-bezier(.2, .7, 0, 1), background .3s, border-color .3s, opacity .3s; }
.fe.fe-d2 .fx-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--c-accent-bright); transition: opacity .3s, scale .3s; }
html.fx-pointer .fx-cursor,
html.fx-pointer .fx-dot { opacity: 1; }
.fe.fe-d2 .fx-cursor.is-link { width: 62px; height: 62px; margin: -31px 0 0 -31px; background: rgba(20, 167, 139, .12); border-color: transparent; }
.fe.fe-d2 .fx-cursor.is-link + .fx-dot { scale: 0; }
.fe.fe-d2 .fx-cursor.is-dark { border-color: rgba(230, 240, 236, .55); }
.fe.fe-d2 .fx-cursor.is-dark.is-link { background: rgba(127, 224, 198, .16); }
.fe.fe-d2 .fx-cursor.is-drag { width: 86px; height: 86px; margin: -43px 0 0 -43px; background: var(--c-accent-bright); border-color: transparent; }
.fe.fe-d2 .fx-cursor.is-drag + .fx-dot { scale: 0; }
.fe.fe-d2 .fx-cursor__label { font-family: var(--ff-mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: #0F201C; opacity: 0; transition: opacity .25s; }
.fe.fe-d2 .fx-cursor.is-drag .fx-cursor__label { opacity: 1; }
.fe.fe-d2 .fx-cursor.is-down { scale: .85; }
@media (max-width: 1100px) {
.fe.fe-d2 .guide-grid,
.fe.fe-d2 .ccards,
.fe.fe-d2 .ccards--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 960px) {
.fe.fe-d2 .news,
.fe.fe-d2 .class-index,
.fe.fe-d2 .quick__inner,
.fe.fe-d2 .more-grid { grid-template-columns: 1fr; }
.fe.fe-d2 .fleet-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
.fe.fe-d2 .ccards,
.fe.fe-d2 .ccards--3,
.fe.fe-d2 .fleet-grid { grid-template-columns: 1fr; }
.fe.fe-d2 .show__slide { flex-basis: 84vw; }
.fe.fe-d2 .show__card { aspect-ratio: 4 / 3.2; }
.fe.fe-d2 .show__viewport { -webkit-mask-image: none; mask-image: none; }
.fe.fe-d2 .show__bar { gap: var(--s-2); }
.fe.fe-d2 .show__btn { width: 44px; height: 44px; }
.fe.fe-d2 .show__foot { flex-direction: column; align-items: stretch; gap: var(--s-3); }
.fe.fe-d2 .show__foot .show__all { order: 2; align-self: center; }
.fe.fe-d2 .hero__title { font-size: 10.2vw; }
.fe.fe-d2 .hero .hero__media::after { background: linear-gradient(180deg, color-mix(in oklab, var(--c-bg) 45%, transparent) 0%, color-mix(in oklab, var(--c-bg) 74%, transparent) 45%, color-mix(in oklab, var(--c-bg) 90%, transparent) 100%); }
.fe.fe-d2 .guide-grid { grid-template-columns: 1fr; }
.fe.fe-d2 .gate__form { flex-direction: column; }
.fe.fe-d2 .locked-area .dl-item { grid-template-columns: 3.5rem 1fr; }
.fe.fe-d2 .locked-area .dl-action { display: none; }
}

/* ---- Elementor bridge (post) ---- */
/* fe-fill: image widget that covers its container (background-style image) */
.fe .e-con > .fe-fill.elementor-widget { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.fe .fe-fill > .elementor-widget-container { width: 100%; height: 100%; }
.fe .e-con > .fe-static.elementor-widget { position: static; }
.fe a.e-con { color: inherit; text-decoration: none; }
/* fe-t: typography comes from the class on the widget, inner tag inherits it */
.fe.fe-d2 .fe-t .elementor-heading-title,
.fe.fe-d2 .fe-t .elementor-widget-container p { font: inherit; letter-spacing: inherit; color: inherit; }
/* fe-ts: only size + colour come from the class, the rest from the h-tag */
.fe.fe-d2 .fe-ts .elementor-heading-title { font-size: inherit; color: inherit; }
.fe.fe-d2 .btn .elementor-button { line-height: inherit; fill: currentColor; text-decoration: none; }
.fe .elementor-button .elementor-button-content-wrapper { gap: 0.5rem; }
/* keep scroll-reveal content visible while editing in Elementor */
body.elementor-editor-active .reveal,
body.elementor-editor-active [data-reveal] { opacity: 1 !important; transform: none !important; }
body.elementor-editor-active .hero__title .word { transform: none !important; }
.admin-bar.fe .nav { top: 32px; }
@media (max-width: 782px) { .admin-bar.fe .nav { top: 46px; } }
/* ---- Design 2 specifics ---- */
.fe.fe-d2 .hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in oklab, var(--c-bg) 38%, transparent) 0%, transparent 30%, transparent 55%, color-mix(in oklab, var(--c-bg) 70%, transparent) 100%), linear-gradient(90deg, color-mix(in oklab, var(--c-bg) 55%, transparent) 0%, transparent 55%); }
.fe.fe-d2 .classes__head > .classes__hero { display: block; max-width: none !important; }
/* Elementor resets "figure" margins inside widgets; restore the quote rhythm */
.fe.fe-d2 .elementor-widget-html figure.quote { margin: 0 0 var(--s-6); }
.fe.fe-d2 .elementor-widget-html figure.quote--offset { margin-left: auto; }
.fe.fe-d2 .quote figcaption { font: inherit; color: inherit; margin: 0; }
.fe.fe-d2 .nav__links li { display: block; }
.fe.fe-d2 .nav__links li > a { display: block; }
.fe.fe-d2 .e-con > .classes__cap.elementor-widget { position: absolute; left: var(--s-3); bottom: var(--s-3); color: var(--c-bg); background: color-mix(in oklab, var(--c-ink) 55%, transparent); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: 0.4rem 0.8rem; border-radius: 4px; }
.fe.fe-d2 .locator__photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.35) brightness(0.85) contrast(1.05); }
.fe.fe-d2 .nav::after { content: ""; position: absolute; left: var(--pad-x); right: var(--pad-x); bottom: 0; height: 1px; background: var(--c-line); }
.fe.fe-d2 .section-head__title,
.fe.fe-d2 .class-block__title,
.fe.fe-d2 .fleet-card__name,
.fe.fe-d2 .locator__title { letter-spacing: -0.012em; }
.fe.fe-d2 .nav__links .is-active,
.fe.fe-d2 .nav__links .current-menu-item > a { color: var(--c-ink); }
.fe.fe-d2 .nav__links .current-menu-item > a::after { right: 0; background: var(--c-accent); }
.fe.fe-d2 .pro__contact a:hover, .fe.fe-d2 .final__contact a:hover { color: var(--c-accent); }
@media (max-width: 880px) { .fe.fe-d2 .e-con > .nav__links-w.elementor-widget { display: none; } }
@media (max-width: 540px) { .fe.fe-d2 .e-con > .nav__phone-w.elementor-widget { display: none; } }
/* WPForms in Design 2 */
.fe.fe-d2 .wpforms-container { margin: 0 !important; }
.fe.fe-d2 .wpforms-container .wpforms-field { padding: 0 0 var(--s-3) !important; }
.fe.fe-d2 .wpforms-container .wpforms-field-label { font-family: var(--ff-mono) !important; font-size: var(--fs-mono) !important; font-weight: 400 !important; letter-spacing: .06em; text-transform: uppercase; color: var(--c-ink-soft) !important; margin: 0 0 .5rem !important; }
.fe.fe-d2 .wpforms-container input[type=text],
.fe.fe-d2 .wpforms-container input[type=email],
.fe.fe-d2 .wpforms-container select,
.fe.fe-d2 .wpforms-container textarea { width: 100% !important; max-width: 100% !important; height: auto !important; padding: .9rem 1rem !important; background: var(--c-bg) !important; border: 1px solid var(--c-line) !important; border-radius: 4px !important; color: var(--c-ink) !important; font-family: var(--ff-body) !important; font-size: 1rem !important; line-height: 1.5 !important; box-shadow: none !important; }
.fe.fe-d2 .wpforms-container textarea { min-height: 150px; }
.fe.fe-d2 .wpforms-container input:focus, .fe.fe-d2 .wpforms-container select:focus, .fe.fe-d2 .wpforms-container textarea:focus { outline: none !important; border-color: var(--c-ink) !important; }
.fe.fe-d2 .wpforms-container .wpforms-submit-container { padding: 0 !important; }
.fe.fe-d2 .wpforms-container button[type=submit] { height: auto !important; padding: .95rem 1.6rem !important; border-radius: 999px !important; border: 0 !important; background: var(--c-ink) !important; color: var(--c-bg) !important; font-family: var(--ff-body) !important; font-size: .95rem !important; font-weight: 500 !important; cursor: pointer; transition: transform var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard); }
.fe.fe-d2 .wpforms-container button[type=submit]:hover { background: var(--c-accent) !important; transform: translateY(-2px); }
