/* ===== [urz_lp] アニメーション付きLP ===== */
.ulp {
  --ulp-ac: #e8590c;
  --ulp-ac2: #ff922b;
  --ulp-navy: #14213d;
  --ulp-ink: #212529;
  --ulp-mute: #5c6670;
  --ulp-cream: #fff8f0;
  --ulp-line: #06c755;
  color: var(--ulp-ink);
  line-height: 1.8;
  overflow-x: clip;
}
.ulp *, .ulp *::before, .ulp *::after { box-sizing: border-box; }
.ulp .ulp-wrap { max-width: 1080px; margin: 0 auto; padding: 0 20px; }
.ulp .ulp-wrap--n { max-width: 820px; }
.ulp h1, .ulp h2, .ulp h3, .ulp p { margin: 0; }
.ulp ul, .ulp ol { list-style: none; margin: 0; padding: 0; }
.ulp li { margin: 0; }

/* 表示アニメーション */
.ulp .ulp-rv { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--d, 0ms); }
.ulp .ulp-rv.is-in { opacity: 1; transform: none; }
.ulp:not(.is-js) .ulp-rv { opacity: 1; transform: none; }

/* ボタン */
.ulp .ulp-btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 12px 28px; border-radius: 999px; font-weight: 800; font-size: 16px; text-decoration: none; color: #fff; transition: transform .15s, box-shadow .15s; }
.ulp .ulp-btn:hover { transform: translateY(-2px); color: #fff; }
.ulp .ulp-btn--main { background: linear-gradient(135deg, var(--ulp-ac2), var(--ulp-ac)); box-shadow: 0 8px 22px rgba(232, 89, 12, .35); }
.ulp .ulp-btn--line { background: var(--ulp-line); box-shadow: 0 8px 22px rgba(6, 199, 85, .28); }
.ulp .ulp-btn--main::after { content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform: skewX(-20deg); animation: ulp-shine 3.2s ease-in-out infinite; }
@keyframes ulp-shine { 0%, 60% { left: -60%; } 100% { left: 130%; } }
.ulp .ulp-btn--wide { width: 100%; margin-top: 18px; }
.ulp .ulp-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.ulp .ulp-cta--c { justify-content: center; }

/* 見出し */
.ulp .ulp-sec { padding: 72px 0; }
.ulp .ulp-kicker { text-align: center; color: var(--ulp-ac); font-weight: 800; font-size: 14px; letter-spacing: .12em; }
.ulp .ulp-h2 { text-align: center; font-size: 30px; line-height: 1.45; font-weight: 900; color: var(--ulp-navy); margin: 6px 0 14px; border: 0; padding: 0; background: none; }
.ulp .ulp-h2::before, .ulp .ulp-h2::after { display: none; }
.ulp .ulp-sub { text-align: center; color: var(--ulp-mute); margin-bottom: 26px; }
.ulp .ulp-note { font-size: 12px; color: var(--ulp-mute); margin-top: 12px; }

/* ===== ファーストビュー ===== */
.ulp .ulp-hero { position: relative; padding: 56px 0 40px; background: radial-gradient(1200px 500px at 85% -10%, #ffe0c2 0%, transparent 60%), radial-gradient(900px 500px at -10% 110%, #ffe8d6 0%, transparent 55%), var(--ulp-cream); overflow: hidden; }
.ulp .ulp-hero__in { position: relative; z-index: 1; display: grid; grid-template-columns: 1.25fr 1fr; gap: 28px; align-items: center; }
.ulp .ulp-eyebrow { display: inline-block; padding: 4px 14px; border-radius: 999px; background: var(--ulp-navy); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.ulp .ulp-hero__h { margin: 16px 0 14px; font-size: 44px; line-height: 1.3; font-weight: 900; color: var(--ulp-navy); letter-spacing: -.01em; border: 0; padding: 0; background: none; }
.ulp .ulp-hero__h em { font-style: normal; color: var(--ulp-ac); background: linear-gradient(transparent 68%, #ffd8a8 68%); }
.ulp .ulp-hero__lead { font-size: 16px; margin-bottom: 16px; }
.ulp .ulp-hero__lead b { color: var(--ulp-ac); }
.ulp .ulp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.ulp .ulp-chips li { padding: 5px 14px; border-radius: 999px; background: #fff; border: 1px solid #ffc078; font-size: 14px; font-weight: 600; }
.ulp .ulp-chips b { margin-left: 4px; color: var(--ulp-ac); }

.ulp .ulp-ring { position: relative; width: min(340px, 80vw); aspect-ratio: 1; margin: 0 auto; }
.ulp .ulp-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); filter: drop-shadow(0 12px 28px rgba(232, 89, 12, .25)); }
.ulp .ulp-ring__bg { fill: #fff; stroke: #ffe8cc; stroke-width: 14; }
.ulp .ulp-ring__fg { fill: none; stroke: url(#ulpg); stroke-width: 14; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 0; }
.ulp.is-js .ulp-ring__fg { stroke-dashoffset: 100; }
.ulp.is-js .ulp-ring.is-in .ulp-ring__fg { stroke-dashoffset: 0; transition: stroke-dashoffset 2s cubic-bezier(.25, .8, .25, 1) .2s; }
.ulp .ulp-ring__in { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.ulp .ulp-ring__s { font-size: 13px; font-weight: 700; color: var(--ulp-mute); }
.ulp .ulp-ring__m { margin-top: 2px; padding: 0 12px; border-radius: 6px; background: var(--ulp-navy); color: #fff; font-weight: 800; font-size: 18px; line-height: 1.6; }
.ulp .ulp-ring__n { font-size: 34px; font-weight: 900; color: var(--ulp-ac); line-height: 1; margin: 4px 0 6px; }
.ulp .ulp-ring__n b { font-size: 92px; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.ulp .ulp-ring.is-in .ulp-ring__in { animation: ulp-pop .6s cubic-bezier(.2, 1.6, .4, 1) 2.1s both; }
@keyframes ulp-pop { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(1); } }

.ulp .ulp-hero__coins span { position: absolute; bottom: -60px; left: calc(6% + var(--i) * 11%); width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 18px; color: #b35c00; background: radial-gradient(circle at 35% 30%, #fff3bf, #fcc419 60%, #f08c00); box-shadow: inset 0 -3px 0 rgba(0,0,0,.12); opacity: .38; animation: ulp-coin calc(9s + var(--i) * .9s) linear calc(var(--i) * -1.7s) infinite; }
.ulp .ulp-hero__coins span:nth-child(3n) { width: 26px; height: 26px; font-size: 13px; }
@keyframes ulp-coin { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-760px) rotate(360deg); } }

.ulp .ulp-stats { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 34px; }
.ulp .ulp-stats li { padding: 16px; border-radius: 16px; background: rgba(255,255,255,.85); backdrop-filter: blur(6px); border: 1px solid #ffe0c2; text-align: center; transition-delay: var(--d, 0ms); }
.ulp .ulp-stats li:nth-child(2) { --d: 100ms; } .ulp .ulp-stats li:nth-child(3) { --d: 200ms; } .ulp .ulp-stats li:nth-child(4) { --d: 300ms; }
.ulp .ulp-stats b { font-size: 34px; font-weight: 900; color: var(--ulp-ac); font-variant-numeric: tabular-nums; }
.ulp .ulp-stats small { margin-left: 2px; font-weight: 700; }
.ulp .ulp-stats span { display: block; font-size: 12.5px; color: var(--ulp-mute); }

/* ===== 比較 ===== */
.ulp .ulp-bars { display: grid; gap: 16px; max-width: 860px; margin: 0 auto; }
.ulp .ulp-bar { display: grid; grid-template-columns: 210px 1fr 140px; gap: 14px; align-items: center; padding: 16px 18px; border-radius: 16px; background: #f8f9fa; }
.ulp .ulp-bar.is-on { background: #fff4e6; box-shadow: 0 0 0 2px var(--ulp-ac) inset; }
.ulp .ulp-bar__l { font-size: 14px; font-weight: 700; line-height: 1.5; }
.ulp .ulp-bar__t { height: 22px; border-radius: 999px; background: #e9ecef; overflow: hidden; }
.ulp .ulp-bar__t i { display: block; height: 100%; border-radius: 999px; background: #adb5bd; transform-origin: left; transform: scaleX(var(--w)); }
.ulp .ulp-bar.is-on .ulp-bar__t i { background: linear-gradient(90deg, var(--ulp-ac2), var(--ulp-ac)); }
.ulp.is-js .ulp-bar .ulp-bar__t i { transform: scaleX(0); }
.ulp.is-js .ulp-bar.is-in .ulp-bar__t i { transform: scaleX(var(--w)); transition: transform 1.6s cubic-bezier(.25, .8, .25, 1) .3s; }
.ulp .ulp-bar__v { text-align: right; font-size: 24px; font-weight: 900; color: var(--ulp-mute); font-variant-numeric: tabular-nums; }
.ulp .ulp-bar.is-on .ulp-bar__v { color: var(--ulp-ac); font-size: 28px; }
.ulp .ulp-cmp .ulp-note { text-align: center; }

/* ===== シミュレーター ===== */
.ulp .ulp-sim { background: var(--ulp-navy); color: #fff; }
.ulp .ulp-sim .ulp-h2 { color: #fff; }
.ulp .ulp-sim .ulp-kicker { color: #ffc078; }
.ulp .ulp-sim__box { max-width: 680px; margin: 26px auto 0; padding: 28px; border-radius: 22px; background: #fff; color: var(--ulp-ink); box-shadow: 0 20px 50px rgba(0,0,0,.3); }
.ulp .ulp-sim__seg { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; border-radius: 999px; background: #f1f3f5; margin-bottom: 22px; }
.ulp .ulp-sim__seg button { border: 0; border-radius: 999px; padding: 10px 8px; background: transparent; font-weight: 700; font-size: 14px; color: var(--ulp-mute); cursor: pointer; transition: background .2s, color .2s; }
.ulp .ulp-sim__seg button.is-on { background: #fff; color: var(--ulp-ac); box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.ulp .ulp-sim__l { display: flex; justify-content: space-between; align-items: baseline; font-weight: 700; }
.ulp .ulp-sim__l output { font-size: 26px; font-weight: 900; color: var(--ulp-navy); font-variant-numeric: tabular-nums; }
.ulp input[type=range] { width: 100%; margin: 12px 0 22px; accent-color: var(--ulp-ac); height: 28px; cursor: pointer; }
.ulp .ulp-sim__res { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ulp .ulp-sim__res > div { padding: 16px; border-radius: 14px; background: #fff4e6; text-align: center; }
.ulp .ulp-sim__res > div + div { background: #ebfbee; }
.ulp .ulp-sim__res span { display: block; font-size: 12.5px; font-weight: 700; color: var(--ulp-mute); line-height: 1.5; min-height: 2.8em; }
.ulp .ulp-sim__res b { font-size: 18px; font-weight: 800; }
.ulp .ulp-sim__res em { font-style: normal; font-size: 36px; font-weight: 900; color: var(--ulp-ac); font-variant-numeric: tabular-nums; }
.ulp .ulp-sim__res > div + div em { color: #2b8a3e; }

/* ===== しくみ ===== */
.ulp .ulp-how { background: var(--ulp-cream); }
.ulp .ulp-how__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; margin-top: 30px; position: relative; }
.ulp .ulp-how__list li { position: relative; padding: 26px 20px; border-radius: 20px; background: #fff; text-align: center; box-shadow: 0 6px 20px rgba(20, 33, 61, .07); }
.ulp .ulp-how__list li:not(:last-child)::after { content: '→'; position: absolute; right: -27px; top: 50%; transform: translateY(-50%); font-size: 22px; font-weight: 900; color: var(--ulp-ac); }
.ulp .ulp-how__ic { display: inline-flex; width: 72px; height: 72px; border-radius: 50%; align-items: center; justify-content: center; font-size: 34px; background: #fff4e6; margin-bottom: 8px; }
.ulp .ulp-rv.is-in .ulp-how__ic { animation: ulp-bounce .8s cubic-bezier(.3, 1.6, .5, 1) calc(var(--d, 0ms) + 200ms) both; }
@keyframes ulp-bounce { 0% { transform: scale(.4); } 100% { transform: scale(1); } }
.ulp .ulp-how__list h3 { font-size: 18px; font-weight: 800; color: var(--ulp-navy); margin-bottom: 6px; }
.ulp .ulp-how__list p { font-size: 14px; color: var(--ulp-mute); text-align: left; }
.ulp .ulp-how__ok { margin-top: 26px; text-align: center; font-size: 20px; font-weight: 800; }
.ulp .ulp-how__ok b { font-size: 34px; color: var(--ulp-ac); }

/* ===== メリット ===== */
.ulp .ulp-merit__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 28px; }
.ulp .ulp-merit__grid li { padding: 24px 20px; border-radius: 18px; border: 1px solid #e9ecef; background: #fff; transition: transform .25s, box-shadow .25s; }
.ulp .ulp-merit__grid li:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(20, 33, 61, .1); }
.ulp .ulp-merit__no { font-size: 30px; font-weight: 900; color: #ffd8a8; line-height: 1; }
.ulp .ulp-merit__grid h3 { margin: 8px 0 6px; font-size: 17px; font-weight: 800; color: var(--ulp-navy); }
.ulp .ulp-merit__grid p { font-size: 14px; color: var(--ulp-mute); }

/* ===== 流れ ===== */
.ulp .ulp-flow { background: linear-gradient(180deg, #fff, var(--ulp-cream)); }
.ulp .ulp-flow__list { position: relative; max-width: 720px; margin: 30px auto 0; }
.ulp .ulp-flow__list::before { content: ''; position: absolute; left: 23px; top: 10px; bottom: 10px; width: 4px; border-radius: 4px; background: #ffe8cc; }
.ulp .ulp-flow__list::after { content: ''; position: absolute; left: 23px; top: 10px; width: 4px; height: calc((100% - 20px) * var(--p, 1)); border-radius: 4px; background: linear-gradient(var(--ulp-ac2), var(--ulp-ac)); transition: height .2s linear; }
.ulp.is-js .ulp-flow__list::after { height: calc((100% - 20px) * var(--p, 0)); }
.ulp .ulp-flow__list li { position: relative; z-index: 1; display: flex; gap: 18px; padding: 0 0 22px; }
.ulp .ulp-flow__no { flex: none; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 900; color: #fff; background: var(--ulp-ac); box-shadow: 0 0 0 6px #fff; }
.ulp .ulp-flow__list li > div { padding: 12px 18px; border-radius: 14px; background: #fff; box-shadow: 0 4px 14px rgba(20, 33, 61, .06); flex: 1; }
.ulp .ulp-flow__list h3 { font-size: 17px; font-weight: 800; color: var(--ulp-navy); }
.ulp .ulp-flow__list p { font-size: 14px; color: var(--ulp-mute); }
.ulp .ulp-flow__list li.is-goal .ulp-flow__no { background: var(--ulp-navy); }
.ulp .ulp-flow__list li.is-goal > div { background: #fff4e6; box-shadow: 0 0 0 2px var(--ulp-ac) inset; }
.ulp .ulp-flow__list li.is-goal h3 { color: var(--ulp-ac); }

/* ===== エリア・FAQ ===== */
.ulp .ulp-area .urz-jmap { margin-bottom: 0; }
.ulp .ulp-faq { background: #f8f9fa; }
.ulp .ulp-faq details { margin-top: 10px; border-radius: 14px; background: #fff; box-shadow: 0 2px 10px rgba(20, 33, 61, .05); overflow: hidden; }
.ulp .ulp-faq summary { position: relative; cursor: pointer; padding: 16px 48px 16px 20px; font-weight: 800; list-style: none; }
.ulp .ulp-faq summary::-webkit-details-marker { display: none; }
.ulp .ulp-faq summary::before { content: 'Q'; margin-right: 10px; color: var(--ulp-ac); font-weight: 900; }
.ulp .ulp-faq summary::after { content: '+'; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--ulp-ac); transition: transform .25s; }
.ulp .ulp-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.ulp .ulp-faq details p { padding: 0 20px 18px; font-size: 14.5px; color: #343a40; }
.ulp .ulp-faq details[open] p { animation: ulp-fade .35s ease; }
@keyframes ulp-fade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* ===== 最後のCTA ===== */
.ulp .ulp-end { padding: 72px 0 90px; background: linear-gradient(135deg, var(--ulp-ac), #c2410c); color: #fff; text-align: center; }
.ulp .ulp-end__big { font-size: 34px; font-weight: 900; line-height: 1.4; }
.ulp .ulp-end__big b { background: #fff; color: var(--ulp-ac); padding: 0 10px; border-radius: 8px; }
.ulp .ulp-end__t { margin: 14px 0 26px; font-size: 15px; opacity: .95; }
.ulp .ulp-end .ulp-btn--main { background: #fff; color: var(--ulp-ac); box-shadow: 0 10px 26px rgba(0,0,0,.2); }
.ulp .ulp-end .ulp-btn--main:hover { color: var(--ulp-ac); }
.ulp .ulp-end .ulp-btn--main::after { background: linear-gradient(100deg, transparent, rgba(232,89,12,.18), transparent); }
.ulp .ulp-end__tel { margin-top: 20px; font-weight: 700; }
.ulp .ulp-end__tel a { color: #fff; font-size: 22px; font-weight: 900; }
.ulp .ulp-end__co { margin-top: 10px; font-size: 12px; opacity: .85; }

/* スマホの固定ボタン */
.ulp .ulp-fix { display: none; }

@media (max-width: 860px) {
  .ulp .ulp-hero__in { grid-template-columns: 1fr; }
  .ulp .ulp-hero__txt { text-align: center; }
  .ulp .ulp-chips, .ulp .ulp-hero .ulp-cta { justify-content: center; }
  .ulp .ulp-stats { grid-template-columns: repeat(2, 1fr); }
  .ulp .ulp-merit__grid { grid-template-columns: repeat(2, 1fr); }
  .ulp .ulp-how__list { grid-template-columns: 1fr; gap: 30px; }
  .ulp .ulp-how__list li:not(:last-child)::after { content: '↓'; right: auto; left: 50%; top: auto; bottom: -30px; transform: translateX(-50%); }
}
@media (max-width: 640px) {
  .ulp .ulp-sec { padding: 52px 0; }
  .ulp .ulp-wrap { padding: 0 16px; }
  .ulp .ulp-hero { padding: 34px 0 30px; }
  .ulp .ulp-hero__h { font-size: 30px; }
  .ulp .ulp-hero__lead { font-size: 15px; text-align: left; }
  .ulp .ulp-h2 { font-size: 23px; }
  .ulp .ulp-ring__n b { font-size: 76px; }
  .ulp .ulp-stats b { font-size: 28px; }
  .ulp .ulp-btn { width: 100%; }
  .ulp .ulp-bar { grid-template-columns: 1fr auto; }
  .ulp .ulp-bar__t { grid-column: 1 / -1; grid-row: 2; }
  .ulp .ulp-bar__v { grid-row: 1; grid-column: 2; }
  .ulp .ulp-sim__box { padding: 20px 16px; }
  .ulp .ulp-sim__seg button { font-size: 12.5px; }
  .ulp .ulp-sim__res { grid-template-columns: 1fr; }
  .ulp .ulp-sim__res span { min-height: 0; }
  .ulp .ulp-merit__grid { grid-template-columns: 1fr; }
  .ulp .ulp-end__big { font-size: 26px; }
  .ulp .ulp-fix { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); box-shadow: 0 -4px 16px rgba(0,0,0,.12); transform: translateY(110%); transition: transform .3s; }
  .ulp .ulp-fix.is-on { transform: none; }
  .ulp .ulp-fix .ulp-btn { min-height: 46px; padding: 8px; font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .ulp .ulp-rv, .ulp.is-js .ulp-rv { opacity: 1; transform: none; transition: none; }
  .ulp .ulp-hero__coins, .ulp .ulp-btn--main::after { display: none; }
  .ulp.is-js .ulp-ring__fg, .ulp.is-js .ulp-bar .ulp-bar__t i { transition: none; stroke-dashoffset: 0; transform: scaleX(var(--w)); }
  .ulp.is-js .ulp-flow__list::after { height: calc(100% - 20px); }
  .ulp .ulp-ring.is-in .ulp-ring__in, .ulp .ulp-rv.is-in .ulp-how__ic { animation: none; }
}
.ulp .ulp-nw { white-space: nowrap; }
@media (max-width: 640px) {
  .ulp .ulp-hero__h { font-size: 27px; }
  .ulp .ulp-btn { font-size: 15px; }
}
@media (max-width: 360px) { .ulp .ulp-hero__h { font-size: 24px; } }

/* SEO用に足した要素 */
.ulp .ulp-cards { margin-top: 22px; }
.ulp .ulp-cards .urz-home__rg { margin-bottom: 16px; }
.ulp .ulp-tblw { margin-top: 26px; }
.ulp .ulp-tblw caption { caption-side: top; text-align: left; font-weight: 800; color: var(--ulp-navy); padding: 0 0 8px; }
.ulp .ulp-text { max-width: 860px; margin: 22px auto 0; font-size: 15px; color: #343a40; }
.ulp .ulp-rooms { background: #fff; padding-top: 10px; }
.ulp .ulp-rooms .urz-home__sec { margin: 0; }
.ulp .ulp-rooms .ulp-h2, .ulp .ulp-posts .ulp-h2 { margin-bottom: 10px; }
.ulp .ulp-rooms .urz-home__sec > p:first-of-type { text-align: center; color: var(--ulp-mute); }
.ulp .ulp-co { background: #fff; }
.ulp .ulp-co .urz-home__co th { background: #fff8f0; }
.ulp .ulp-posts { margin-top: 40px; }
.ulp .ulp-posts .ulp-h2 { font-size: 22px; }
.ulp .ulp-faq .ulp-q { display: inline; margin: 0; font-size: 15.5px; font-weight: 800; color: var(--ulp-ink); border: 0; padding: 0; background: none; }
.ulp .ulp-faq .ulp-q::before, .ulp .ulp-faq .ulp-q::after { display: none; }
@media (max-width: 640px) {
  .ulp .ulp-h2 br { display: none; }
}
.ulp .ulp-hero__kw { display: block; margin-bottom: 6px; font-size: 15px; font-weight: 800; color: var(--ulp-mute); letter-spacing: .02em; }

/* ===== 余白なし（画面の端から端まで） ===== */
html:has(.ulp), body:has(.ulp) { overflow-x: clip; }
.ulp { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); margin-top: 0; margin-bottom: 0; }
/* Elementor・テーマの外側の余白を消す */
.elementor-widget-shortcode:has(.ulp), .elementor-widget-shortcode:has(.ulp) > .elementor-widget-container,
.elementor-column:has(.ulp) > .elementor-widget-wrap, .elementor-column:has(.ulp) > .elementor-column-wrap,
.e-con:has(> .elementor-widget-shortcode .ulp), .e-con:has(> .e-con-inner > .elementor-widget-shortcode .ulp), .e-con:has(.ulp) > .e-con-inner,
.elementor-section:has(.ulp), .elementor-section:has(.ulp) > .elementor-container { padding: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --gap: 0px; max-width: none !important; }
.entry-content:has(> .ulp), .entry-content:has(> * > .ulp), .site-main:has(.ulp), .content-area:has(.ulp), article:has(.ulp), .post-content:has(.ulp), .page-content:has(.ulp) { padding-top: 0 !important; margin-top: 0 !important; padding-bottom: 0 !important; margin-bottom: 0 !important; }
.entry-content > .ulp:first-child, .elementor-widget-container > .ulp:first-child { margin-top: 0; }

/* ===== メイン画像：インパクト強め ===== */
.ulp .ulp-hero { color: #fff; min-height: min(92vh, 880px); display: flex; flex-direction: column; justify-content: center; padding: 70px 0 0;
  background:
    radial-gradient(circle at 76% 42%, rgba(255, 146, 43, .45), transparent 42%),
    radial-gradient(circle at 8% 95%, rgba(232, 89, 12, .35), transparent 38%),
    radial-gradient(circle at 40% -10%, rgba(76, 110, 245, .35), transparent 45%),
    linear-gradient(160deg, #0a1330, #14213d 55%, #1f2d5c); }
.ulp .ulp-hero::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px); background-size: 22px 22px; pointer-events: none; }
.ulp .ulp-eyebrow { background: linear-gradient(135deg, #ffd43b, #ff922b); color: #14213d; font-size: 14px; padding: 6px 16px; box-shadow: 0 6px 18px rgba(255, 146, 43, .35); }
.ulp .ulp-hero__kw { color: #ffc078; font-size: 16px; }
.ulp .ulp-hero__h { color: #fff; font-size: clamp(38px, 5.4vw, 70px); line-height: 1.22; margin: 18px 0 18px; text-shadow: 0 4px 24px rgba(0,0,0,.35); }
.ulp .ulp-hero__h em { background: linear-gradient(90deg, #ffe066, #ff922b 55%, #ff6b6b); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; filter: drop-shadow(0 4px 18px rgba(255, 146, 43, .45)); font-size: 1.12em; }
.ulp .ulp-hero__lead { color: rgba(255,255,255,.88); font-size: 17px; }
.ulp .ulp-hero__lead b { color: #ffd43b; }
.ulp .ulp-chips li { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.28); color: #fff; backdrop-filter: blur(4px); }
.ulp .ulp-chips b { color: #ffd43b; }
.ulp .ulp-hero .ulp-btn { min-height: 60px; font-size: 17px; padding: 14px 34px; }
.ulp .ulp-hero .ulp-btn--main { box-shadow: 0 10px 30px rgba(255, 146, 43, .5); animation: ulp-pulse 2.4s ease-in-out infinite; }
@keyframes ulp-pulse { 0%, 100% { box-shadow: 0 10px 30px rgba(255, 146, 43, .45); } 50% { box-shadow: 0 10px 44px rgba(255, 146, 43, .85); } }

.ulp .ulp-ring { width: min(460px, 86vw); }
.ulp .ulp-ring svg { position: relative; z-index: 1; filter: drop-shadow(0 0 40px rgba(255, 146, 43, .55)); }
.ulp .ulp-ring__bg { stroke: rgba(255,255,255,.18); }
.ulp .ulp-ring__in { z-index: 2; }
.ulp .ulp-ring__n b { font-size: 128px; background: linear-gradient(180deg, #ff922b, #e8590c); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ulp .ulp-ring__n { font-size: 44px; }
.ulp .ulp-ring__m { font-size: 22px; padding: 0 16px; }
.ulp .ulp-ring__s { font-size: 14px; }
.ulp .ulp-ring__burst { position: absolute; inset: -16%; border-radius: 50%; background: repeating-conic-gradient(from 0deg, rgba(255, 212, 59, .28) 0 6deg, transparent 6deg 18deg); -webkit-mask: radial-gradient(circle, #000 35%, transparent 70%); mask: radial-gradient(circle, #000 35%, transparent 70%); animation: ulp-spin 40s linear infinite; }
@keyframes ulp-spin { to { transform: rotate(360deg); } }
.ulp .ulp-ring__stamp { position: absolute; z-index: 3; top: 2%; right: -2%; width: 112px; height: 112px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: radial-gradient(circle at 35% 30%, #ff8787, #e03131); color: #fff; font-size: 13px; font-weight: 800; line-height: 1.2; box-shadow: 0 10px 24px rgba(224, 49, 49, .45), inset 0 0 0 4px rgba(255,255,255,.35); transform: rotate(-12deg); }
.ulp .ulp-ring__stamp b { font-size: 30px; font-weight: 900; }
.ulp.is-js .ulp-ring__stamp { transform: rotate(-12deg) scale(0); }
.ulp.is-js .ulp-ring.is-in .ulp-ring__stamp { animation: ulp-stamp .55s cubic-bezier(.2, 1.8, .4, 1) 2.3s forwards; }
@keyframes ulp-stamp { from { transform: rotate(-40deg) scale(2.2); opacity: 0; } to { transform: rotate(-12deg) scale(1); opacity: 1; } }
.ulp .ulp-hero__coins span { opacity: .75; }

.ulp .ulp-hero .ulp-stats li { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.18); }
.ulp .ulp-hero .ulp-stats b { color: #ffc078; font-size: 40px; }
.ulp .ulp-hero .ulp-stats small { color: #fff; }
.ulp .ulp-hero .ulp-stats span { color: rgba(255,255,255,.72); }

.ulp .ulp-marquee { position: relative; z-index: 1; margin-top: 40px; overflow: hidden; background: linear-gradient(90deg, #e8590c, #ff922b, #e8590c); padding: 14px 0; transform: skewY(-1.5deg); transform-origin: left; box-shadow: 0 -6px 20px rgba(0,0,0,.2); }
.ulp .ulp-marquee > div { display: flex; width: max-content; animation: ulp-marq 26s linear infinite; }
.ulp .ulp-marquee span { flex: none; padding: 0 28px; font-size: 20px; font-weight: 900; color: #fff; white-space: nowrap; letter-spacing: .04em; }
.ulp .ulp-marquee span::after { content: '★'; margin-left: 56px; color: #ffe066; }
@keyframes ulp-marq { to { transform: translateX(-50%); } }

@media (max-width: 860px) {
  .ulp .ulp-hero { min-height: 0; padding-top: 44px; }
  .ulp .ulp-ring { margin-top: 10px; }
}
@media (max-width: 640px) {
  .ulp .ulp-hero__h { font-size: 34px; }
  .ulp .ulp-hero__lead { font-size: 15px; }
  .ulp .ulp-ring__n b { font-size: 96px; }
  .ulp .ulp-ring__n { font-size: 34px; }
  .ulp .ulp-ring__stamp { width: 86px; height: 86px; font-size: 11px; right: 0; }
  .ulp .ulp-ring__stamp b { font-size: 22px; }
  .ulp .ulp-hero .ulp-stats b { font-size: 30px; }
  .ulp .ulp-marquee span { font-size: 16px; padding: 0 18px; }
  .ulp .ulp-marquee span::after { margin-left: 36px; }
}
@media (max-width: 360px) { .ulp .ulp-hero__h { font-size: 29px; } }
@media (prefers-reduced-motion: reduce) {
  .ulp .ulp-ring__burst, .ulp .ulp-marquee > div, .ulp .ulp-hero .ulp-btn--main { animation: none; }
  .ulp.is-js .ulp-ring__stamp { transform: rotate(-12deg); }
}
.ulp .ulp-hero__h { font-size: clamp(34px, 4.4vw, 60px); }
.ulp .ulp-hero__h em { font-size: 1.08em; white-space: nowrap; }
.ulp .ulp-hero__in { grid-template-columns: 1.3fr 1fr; }
@media (max-width: 640px) { .ulp .ulp-hero__h { font-size: 32px; } .ulp .ulp-hero__h em { font-size: 1.04em; } }
@media (max-width: 360px) { .ulp .ulp-hero__h { font-size: 27px; } }
.ulp .ulp-hero > .ulp-wrap { width: 100%; }

/* ===== ファーストビュー（バナーのデザイン） ===== */
.ulp .ulp-hero2 { position: relative; overflow: hidden; color: #fff; background: #0b4fc9; min-height: min(86vh, 760px); display: flex; align-items: center; font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif; }
.ulp .ulp-hero2__photo { position: absolute; top: 0; right: 0; bottom: 0; width: 64%; background-size: cover; background-position: center; transform-origin: 70% 50%; }
.ulp .ulp-hero2__shade { position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, #0a46b8 0%, #0d55cf 34%, rgba(20, 105, 225, .92) 44%, rgba(30, 120, 235, .55) 54%, rgba(30, 120, 235, 0) 66%),
    radial-gradient(ellipse at 18% 30%, rgba(120, 190, 255, .35), transparent 55%); }
.ulp .ulp-hero2__shade::after { content: ''; position: absolute; top: -20%; bottom: -20%; width: 28%; left: -40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .22), transparent); transform: skewX(-18deg); }
.ulp .ulp-hero2__in { position: relative; z-index: 2; width: 100%; padding-top: 34px; padding-bottom: 40px; }

.ulp .ulp-logo { display: inline-flex; align-items: baseline; gap: 2px; padding: 6px 18px 8px; border: 2px solid rgba(255,255,255,.85); border-radius: 4px; background: linear-gradient(180deg, #2142a8, #13287a); box-shadow: 0 6px 16px rgba(0, 20, 80, .35); font-weight: 900; font-size: 26px; line-height: 1; letter-spacing: .02em; transform: skewX(-6deg); }
.ulp .ulp-logo span, .ulp .ulp-logo i { transform: skewX(6deg); }
.ulp .ulp-logo i { font-style: italic; font-family: Georgia, 'Times New Roman', serif; font-size: 32px; font-weight: 700; margin-left: 2px; }

.ulp .ulp-hero2__h { margin: 22px 0 0; padding: 0; border: 0; background: none; color: #fff; font-weight: 900; line-height: 1.12; letter-spacing: .02em; text-shadow: 0 3px 14px rgba(0, 30, 110, .45); font-size: clamp(30px, 4.6vw, 66px); }
.ulp .ulp-hero2__h::before, .ulp .ulp-hero2__h::after { display: none; }
.ulp .ulp-hero2__h > span { display: block; }
.ulp .ulp-h-l1, .ulp .ulp-h-l2 { letter-spacing: .06em; }
.ulp .ulp-h-line { width: min(560px, 92%); height: 3px; margin: 14px 0 18px; border-radius: 3px; background: linear-gradient(90deg, #fff, rgba(255,255,255,.6)); transform-origin: left; }
.ulp .ulp-h-l3 { display: flex !important; align-items: flex-end; flex-wrap: nowrap; gap: .25em; }
.ulp .ulp-h-tag { position: relative; display: inline-flex; align-items: center; padding: .12em .9em .12em .4em; background: #fff; color: #0b3d91; font-size: .7em; line-height: 1.25; text-shadow: none; clip-path: polygon(0 0, 82% 0, 100% 50%, 82% 100%, 0 100%); margin-bottom: .32em; box-shadow: inset 0 0 0 3px #cfe3ff; }
.ulp .ulp-h-max { font-size: .78em; margin-bottom: .2em; }
.ulp .ulp-h-big { position: relative; isolation: isolate; display: inline-flex; align-items: flex-end; font-style: italic; line-height: .9; }
.ulp .ulp-h-num, .ulp .ulp-h-pc { background: linear-gradient(180deg, #fffbd0 0%, #ffe94d 38%, #ffcc00 70%, #ffb000 100%); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; filter: drop-shadow(0 4px 0 #0a2f86) drop-shadow(0 8px 16px rgba(0, 20, 90, .45)); font-variant-numeric: tabular-nums; }
.ulp .ulp-h-num { font-size: 2.15em; letter-spacing: -.04em; padding-right: .04em; min-width: 2.3ch; display: inline-block; text-align: right; }
.ulp .ulp-h-pc { font-size: 1.5em; padding-right: .1em; }
.ulp .ulp-h-swoosh { position: absolute; left: -12%; right: -4%; bottom: -.12em; width: 116%; height: .42em; overflow: visible; z-index: -1; }
.ulp .ulp-h-swoosh path { fill: none; stroke: #ffd400; stroke-width: 9; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 0; filter: drop-shadow(0 2px 0 rgba(10, 47, 134, .5)); }
.ulp .ulp-h-l4 { margin-top: .08em; font-size: 1.12em; letter-spacing: .04em; }
.ulp .ulp-spark { position: absolute; width: 18px; height: 18px; background: radial-gradient(circle, #fff 0 18%, transparent 20%), conic-gradient(from 0deg, transparent 0 40deg, #fff 45deg, transparent 50deg 130deg, #fff 135deg, transparent 140deg 220deg, #fff 225deg, transparent 230deg 310deg, #fff 315deg, transparent 320deg); border-radius: 50%; opacity: 0; pointer-events: none; }
.ulp .ulp-spark:nth-of-type(1) { top: 2%; left: 18%; }
.ulp .ulp-spark:nth-of-type(2) { top: 24%; right: -6%; width: 26px; height: 26px; }
.ulp .ulp-spark:nth-of-type(3) { bottom: 26%; left: 46%; width: 14px; height: 14px; }
.ulp .ulp-spark:nth-of-type(4) { top: -6%; right: 22%; width: 22px; height: 22px; }
.ulp .ulp-spark:nth-of-type(5) { bottom: 4%; right: 8%; }

.ulp .ulp-hero2__chips { display: flex; flex-wrap: wrap; gap: 12px; margin: 26px 0 0; }
.ulp .ulp-hero2__chips li { display: inline-flex; align-items: baseline; gap: 4px; padding: 10px 20px; border-radius: 12px; background: #fff; color: #0b2f86; font-weight: 900; font-size: clamp(15px, 1.7vw, 22px); box-shadow: 0 8px 18px rgba(0, 30, 110, .25); }
.ulp .ulp-hero2__chips b { font-size: 1.7em; line-height: 1; margin-left: 6px; color: #0b3d91; }
.ulp .ulp-hero2__note { margin-top: 14px; font-size: 14px; font-weight: 700; opacity: .92; }
.ulp .ulp-hero2__cta { margin-top: 22px; }
.ulp .ulp-hero2__cta .ulp-btn { min-height: 58px; font-size: 17px; padding: 14px 32px; }
.ulp .ulp-hero2__cta .ulp-btn--main { background: linear-gradient(135deg, #ffd43b, #ff922b); color: #14213d; box-shadow: 0 10px 26px rgba(255, 170, 0, .45); }
.ulp .ulp-hero2__cta .ulp-btn--main:hover { color: #14213d; }

/* アニメーション（読み込み時） */
.ulp.is-js .ulp-hero2 .ulp-logo, .ulp.is-js .ulp-hero2 .ulp-h-l1, .ulp.is-js .ulp-hero2 .ulp-h-l2, .ulp.is-js .ulp-hero2 .ulp-h-tag, .ulp.is-js .ulp-hero2 .ulp-h-max, .ulp.is-js .ulp-hero2 .ulp-h-big, .ulp.is-js .ulp-hero2 .ulp-h-l4, .ulp.is-js .ulp-hero2 .ulp-hero2__chips li, .ulp.is-js .ulp-hero2 .ulp-hero2__note, .ulp.is-js .ulp-hero2 .ulp-hero2__cta { opacity: 0; }
.ulp.is-js .ulp-hero2 .ulp-h-line { transform: scaleX(0); }
.ulp.is-js .ulp-hero2 .ulp-h-swoosh path { stroke-dashoffset: 100; }
.ulp .ulp-hero2.is-play .ulp-hero2__photo { animation: ulp-kb 9s cubic-bezier(.2, .6, .2, 1) both, ulp-sway 12s ease-in-out 9s infinite alternate; }
@keyframes ulp-kb { from { transform: scale(1.18); filter: brightness(1.15) saturate(.8); } to { transform: scale(1.02); filter: none; } }
@keyframes ulp-sway { from { transform: scale(1.02) translateX(0); } to { transform: scale(1.06) translateX(-1.5%); } }
.ulp .ulp-hero2.is-play .ulp-hero2__shade::after { animation: ulp-glare 7s ease-in-out 2.4s infinite; }
@keyframes ulp-glare { 0% { left: -40%; } 45%, 100% { left: 130%; } }
.ulp .ulp-hero2.is-play .ulp-logo { animation: ulp-drop .7s cubic-bezier(.2, 1.4, .4, 1) .1s both; }
@keyframes ulp-drop { from { opacity: 0; transform: translateY(-30px) skewX(-6deg); } to { opacity: 1; transform: skewX(-6deg); } }
.ulp .ulp-hero2.is-play .ulp-h-l1 { animation: ulp-slide .7s cubic-bezier(.2, .8, .2, 1) .3s both; }
.ulp .ulp-hero2.is-play .ulp-h-l2 { animation: ulp-slide .7s cubic-bezier(.2, .8, .2, 1) .45s both; }
@keyframes ulp-slide { from { opacity: 0; transform: translateX(-40px); clip-path: inset(0 100% 0 0); } to { opacity: 1; transform: none; clip-path: inset(0 0 0 0); } }
.ulp .ulp-hero2.is-play .ulp-h-line { animation: ulp-line .8s cubic-bezier(.6, 0, .2, 1) .8s both; }
@keyframes ulp-line { to { transform: scaleX(1); } }
.ulp .ulp-hero2.is-play .ulp-h-tag { animation: ulp-popin .5s cubic-bezier(.2, 1.6, .4, 1) 1.0s both; }
.ulp .ulp-hero2.is-play .ulp-h-max { animation: ulp-fadeup .5s ease 1.1s both; }
.ulp .ulp-hero2.is-play .ulp-h-big { animation: ulp-zoom .8s cubic-bezier(.2, 1.5, .35, 1) 1.2s both, ulp-beat 2.6s ease-in-out 3.6s infinite; }
@keyframes ulp-zoom { 0% { opacity: 0; transform: scale(2.6) rotate(-6deg); } 100% { opacity: 1; transform: none; } }
@keyframes ulp-beat { 0%, 70%, 100% { transform: scale(1); } 80% { transform: scale(1.06); } 90% { transform: scale(.98); } }
.ulp .ulp-hero2.is-play .ulp-h-swoosh path { animation: ulp-draw .8s cubic-bezier(.6, 0, .2, 1) 2.4s forwards; }
@keyframes ulp-draw { to { stroke-dashoffset: 0; } }
.ulp .ulp-hero2.is-play .ulp-spark { animation: ulp-twinkle 2.2s ease-in-out calc(2.8s + var(--i) * .45s) infinite; }
@keyframes ulp-twinkle { 0%, 100% { opacity: 0; transform: scale(.2) rotate(0); } 50% { opacity: 1; transform: scale(1) rotate(45deg); } }
.ulp .ulp-hero2.is-play .ulp-h-l4 { animation: ulp-fadeup .7s cubic-bezier(.2, .8, .2, 1) 2.2s both; }
@keyframes ulp-fadeup { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes ulp-popin { from { opacity: 0; transform: scale(.3); } to { opacity: 1; transform: none; } }
.ulp .ulp-hero2.is-play .ulp-hero2__chips li { animation: ulp-popin .5s cubic-bezier(.2, 1.6, .4, 1) both; }
.ulp .ulp-hero2.is-play .ulp-hero2__chips li:nth-child(1) { animation-delay: 2.6s; }
.ulp .ulp-hero2.is-play .ulp-hero2__chips li:nth-child(2) { animation-delay: 2.75s; }
.ulp .ulp-hero2.is-play .ulp-hero2__chips li:nth-child(3) { animation-delay: 2.9s; }
.ulp .ulp-hero2.is-play .ulp-hero2__note { animation: ulp-fadeup .6s ease 3.1s both; }
.ulp .ulp-hero2.is-play .ulp-hero2__cta { animation: ulp-fadeup .6s ease 3.2s both; }

/* 説明文と数字の帯 */
.ulp .ulp-band { padding: 40px 0 46px; background: linear-gradient(180deg, #eef5ff, #fff); }
.ulp .ulp-band__lead { max-width: 860px; margin: 0 auto; text-align: center; font-size: 16px; color: #343a40; }
.ulp .ulp-band__lead b { color: #0b4fc9; }
.ulp .ulp-band .ulp-stats { margin-top: 22px; }
.ulp .ulp-band .ulp-stats li { background: #fff; border-color: #d0e3ff; box-shadow: 0 6px 18px rgba(11, 79, 201, .08); }
.ulp .ulp-band .ulp-stats b { color: #0b4fc9; }
.ulp .ulp-marquee { margin-top: 0; transform: none; background: linear-gradient(90deg, #ffb000, #ffd400, #ffb000); }
.ulp .ulp-marquee span { color: #0b2f86; }
.ulp .ulp-marquee span::after { color: #fff; }

@media (max-width: 860px) {
  .ulp .ulp-hero2 { min-height: 0; align-items: flex-end; }
  .ulp .ulp-hero2__photo { width: 100%; }
  .ulp .ulp-hero2__shade { background: linear-gradient(180deg, rgba(11, 79, 201, .15) 0%, rgba(11, 79, 201, .55) 26%, #0b4fc9 52%, #0a46b8 100%); }
  .ulp .ulp-hero2__in { padding-top: 120px; }
}
@media (max-width: 640px) {
  .ulp .ulp-logo { font-size: 20px; padding: 5px 14px 7px; }
  .ulp .ulp-logo i { font-size: 25px; }
  .ulp .ulp-hero2__h { font-size: 33px; }
  .ulp .ulp-h-line { margin: 10px 0 12px; }
  .ulp .ulp-h-l4 { font-size: 1.08em; letter-spacing: 0; }
  .ulp .ulp-hero2__chips { gap: 8px; }
  .ulp .ulp-hero2__chips li { padding: 8px 12px; font-size: 14px; }
  .ulp .ulp-hero2__note { font-size: 12px; }
  .ulp .ulp-hero2__cta .ulp-btn { min-height: 52px; font-size: 16px; }
  .ulp .ulp-band__lead { font-size: 14.5px; text-align: left; }
}
@media (max-width: 360px) { .ulp .ulp-hero2__h { font-size: 28px; } .ulp .ulp-hero2__chips li { font-size: 12.5px; padding: 7px 9px; } }
@media (prefers-reduced-motion: reduce) {
  .ulp.is-js .ulp-hero2 * { animation: none !important; opacity: 1 !important; }
  .ulp.is-js .ulp-hero2 .ulp-h-line { transform: none; }
  .ulp.is-js .ulp-hero2 .ulp-h-swoosh path { stroke-dashoffset: 0; }
  .ulp .ulp-hero2__photo { animation: none !important; }
}

/* テーマの見出しデザイン（背景・左線・アイコンなど）を打ち消す */
.ulp h1, .ulp h2, .ulp h3, .ulp h4 { background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; text-indent: 0 !important; }
.ulp h1::before, .ulp h1::after, .ulp h2::before, .ulp h2::after, .ulp h3::before, .ulp h3::after, .ulp h4::before, .ulp h4::after { content: none !important; display: none !important; }
.ulp .ulp-h2 { color: var(--ulp-navy) !important; font-size: 30px !important; line-height: 1.45 !important; font-weight: 900 !important; text-align: center !important; margin: 6px 0 14px !important; }
.ulp .ulp-sim .ulp-h2 { color: #fff !important; }
.ulp .ulp-posts .ulp-h2 { font-size: 22px !important; }
.ulp .ulp-hero2__h { color: #fff !important; margin: 22px 0 0 !important; font-size: clamp(30px, 4.6vw, 66px) !important; line-height: 1.12 !important; }
.ulp h3 { margin: 0; }
@media (max-width: 640px) { .ulp .ulp-h2 { font-size: 23px !important; } .ulp .ulp-hero2__h { font-size: 33px !important; } }
@media (max-width: 360px) { .ulp .ulp-hero2__h { font-size: 28px !important; } }

/* シミュレーター：お祝い金の割合（100・70・50％） */
.ulp .ulp-sim__q { margin: 0 0 8px; font-weight: 800; font-size: 14px; color: var(--ulp-navy); }
.ulp .ulp-sim__seg--3 { grid-template-columns: repeat(3, 1fr); }
.ulp .ulp-sim__seg--3 button { font-size: 20px; font-weight: 900; padding: 8px; }
.ulp .ulp-sim__seg--3 button small { font-size: .65em; margin-left: 1px; }
.ulp .ulp-sim__seg--3 button small { display: inline !important; }

/* ===== お祝い金のしくみ：アニメーション図 ===== */
.ulp ol, .ulp ul { counter-reset: none; }
.ulp ol > li::before, .ulp ul > li::before { content: none !important; display: none !important; }
.ulp .ulp-how .ulp-sub { color: #495057; line-height: 1.9; }
.ulp .ulp-flowani { max-width: 960px; margin: 10px auto 0; padding: 18px 10px 6px; border-radius: 28px; background: linear-gradient(180deg, #ffffff, #fffaf3); box-shadow: 0 16px 40px rgba(20, 33, 61, .07); }
.ulp .ulp-fa { display: block; width: 100%; height: auto; overflow: visible; font-family: inherit; }
.ulp .ulp-fa--v { display: none; max-width: 360px; margin: 0 auto; }
.ulp .ulp-fa__base { fill: none; stroke: #edf0f4; stroke-width: 4; stroke-linecap: round; stroke-dasharray: 2 9; }
.ulp .ulp-fa__ln { fill: none; stroke-width: 4; stroke-linecap: round; }
.ulp .ulp-fa__ln.is-blue { stroke: #4c8dff; }
.ulp .ulp-fa__ln.is-gold { stroke: #f5a400; }
.ulp .ulp-fa__lab rect { fill: #fff; stroke-width: 1.5; }
.ulp .ulp-fa__lab.is-blue rect { stroke: #b9d3ff; }
.ulp .ulp-fa__lab.is-gold rect { stroke: #ffd98a; }
.ulp .ulp-fa__lab text { text-anchor: middle; font-size: 14px; font-weight: 800; }
.ulp .ulp-fa__lab.is-blue text { fill: #2563eb; }
.ulp .ulp-fa__lab.is-gold text { fill: #c77700; }
.ulp .ulp-fa__c { fill: #fff; stroke: #e9edf3; stroke-width: 1.5; }
.ulp .ulp-fa__ring { fill: none; stroke-width: 3; }
.ulp .ulp-fa__ring.is-blue { stroke: #4c8dff; }
.ulp .ulp-fa__ring.is-gold { stroke: #f5a400; }
.ulp .ulp-fa__ic > path, .ulp .ulp-fa__ic > circle, .ulp .ulp-fa__ic > rect { fill: #14213d; }
.ulp .ulp-fa__ic.is-ur > rect { fill: #2b5fd9; }
.ulp .ulp-fa__ic-w, .ulp .ulp-fa__ic-w rect { fill: #fff; }
.ulp .ulp-fa__ic.is-ur .ulp-fa__ic-w rect { fill: rgba(255,255,255,.85); }
.ulp .ulp-fa__ic-t { fill: #ffd43b; font-size: 17px; font-weight: 900; font-style: italic; text-anchor: middle; font-family: Georgia, 'Times New Roman', serif; }
.ulp .ulp-fa__ic-t.is-ur { fill: #fff; font-size: 13px; font-style: normal; font-family: inherit; letter-spacing: .04em; }
.ulp .ulp-fa__nm { text-anchor: middle; font-size: 17px; font-weight: 900; fill: #14213d; }
.ulp .ulp-fa__sm { text-anchor: middle; font-size: 12px; font-weight: 600; fill: #6c757d; }
.ulp .ulp-fa__dot rect { fill: #4c8dff; }
.ulp .ulp-fa__dot path { stroke: #fff; stroke-width: 2; stroke-linecap: round; fill: none; }
.ulp .ulp-fa__coin circle:first-child { filter: drop-shadow(0 3px 4px rgba(199, 119, 0, .35)); }
.ulp .ulp-fa__coin-in { fill: none; stroke: rgba(255,255,255,.7); stroke-width: 1.5; }
.ulp .ulp-fa__coin text { text-anchor: middle; font-size: 15px; font-weight: 900; fill: #8a5300; }
.ulp .ulp-fa__coin.is-big text { font-size: 18px; }
.ulp .ulp-fa__badge text { text-anchor: middle; font-size: 15px; font-weight: 900; fill: #5c3900; }
.ulp .ulp-fa__spark { fill: #ffc400; }

.ulp .ulp-how__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; max-width: 960px; margin: 22px auto 0; padding: 0; list-style: none; }
.ulp .ulp-how__steps li { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; background: #fff; font-size: 13.5px; font-weight: 700; line-height: 1.6; color: #343a40; box-shadow: 0 4px 14px rgba(20, 33, 61, .05); }
.ulp .ulp-how__steps li span { flex: none; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 900; color: #fff; }
.ulp .ulp-how__steps li.is-blue span { background: #4c8dff; }
.ulp .ulp-how__steps li.is-gold span { background: #f5a400; }
.ulp .ulp-how__steps li.is-gold { background: #fffaf0; }

@media (max-width: 860px) {
  .ulp .ulp-how__steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .ulp .ulp-fa--h { display: none; }
  .ulp .ulp-fa--v { display: block; }
  .ulp .ulp-flowani { padding: 14px 6px; border-radius: 20px; }
  .ulp .ulp-how__steps { grid-template-columns: 1fr; }
  .ulp .ulp-how .ulp-sub br { display: none; }
}

/* 文字を大きく（見出し上の小見出し・図・説明） */
.ulp .ulp-kicker { font-size: 20px !important; letter-spacing: .08em !important; font-weight: 900 !important; margin: 0 0 4px !important; }
.ulp .ulp-h2 { font-size: 34px !important; }
.ulp .ulp-sub { font-size: 17px; }
.ulp .ulp-fa__lab text { font-size: 16px; }
.ulp .ulp-fa__nm { font-size: 19px; }
.ulp .ulp-fa__sm { font-size: 13px; }
.ulp .ulp-fa__badge text { font-size: 16px; }
.ulp .ulp-how__steps li { font-size: 15px; }
@media (max-width: 640px) {
  .ulp .ulp-kicker { font-size: 17px !important; }
  .ulp .ulp-h2 { font-size: 25px !important; }
  .ulp .ulp-sub { font-size: 15.5px; }
  .ulp .ulp-fa__lab text { font-size: 15px; }
  .ulp .ulp-how__steps li { font-size: 15px; }
}

/* ロゴ＝トップページへのリンク */
.ulp .ulp-logo-w { margin: 0; }
.ulp a.ulp-logo { color: #fff !important; text-decoration: none !important; transition: transform .2s, box-shadow .2s; }
.ulp a.ulp-logo:hover { box-shadow: 0 8px 22px rgba(0, 20, 80, .5); filter: brightness(1.08); }
.ulp.is-js .ulp-hero2 .ulp-logo-w { opacity: 1; }
/* 上の空白を消す（よく使われるテーマの外枠） */
.site-content:has(.ulp), #content:has(.ulp), #main:has(.ulp), .l-content:has(.ulp), .l-mainContent:has(.ulp), .main-inner:has(.ulp), .content:has(.ulp), .container:has(> .ulp), .inner:has(> .ulp), .page-content:has(.ulp), .entry:has(.ulp), .post:has(.ulp), .elementor-section-wrap:has(.ulp), .elementor:has(.ulp) { padding-top: 0 !important; margin-top: 0 !important; }

/* 数字のカード：それぞれリンク */
.ulp .ulp-stats li { padding: 0 !important; }
.ulp a.ulp-stat-a { display: block; padding: 16px; border-radius: 16px; color: inherit !important; text-decoration: none !important; transition: transform .2s, box-shadow .2s, background .2s; }
.ulp a.ulp-stat-a:hover, .ulp a.ulp-stat-a:focus-visible { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(11, 79, 201, .15); background: #f5f9ff; }
.ulp .ulp-stat-a em { display: inline-block; margin-top: 6px; padding: 2px 12px; border-radius: 999px; background: #e7f0ff; color: #0b4fc9; font-style: normal; font-size: 12.5px; font-weight: 800; }
.ulp a.ulp-stat-a:hover em { background: #0b4fc9; color: #fff; }
html:has(.ulp) { scroll-behavior: smooth; }
.ulp [id] { scroll-margin-top: 80px; }

/* シミュレーター：割合の自動切り替え（白い選択が横にすべる） */
.ulp .ulp-sim__seg--3 { position: relative; isolation: isolate; }
.ulp .ulp-sim__seg--3::before { content: ''; position: absolute; z-index: -1; top: 5px; bottom: 5px; left: 5px; width: calc((100% - 10px - 12px) / 3); border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.1); transform: translateX(calc(var(--ulp-seg-x, 0%) + var(--ulp-seg-x-gap, 0px))); transition: transform .45s cubic-bezier(.3, .9, .3, 1); }
.ulp .ulp-sim__seg--3 button.is-on { background: transparent; box-shadow: none; }
.ulp .ulp-sim__seg--3 button { transition: color .3s; }
.ulp .ulp-sim__auto { display: none; margin-left: 8px; padding: 1px 10px; border-radius: 999px; background: #fff4e6; color: #e8590c; font-size: 11.5px; font-weight: 800; vertical-align: 1px; }
.ulp .ulp-sim__box.is-auto .ulp-sim__auto { display: inline-block; animation: ulp-blink 1.6s ease-in-out infinite; }
@keyframes ulp-blink { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
.ulp .ulp-sim__box.is-auto .ulp-sim__res em { transition: color .3s; }
@media (max-width: 640px) { .ulp .ulp-sim__auto { display: none !important; } }

/* ===== 特集：定年後、日本全国で住んでみませんか？ ===== */
.ulp.tei { font-size: 17px; }
.ulp .tei-hero { position: relative; overflow: hidden; padding: 80px 0 70px; text-align: center; color: #2b2118; background: linear-gradient(180deg, #fff3e0 0%, #ffe8cc 45%, #fff9f0 100%); }
.ulp .tei-hero__sky i { position: absolute; border-radius: 50%; filter: blur(2px); opacity: .55; animation: tei-float 14s ease-in-out infinite; }
.ulp .tei-hero__sky i:nth-child(1) { width: 260px; height: 260px; left: -60px; top: -40px; background: radial-gradient(circle, #ffd8a8, transparent 70%); }
.ulp .tei-hero__sky i:nth-child(2) { width: 340px; height: 340px; right: -80px; top: 30px; background: radial-gradient(circle, #ffc9c9, transparent 70%); animation-delay: -4s; }
.ulp .tei-hero__sky i:nth-child(3) { width: 220px; height: 220px; left: 40%; bottom: -90px; background: radial-gradient(circle, #d0ebff, transparent 70%); animation-delay: -8s; }
@keyframes tei-float { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(20px, -18px); } }
.ulp .tei-hero__in { position: relative; z-index: 1; }
.ulp .tei-tag { display: inline-block; padding: 6px 18px; border-radius: 999px; background: #8b4513; color: #fff; font-weight: 800; letter-spacing: .1em; font-size: 15px; }
.ulp .tei-hero__h { margin: 22px 0 18px !important; font-size: clamp(34px, 5.4vw, 64px) !important; line-height: 1.3 !important; font-weight: 900 !important; color: #3d2b1f !important; font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif; letter-spacing: .04em; }
.ulp .tei-hero__h em { font-style: normal; color: #c2410c; }
.ulp .tei-hero__lead { max-width: 760px; margin: 0 auto 22px; font-size: 18px; line-height: 2; color: #4a3a2e; }
.ulp .tei-hero__lead b { color: #c2410c; }
.ulp .tei-hero__pts { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 26px; }
.ulp .tei-hero__pts li { padding: 8px 16px; border-radius: 12px; background: #fff; border: 1px solid #ffd8a8; font-weight: 700; font-size: 15.5px; box-shadow: 0 4px 12px rgba(139, 69, 19, .08); }
.ulp .tei-hero__pts b { margin-left: 6px; color: #c2410c; }
.ulp .tei-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 26px; }
.ulp a.tei-card, .ulp div.tei-card { position: relative; display: flex; flex-direction: column; height: 100%; padding: 22px 20px 18px; border-radius: 20px; overflow: hidden; color: #fff !important; text-decoration: none !important; background: linear-gradient(150deg, var(--c1), var(--c2)); box-shadow: 0 10px 26px rgba(0,0,0,.12); transition: transform .25s, box-shadow .25s; }
.ulp a.tei-card:hover { transform: translateY(-6px) rotate(-.4deg); box-shadow: 0 18px 36px rgba(0,0,0,.2); }
.ulp .tei-card__city { position: absolute; right: -6px; bottom: -18px; font-size: 92px; font-weight: 900; line-height: 1; opacity: .16; font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', serif; pointer-events: none; }
.ulp .tei-card__head small { display: block; font-size: 15px; font-weight: 800; opacity: .9; }
.ulp .tei-card__head h3 { margin: 2px 0 10px !important; font-size: 21px !important; line-height: 1.4 !important; font-weight: 900 !important; color: #fff !important; }
.ulp .tei-card p { position: relative; margin: 0 0 14px; font-size: 14.5px; line-height: 1.8; opacity: .95; flex: 1; }
.ulp .tei-card__foot { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.35); font-size: 13px; }
.ulp .tei-card__foot i { font-style: normal; font-weight: 900; padding: 3px 12px; border-radius: 999px; background: rgba(255,255,255,.95); color: var(--c1); }
.ulp .tei-why { background: #fff9f0; }
.ulp .tei-why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 26px; }
.ulp .tei-why__grid li { padding: 24px 22px; border-radius: 18px; background: #fff; box-shadow: 0 6px 18px rgba(139, 69, 19, .07); }
.ulp .tei-why__no { font-size: 30px; font-weight: 900; color: #ffc078; line-height: 1; }
.ulp .tei-why__grid h3 { margin: 8px 0 8px !important; font-size: 19px !important; font-weight: 900 !important; color: #3d2b1f !important; }
.ulp .tei-why__grid p { font-size: 15.5px; color: #5c4a3d; line-height: 1.85; }
.ulp .tei-tbl th, .ulp .tei-tbl td { text-align: center; font-size: 16px; }
.ulp .tei-tbl small { font-weight: 500; color: #868e96; }
.ulp .tei-flow { background: linear-gradient(180deg, #fff, #fff9f0); }
.ulp .tei-end { background: linear-gradient(135deg, #8b4513, #c2410c); }
.ulp .tei-end .ulp-btn--main { color: #8b4513; }
/* トップページの特集バナー */
.ulp .tei-ban { padding: 30px 0 10px; }
.ulp a.tei-ban__a { position: relative; display: block; overflow: hidden; padding: 34px 36px; border-radius: 26px; text-decoration: none !important; color: #3d2b1f !important; background: linear-gradient(120deg, #fff3e0, #ffe3e3 55%, #e7f5ff); box-shadow: 0 14px 36px rgba(139, 69, 19, .12); transition: transform .25s, box-shadow .25s; }
.ulp a.tei-ban__a:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(139, 69, 19, .2); }
.ulp .tei-ban__tag { display: inline-block; padding: 4px 16px; border-radius: 999px; background: #8b4513; color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .1em; }
.ulp .tei-ban__h { display: block; margin: 14px 0 10px; font-size: clamp(26px, 3.6vw, 40px); line-height: 1.35; font-weight: 900; font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', serif; }
.ulp .tei-ban__t { display: block; max-width: 640px; font-size: 16px; line-height: 1.9; color: #5c4a3d; }
.ulp .tei-ban__cities { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 16px; }
.ulp .tei-ban__cities i { font-style: normal; padding: 5px 14px; border-radius: 999px; background: var(--c1); color: #fff; font-weight: 800; font-size: 14px; animation: tei-pop 3.2s ease-in-out infinite; }
.ulp .tei-ban__cities i:nth-child(2n) { animation-delay: .4s; } .ulp .tei-ban__cities i:nth-child(3n) { animation-delay: .8s; }
@keyframes tei-pop { 0%, 80%, 100% { transform: translateY(0); } 88% { transform: translateY(-5px); } }
.ulp .tei-ban__go { display: inline-block; padding: 12px 26px; border-radius: 999px; background: #c2410c; color: #fff; font-weight: 900; font-size: 16px; box-shadow: 0 8px 20px rgba(194, 65, 12, .3); }
@media (max-width: 960px) { .ulp .tei-cards { grid-template-columns: repeat(2, 1fr); } .ulp .tei-why__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
  .ulp .tei-hero { padding: 50px 0 46px; }
  .ulp .tei-hero__lead { font-size: 16px; text-align: left; }
  .ulp .tei-hero__lead br { display: none; }
  .ulp .tei-cards, .ulp .tei-why__grid { grid-template-columns: 1fr; }
  .ulp a.tei-ban__a { padding: 26px 20px; }
}
@media (prefers-reduced-motion: reduce) { .ulp .tei-hero__sky i, .ulp .tei-ban__cities i { animation: none; } }
.ulp .tei-card__head small, .ulp .tei-card__foot b { color: #fff !important; }
.ulp .tei-card__head small { opacity: .92; }
.ulp br.tei-sp { display: none; }
@media (max-width: 640px) { .ulp br.tei-sp { display: inline; } .ulp .tei-hero__h { font-size: 31px !important; } }
