/* ============================================================
   UGOITA PLUS フロントページ刷新（2026-09）共有スタイル
   スコープ：.ugoita-front（他テーマ要素に漏れない）
   確定意匠：トーンC＝紺 × 金グラデ × Oswald × 濃色帯ノイズ
   参照カンプ：designs/pages/front-2026-09-preview.html / -sp-preview.html
   ============================================================ */

/* このページ（page.front-preview）ではテーマ既定のヘッダー/フッター/アナウンスを隠し、
   フロント専用のヘッダー/フッターのみ表示する。body-template クラスで限定。 */
.body-template-page-front-preview .announcement-bar,
.body-template-page-front-preview .announcement-wrapper,
.body-template-page-front-preview > .shopify-section > .header,
.body-template-page-front-preview .header.header--has-menu,
.body-template-page-front-preview header.header,
.body-template-page-front-preview .footer__content-top,
.body-template-page-front-preview .footer__content-bottom,
.body-template-page-front-preview .ugoita-header,
.body-template-page-front-preview .ugoita-footer { display: none !important; }
.body-template-page-front-preview main, .body-template-page-front-preview #MainContent { margin: 0 !important; padding: 0 !important; }
/* セクション間・両端に白帯が出ないよう、ページ全体を紺地で塗る */
.body-template-page-front-preview,
.body-template-page-front-preview #MainContent,
.body-template-page-front-preview main,
.body-template-page-front-preview .shopify-section { background: #0d1424 !important; }

.ugoita-front {
  --bg: #0d1424;
  --bg-2: #0e1626;
  --bg-3: #1a2540;
  --bg-4: #223050;
  --gold: #ffca55;
  --gold-light: #ffe159;
  --gold-deep: #b8862f;
  --gold-faint: rgba(255,202,85,.08);
  --text: #ffffff;
  --text-2: #c3cbdd;
  --text-3: #8391ab;
  --text-4: #4c5871;
  --line: rgba(255,255,255,.08);
  --line-2: rgba(255,255,255,.15);
  --line-gold: rgba(255,202,85,.4);
  --btn-grad: linear-gradient(to right, #ffe159, #ffa851);
  --btn-text: #1c2438;
  --font-en: 'Oswald', sans-serif;
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.24'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

  background: var(--bg);
  color: var(--text);
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  max-width: 1680px;
  margin-inline: auto;
  overflow-x: clip;
}

/* Outsidersの文字色トラップ対策：テーマが -webkit-text-fill-color を広域指定するため、
   フロント配下は currentColor を !important で強制（:where は詳細度不足で負けるため :is＋important）。 */
.ugoita-front,
.ugoita-front :is(h1,h2,h3,h4,h5,p,span,a,div,li,ul,ol,small,strong,em,b,button,label,time,nav) {
  -webkit-text-fill-color: currentColor !important;
}
/* グラデ／アウトライン文字は透明に（詳細度＋importantで上書き）。
   ※ .gi-copy em はグラデではなく金の単色なので除外（透明化するとGOLD文字が消える） */
.ugoita-front .uf-sec-en,
.ugoita-front .uf-ghost,
.ugoita-front .uf-rank-num,
.ugoita-front .uf-cl-copy em {
  -webkit-text-fill-color: transparent !important;
}
.ugoita-front * { box-sizing: border-box; }
.ugoita-front img { display: block; max-width: 100%; }
.ugoita-front ul { list-style: none; margin: 0; padding: 0; }
.ugoita-front a { color: inherit; text-decoration: none; }

/* ===== 共通：英字キッカー／見出し ===== */
.ugoita-front .uf-kicker {
  font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 700;
  letter-spacing: .3em; text-transform: uppercase; color: var(--gold-light);
}
.ugoita-front .uf-sec-en {
  font-family: var(--font-en); font-weight: 700; font-size: 58px; line-height: 1;
  letter-spacing: .04em; text-transform: uppercase;
  background: var(--btn-grad); -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.ugoita-front .uf-sec-ja { font-size: 14px; font-weight: 700; color: var(--text-2); margin-top: 10px; }
.ugoita-front .uf-sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 0 60px; margin-bottom: 32px; }
.ugoita-front .uf-more {
  display: inline-flex; align-items: center; gap: 6px; align-self: center; flex-shrink: 0;
  font-size: 11.5px; font-weight: 800; letter-spacing: .08em; line-height: 1;
  color: var(--gold-light); border: 1px solid var(--line-gold); border-radius: 999px;
  padding: 8px 16px; white-space: nowrap; transition: background .2s, color .2s;
}
.ugoita-front .uf-more:hover { background: var(--btn-grad); color: var(--btn-text); border-color: transparent; }

/* ===== セクション帯 ===== */
.ugoita-front .uf-section { padding: 72px 0 48px; position: relative; }
.ugoita-front .uf-section.alt { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ugoita-front .uf-section:not(.alt) { background-image: var(--grain); background-blend-mode: soft-light; }
.ugoita-front .uf-ghost {
  position: absolute; right: 40px; top: 34px;
  font-family: var(--font-en); font-weight: 600; font-size: 150px; line-height: 1;
  color: transparent; -webkit-text-fill-color: transparent; -webkit-text-stroke: 1px var(--line-2);
  letter-spacing: .02em; pointer-events: none; user-select: none;
}

/* ============================================================
   ヘッダー（PC：メガメニュー／SP：ロゴ＋マイページ＋カート）
   ============================================================ */
.uf-header {
  position: sticky; top: 0; z-index: 100;
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 32px;
  padding: 0 60px; height: 68px;
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter: blur(12px); border-bottom: 1px solid var(--line);
}
.uf-header .uf-logo img { height: 36px; width: auto; }
.uf-header nav { display: flex; gap: 6px; justify-content: center; align-self: stretch; }
.uf-nav-item { display: flex; }
.uf-nav-link {
  display: flex; align-items: center; gap: 5px; padding: 0 15px;
  font-size: 13px; font-weight: 700; color: var(--text-2); letter-spacing: .06em;
  border-bottom: 2px solid transparent;
}
.uf-nav-link .dd {
  width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px); opacity: .55; transition: transform .18s;
}
.uf-nav-item:hover .uf-nav-link, .uf-nav-link.active { color: var(--text); border-color: var(--gold); }
.uf-nav-item:hover .dd { transform: rotate(225deg) translateY(-1px); }
.uf-header .uf-actions { display: flex; align-items: center; gap: 18px; }
.uf-header .uf-icon { width: 20px; height: 20px; color: var(--text-2); }
.uf-header .uf-icon:hover, .uf-header .uf-cart:hover .uf-icon { color: var(--gold-light); }
.uf-header .uf-cart { position: relative; display: inline-flex; }
.uf-header .uf-cart .cnt {
  position: absolute; top: -7px; right: -9px; min-width: 16px; height: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Inter', sans-serif; font-size: 9px; font-weight: 900; line-height: 1;
  background: var(--btn-grad); color: var(--btn-text); border-radius: 8px; padding: 0 4px;
}
.uf-header .uf-login { font-size: 12px; font-weight: 700; color: var(--text-2); }
.uf-header .uf-join {
  background: var(--btn-grad); color: var(--btn-text);
  font-size: 12px; font-weight: 900; letter-spacing: .06em; padding: 10px 20px; border-radius: 3px;
}
.uf-header .uf-sp-actions { display: none; }

/* メガメニュー */
.uf-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: color-mix(in srgb, var(--bg) 96%, transparent); backdrop-filter: blur(14px);
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line-gold);
  box-shadow: 0 30px 60px rgba(0,0,0,.55); padding: 34px 60px 38px;
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .18s ease, transform .18s ease, visibility 0s .18s; cursor: default;
  max-height: calc(100vh - 100px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none;
}
.uf-mega::-webkit-scrollbar { display: none; }
.uf-nav-item:hover .uf-mega, .uf-nav-item:focus-within .uf-mega {
  opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
.uf-mega-title { font-size: 11px; font-weight: 800; letter-spacing: .22em; color: var(--gold-light); padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
.uf-mega-pcards { display: grid; gap: 22px 18px; }
.uf-mega-pcards.c5 { grid-template-columns: repeat(5, 1fr); }
.uf-mg-pcard .img { aspect-ratio: 1020 / 1492; border-radius: 5px; overflow: hidden; background: var(--bg-3); border: 1px solid var(--line); position: relative; margin-bottom: 8px; }
.uf-mg-pcard .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.uf-mg-pcard:hover .img img { transform: scale(1.04); }
.uf-mg-pcard .t { font-size: 12.5px; font-weight: 800; line-height: 1.45; }
.uf-mg-pcard .m { font-size: 10px; color: var(--text-3); margin-top: 2px; }
.uf-mg-pcard .b-new { position: absolute; top: 6px; left: 6px; font-size: 9px; font-weight: 900; letter-spacing: .08em; background: #c0492f; color: #fff; padding: 4px 7px; border-radius: 2px; }
.uf-mg-pcard .b-plan { position: absolute; top: 6px; right: 6px; font-size: 9px; font-weight: 800; background: rgba(0,0,0,.72); color: var(--gold-light); border: 1px solid var(--line-gold); padding: 4px 7px; border-radius: 2px; }
.uf-mg-pcard .img.soon { border-style: dashed; border-color: var(--line-2); background: var(--gold-faint); display: flex; align-items: center; justify-content: center; }
.uf-mg-pcard .img.soon span { font-family: var(--font-en); font-size: 15px; color: var(--gold-light); letter-spacing: .06em; text-transform: uppercase; }
/* セミナーメガ：横レーン */
.uf-mega-semlane { margin-bottom: 28px; }
.uf-mega-semlane .cards { display: flex; gap: 16px; }
.uf-mega-semlane .uf-sem-card { display: block; width: 306px; flex-shrink: 0; }
.uf-mega-sem-head { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.uf-mega-sem-head .t { font-size: 15px; font-weight: 900; letter-spacing: .04em; }
.uf-mega-sem-more { margin-left: auto; font-size: 11px; font-weight: 700; color: var(--text-3); }
.uf-mega-sem-more:hover { color: var(--gold-light); }
/* サブスクメガ */
.uf-mega-grid2 { display: grid; grid-template-columns: 1fr 300px; align-items: center; gap: 44px; }
.uf-mega-plustext { font-family: 'Noto Serif JP', serif; font-weight: 900; font-size: 20px; line-height: 1.6; margin-bottom: 16px; }
.uf-mega-plusbtn { display: inline-flex; align-items: center; gap: 10px; background: var(--btn-grad); color: var(--btn-text); font-size: 13.5px; font-weight: 900; letter-spacing: .08em; padding: 15px 34px; border-radius: 3px; }
.uf-mega-feat { display: block; border-radius: 6px; overflow: hidden; border: 1px solid var(--line-2); }
.uf-mega-feat img { width: 100%; }
.uf-mega-cta-row { display: flex; justify-content: flex-end; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }

/* ============================================================
   HERO（abema型）
   ============================================================ */
.uf-hero { position: relative; }
.uf-hero-stage { position: relative; height: 620px; overflow: hidden; background: #000; }
.uf-hero-media { position: absolute; inset: 0; }
.uf-hero-media img, .uf-hero-media video { width: 100%; height: 100%; object-fit: cover; }
.uf-hero-scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(9,14,26,.9) 0%, rgba(9,14,26,.55) 38%, rgba(9,14,26,.05) 72%),
    linear-gradient(180deg, rgba(9,14,26,.25) 0%, transparent 30%, rgba(9,14,26,.94) 100%);
}
.uf-hero-caption { position: absolute; left: 60px; bottom: 56px; width: 640px; z-index: 5; }
.uf-hero-badges { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.uf-hero-badge { font-size: 11px; font-weight: 900; letter-spacing: .12em; line-height: 1; padding: 6px 10px; border-radius: 2px; background: var(--btn-grad); color: var(--btn-text); }
.uf-hero-badge.outline { background: transparent; color: var(--text); border: 1px solid var(--line-2); }
.uf-hero-kicker { font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .32em; text-transform: uppercase; color: var(--gold-light); margin-bottom: 12px; }
.uf-hero-title { font-family: 'Noto Serif JP', serif; font-weight: 900; font-size: 46px; line-height: 1.25; letter-spacing: .01em; margin-bottom: 14px; text-shadow: 0 2px 24px rgba(0,0,0,.6); }
.uf-hero-sub { font-size: 15px; color: var(--text-2); line-height: 1.9; margin-bottom: 24px; max-width: 560px; }
.uf-hero-ctas { display: flex; gap: 14px; align-items: center; }
.uf-hero-cta-main { display: inline-flex; align-items: center; gap: 10px; background: var(--btn-grad); color: var(--btn-text); font-size: 14px; font-weight: 900; letter-spacing: .08em; padding: 15px 34px; border-radius: 3px; }
.uf-hero-cta-sub { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--text); padding: 14px 26px; border: 1px solid var(--line-2); border-radius: 3px; background: rgba(0,0,0,.3); backdrop-filter: blur(4px); }
/* プログレスバー */
.uf-hero-progress { position: absolute; right: 60px; bottom: 56px; z-index: 5; display: flex; gap: 6px; width: 220px; }
.uf-hp-seg { flex: 1; height: 16px; cursor: pointer; display: flex; align-items: center; background: linear-gradient(rgba(255,255,255,.22), rgba(255,255,255,.22)) center / 100% 4px no-repeat; border-radius: 2px; }
.uf-hp-seg i { display: block; height: 4px; width: 100%; border-radius: 2px; background: var(--btn-grad); transform: scaleX(0); transform-origin: left center; }
.uf-hp-seg.done i { transform: scaleX(1); }
.uf-hp-seg.active i { animation: uf-hpfill var(--rot-ms, 6000ms) linear forwards; }
@keyframes uf-hpfill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
/* HERO下バナーレール */
.uf-hero-rail { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; padding: 14px 60px 18px; background: var(--bg); border-bottom: 1px solid var(--line); background-image: var(--grain); background-blend-mode: soft-light; }
.uf-hero-thumb { position: relative; cursor: pointer; border-radius: 4px; overflow: hidden; border: 2px solid transparent; opacity: .55; transition: opacity .25s, border-color .25s, transform .25s; background: var(--bg-3); }
.uf-hero-thumb:hover { opacity: .85; transform: translateY(-2px); }
.uf-hero-thumb.active { opacity: 1; border-color: var(--gold); }
.uf-hero-thumb .ht-img { aspect-ratio: 16/9; overflow: hidden; }
.uf-hero-thumb .ht-img img { width: 100%; height: 100%; object-fit: cover; }
.uf-hero-thumb .ht-label { position: absolute; left: 0; right: 0; bottom: 0; font-size: 11px; font-weight: 700; line-height: 1.4; color: #fff; padding: 18px 8px 6px; background: linear-gradient(180deg, transparent, rgba(0,0,0,.85)); }
.uf-hero-thumb .ht-badge { position: absolute; top: 6px; left: 6px; font-size: 9px; font-weight: 900; letter-spacing: .1em; line-height: 1; padding: 4px 6px; border-radius: 2px; background: var(--btn-grad); color: var(--btn-text); }

/* ============================================================
   非会員クロージング
   ============================================================ */
.uf-closing {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: 1fr 400px; grid-template-areas: "main cards" "actions cards"; align-items: center; column-gap: 44px; row-gap: 0;
  margin: 28px 60px 72px; padding: 38px 44px;
  /* 紺地に bg_plus_image を乗算でなじませる。金グロー層(最上)は normal で温存。 */
  background-color: var(--bg-2);
  background-image:
    radial-gradient(640px 300px at 0% 0%, rgba(255,202,85,.13), transparent 60%),
    url("https://cdn.shopify.com/s/files/1/0608/2176/6221/files/bg_plus_image.webp?v=1749108843"),
    linear-gradient(120deg, var(--bg-2), var(--bg-3));
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-position: 0 0, center, 0 0;
  background-size: auto, cover, auto;
  background-blend-mode: normal, multiply, normal;
  border: 1px solid var(--gold); border-radius: 8px;
  box-shadow: 0 0 0 1px rgba(255,202,85,.15), 0 18px 50px rgba(0,0,0,.45);
}
.uf-closing::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: var(--btn-grad); }
.uf-cl-kicker { display: inline-flex; align-items: center; gap: 8px; font-family: 'Inter', sans-serif; font-size: 10.5px; font-weight: 800; letter-spacing: .26em; color: var(--gold-light); text-transform: uppercase; margin-bottom: 12px; }
.uf-cl-kicker::before { content: ""; width: 22px; height: 1px; background: var(--gold); }
.uf-cl-copy { font-family: 'Noto Serif JP', serif; font-weight: 900; font-size: 24px; line-height: 1.55; }
.uf-cl-copy em { font-style: normal; background: var(--btn-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.uf-cl-main { grid-area: main; }
.uf-cl-actions { grid-area: actions; display: flex; align-items: center; gap: 18px; margin-top: 24px; }
.uf-cl-btn { background: var(--btn-grad); color: var(--btn-text); font-size: 14.5px; font-weight: 900; letter-spacing: .08em; padding: 17px 46px; border-radius: 3px; white-space: nowrap; box-shadow: 0 8px 24px rgba(255,168,81,.25); }
.uf-cl-note { font-size: 10.5px; color: var(--text-3); }
/* バリュープロップ・スタッツ（旧右側バナー位置。金グラデの大数値＋ヘアライン区切りの2×2でインパクト重視） */
.uf-cl-stats { grid-area: cards; display: grid; grid-template-columns: 1fr 1fr; align-content: center; }
.uf-cl-stat { padding: 20px 10px 20px 26px; }
.uf-cl-stat:nth-child(2n+1) { border-right: 1px solid var(--line-gold); }
.uf-cl-stat:nth-child(-n+2) { border-bottom: 1px solid var(--line-gold); }
.uf-cl-stat .fig { font-family: var(--font-en); font-weight: 600; font-size: 36px; line-height: 1; letter-spacing: .005em; white-space: nowrap; background: var(--btn-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.uf-cl-stat .lbl { font-size: 12px; font-weight: 700; color: var(--text-2); margin-top: 11px; letter-spacing: .02em; line-height: 1.4; }

/* ============================================================
   レーン共通（セミナー・番組）
   ============================================================ */
.uf-lane { position: relative; margin-bottom: 44px; }
.uf-lane:last-child { margin-bottom: 0; }
.uf-lane-head { display: flex; align-items: center; gap: 16px; padding: 0 60px; margin-bottom: 16px; flex-wrap: wrap; }
.uf-lane-title { font-size: 19px; font-weight: 900; letter-spacing: .04em; }
.uf-lane-title .accent { color: var(--gold-light); }
.uf-lane-sub { font-size: 12px; color: var(--text-3); font-weight: 500; }
.uf-lane-tag { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; line-height: 1; color: var(--gold-light); border: 1px solid var(--line-gold); border-radius: 3px; padding: 5px 9px; background: var(--gold-faint); white-space: nowrap; }
.uf-lane-more { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; line-height: 1; color: var(--gold-light); border: 1px solid var(--line-gold); border-radius: 999px; padding: 8px 16px; transition: background .2s, color .2s; }
.uf-lane-more:hover { background: var(--btn-grad); color: var(--btn-text); border-color: transparent; }
.uf-lane-nav { display: flex; gap: 8px; margin-left: 14px; align-self: center; }
.uf-ln-btn { width: 34px; height: 34px; border-radius: 50%; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; background: transparent; color: var(--gold-light); border: 1px solid var(--line-gold); transition: background .2s, color .2s, opacity .2s; }
.uf-ln-btn svg { width: 16px; height: 16px; }
.uf-ln-btn:hover { background: var(--btn-grad); color: var(--btn-text); border-color: transparent; }
.uf-ln-btn[disabled] { opacity: .25; pointer-events: none; }
.uf-lane-scroll { display: flex; gap: 16px; padding: 4px 60px 8px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.uf-lane-scroll::-webkit-scrollbar { display: none; }

/* カード：セミナー */
.uf-sem-card { width: 306px; flex-shrink: 0; }
.uf-sem-card .sc-img { aspect-ratio: 16/9; border-radius: 5px; overflow: hidden; background: var(--bg-3); position: relative; margin-bottom: 10px; }
.uf-sem-card .sc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.uf-sem-card:hover .sc-img img { transform: scale(1.04); }
.uf-sem-card .sc-status { position: absolute; top: 8px; right: 8px; font-size: 10px; font-weight: 900; letter-spacing: .06em; background: var(--btn-grad); color: var(--btn-text); padding: 4px 8px; border-radius: 2px; }
.uf-sem-card .sc-title { font-size: 13.5px; font-weight: 700; line-height: 1.55; color: var(--text); }
.uf-sem-card .sc-meta { font-size: 11px; color: var(--text-3); margin-top: 4px; }

/* カード：番組 */
/* 番組グリッド表示（レーンなし・メガメニューと同じ見せ方） */
.uf-prog-grid { display: grid; gap: 26px 18px; padding: 0 60px; }
.uf-prog-grid.c5 { grid-template-columns: repeat(5, 1fr); }
.uf-prog-grid .uf-prog-card, .uf-prog-grid .uf-soon-card { width: auto; }
.uf-prog-grid .uf-prog-card .pc-desc { display: none; }
.uf-prog-card { width: 306px; flex-shrink: 0; position: relative; }
.uf-prog-card .pc-img { aspect-ratio: 1020 / 1492; border-radius: 5px; overflow: hidden; background: var(--bg-3); position: relative; margin-bottom: 10px; border: 1px solid var(--line); }
.uf-prog-card .pc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.uf-prog-card:hover .pc-img img { transform: scale(1.04); }
.uf-prog-card .pc-new { position: absolute; top: 8px; left: 8px; font-size: 10px; font-weight: 900; letter-spacing: .12em; background: #c0492f; color: #fff; padding: 4px 8px; border-radius: 2px; }
.uf-prog-card .pc-plan { position: absolute; top: 8px; right: 8px; font-size: 10px; font-weight: 800; letter-spacing: .05em; background: rgba(0,0,0,.72); color: var(--gold-light); border: 1px solid var(--line-gold); padding: 4px 8px; border-radius: 2px; }
.uf-prog-card .pc-teacher { font-size: 11px; color: var(--text-3); font-weight: 700; letter-spacing: .06em; }
.uf-prog-card .pc-title { font-size: 14.5px; font-weight: 800; line-height: 1.5; margin-top: 2px; }
.uf-prog-card .pc-desc { font-size: 11.5px; color: var(--text-3); margin-top: 4px; line-height: 1.6; }

/* ランキング */
.uf-rank-card { display: flex; align-items: flex-end; width: 340px; flex-shrink: 0; }
.uf-rank-num { font-family: var(--font-en); font-weight: 600; font-size: 110px; line-height: .78; color: transparent; -webkit-text-fill-color: transparent; -webkit-text-stroke: 1.5px var(--gold); letter-spacing: -.05em; margin-right: -18px; position: relative; z-index: 2; flex-shrink: 0; }
.uf-rank-body { flex: 1; }
.uf-rank-body .pc-img { aspect-ratio: 1020 / 1492; border-radius: 5px; overflow: hidden; background: var(--bg-3); margin-bottom: 8px; border: 1px solid var(--line); }
.uf-rank-body .pc-img img { width: 100%; height: 100%; object-fit: cover; }
.uf-rank-body .rk-teacher { font-size: 10.5px; color: var(--text-3); font-weight: 700; margin-left: 28px; }
.uf-rank-body .rk-title { font-size: 13px; font-weight: 800; line-height: 1.45; margin-left: 28px; }

/* COMING SOON */
.uf-soon-card { width: 306px; flex-shrink: 0; }
.uf-soon-card .sn-box { aspect-ratio: 1020 / 1492; border-radius: 5px; margin-bottom: 10px; border: 1px dashed var(--line-2); background: var(--gold-faint); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; }
.uf-soon-card .sn-en { font-family: var(--font-en); font-size: 24px; color: var(--gold-light); letter-spacing: .06em; text-transform: uppercase; }
.uf-soon-card .sn-lock { width: 18px; height: 18px; color: var(--text-3); }
.uf-soon-card .sn-title { font-size: 14px; font-weight: 800; text-align: center; }
.uf-soon-card .sn-desc { font-size: 11.5px; color: var(--text-3); text-align: center; margin-top: 2px; }

/* ============================================================
   GOLD CONTENTS
   ============================================================ */
.uf-gold-zone { border-top: 1px solid var(--line-gold); border-bottom: 1px solid var(--line-gold); }
.uf-gold-zone::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(255,202,85,.06), transparent 320px); }
.uf-gold-grid { display: grid; grid-template-columns: 400px 1fr; gap: 44px; padding: 0 60px; align-items: start; }
.uf-gold-intro .gi-copy { font-family: 'Noto Serif JP', serif; font-weight: 900; font-size: 21px; line-height: 1.6; }
.uf-gold-intro .gi-copy em { font-style: normal; color: var(--gold-light); }
.uf-gold-intro .gi-points { margin: 18px 0 24px; display: flex; flex-direction: column; gap: 10px; }
.uf-gold-intro .gi-points li { display: flex; align-items: baseline; gap: 10px; font-size: 13px; font-weight: 700; color: var(--text-2); }
.uf-gold-intro .gi-points li::before { content: ""; width: 6px; height: 6px; background: var(--btn-grad); border-radius: 50%; flex-shrink: 0; transform: translateY(-1px); }
.uf-gold-intro .gi-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--btn-grad); color: var(--btn-text); font-size: 13.5px; font-weight: 900; letter-spacing: .08em; padding: 14px 32px; border-radius: 3px; }
.uf-gold-intro .gi-note { font-size: 10.5px; color: var(--text-3); margin-top: 10px; }
.uf-gold-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.uf-gold-cards .uf-prog-card { width: auto; }

/* ============================================================
   特集
   ============================================================ */
.uf-features-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 0 60px; }
.uf-feat-card { position: relative; border-radius: 6px; overflow: hidden; aspect-ratio: 21/9; border: 1px solid var(--line); display: block; }
.uf-feat-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.uf-feat-card:hover img { transform: scale(1.03); }
.uf-feat-card .ft-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 28%, rgba(5,8,16,.9)); }
.uf-feat-card .ft-body { position: absolute; left: 22px; right: 22px; bottom: 18px; }
.uf-feat-card .ft-tag { display: inline-block; font-size: 10px; font-weight: 900; letter-spacing: .12em; line-height: 1; color: var(--gold-light); border: 1px solid var(--line-gold); border-radius: 2px; padding: 4px 8px; background: rgba(0,0,0,.45); margin-bottom: 9px; }
.uf-feat-card .ft-title { font-size: 19px; font-weight: 900; line-height: 1.4; color: #fff; }
.uf-feat-card .ft-sub { font-size: 11.5px; color: var(--text-2); margin-top: 3px; }

/* ============================================================
   書籍
   ============================================================ */
.uf-books-shelf { display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; padding: 0 60px; }
.uf-book-card .bk-cover { position: relative; border-radius: 3px; overflow: hidden; background: var(--bg-3); box-shadow: 0 10px 30px rgba(0,0,0,.5); border: 1px solid var(--line); aspect-ratio: 654/886; }
.uf-book-card .bk-cover img { width: 100%; height: 100%; object-fit: cover; }
/* コレクション連動の書影は 1920×1080 のグラフィック素材。書影は中央の 654×886 に配置されており、
   周囲(左右633px・上下97px)は白余白。比率を保ったまま中央 654×886 だけを表示して白を消す。
   横倍率 = 1920/654 ≒ 2.94（微増で端の白抜けを防止）／縦は height:auto で比率維持（中央 886/1080 が可視）。 */
.uf-book-card .bk-cover.bk-art img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 294%; height: auto; max-width: none; object-fit: fill; }
.uf-book-card .bk-title { font-size: 11.5px; font-weight: 700; line-height: 1.5; margin-top: 10px; color: var(--text-2); }
.uf-book-card .bk-price { font-size: 11px; color: var(--gold-light); font-weight: 800; margin-top: 3px; }
.uf-books-note { margin: 26px 60px 0; padding: 13px 20px; border: 1px solid var(--line-gold); border-radius: 4px; background: var(--gold-faint); font-size: 12.5px; font-weight: 700; color: var(--text-2); display: flex; align-items: center; gap: 10px; }
.uf-books-note .bn-badge { font-size: 10px; font-weight: 900; background: var(--btn-grad); color: var(--btn-text); padding: 4px 8px; border-radius: 2px; letter-spacing: .08em; flex-shrink: 0; }

/* ============================================================
   講師マーキー
   ============================================================ */
.uf-masters-count { padding: 0 60px; margin: -14px 0 26px; }
.uf-masters-count span { font-size: 13px; font-weight: 700; color: var(--text-2); }
.uf-marquee { position: relative; overflow: hidden; padding: 6px 0 2px; }
.uf-marquee::before, .uf-marquee::after { content: ""; position: absolute; top: 0; bottom: 0; width: 120px; z-index: 5; pointer-events: none; }
.uf-marquee::before { left: 0; background: linear-gradient(90deg, var(--bg-2), transparent); }
.uf-marquee::after { right: 0; background: linear-gradient(-90deg, var(--bg-2), transparent); }
.uf-mq-row { display: flex; gap: 14px; width: max-content; animation: uf-mq-fwd 66s linear infinite; }
.uf-mq-row.rev { margin-top: 20px; animation: uf-mq-rev 78s linear infinite; }
.uf-mq-row:hover { animation-play-state: paused; }
@keyframes uf-mq-fwd { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes uf-mq-rev { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.uf-mq-card { width: 148px; flex-shrink: 0; text-align: center; }
.uf-mq-card .mq-photo { width: 104px; height: 104px; border-radius: 50%; overflow: hidden; margin: 0 auto 10px; border: 1px solid var(--line-gold); padding: 4px; background: #ffffff; }
.uf-mq-card .mq-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; filter: grayscale(15%); }
.uf-mq-card:hover .mq-photo img { filter: none; }
.uf-mq-card .mq-name { font-size: 13px; font-weight: 800; line-height: 1.4; }
.uf-mq-card .mq-role { font-size: 10px; color: var(--text-3); margin-top: 2px; line-height: 1.5; }

/* ============================================================
   お知らせ
   ============================================================ */
.uf-news-list { margin: 0 60px; border-top: 1px solid var(--line); }
.uf-news-row { display: grid; grid-template-columns: 120px 110px 1fr auto; align-items: center; gap: 24px; padding: 20px 8px; border-bottom: 1px solid var(--line); }
.uf-news-row:hover { background: var(--gold-faint); }
.uf-news-row .nw-date { font-family: 'Inter', sans-serif; font-size: 12px; color: var(--text-3); letter-spacing: .06em; }
.uf-news-row .nw-cat { font-size: 10px; font-weight: 800; letter-spacing: .08em; text-align: center; border: 1px solid var(--line-gold); color: var(--gold-light); padding: 4px 0; border-radius: 2px; }
.uf-news-row .nw-title { font-size: 13.5px; font-weight: 600; color: var(--text-2); }
.uf-news-row .nw-arrow { color: var(--text-4); font-size: 14px; }

/* ============================================================
   フッター
   ============================================================ */
.uf-footer { border-top: 1px solid var(--line); padding: 48px 60px 36px; background: var(--bg); background-image: var(--grain); background-blend-mode: soft-light; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: start; }
.uf-footer .ft-logo img { height: 24px; margin-bottom: 14px; }
.uf-footer .ft-tag { font-size: 11.5px; color: var(--text-3); }
.uf-footer .ft-links { display: flex; gap: 28px; font-size: 12px; color: var(--text-2); flex-wrap: wrap; justify-content: end; }
.uf-footer .ft-links a:hover { color: var(--gold-light); }
.uf-footer .ft-copy { grid-column: 1 / -1; font-family: 'Inter', sans-serif; font-size: 10.5px; color: var(--text-4); letter-spacing: .1em; margin-top: 8px; }

/* ============================================================
   SP専用：ボトムシート＋タブバー（既定は非表示、モバイルで表示）
   ============================================================ */
.uf-sheet, .uf-tabbar { display: none; }

/* ============================================================
   レスポンシブ（〜768px）＝SPカンプ準拠
   ============================================================ */
@media (max-width: 768px) {
  .ugoita-front { overflow-x: hidden; }

  /* ヘッダー：ナビ非表示、ロゴ＋CTA＋マイページ＋カート */
  .uf-header { grid-template-columns: auto 1fr auto; gap: 10px; height: 56px; padding: 0 16px; }
  .uf-header nav, .uf-header .uf-login, .uf-header .uf-join { display: none; }
  .uf-header .uf-logo img { height: 26px; }
  .uf-header .uf-actions { display: none; }
  .uf-header .uf-sp-actions { display: flex; align-items: center; gap: 14px; grid-column: 3; }
  .uf-header .uf-sp-cta { background: var(--btn-grad); color: var(--btn-text); font-size: 10.5px; font-weight: 900; letter-spacing: .04em; padding: 8px 12px; border-radius: 3px; white-space: nowrap; }
  .uf-header .uf-sp-icon { width: 21px; height: 21px; color: var(--text-2); position: relative; display: inline-flex; }
  .uf-header .uf-sp-icon .cnt { position: absolute; top: -6px; right: -8px; min-width: 15px; height: 15px; display: inline-flex; align-items: center; justify-content: center; font-family: 'Inter', sans-serif; font-size: 8.5px; font-weight: 900; line-height: 1; background: var(--btn-grad); color: var(--btn-text); border-radius: 8px; padding: 0 4px; }

  /* セクション帯（desktopが .ugoita-front .uf-* なので詳細度を合わせないと負ける） */
  .ugoita-front .uf-section { padding: 48px 0 34px; }
  .ugoita-front .uf-sec-head { padding: 0 16px; margin-bottom: 20px; }
  .ugoita-front .uf-sec-en { font-size: 34px; }
  .ugoita-front .uf-sec-ja { font-size: 11.5px; }
  .ugoita-front .uf-more { font-size: 10.5px; padding: 8px 13px; }
  .ugoita-front .uf-ghost { display: none; }

  /* HERO：16:9全画表示＋キャプション下 */
  .uf-hero-stage { height: auto; background: var(--bg); }
  .uf-hero-media { position: relative; aspect-ratio: 16/9; }
  .uf-hero-media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 46px; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--bg) 88%, transparent)); }
  .uf-hero-scrim { display: none; }
  .uf-hero-caption { position: static; width: auto; padding: 12px 16px 2px; }
  .uf-hero-title { font-size: 21px; line-height: 1.4; margin-bottom: 7px; text-shadow: none; }
  .uf-hero-sub { font-size: 12px; margin-bottom: 13px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .uf-hero-ctas { gap: 8px; }
  .uf-hero-cta-main { flex: 1.4; justify-content: center; font-size: 12.5px; padding: 13px 8px; }
  .uf-hero-cta-sub { flex: 1; justify-content: center; font-size: 11.5px; padding: 12px 8px; }
  .uf-hero-progress { position: static; width: auto; padding: 12px 16px 0; }
  .uf-hp-seg { height: 14px; background-size: 100% 3px; }
  .uf-hp-seg i { height: 3px; }
  .uf-hero-rail { display: flex; gap: 8px; padding: 10px 16px 14px; overflow-x: auto; }
  .uf-hero-thumb { width: 132px; flex-shrink: 0; }
  .uf-hero-thumb .ht-label { font-size: 9px; padding: 12px 6px 4px; }

  /* クロージング：縦積み（コピー→カード→ボタン） */
  .uf-closing { grid-template-columns: 1fr; grid-template-areas: "main" "cards" "actions"; margin: 22px 16px 48px; padding: 24px 20px; }
  .uf-cl-copy { font-size: 16.5px; line-height: 1.65; }
  .uf-cl-stats { margin: 16px 0 6px; }
  .uf-cl-stat { padding: 14px 8px 14px 16px; }
  .uf-cl-stat .fig { font-size: 30px; }
  .uf-cl-stat .lbl { font-size: 11px; margin-top: 7px; }
  .uf-cl-actions { flex-direction: column; align-items: stretch; gap: 8px; margin-top: 4px; }
  .uf-cl-btn { text-align: center; padding: 14px; }
  .uf-cl-note { text-align: center; }

  /* レーン：2.4枚見え・送りボタン非表示 */
  .uf-lane { margin-bottom: 34px; }
  /* 見出しは縦積み左寄せ：タイトル(＋タグ) → 説明 → すべて表示。行間を調整 */
  .uf-lane-head { padding: 0 16px; margin-bottom: 12px; gap: 5px 8px; }
  .uf-lane-title { font-size: 15.5px; }
  .uf-lane-sub { width: 100%; font-size: 10.5px; margin: 0; }
  .uf-lane-more { margin-left: 0; margin-top: 4px; }
  .uf-lane-nav { display: none; }
  .uf-lane-scroll { gap: 12px; padding: 2px 16px 4px; }
  .uf-sem-card, .uf-prog-card, .uf-soon-card { width: 146px; }
  .uf-prog-grid { gap: 16px 8px; padding: 0 16px; }
  .uf-prog-grid.c5 { grid-template-columns: repeat(3, 1fr); }
  .uf-prog-grid .uf-prog-card, .uf-prog-grid .uf-soon-card { width: auto; }
  .uf-sem-card .sc-title { font-size: 11px; line-height: 1.45; }
  .uf-sem-card .sc-meta { font-size: 9px; }
  .uf-sem-card .sc-status { font-size: 8px; padding: 3px 6px; }
  .uf-prog-card .pc-title { font-size: 11px; }
  .uf-prog-card .pc-teacher { font-size: 9px; }
  .uf-prog-card .pc-desc { display: none; }
  .uf-prog-card .pc-new, .uf-prog-card .pc-plan { font-size: 8px; padding: 3px 6px; }
  .uf-rank-card { width: 158px; }
  .ugoita-front .uf-rank-num { font-size: 54px; -webkit-text-stroke-width: 1.2px; margin-right: -9px; }
  .uf-rank-body .rk-teacher, .uf-rank-body .rk-title { margin-left: 14px; }
  .uf-rank-body .rk-teacher { font-size: 8.5px; }
  .uf-rank-body .rk-title { font-size: 10.5px; }
  .uf-soon-card .sn-box { gap: 4px; }
  .uf-soon-card .sn-en { font-size: 12px; }
  .uf-soon-card .sn-title { font-size: 11px; }
  .uf-soon-card .sn-desc { font-size: 9px; }

  /* GOLD：introは縦積み＋カード3列グリッド */
  .uf-gold-grid { grid-template-columns: 1fr; gap: 20px; padding: 0 16px; }
  .uf-gold-intro .gi-copy { font-size: 17px; }
  .uf-gold-intro .gi-btn { display: block; text-align: center; }
  .uf-gold-cards { grid-template-columns: repeat(3, 1fr); gap: 12px 8px; padding: 0; }
  .uf-gold-cards .pc-teacher { font-size: 8.5px; }
  .uf-gold-cards .pc-title { font-size: 10px; }

  /* 特集：1カラム */
  .uf-features-grid { grid-template-columns: 1fr; gap: 14px; padding: 0 16px; }
  .uf-feat-card { aspect-ratio: 16/8; }
  .uf-feat-card .ft-body { left: 14px; right: 14px; bottom: 12px; }
  .uf-feat-card .ft-title { font-size: 15.5px; }

  /* 書籍：3列 */
  .uf-books-shelf { grid-template-columns: repeat(3, 1fr); gap: 14px 12px; padding: 0 16px; }
  .uf-book-card .bk-title { font-size: 9.5px; }
  .uf-books-note { margin: 20px 16px 0; align-items: flex-start; }

  /* 講師マーキー */
  .uf-masters-count { padding: 0 16px; }
  .uf-marquee::before, .uf-marquee::after { width: 48px; }
  .uf-mq-card { width: 104px; }
  .uf-mq-card .mq-photo { width: 72px; height: 72px; }
  .uf-mq-card .mq-name { font-size: 10.5px; }
  .uf-mq-card .mq-role { font-size: 8.5px; }

  /* お知らせ：行を積み */
  .uf-news-list { margin: 0 16px; }
  .uf-news-row { grid-template-columns: 1fr; gap: 4px; padding: 14px 4px; }
  .uf-news-row .nw-arrow { display: none; }
  .uf-news-row .nw-cat { justify-self: start; padding: 3px 8px; }

  /* フッター＋タブバー分の余白 */
  .uf-footer { grid-template-columns: 1fr; padding: 36px 16px 92px; gap: 20px; }
  .uf-footer .ft-links { justify-content: start; }

  /* ボトムシート */
  .uf-sheet {
    display: block; position: fixed; top: 56px; bottom: 59px; left: 0; right: 0; z-index: 110;
    background: color-mix(in srgb, var(--bg) 97%, transparent); backdrop-filter: blur(14px);
    opacity: 0; visibility: hidden; transform: translateY(14px);
    transition: opacity .22s ease, transform .22s ease, visibility 0s .22s;
    overflow-y: auto; overscroll-behavior: contain; padding: 18px 16px 28px;
  }
  .uf-sheet.open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .uf-sh-title { font-size: 17px; font-weight: 900; letter-spacing: .03em; margin-bottom: 4px; }
  .uf-sh-sub { font-size: 10.5px; color: var(--text-3); margin-bottom: 16px; }
  .uf-sh-group { font-size: 10px; font-weight: 800; letter-spacing: .2em; color: var(--gold-light); padding-bottom: 8px; margin: 20px 0 12px; border-bottom: 1px solid var(--line); }
  .uf-sh-group:first-of-type { margin-top: 0; }
  .uf-sh-grid2 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 8px; }
  .uf-sh-pcard .img { aspect-ratio: 1020 / 1492; border-radius: 5px; overflow: hidden; background: var(--bg-3); border: 1px solid var(--line); position: relative; margin-bottom: 6px; }
  .uf-sh-pcard .img img { width: 100%; height: 100%; object-fit: cover; }
  .uf-sh-pcard .t { font-size: 11px; font-weight: 800; line-height: 1.4; }
  .uf-sh-pcard .m { font-size: 9px; color: var(--text-3); margin-top: 1px; }
  .uf-sh-pcard .b-new { position: absolute; top: 5px; left: 5px; font-size: 8px; font-weight: 900; background: #c0492f; color: #fff; padding: 3px 6px; border-radius: 2px; }
  .uf-sh-pcard .b-plan { position: absolute; top: 5px; right: 5px; font-size: 8px; font-weight: 800; background: rgba(0,0,0,.72); color: var(--gold-light); border: 1px solid var(--line-gold); padding: 3px 6px; border-radius: 2px; }
  .uf-sh-pcard .img.soon { border-style: dashed; background: var(--gold-faint); display: flex; align-items: center; justify-content: center; }
  .uf-sh-pcard .img.soon span { font-family: var(--font-en); font-size: 12px; color: var(--gold-light); letter-spacing: .08em; text-transform: uppercase; }
  .uf-sh-list { display: flex; flex-direction: column; }
  .uf-sh-list a { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 700; color: var(--text-2); padding: 15px 4px; border-bottom: 1px solid var(--line); }
  .uf-sh-list a::after { content: "\203A"; margin-left: auto; color: var(--text-4); font-size: 17px; line-height: 1; }
  .uf-sh-banner { display: block; border-radius: 6px; overflow: hidden; border: 1px solid var(--line); }
  .uf-sh-plusbtn { display: block; text-align: center; background: var(--btn-grad); color: var(--btn-text); font-size: 12.5px; font-weight: 900; letter-spacing: .06em; padding: 14px; border-radius: 3px; margin: 10px 0 24px; }
  .uf-sh-cta { display: inline-flex; align-items: center; gap: 5px; margin-top: 16px; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; line-height: 1; color: var(--gold-light); border: 1px solid var(--line-gold); border-radius: 999px; padding: 9px 15px; }

  /* タブバー */
  .uf-tabbar {
    display: grid; position: fixed; bottom: 0; left: 0; right: 0; z-index: 120;
    grid-template-columns: repeat(5, 1fr);
    background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: blur(12px);
    border-top: 1px solid var(--line); padding: 9px 0 11px;
  }
  .uf-tabbar a, .uf-tabbar button { display: flex; flex-direction: column; align-items: center; gap: 4px; font-family: inherit; font-size: 9px; font-weight: 700; letter-spacing: .02em; color: var(--text-3); background: none; border: none; cursor: pointer; }
  .uf-tabbar svg { width: 21px; height: 21px; }
  .uf-tabbar .active { color: var(--gold-light); }
}

/* ============================================================
   テーマの color / -webkit-text-fill-color 上書き対策。
   color と -webkit-text-fill-color を「同じ明示値」で両方 !important 指定し、
   currentColor 依存を排除して確実に色を確定する。
   ============================================================ */
/* 白：見出し・タイトル・本文強調 */
.ugoita-front .uf-hero-title, .ugoita-front .uf-cl-copy, .ugoita-front .uf-lane-title,
.ugoita-front .sc-title, .ugoita-front .pc-title, .ugoita-front .rk-title,
.ugoita-front .gi-copy, .ugoita-front .sn-title, .ugoita-front .ft-title,
.ugoita-front .mq-name, .ugoita-front .uf-mega-sem-head .t, .ugoita-front .uf-mg-pcard .t,
.ugoita-front .uf-mega-plustext, .ugoita-front .pc-new,
.ugoita-front .uf-sh-title, .ugoita-front .uf-sh-pcard .t { color: var(--text) !important; -webkit-text-fill-color: var(--text) !important; }
/* 金：キッカー・タグ・アウトラインリンク・プランバッジ */
.ugoita-front .uf-kicker, .ugoita-front .uf-cl-kicker, .ugoita-front .uf-hero-kicker,
.ugoita-front .uf-lane-tag, .ugoita-front a.uf-lane-more, .ugoita-front a.uf-more,
.ugoita-front .uf-lane-more, .ugoita-front .uf-more,
.ugoita-front .uf-mega-title, .ugoita-front a.uf-mega-sem-more, .ugoita-front .uf-mega-sem-more, .ugoita-front .bk-price,
.ugoita-front .nw-cat, .ugoita-front .sn-en, .ugoita-front .pc-plan,
.ugoita-front .uf-gold-intro .gi-copy em,
.ugoita-front .uf-sh-cta, .ugoita-front .uf-tabbar .active { color: var(--gold-light) !important; -webkit-text-fill-color: var(--gold-light) !important; }
/* 紺：塗りボタン・バッジのテキスト */
.ugoita-front .uf-hero-cta-main, .ugoita-front .uf-cl-btn, .ugoita-front .gi-btn,
.ugoita-front .uf-mega-plusbtn, .ugoita-front a.uf-join, .ugoita-front .uf-join, .ugoita-front .uf-sp-cta,
.ugoita-front .uf-hero-badge, .ugoita-front .sc-status, .ugoita-front .ht-badge,
.ugoita-front .uf-sh-plusbtn, .ugoita-front .cnt { color: var(--btn-text) !important; -webkit-text-fill-color: var(--btn-text) !important; }
/* グレー明（サブコピー・本文） */
.ugoita-front .uf-hero-sub, .ugoita-front .uf-sec-ja, .ugoita-front .uf-cl-stat .lbl,
.ugoita-front .nw-title, .ugoita-front .bk-title, .ugoita-front .gi-points li,
.ugoita-front a.uf-login, .ugoita-front .uf-login, .ugoita-front a.uf-nav-link, .ugoita-front .uf-nav-link,
.ugoita-front .ft-sub, .ugoita-front .uf-sh-list a { color: var(--text-2) !important; -webkit-text-fill-color: var(--text-2) !important; }
/* グレー暗（メタ・注記） */
.ugoita-front .uf-lane-sub, .ugoita-front .sc-meta, .ugoita-front .pc-teacher,
.ugoita-front .pc-desc, .ugoita-front .rk-teacher, .ugoita-front .mq-role, .ugoita-front .uf-cl-note,
.ugoita-front .nw-date, .ugoita-front .sn-desc, .ugoita-front .uf-sh-sub, .ugoita-front .gi-note,
.ugoita-front .ft-copy { color: var(--text-3) !important; -webkit-text-fill-color: var(--text-3) !important; }
/* ft-tag は金優先 */
.ugoita-front .ft-tag { color: var(--gold-light) !important; -webkit-text-fill-color: var(--gold-light) !important; }
/* HEROアウトラインバッジ（例：GOLD会員限定）は白文字＋枠（塗りバッジの紺指定を打ち消す） */
.ugoita-front .uf-hero-badge.outline { color: var(--text) !important; -webkit-text-fill-color: var(--text) !important; }
/* グラデ／アウトライン数字は透明を最後に再確定（.gi-copy em は金の単色なので含めない） */
.ugoita-front .uf-sec-en, .ugoita-front .uf-rank-num, .ugoita-front .uf-ghost,
.ugoita-front .uf-cl-copy em, .ugoita-front .uf-cl-stat .fig { -webkit-text-fill-color: transparent !important; }
