/* Enfour CMS additions on top of the theme stylesheet: language switch, search, form messages. */
.en-header .en-lang-switch { color: rgba(255,255,255,.82); font-size: 14px; font-weight: 500; text-decoration: none; padding: 6px 12px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; white-space: nowrap; transition: border-color .2s, color .2s; }
.en-header .en-lang-switch:hover, .en-header .en-lang-switch:focus-visible { color: #fff; border-color: var(--en-gold); }
.en-header.is-scrolled .en-lang-switch { border-color: rgba(255,255,255,.4); }
/* Language menu: <details> pill showing the current language; the other languages drop down. */
.en-lang { position: relative; }
.en-lang > summary { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; list-style: none; }
.en-lang > summary::-webkit-details-marker { display: none; }
.en-lang > summary::after { content: ""; width: 6px; height: 6px; margin: -3px 0 0 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.en-lang[open] > summary { color: #fff; border-color: var(--en-gold); }
.en-lang__menu { position: absolute; right: 0; top: calc(100% + 8px); min-width: 120px; margin: 0; padding: 6px; list-style: none; background: rgba(6,3,54,.96); border: 1px solid rgba(255,255,255,.18); border-radius: 12px; box-shadow: 0 12px 32px rgba(0,0,0,.35); z-index: 60; }
.en-lang__menu a { display: block; padding: 8px 12px; border-radius: 8px; color: rgba(255,255,255,.88); font-size: 14px; text-decoration: none; white-space: nowrap; }
.en-lang__menu a:hover, .en-lang__menu a:focus-visible { background: rgba(255,255,255,.08); color: #fff; }
@media (max-width: 1024px) { .en-nav .en-lang { align-self: flex-start; margin: 8px 0; } .en-nav .en-lang__menu { position: static; margin-top: 8px; box-shadow: none; } }

.en-search { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; max-width: 640px; }
.en-search__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.en-search input[type="search"] { flex: 1 1 260px; min-height: 48px; padding: 10px 18px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.08); color: #fff; font: inherit; }
.en-search input[type="search"]::placeholder { color: rgba(255,255,255,.6); }
.en-search button { border: 0; cursor: pointer; }

.ff-message-success { padding: 20px 24px; border-radius: 12px; background: #F2EEE0; border: 1px solid var(--en-gold); color: var(--en-ink); font-weight: 500; }
.ff-message-success:focus { outline: 3px solid var(--en-navy); outline-offset: 2px; }
.frm-fluent-form .error.text-danger { color: #B3261E; font-size: 14px; margin-top: 6px; }
.frm-fluent-form .ff-el-is-error .ff-el-form-control { border-color: #B3261E; }
.frm-fluent-form .ff_form_errors { margin-bottom: 16px; }
.frm-fluent-form.ff-form-loading .ff-btn-submit { opacity: .6; cursor: progress; }
.enfour-search .enfour-grid { margin-top: 8px; }

/* Deferred section backgrounds (was printed inline by Elementor): sections below the first screen get their
   background images once blocks.js marks them .e-lazyloaded. */
.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * { background-image: none !important; }
@media screen and (max-height: 1024px) {
	.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
	.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * { background-image: none !important; }
}
@media screen and (max-height: 640px) {
	.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
	.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * { background-image: none !important; }
}

/* Tablets (768–1024px): several page heroes carry a 64px top padding from the WordPress build, which puts the
   eyebrow pill under the fixed header (the WordPress site has the same fault). Keep at least the phone value. */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor > .en-hero:first-child { padding-top: max(var(--padding-top, 0px), 120px); }
}

/* Touch screens: give breadcrumb links a finger-sized hit area (they were 16px tall). */
@media (pointer: coarse) {
	.enfour-crumbs a { display: inline-block; padding: 6px 0; margin: -6px 0; }
}

/* Past & present partner names link to their websites. In the marquees they keep the muted word style (and
   brighten on hover like before); in the "Apple · Nokia · …" lines they get a light gold underline so they read as links. */
.en-marquee--words li a.en-partner-link, .en-dark .en-marquee--words li a.en-partner-link { color: inherit; text-decoration: none; }
.en-marquee--words li a.en-partner-link:hover, .en-marquee--words li a.en-partner-link:focus-visible { color: #fff; }
.en-text a.en-partner-link, .en-kit .en-text a.en-partner-link { color: inherit; text-decoration: underline; text-decoration-color: rgba(212,176,104,.6); text-decoration-thickness: 1px; text-underline-offset: .25em; }
.en-text a.en-partner-link:hover, .en-text a.en-partner-link:focus-visible { text-decoration-color: var(--en-gold); text-decoration-thickness: 2px; }

/* History pages (/history/): plain card grids and figures (see NOTES.md, 2026-11-09). */
.e-con.en-bento.en-cards-plain { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.e-con.en-bento.en-cards-plain > .e-con:first-child { grid-row: auto; }
.e-con.en-bento.en-cards-plain > .e-con:not(:first-child) { display: flex !important; flex-direction: column; }
@media (max-width: 1024px) { .e-con.en-bento.en-cards-plain { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .e-con.en-bento.en-cards-plain { grid-template-columns: 1fr; } }
.en-hist-fig { margin: 0; }
.en-hist-fig img { display: block; width: 100%; height: auto; border-radius: 12px; background: #fff; }
.en-hist-fig figcaption { margin-top: 8px; font-size: 14px; color: var(--en-muted, #5b5f7a); }
.en-hist-figs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 760px; }
.en-hist-figs .en-hist-fig img { aspect-ratio: 4 / 3; object-fit: contain; border: 1px solid rgba(9,5,87,.1); }
@media (max-width: 767px) { .en-hist-figs { grid-template-columns: 1fr; } }

/* Header menu with News + History (8 items): keep it on one line on desktop and small laptops (2026-11-09). */
.en-nav__list > li > a { white-space: nowrap; }
@media (min-width: 1025px) and (max-width: 1439px) { .en-header .en-nav__list { column-gap: 18px; } .en-header .en-nav__list a { font-size: 14px; } }
@media (min-width: 1025px) and (max-width: 1199px) { .en-header .en-nav__list { column-gap: 14px; } .en-header .en-nav__list a { font-size: 13px; } }
@media (min-width: 1025px) and (max-width: 1119px) { html[lang="ja"] .en-header .en-nav__list { column-gap: 10px; } html[lang="ja"] .en-header .en-nav__list a { font-size: 12px; } }

/* Header with 9 items (Mobile added 2026-11-10): keep one line from 1025px up in en/ja/ko. */
@media (min-width:1440px){ .en-header .en-nav__list{column-gap:18px} .en-header .en-nav__list a{font-size:14px} }
@media (min-width:1025px) and (max-width:1099px){ .en-header .en-nav__list{column-gap:9px} .en-header .en-nav__list a{font-size:12px} html[lang="ja"] .en-header .en-nav__list{column-gap:7px} html[lang="ja"] .en-header .en-nav__list a{font-size:11px} }

/* Stats strips: line up the big numbers when some labels wrap to two lines and others don't (2026-11-10). */
.e-con.en-stats > .elementor-widget-counter { display: flex; flex-direction: column; }
.e-con.en-stats > .elementor-widget-counter > .elementor-counter { flex: 1 1 auto; justify-content: flex-start; }
.en-stats .elementor-counter .elementor-counter-title { flex: 0 0 auto; }
.en-stats .elementor-counter .elementor-counter-number-wrapper { flex: 0 0 auto; margin-top: auto; }
/* Breadcrumb: a one-character "Home" (Korean 홈) is too small a tap target. */
.enfour-crumbs a { display: inline-block; min-width: 24px; text-align: center; }

/* Apps hub (2026-11-10): "Browse by category" and "Browse by language" are one matching pair of light cards. */
.e-con.en-bento.en-bento--browse > .e-con,
.e-con.en-bento.en-bento--browse > .e-con:first-child,
.e-con.en-bento.en-bento--browse > .e-con:not(:first-child) { display: flex !important; flex-direction: column; justify-content: flex-start; grid-row: auto; background: #fff !important; background-image: none !important; border-color: rgba(9,5,87,.08); }
.e-con.en-bento.en-bento--browse > .e-con:first-child .elementor-heading-title:not(.en-eyebrow *) { color: var(--en-navy) !important; }
.e-con.en-bento.en-bento--browse > .e-con h3.elementor-heading-title { font-size: 28px !important; }
@media (max-width: 767px) { .e-con.en-bento.en-bento--browse > .e-con h3.elementor-heading-title { font-size: 24px !important; } }
.e-con.en-bento.en-bento--browse > .e-con:first-child p,
.e-con.en-bento.en-bento--browse > .e-con:first-child .elementor-widget-text-editor { color: var(--en-ink) !important; }
.en-bento--browse .en-link-list a { color: var(--en-navy); text-decoration: none; }
.en-bento--browse .en-link-list a:hover, .en-bento--browse .en-link-list a:focus-visible { color: var(--en-gold-text); text-decoration: underline; }
/* Any link left inside a dark bento card stays readable on hover. */
.e-con.en-bento:not(.en-bento--browse) > .e-con:first-child a:not(.elementor-button) { color: var(--en-gold-light); }
.e-con.en-bento:not(.en-bento--browse) > .e-con:first-child a:not(.elementor-button):hover { color: #fff; }
