/*
Theme Name: Enfour
Template: hello-elementor
Version: 2.1.0
Text Domain: enfour
Description: Enfour, Inc. child theme of Hello Elementor (App catalog).
*/

/* ===== Enfour design tokens (style guide v0.1) ===== */
:root {
	--en-navy: var(--e-global-color-primary, #090557);
	--en-gold: var(--e-global-color-secondary, #D4B068);
	--en-ink: var(--e-global-color-text, #1C1B2E);
	--en-gold-text: var(--e-global-color-accent, #7A5C14);
	--en-navy-deep: #060336;
	--en-gold-light: #F7D086;
	--en-taupe-text: #5C5650;
	--en-taupe: #9E938B;
	--en-grey: #7D7D7D;
	--en-light: #F7F7F7;
	--en-sand: #EDE3DD;
	--en-white: #FFFFFF;
	--en-font-sans: var(--e-global-typography-text-font-family, 'Roboto'), 'Noto Sans JP', system-ui, sans-serif;
	--en-font-slab: var(--e-global-typography-primary-font-family, 'Roboto Slab'), 'Noto Sans JP', Georgia, serif;
}
body { font-family: var(--en-font-sans); color: var(--en-ink); font-size: 17px; line-height: 1.6; background: var(--en-white); }
h1, h2 { font-family: var(--en-font-slab); font-weight: 600; color: var(--en-navy); line-height: 1.2; }
h3, h4, h5, h6 { font-family: var(--en-font-sans); font-weight: 600; color: var(--en-navy); }
a { color: var(--en-gold-text); }
:focus-visible { outline: 3px solid var(--en-navy); outline-offset: 2px; }
.en-dark :focus-visible, .en-header :focus-visible, .en-footer :focus-visible { outline-color: var(--en-gold); }

/* Japanese */
html[lang="ja"] body { font-family: 'Noto Sans JP', 'Roboto', system-ui, sans-serif; line-height: 1.9; letter-spacing: 0.02em; }
html[lang="ja"] h1, html[lang="ja"] h2, html[lang="ja"] h3, html[lang="ja"] h4, html[lang="ja"] h5, html[lang="ja"] h6,
html[lang="ja"] .elementor-heading-title { font-family: 'Noto Sans JP', 'Roboto', system-ui, sans-serif; font-weight: 700; line-height: 1.5; text-transform: none; font-style: normal; line-break: strict; word-break: auto-phrase; }
html[lang="ja"] .elementor-widget-text-editor { line-height: 1.9; }

/* Header */
.en-header { background: var(--en-white); border-bottom: 1px solid var(--en-sand); position: sticky; top: 0; z-index: 50; }
.admin-bar .en-header { top: 32px; }
.en-header__inner { max-width: 1200px; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.en-header__logo img { display: block; height: 34px; width: auto; }
.en-nav__list, .en-footer__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px 28px; flex-wrap: wrap; }
.en-nav__list a { color: var(--en-navy); text-decoration: none; font-weight: 500; font-size: 16px; padding: 10px 0; display: inline-block; border-bottom: 2px solid transparent; }
.en-nav__list a:hover, .en-nav__list .current-menu-item > a, .en-nav__list .current-menu-ancestor > a { border-bottom-color: var(--en-gold); }
.en-nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.en-nav-toggle__btn { display: none; width: 44px; height: 44px; cursor: pointer; position: relative; }
.en-nav-toggle__btn span, .en-nav-toggle__btn span::before, .en-nav-toggle__btn span::after { content: ""; position: absolute; left: 10px; width: 24px; height: 2px; background: var(--en-navy); }
.en-nav-toggle__btn span { top: 21px; } .en-nav-toggle__btn span::before { left: 0; top: -7px; } .en-nav-toggle__btn span::after { left: 0; top: 7px; }
@media (max-width: 1024px) {
	.en-nav-toggle__btn { display: block; }
	.en-nav { display: none; width: 100%; }
	.en-nav-toggle:checked ~ .en-nav { display: block; }
	.en-nav__list { flex-direction: column; gap: 0; }
	.en-nav__list a { padding: 12px 0; width: 100%; }
	.en-header__inner { padding: 12px 16px; }
}

/* Footer */
.en-footer { background: var(--en-navy-deep); color: #fff; padding: 64px 24px 24px; }
.en-footer__inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; }
.en-footer__logo { margin: 0 0 16px; }
.en-footer__logo img { display: block; height: 36px; width: auto; }
.en-footer__brand { font-family: var(--en-font-slab); font-size: 22px; font-weight: 600; margin: 0 0 4px; color: #fff; }
.en-footer__tag { color: var(--en-gold-light); margin: 0 0 16px; }
.en-footer address { font-style: normal; margin-bottom: 8px; }
.en-footer__offices { color: #d8d6e8; font-size: 14px; }
.en-footer__list { flex-direction: column; gap: 6px; }
.en-footer__list a { color: #fff; text-decoration: none; }
.en-footer__list a:hover { color: var(--en-gold-light); text-decoration: underline; }
.en-footer__copy { max-width: 1200px; margin: 48px auto 0; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.15); font-size: 14px; color: #d8d6e8; }
@media (max-width: 767px) { .en-footer { padding: 48px 16px 24px; } .en-footer__inner { grid-template-columns: 1fr; } }

/* Buttons (non-Elementor) */
.en-btn { display: inline-block; padding: 12px 24px; border-radius: 6px; font-weight: 500; font-size: 16px; line-height: 1; text-decoration: none; border: 2px solid var(--en-navy); background: var(--en-navy); color: #fff; }
.en-btn:hover { background: var(--en-navy-deep); border-color: var(--en-navy-deep); color: #fff; }
.en-btn--gold { background: var(--en-gold); border-color: var(--en-gold); color: var(--en-navy-deep); }
.en-btn--gold:hover { background: var(--en-gold-light); border-color: var(--en-gold-light); color: var(--en-navy-deep); }

/* Elementor component classes */
.en-eyebrow .elementor-heading-title { font-family: var(--en-font-sans); font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--en-gold-text); }
.en-dark .en-eyebrow .elementor-heading-title { color: var(--en-gold-light); }
.en-measure .elementor-widget-container { max-width: 68ch; }
.en-card { background: #fff; border: 1px solid var(--en-sand); border-radius: 12px; }
.en-stage { background: var(--en-light); border-top: 4px solid var(--en-gold); border-radius: 12px; }
.en-stage.en-dark { background: var(--en-navy); }
.en-num .elementor-heading-title { font-family: var(--en-font-slab); font-size: 28px; color: var(--en-gold-text); }
.en-dark .en-num .elementor-heading-title { color: var(--en-gold); }
.en-price .elementor-heading-title { font-family: var(--en-font-sans); font-size: 15px; font-weight: 500; color: var(--en-gold-text); }
.en-dark .en-price .elementor-heading-title { color: var(--en-gold-light); }
.en-dark, .en-dark p, .en-dark li { color: #fff; }
.en-dark .elementor-heading-title { color: #fff; }
.en-text ul { padding-left: 1.2em; margin: 0; } .en-text li { margin-bottom: 6px; }
.en-small { font-size: 14px; color: var(--en-taupe-text); }

/* Comparison table */
.en-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--en-sand); border-radius: 12px; }
.en-table { width: 100%; border-collapse: collapse; min-width: 720px; font-size: 15px; margin: 0; }
.en-table th, .en-table td { text-align: left; vertical-align: top; padding: 14px 16px; border: 0; border-bottom: 1px solid var(--en-sand); }
.en-table thead th { background: var(--en-navy); color: #fff; font-weight: 600; }
.en-table tbody tr:nth-child(even) td { background: var(--en-light); }
.en-table tbody tr:last-child td { border-bottom: 0; }
.en-table td:first-child { font-weight: 600; color: var(--en-navy); white-space: nowrap; }

/* FAQ (native accordion widget) */
.en-faq .e-n-accordion-item, .en-faq .elementor-accordion-item { border-color: var(--en-sand) !important; }
.en-faq .e-n-accordion-item-title-text, .en-faq .elementor-tab-title a { color: var(--en-navy); font-weight: 600; }

/* Featured app grid on Elementor pages */
.enfour-grid--featured { margin: 0; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }

/* Fluent Forms */
.en-form .ff-btn-submit { background: var(--en-navy) !important; color: #fff !important; border-radius: 6px; padding: 12px 24px; font-weight: 500; font-size: 16px; }
.en-form .ff-btn-submit:hover { background: var(--en-navy-deep) !important; }
.en-form .ff-el-form-control { border-color: var(--en-grey); border-radius: 6px; min-height: 44px; }

/* App cards keep their compact title despite global h2 styles */
.enfour-card .enfour-card__title { font-family: var(--en-font-sans); font-size: 17px; font-weight: 600; line-height: 1.35; margin: 0; color: var(--en-navy); }
.enfour-grid.enfour-grid--featured { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { .enfour-grid.enfour-grid--featured { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .enfour-grid.enfour-grid--featured { grid-template-columns: 1fr; } }

/* =====================================================================
   v2 — contemporary premium redesign (navy + gold, glass, glow, bento)
   ===================================================================== */
:root { --en-r: 20px; --en-glass: rgba(255,255,255,.06); --en-line: rgba(255,255,255,.12); --en-ease: cubic-bezier(.2,.7,.2,1); --en-shadow: 0 1px 2px rgba(6,3,54,.06), 0 12px 32px -12px rgba(6,3,54,.18); }
html { scroll-behavior: smooth; overflow-x: clip; }
body { background: #FBFAF8; -webkit-font-smoothing: antialiased; overflow-x: clip; }
::selection { background: var(--en-gold); color: var(--en-navy-deep); }
.en-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: #fff; color: var(--en-navy); padding: 10px 16px; border-radius: 8px; }
.en-skip:focus { left: 8px; }

/* ---- Header: fixed glass ---- */
.en-header { position: fixed; left: 0; right: 0; top: 0; z-index: 60; background: linear-gradient(180deg, rgba(6,3,54,.55), rgba(6,3,54,0)); border-bottom: 1px solid transparent; transition: background .35s var(--en-ease), border-color .35s, backdrop-filter .35s; }
.en-header.is-scrolled, .en-header:has(.en-nav-toggle:checked) { background: rgba(6,3,54,.78); -webkit-backdrop-filter: saturate(160%) blur(16px); backdrop-filter: saturate(160%) blur(16px); border-bottom-color: var(--en-line); }
.admin-bar .en-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .en-header { top: 46px; } }
.en-header__inner { max-width: 1240px; padding: 14px 24px; flex-wrap: nowrap; }
.en-header__logo img { height: 32px; }
.en-nav { display: flex; align-items: center; gap: 28px; }
.en-nav__list a { color: rgba(255,255,255,.82); font-size: 15px; font-weight: 500; letter-spacing: .01em; border-bottom: 0; position: relative; transition: color .2s; }
.en-nav__list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 2px; border-radius: 2px; background: var(--en-gold); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--en-ease); }
.en-nav__list a:hover, .en-nav__list .current-menu-item > a { color: #fff; }
.en-nav__list a:hover::after, .en-nav__list .current-menu-item > a::after { transform: scaleX(1); }
.en-header .en-btn { padding: 10px 18px; font-size: 14px; border-radius: 999px; }
.en-nav-toggle__btn span, .en-nav-toggle__btn span::before, .en-nav-toggle__btn span::after { background: #fff; }
.en-header :focus-visible { outline-color: var(--en-gold); }
@media (max-width: 1024px) {
	.en-header__inner { flex-wrap: wrap; padding: 10px 16px; }
	.en-nav { display: none; flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 0 16px; }
	.en-nav-toggle:checked ~ .en-nav { display: flex; }
	.en-nav__list a { color: #fff; font-size: 17px; }
	.en-nav__list a::after { bottom: 6px; right: auto; width: 24px; }
	.en-header__cta { align-self: flex-start; }
}

/* Non-hero templates clear the fixed header */
main.site-main:not(.enfour-app):not(.enfour-apps) { padding-top: 96px; }

/* ---- Buttons ---- */
.elementor-widget-button .elementor-button { border-radius: 999px !important; transition: transform .25s var(--en-ease), box-shadow .25s, background-color .25s, color .25s !important; }
.elementor-widget-button .elementor-button:hover { transform: translateY(-1px); }
.en-dark .elementor-widget-button .elementor-button[style], .en-dark .elementor-button { box-shadow: 0 0 0 0 rgba(212,176,104,0); }
.en-dark .elementor-widget-button:first-child .elementor-button:hover { box-shadow: 0 8px 32px -6px rgba(212,176,104,.55); }
.en-btn { border-radius: 999px; transition: transform .25s var(--en-ease), box-shadow .25s, background .25s; }
.en-btn--gold:hover { box-shadow: 0 8px 28px -6px rgba(212,176,104,.6); transform: translateY(-1px); }

/* ---- Background layer (video / image) ---- */
.en-hero, .en-band-img, .en-pagehero { position: relative; overflow: hidden; isolation: isolate; }
.en-hero > .e-con-inner, .en-band-img > .e-con-inner { position: static; }
.en-bg-wrap { position: absolute !important; inset: 0; z-index: -1; margin: 0 !important; width: auto !important; max-width: none !important; }
.en-bg-wrap > .elementor-widget-container, .en-bg-wrap .elementor-widget-container { height: 100%; }
.en-bg { position: absolute; inset: 0; z-index: -1; background: var(--en-navy-deep); }
.en-bg__poster, .en-bg__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.en-bg__video { opacity: 0; transition: opacity 1.2s ease; }
.en-bg__video.is-playing { opacity: 1; }
.en-bg__veil { position: absolute; inset: 0;
	background:
		radial-gradient(60% 70% at 85% 20%, rgba(212,176,104,.22), transparent 60%),
		radial-gradient(50% 60% at 10% 110%, rgba(64,58,200,.35), transparent 60%),
		linear-gradient(90deg, rgba(6,3,54,.94) 0%, rgba(6,3,54,.72) 45%, rgba(6,3,54,.25) 100%),
		linear-gradient(180deg, rgba(6,3,54,0) 60%, #060336 100%); }
.en-bg__veil::after { content: ""; position: absolute; inset: 0; opacity: .5;
	background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 64px 64px; -webkit-mask-image: radial-gradient(70% 60% at 30% 40%, #000, transparent 75%); mask-image: radial-gradient(70% 60% at 30% 40%, #000, transparent 75%); }

/* ---- Hero ---- */
.en-hero { min-height: 72vh; justify-content: center; }
.en-hero--xl { min-height: min(100vh, 920px); }
.en-hero .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(40px, 6vw, 84px) !important; line-height: 1.04 !important; letter-spacing: -.025em; max-width: 14ch;
	background: linear-gradient(180deg, #fff 30%, #E9DDBF 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: #fff !important; padding-bottom: .06em; }
.en-hero:not(.en-hero--xl) .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(38px, 5vw, 68px) !important; }
.en-hero .en-lead p { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.6; color: rgba(255,255,255,.82); }
.en-hero .en-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px; border: 1px solid rgba(212,176,104,.4); border-radius: 999px; background: rgba(212,176,104,.08); font-size: 13px; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.en-hero .en-eyebrow .elementor-heading-title::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--en-gold); box-shadow: 0 0 12px var(--en-gold); }
html[lang="ja"] .en-hero .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(30px, 4.4vw, 58px) !important; line-height: 1.3 !important; letter-spacing: 0; max-width: 18em; }

/* ---- Dark sections ---- */
.en-dark .elementor-widget-heading:not(.en-eyebrow):not(.en-num):not(.en-price) .elementor-heading-title { color: #fff !important; }
.en-dark .en-text p, .en-dark .en-text li { color: rgba(255,255,255,.8); }
.en-dark a:not(.elementor-button):not(.en-btn) { color: var(--en-gold-light); }
.elementor > .e-con.en-dark:not(.en-hero):not(.en-stats-band):not(.en-band-img) {
	background: radial-gradient(60% 120% at 50% 0%, rgba(212,176,104,.18), transparent 60%), radial-gradient(40% 80% at 100% 100%, rgba(80,70,220,.25), transparent 60%), #060336 !important;
	border-top: 1px solid var(--en-line); }
.en-dark .en-card, .en-band-img .en-card { background: var(--en-glass); border-color: var(--en-line); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.en-dark .en-card p, .en-band-img .en-card p { color: rgba(255,255,255,.85); }

/* ---- Stats band ---- */
.en-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--en-line); }
.en-stat { padding: 28px 24px 4px 0; display: flex; flex-direction: column-reverse; gap: 6px; border-right: 1px solid var(--en-line); padding-left: 24px; }
.en-stat:first-child { padding-left: 0; } .en-stat:last-child { border-right: 0; }
.en-stat__num { margin: 0; font-family: var(--en-font-slab); font-weight: 600; font-size: clamp(40px, 4.6vw, 64px); line-height: 1; letter-spacing: -.02em;
	background: linear-gradient(180deg, #F7D086, #D4B068 60%, #A88645); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--en-gold); font-variant-numeric: tabular-nums; }
.en-stat__label { color: rgba(255,255,255,.7); font-size: 14px; font-weight: 500; }
@media (max-width: 767px) { .en-stats { grid-template-columns: 1fr 1fr; } .en-stat { padding: 20px 12px 12px; border-right: 0; border-bottom: 1px solid var(--en-line); } .en-stat:first-child { padding-left: 12px; } }

/* ---- Marquees (partners + app icons) ---- */
.en-marquee { display: flex; overflow: hidden; gap: 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.en-marquee__track { display: flex; flex: none; gap: 0; list-style: none; margin: 0; padding: 0; animation: en-marquee 48s linear infinite; }
.en-marquee--rev .en-marquee__track { animation-direction: reverse; }
.en-marquee:hover .en-marquee__track, .en-marquee:focus-within .en-marquee__track { animation-play-state: paused; }
@keyframes en-marquee { to { transform: translateX(-100%); } }
.en-partners { display: grid; gap: 14px; margin-top: 40px; }
.en-partners__row { display: grid; grid-template-columns: 180px 1fr; align-items: center; gap: 16px; }
.en-partners__label { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--en-gold-light); }
.en-marquee--words li { padding: 0 32px; font-family: var(--en-font-slab); font-weight: 600; font-size: clamp(20px, 2vw, 28px); color: rgba(255,255,255,.55); white-space: nowrap; transition: color .2s; }
.en-marquee--words li:hover { color: #fff; }
.en-marquee--words li::after { content: "◆"; font-size: 8px; color: var(--en-gold); margin-left: 64px; vertical-align: middle; opacity: .7; }
.en-partners__row:nth-child(2) .en-marquee__track { animation-duration: 30s; animation-direction: reverse; }
@media (max-width: 767px) { .en-partners__row { grid-template-columns: 1fr; gap: 6px; } }
.en-iconwall { display: grid; gap: 16px; margin: 8px 0 16px; }
.en-marquee--icons .en-marquee__track { animation-duration: 70s; }
.en-marquee--icons li { padding: 0 8px; }
.en-marquee--icons a { display: block; border-radius: 22px; transition: transform .3s var(--en-ease), box-shadow .3s; }
.en-marquee--icons a:hover, .en-marquee--icons a:focus-visible { transform: translateY(-4px) scale(1.06); box-shadow: 0 16px 32px -10px rgba(9,5,87,.45); }
.en-iconwall .en-iconwall__icon { /* .en-iconwall raises it above base.css ".elementor img {border-radius:0; box-shadow:none}" */  display: block; width: 72px; height: 72px; border-radius: 22.37%; /* iOS app icon corner: 22.37% of the width */ object-fit: cover; box-shadow: 0 1px 2px rgba(6,3,54,.12), 0 6px 16px -6px rgba(6,3,54,.25); }
@media (max-width: 767px) { .en-iconwall .en-iconwall__icon { width: 56px; height: 56px; } }

/* ---- Cards ---- */
.en-card, .en-stage { border-radius: var(--en-r); transition: transform .35s var(--en-ease), box-shadow .35s var(--en-ease), border-color .35s; }
.en-card { border-color: rgba(9,5,87,.08); box-shadow: var(--en-shadow); }
.en-card:hover, .en-stage:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(6,3,54,.06), 0 24px 48px -16px rgba(6,3,54,.28); border-color: rgba(212,176,104,.55); }
.en-stage { background: linear-gradient(180deg, #fff, #F6F4EF); border: 1px solid rgba(9,5,87,.08); border-top: 0; box-shadow: var(--en-shadow); position: relative; }
.en-stage::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, var(--en-gold), transparent); }
.en-stage.en-dark { background: radial-gradient(120% 80% at 100% 0%, rgba(212,176,104,.25), transparent 55%), linear-gradient(160deg, #0d0870, #060336); border-color: rgba(212,176,104,.3); }
.en-num .elementor-heading-title { font-size: 40px !important; letter-spacing: -.02em; background: linear-gradient(180deg, #D4B068, #7A5C14); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.en-dark .en-num .elementor-heading-title { background: linear-gradient(180deg, #F7D086, #D4B068); -webkit-background-clip: text; background-clip: text; }
.en-glow-card { background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, rgba(212,176,104,.9), rgba(9,5,87,.15) 50%, rgba(212,176,104,.6)) border-box !important; border: 1px solid transparent !important; }
.en-glow-card::before { display: none; }

/* Images */
.en-img-wrap { width: 100%; }
.en-img { margin: 0; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; background: var(--en-navy-deep); }
.en-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--en-ease); }
.en-card:hover .en-img img, .en-stage:hover .en-img img { transform: scale(1.05); }

/* ---- Bento ---- */
.e-con.en-bento { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px !important; }
.e-con.en-bento > .e-con { width: auto !important; max-width: none !important; }
.e-con.en-bento > .e-con:first-child { grid-row: span 2; background: radial-gradient(90% 60% at 100% 0%, rgba(212,176,104,.22), transparent 60%), linear-gradient(160deg, #0d0870, #060336); border-color: rgba(212,176,104,.25); }
.e-con.en-bento > .e-con:first-child .en-img { aspect-ratio: 4 / 3; }
.e-con.en-bento > .e-con:first-child .elementor-heading-title:not(.en-eyebrow *) { color: #fff !important; }
.e-con.en-bento > .e-con:first-child .en-eyebrow .elementor-heading-title { color: var(--en-gold-light) !important; }
.e-con.en-bento > .e-con:first-child p { color: rgba(255,255,255,.82); }
.e-con.en-bento > .e-con:first-child h3.elementor-heading-title { font-size: 32px !important; }
.e-con.en-bento > .e-con:first-child .elementor-button { color: #fff !important; border-color: rgba(255,255,255,.6) !important; }
.e-con.en-bento > .e-con:first-child .elementor-button:hover { background: #fff !important; color: var(--en-navy) !important; }
.e-con.en-bento > .e-con:not(:first-child) { display: grid !important; grid-template-columns: 42% 1fr; column-gap: 24px; align-content: start; }
.e-con.en-bento > .e-con:not(:first-child) > .en-img-wrap { grid-row: span 4; align-self: stretch; }
.e-con.en-bento > .e-con:not(:first-child) .en-img { aspect-ratio: auto; height: 100%; min-height: 200px; }
@media (max-width: 1024px) { .e-con.en-bento { grid-template-columns: 1fr; } .e-con.en-bento > .e-con:first-child { grid-row: auto; } }
@media (max-width: 767px) { .e-con.en-bento > .e-con:not(:first-child) { grid-template-columns: 1fr; } .e-con.en-bento > .e-con:not(:first-child) > .en-img-wrap { grid-row: auto; } .e-con.en-bento > .e-con:not(:first-child) .en-img { aspect-ratio: 16/9; min-height: 0; } }

/* ---- Section headings: larger, tighter ---- */
.elementor > .e-con:not(.en-hero) .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(30px, 3.6vw, 48px) !important; letter-spacing: -.02em; line-height: 1.12 !important; }
html[lang="ja"] .elementor > .e-con:not(.en-hero) .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(26px, 3vw, 38px) !important; letter-spacing: 0; line-height: 1.4 !important; }
.en-eyebrow .elementor-heading-title { font-size: 13px; letter-spacing: .14em; }

/* Light sections get a soft layered backdrop */
.elementor > .e-con:not(.en-dark) { position: relative; }
.elementor > .e-con:not(.en-dark):not(.en-band-img)::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
	background: radial-gradient(40% 50% at 100% 0%, rgba(212,176,104,.10), transparent 70%), radial-gradient(40% 50% at 0% 100%, rgba(9,5,87,.05), transparent 70%); }
.elementor > .e-con:not(.en-dark) > .e-con-inner { position: relative; z-index: 1; }

/* Offices band */
.en-band-img { min-height: 420px; justify-content: center; }
.en-band-img .en-bg__veil { background: linear-gradient(90deg, rgba(6,3,54,.92), rgba(6,3,54,.55)), linear-gradient(180deg, #060336 0%, transparent 25%, transparent 75%, #060336 100%); }
.en-band-img .en-card .elementor-heading-title { color: var(--en-gold-light) !important; }

/* Table, FAQ, form polish */
.en-table-wrap { border-radius: var(--en-r); box-shadow: var(--en-shadow); background: #fff; }
.en-table thead th { background: linear-gradient(90deg, #090557, #1a1480); }
.en-faq .e-n-accordion-item, .en-faq .elementor-accordion-item { background: #fff; border-radius: 14px; margin-bottom: 10px; overflow: hidden; box-shadow: var(--en-shadow); }
.en-form .ff-el-form-control { border-radius: 12px; border-color: #CFCBD9; transition: border-color .2s, box-shadow .2s; }
.en-form .ff-el-form-control:focus { border-color: var(--en-navy); box-shadow: 0 0 0 4px rgba(212,176,104,.35); }
.en-form .ff-btn-submit { border-radius: 999px !important; padding: 14px 28px !important; }
.en-contact-card { position: sticky; top: 96px; }

/* ---- Reveal (JS adds .en-reveal; never hides content without JS) ---- */
.en-js .en-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--en-ease), transform .8s var(--en-ease); }
.en-js .en-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.en-js .en-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	.en-marquee__track { animation: none !important; }
	.en-marquee { overflow-x: auto; }
	.en-marquee__track[aria-hidden="true"] { display: none; }
	.en-bg__video { display: none; }
	.en-card, .en-stage, .en-img img, .elementor-button { transition: none !important; }
}

/* ---- Template heroes (apps archive, single app) ---- */
.en-pagehero { color: #fff; padding: 152px 24px 88px; margin: 0 calc(50% - 50vw); }
.en-pagehero__inner { max-width: 1200px; margin: 0 auto; position: relative; }
.en-pagehero h1, .en-pagehero .enfour-app__title { font-family: var(--en-font-slab); font-size: clamp(36px, 5vw, 64px); line-height: 1.08; letter-spacing: -.02em; margin: 0 0 12px;
	background: linear-gradient(180deg, #fff 30%, #E9DDBF); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: #fff; }
.en-pagehero__eyebrow { display: inline-flex; gap: 8px; padding: 6px 14px; border: 1px solid rgba(212,176,104,.4); border-radius: 999px; background: rgba(212,176,104,.08); color: var(--en-gold-light); font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 20px; }
body .en-pagehero .enfour-apps__intro, body .en-pagehero .enfour-apps__intro p { color: rgba(255,255,255,.8); font-size: 19px; max-width: 60ch; }
body .enfour-apps, body .enfour-app { max-width: none; padding: 0; }
.enfour-apps__body, .enfour-app__main { max-width: 1200px; margin: 0 auto; padding: 40px 24px 96px; }
@media (max-width: 767px) { .en-pagehero { padding: 112px 16px 56px; } .enfour-apps__body, .enfour-app__main { padding: 28px 16px 64px; } }
body .enfour-filter a { border-color: rgba(9,5,87,.18); background: #fff; padding: 8px 16px; transition: all .2s; }
body .enfour-filter a:hover, body .enfour-filter a.is-active { background: var(--en-navy); border-color: var(--en-navy); color: #fff; box-shadow: 0 6px 18px -6px rgba(9,5,87,.5); }
body .enfour-grid { gap: 20px; }
body .enfour-card { border-radius: var(--en-r); border-color: rgba(9,5,87,.08); box-shadow: var(--en-shadow); padding: 22px; position: relative; overflow: hidden; transition: transform .35s var(--en-ease), box-shadow .35s, border-color .35s; }
body .enfour-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .35s; background: radial-gradient(80% 60% at 0% 0%, rgba(212,176,104,.16), transparent 60%); }
body .enfour-card:hover { transform: translateY(-4px); border-color: rgba(212,176,104,.6); box-shadow: 0 2px 4px rgba(6,3,54,.06), 0 24px 48px -16px rgba(6,3,54,.3); }
body .enfour-card:hover::before { opacity: 1; }
body .enfour-card .enfour-app-icon { border-radius: 16px; box-shadow: 0 6px 16px -6px rgba(6,3,54,.35); }
body .enfour-tag { background: rgba(212,176,104,.16); color: var(--en-gold-text); }
.en-pagehero--app .enfour-crumbs, .en-pagehero--app .enfour-crumbs a { color: rgba(255,255,255,.7); }
.en-pagehero--app .enfour-crumbs a:hover { color: var(--en-gold-light); }
body .en-pagehero--app .enfour-app__head { margin: 0; align-items: center; }
body .en-pagehero--app .enfour-app__head .enfour-app-icon { width: 152px; height: 152px; border-radius: 34px; box-shadow: 0 0 0 1px rgba(255,255,255,.15), 0 24px 60px -12px rgba(212,176,104,.45); }
body .en-pagehero--app .enfour-app__name { color: rgba(255,255,255,.85); }
body .en-pagehero--app .enfour-app__name > span:first-child { background: rgba(212,176,104,.2); color: var(--en-gold-light); }
body .en-pagehero--app .enfour-cta { background: var(--en-gold); color: var(--en-navy-deep) !important; border-color: var(--en-gold); border-radius: 999px; }
body .en-pagehero--app .enfour-cta:hover { background: var(--en-gold-light); box-shadow: 0 10px 30px -8px rgba(212,176,104,.6); }
body .enfour-cta { border-radius: 999px; }
body .enfour-details { background: #fff; border-radius: var(--en-r); overflow: hidden; box-shadow: var(--en-shadow); border-collapse: separate; border-spacing: 0; }
body .enfour-details caption { padding: 0 0 12px; font-family: var(--en-font-slab); font-size: 22px; }
body .enfour-related { border-top: 0; position: relative; padding-top: 40px; }
body .enfour-related::before { content: ""; position: absolute; top: 0; left: 0; width: 80px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--en-gold), transparent); }
body .enfour-related h2 { font-size: clamp(26px, 3vw, 36px); }
@media (max-width: 600px) { body .en-pagehero--app .enfour-app__head { align-items: flex-start; } body .en-pagehero--app .enfour-app__head .enfour-app-icon { width: 104px; height: 104px; border-radius: 24px; } }

/* ---- Footer ---- */
.en-footer { position: relative; overflow: hidden; isolation: isolate; background: #04022a; padding: 96px 24px 0; border-top: 1px solid var(--en-line); }
.en-footer__glow { position: absolute; inset: 0; z-index: -1; background: radial-gradient(50% 60% at 15% 0%, rgba(212,176,104,.16), transparent 60%), radial-gradient(40% 60% at 100% 100%, rgba(80,70,220,.25), transparent 60%); }
.en-footer__inner { max-width: 1200px; grid-template-columns: 1.6fr 1fr 1.2fr; gap: 48px; }
.en-footer__h { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--en-gold-light); margin: 0 0 16px; }
.en-footer__big { font-family: var(--en-font-slab); font-size: 28px; line-height: 1.2; margin: 0 0 20px; color: #fff; }
.en-footer__brand { font-size: 16px; }
.en-footer__list a { color: rgba(255,255,255,.75); transition: color .2s; }
.en-footer__list a:hover { color: #fff; text-decoration: none; }
.en-footer address, .en-footer__offices { color: rgba(255,255,255,.7); }
.en-footer__copy { margin-top: 64px; color: rgba(255,255,255,.55); }
.en-footer__word { margin: 8px auto -0.22em; max-width: 1200px; font-family: var(--en-font-slab); font-weight: 600; font-size: clamp(64px, 17vw, 240px); line-height: 1; letter-spacing: -.03em; text-align: center; user-select: none;
	background: linear-gradient(180deg, rgba(212,176,104,.28), rgba(212,176,104,0) 85%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
@media (max-width: 767px) { .en-footer { padding: 64px 16px 0; } .en-footer__inner { grid-template-columns: 1fr; gap: 32px; } }
.e-con.en-bento > .e-con:first-child { background-color: #060336 !important; background-image: radial-gradient(90% 60% at 100% 0%, rgba(212,176,104,.22), transparent 60%), linear-gradient(160deg, #0d0870, #060336) !important; }
.e-con.en-bento > .e-con:first-child p, .e-con.en-bento > .e-con:first-child .elementor-widget-text-editor { color: rgba(255,255,255,.82) !important; }
.e-con.en-bento > .e-con:not(:first-child) .en-img { aspect-ratio: 4 / 3; height: auto; min-height: 0; }
.e-con.en-bento > .e-con:not(:first-child) > .en-img-wrap { grid-row: span 4; align-self: start; }
.en-glow-card { align-self: flex-start; }
@media (max-width: 767px) { .en-hero .en-bg__veil { background: radial-gradient(80% 50% at 80% 10%, rgba(212,176,104,.18), transparent 60%), linear-gradient(180deg, rgba(6,3,54,.6) 0%, rgba(6,3,54,.88) 45%, #060336 100%); } }

/* ===================== Native Elementor widgets (v2 look) ===================== */
/* Hero/band backgrounds now use container Background (video/classic) + Background Overlay; this adds the gold glow and grid. */
.en-hero > .e-con-inner > .elementor-element, .en-band-img > .e-con-inner > .elementor-element { position: relative; z-index: 2; }
.en-hero > .elementor-background-video-container { z-index: 0; }
.en-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: radial-gradient(60% 70% at 85% 20%, rgba(212,176,104,.22), transparent 60%), radial-gradient(50% 60% at 10% 110%, rgba(64,58,200,.35), transparent 60%), linear-gradient(180deg, rgba(6,3,54,0) 60%, #060336 100%),
		linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 64px 64px, linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px) 0 0 / 64px 64px; }
.en-band-img::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, #060336 0%, transparent 25%, transparent 75%, #060336 100%); }
.elementor-background-video-hosted { object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .elementor-background-video-container { display: none !important; } }
/* Image widget */
.en-img-wrap.elementor-widget-image { aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: var(--en-navy-deep); }
.en-img-wrap.elementor-widget-image > .elementor-widget-container { height: 100%; }
.en-img-wrap.elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; transition: transform .8s var(--en-ease); }
.en-card:hover .en-img-wrap img, .en-stage:hover .en-img-wrap img { transform: scale(1.05); }
.e-con.en-bento > .e-con:first-child > .en-img-wrap { aspect-ratio: 4 / 3; }
.e-con.en-bento > .e-con:not(:first-child) > .en-img-wrap { aspect-ratio: 4 / 3; height: auto; }
/* Counters */
.e-con.en-stats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid var(--en-line); }
.e-con.en-stats > .elementor-widget-counter { width: auto !important; max-width: none !important; padding: 28px 24px 4px; border-right: 1px solid var(--en-line); }
.e-con.en-stats > .elementor-widget-counter:first-child { padding-left: 0; } .e-con.en-stats > .elementor-widget-counter:last-child { border-right: 0; }
.en-stats .elementor-counter { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.en-stats .elementor-counter-number-wrapper { justify-content: flex-start; margin: 0; font-family: var(--en-font-slab); font-weight: 600; font-size: clamp(40px, 4.6vw, 64px); line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.en-stats .elementor-counter-number-wrapper span { background: linear-gradient(180deg, #F7D086, #D4B068 60%, #A88645); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.en-stats .elementor-counter-title { justify-content: flex-start; text-align: left; color: rgba(255,255,255,.7); font-family: var(--en-font, inherit); font-size: 14px; font-weight: 500; line-height: 1.4 !important; }
@media (max-width: 767px) { .e-con.en-stats { grid-template-columns: 1fr 1fr; } .e-con.en-stats > .elementor-widget-counter, .e-con.en-stats > .elementor-widget-counter:first-child { padding: 20px 12px 12px; border-right: 0; border-bottom: 1px solid var(--en-line); } }
/* Partner marquees (Heading + Text Editor list) */
.e-con.en-partners__row > .en-partners__label { flex: 0 0 180px; }
.en-partners__label .elementor-heading-title { margin: 0; font-size: 12px !important; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--en-gold-light) !important; }
.e-con.en-partners__row > .en-marquee { flex: 1 1 0; min-width: 0; width: 100%; }
.en-marquee.elementor-widget-text-editor, .en-marquee.elementor-widget-text-editor > .elementor-widget-container { display: flex; overflow: hidden; }
.e-con.en-partners > .e-con.en-partners__row:nth-child(2) .en-marquee__track { animation-duration: 30s; animation-direction: reverse; }
@media (max-width: 767px) { .e-con.en-partners__row > .en-partners__label { flex: none; } }
/* Table inside a Text Editor */
.en-table-text table { margin: 0; }
.en-table-text .en-table thead th { background: linear-gradient(90deg, #090557, #1a1480) !important; color: #fff !important; }
.en-table-text .en-table tbody tr:nth-child(even) td { background: var(--en-light) !important; }
.en-table-text .en-table tbody tr:nth-child(odd) td { background: #fff !important; }

/* App descriptions (native Elementor on single app): compact section heading */
body.single-app .elementor > .e-con .elementor-widget-heading h2.elementor-heading-title { font-size: 22px !important; line-height: 1.3 !important; letter-spacing: 0; margin-top: 16px; }
/* Tablet: text-only bento cards stack heading above content (e.g. Browse by language). */
@media (max-width: 1024px) { .e-con.en-bento > .e-con:not(:first-child):not(:has(.en-img-wrap)):not(:has(.en-img)) { grid-template-columns: 1fr; row-gap: 12px; } }

/* Contrast: tables inside light cards always use dark text */
.en-table tbody td, .en-table tbody th, .en-facts td, .en-facts th { color: #090557 !important; }
.en-table thead th { color: #fff !important; }
.en-table td a, .en-facts td a { color: #7A5A12 !important; }
/* Contrast: button labels follow the button colour; timeline years use dark gold on white */
.elementor-button .elementor-button-text { color: inherit !important; }
.en-tl .elementor-heading-title { color: #7A5A12 !important; }
/* Outline buttons on dark translucent cards */
.en-dark .en-card .elementor-button { color: #D4B068 !important; border-color: #D4B068 !important; }
.en-dark .en-card .elementor-button:hover { background: #D4B068 !important; color: #090557 !important; }
/* Key facts table fits its card at every width */
.en-table-wrap:has(> .en-facts) { overflow-x: visible; }
table.en-facts { width: 100% !important; min-width: 0 !important; table-layout: fixed; }
.en-facts td, .en-facts th { white-space: normal !important; overflow-wrap: anywhere; }

/* Systems Administration: Powered by FrontierStack */
.en-fs .en-fs-card{background:#FFFFFF}
.en-fs .en-fs-card .en-eyebrow .elementor-heading-title{color:#7A5A12!important}
/* Calls to action (2.1.1.0) */
.en-cta-holder,.en-cta-holder>.e-con-inner{padding:0!important;max-width:none!important;width:100%}
.en-next-steps{width:100%}
.en-cta-band .en-cta-card,.en-cta-strip{background:#FFFFFF}
.en-cta-strip{background:#F4F1E8}
.en-cta-band .en-cta-card{border-radius:12px;box-shadow:0 1px 3px rgba(6,3,54,.08)}
.en-cta-band .en-cta-card>.en-btn-row,.en-cta-band .en-cta-card>.e-con-inner>.en-btn-row{margin-top:auto}
.en-cta-band .en-eyebrow .elementor-heading-title,.en-cta-strip .en-eyebrow .elementor-heading-title{color:#7A5A12!important}
.enfour-cta--buy{background:transparent!important;color:#fff!important;border:2px solid #fff!important;margin-left:12px}
.enfour-cta-wrap .enfour-cta--buy{color:var(--en-navy-deep)!important;border-color:var(--en-navy-deep)!important}
.enfour-app .en-next-steps{margin-top:64px}
.en-js .en-next-steps .en-reveal{opacity:1;transform:none}
body .en-pagehero--app .enfour-cta.enfour-cta--buy{background:transparent;color:#FFFFFF!important;border:2px solid #FFFFFF}
.en-cta-cards>.e-con,.en-cta-cards>.e-con-inner>.e-con{flex-direction:column!important}
.en-next-steps h2.elementor-heading-title{font-size:36px!important;line-height:1.2}

/* Phone (footer + contact) */
.en-footer__tel { color: rgba(255,255,255,.85); font-size: 14px; margin-bottom: 8px; }
.en-footer__tel a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.en-footer__tel a:hover, .en-footer__tel a:focus-visible { color: var(--en-gold); }
.en-tel-btn .elementor-button { white-space: nowrap; }
.en-footer__tel .en-nowrap { white-space: nowrap; }
