/* =====================================================================
   Persona Match — Modern Business
   ===================================================================== */
:root{
  --ink:        #0f172a;
  --ink-2:      #334155;
  --muted:      #64748b;
  --muted-2:    #94a3b8;
  --line:       #e2e8f0;
  --line-2:     #f1f5f9;
  --bg:         #f8fafc;
  --bg-card:    #ffffff;
  --bg-soft:    #fafbfd;

  --brand:      #0f172a;
  --accent:     #6366f1;       /* indigo */
  --accent-2:   #818cf8;
  --accent-soft:#eef2ff;

  --ok:         #15803d;
  --err:        #b91c1c;

  --shadow-1: 0 1px 2px rgba(15,23,42,.04), 0 1px 1px rgba(15,23,42,.03);
  --shadow-2: 0 8px 24px -4px rgba(15,23,42,.08), 0 2px 6px -2px rgba(15,23,42,.04);
  --shadow-3: 0 20px 48px -12px rgba(15,23,42,.14);

  --r: 12px; --r-sm: 8px; --r-lg: 16px; --r-pill: 999px;
  --ease: cubic-bezier(.4,0,.2,1);
  --t: .25s var(--ease);
}

*,*::before,*::after{ box-sizing:border-box }
html,body{ margin:0; padding:0 }
body{
  font-family:"Inter",-apple-system,"Noto Sans JP","Segoe UI",system-ui,sans-serif;
  color:var(--ink); background:var(--bg);
  line-height:1.7; -webkit-font-smoothing:antialiased;
  font-feature-settings:"palt";
}
a{ color:var(--ink); text-decoration:none; transition: color var(--t) }
a:hover{ color:var(--accent) }
.muted{ color:var(--muted) }
.small{ font-size:.85rem }
.pmr-wrap{ max-width:1200px; margin:0 auto; padding:0 24px }
.icn{ display:inline-block; vertical-align:-3px; flex-shrink:0 }
.pmr-empty{ padding:64px 24px; text-align:center; color:var(--muted); background:#fff; border-radius:var(--r); border:1px dashed var(--line) }

/* ==== Buttons ==== */
.pmr-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--ink); color:#fff;
  border:none; border-radius:var(--r-sm);
  padding:11px 22px; font:600 .92rem "Inter",inherit;
  letter-spacing:.01em; cursor:pointer;
  transition: background var(--t), transform var(--t);
  text-decoration:none;
}
.pmr-btn:hover{ background:var(--accent); color:#fff; transform:translateY(-1px) }
.pmr-btn:disabled{ background:var(--muted-2); cursor:not-allowed; transform:none }
.pmr-btn--lg{ padding:14px 28px; font-size:1rem; border-radius:var(--r) }
.pmr-btn-ghost{
  display:inline-flex; align-items:center; gap:6px;
  background:transparent; color:var(--ink); border:1px solid var(--line);
  padding:11px 18px; font:600 .9rem inherit;
  border-radius:var(--r-sm); cursor:pointer;
  transition: border-color var(--t), color var(--t);
  text-decoration:none;
}
.pmr-btn-ghost:hover{ border-color:var(--accent); color:var(--accent) }
.pmr-btn-ghost:disabled{ opacity:.4; cursor:not-allowed }

/* ==== Header ==== */
.pmr-menu-toggle{ position:absolute; opacity:0; pointer-events:none }
.pmr-head{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.85);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.pmr-head-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:64px; gap:18px;
}
.pmr-brand{ display:flex; align-items:center; gap:10px }
.pmr-brand:hover{ color:inherit }
.pmr-brand-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:10px;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  color:#fff; box-shadow:var(--shadow-1);
}
.pmr-brand-text{ font-weight:800; font-size:1.05rem; letter-spacing:-.01em }
.pmr-brand-dot{ color:var(--accent); margin:0 1px }
.pmr-nav{ display:flex; align-items:center; gap:4px; font-size:.92rem }
.pmr-nav a{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; font-weight:600; color:var(--ink-2);
  border-radius:var(--r-sm); transition: all var(--t);
}
.pmr-nav a:hover{ background:var(--accent-soft); color:var(--accent) }

/* Hamburger */
.pmr-hamburger{
  display:none; width:42px; height:42px;
  flex-direction:column; align-items:center; justify-content:center;
  gap:5px; border:1px solid var(--line); border-radius:var(--r-sm);
  background:transparent; cursor:pointer;
}
.pmr-hamburger span{ display:block; width:20px; height:1.6px; background:var(--ink); transition:transform var(--t),opacity var(--t) }
.pmr-backdrop{ display:none }
@media(max-width:780px){
  .pmr-hamburger{ display:flex }
  .pmr-nav{
    position:fixed; top:64px; right:0;
    width:min(320px, 88vw); height:calc(100dvh - 64px);
    background:#fff; border-left:1px solid var(--line);
    padding:20px; flex-direction:column; align-items:stretch; gap:4px;
    transform:translateX(100%); transition: transform var(--t);
    overflow-y:auto;
  }
  .pmr-nav a{ padding:14px 16px; border-bottom:1px solid var(--line-2) }
  .pmr-backdrop{
    display:block; position:fixed; inset:64px 0 0 0;
    background:rgba(15,23,42,.4); opacity:0; pointer-events:none;
    transition: opacity var(--t); z-index:-1;
  }
  .pmr-menu-toggle:checked ~ .pmr-head .pmr-nav{ transform:translateX(0) }
  .pmr-menu-toggle:checked ~ .pmr-backdrop{ opacity:1; pointer-events:auto }
  .pmr-menu-toggle:checked ~ .pmr-head .pmr-hamburger span:nth-child(1){ transform:translateY(7px) rotate(45deg) }
  .pmr-menu-toggle:checked ~ .pmr-head .pmr-hamburger span:nth-child(2){ opacity:0 }
  .pmr-menu-toggle:checked ~ .pmr-head .pmr-hamburger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }
}

/* ==== Hero ==== */
.pmr-hero{
  position:relative; overflow:hidden;
  padding:80px 0 56px;
  background:linear-gradient(180deg, #fff 0%, var(--bg) 100%);
}
.pmr-hero-bg{ position:absolute; inset:0; pointer-events:none }
.pmr-blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.55 }
.pmr-blob--1{ width:520px; height:520px; right:-120px; top:-160px; background:#c7d2fe }
.pmr-blob--2{ width:380px; height:380px; left:-140px; bottom:-120px; background:#bae6fd; opacity:.45 }
.pmr-blob--3{ width:260px; height:260px; right:30%; bottom:-80px; background:#fde68a; opacity:.35 }
.pmr-hero-grid{
  position:relative;
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;
}
.pmr-hero-copy{ text-align:left }
.pmr-eyebrow{
  display:inline-block;
  font-size:.7rem; font-weight:800; letter-spacing:.22em;
  color:var(--accent); margin-bottom:16px;
}
.pmr-eyebrow--pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 14px; border-radius:var(--r-pill);
  background:rgba(255,255,255,.8); border:1px solid #e0e7ff;
  box-shadow:var(--shadow-1); margin-bottom:22px;
}
.pmr-hero-title{
  font-size:clamp(2.1rem,4.6vw,3.6rem); line-height:1.22;
  letter-spacing:-.025em; font-weight:800;
  color:var(--ink); margin:0 0 22px;
}
.pmr-hero-title .hl{
  background:linear-gradient(120deg, var(--accent) 10%, #0ea5e9 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.pmr-hero-lead{
  font-size:1.05rem; color:var(--ink-2); max-width:560px;
  margin:0 0 32px;
}
.pmr-hero-cta{
  display:flex; flex-wrap:wrap; gap:12px;
  align-items:center; margin-bottom:22px;
}
.pmr-btn--glow{
  background:linear-gradient(135deg, var(--accent), #4f46e5);
  box-shadow:0 10px 28px -8px rgba(99,102,241,.6);
}
.pmr-btn--glow:hover{ background:linear-gradient(135deg, #4f46e5, #4338ca); box-shadow:0 14px 32px -8px rgba(99,102,241,.7) }
.pmr-btn--glow .icn{ transition:transform var(--t) }
.pmr-btn--glow:hover .icn{ transform:translateX(3px) }
.pmr-btn-ghost--lg{ padding:14px 22px; font-size:.95rem; border-radius:var(--r); background:rgba(255,255,255,.7) }
.pmr-hero-badges{
  list-style:none; padding:0; margin:0;
  display:flex; flex-wrap:wrap; gap:8px 18px;
  font-size:.85rem; color:var(--ink-2); font-weight:600;
}
.pmr-hero-badges li{ display:inline-flex; align-items:center; gap:6px }
.pmr-hero-badges .icn{ color:var(--ok) }

/* Hero visual */
.pmr-hero-visual{ position:relative; display:flex; justify-content:center }
.pmr-hero-img{
  display:block; width:100%; max-width:480px; height:auto;
  aspect-ratio:1/1; object-fit:cover;
  border-radius:28px; box-shadow:var(--shadow-3);
}
.pmr-preview{
  width:100%; max-width:380px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(226,232,240,.9); border-radius:20px;
  padding:18px 20px 20px; box-shadow:var(--shadow-3);
  animation:pmrFloat 6s ease-in-out infinite;
}
.pmr-preview--float{
  position:absolute; left:-36px; bottom:-28px; max-width:280px; padding:14px 16px 16px;
}
.pmr-preview--float .pmr-preview-head,
.pmr-preview--float .pmr-preview-bars{ display:none }
.pmr-preview--float .pmr-preview-main{ margin-bottom:10px }
@keyframes pmrFloat{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-8px) } }
.pmr-preview-head{ display:flex; align-items:center; gap:5px; margin-bottom:14px }
.pmr-preview-dot{ width:8px; height:8px; border-radius:50%; background:var(--line) }
.pmr-preview-label{ margin-left:auto; font-size:.7rem; font-weight:700; color:var(--muted); letter-spacing:.1em }
.pmr-preview-main{
  display:flex; align-items:center; gap:12px;
  padding:12px; border-radius:14px; margin-bottom:14px;
  background:color-mix(in srgb, var(--arch-color) 10%, #fff);
}
.pmr-preview-mark{
  width:44px; height:44px; border-radius:12px; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--arch-color); color:#fff; font-weight:800; font-size:1.2rem;
}
.pmr-preview small{ display:block; font-size:.7rem; color:var(--muted); font-weight:600; line-height:1.3 }
.pmr-preview strong{ font-size:1.05rem; font-weight:800; line-height:1.3 }
.pmr-preview-bars{ list-style:none; padding:0; margin:0 0 14px; display:grid; gap:9px }
.pmr-preview-bars li{ display:grid; grid-template-columns:82px 1fr 34px; align-items:center; gap:8px; font-size:.75rem }
.pmr-preview-name{ font-weight:700; color:var(--ink-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.pmr-preview-track{ height:7px; background:var(--line-2); border-radius:var(--r-pill); overflow:hidden }
.pmr-preview-track span{
  display:block; height:100%; width:var(--w); background:var(--arch-color);
  border-radius:var(--r-pill); animation:pmrBar 1.2s var(--ease) both .3s;
}
@keyframes pmrBar{ from{ width:0 } }
.pmr-preview-pct{ text-align:right; font-weight:700; color:var(--muted); font-variant-numeric:tabular-nums }
.pmr-preview-match{
  display:flex; align-items:center; gap:12px;
  padding:12px; border-radius:14px; border:1px solid var(--line);
}
.pmr-preview-logo{
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--ink); color:#fff;
}
.pmr-preview-match strong{ font-size:.9rem }
.pmr-preview-score{
  margin-left:auto; font-size:1.5rem; font-weight:800; color:var(--accent);
  font-variant-numeric:tabular-nums; letter-spacing:-.02em;
}
.pmr-preview-score small{ display:inline; font-size:.8rem; color:var(--accent) }

/* Stats */
.pmr-hero-stats{
  position:relative;
  list-style:none; padding:22px 12px; margin:56px auto 0; max-width:880px;
  display:grid; grid-template-columns:repeat(4,1fr);
  background:rgba(255,255,255,.85); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--shadow-2);
}
.pmr-hero-stats li{ text-align:center; padding:0 8px }
.pmr-hero-stats li + li{ border-left:1px solid var(--line) }
.pmr-hero-stats strong{
  display:block; font-size:2rem; font-weight:800; line-height:1.2;
  letter-spacing:-.02em; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.pmr-hero-stats strong small{ font-size:.9rem; margin-left:2px }
.pmr-hero-stats span{ font-size:.75rem; color:var(--muted); letter-spacing:.12em }

.sp-only{ display:none }
@media(max-width:880px){
  .pmr-hero{ padding:48px 0 40px }
  .pmr-hero-grid{ grid-template-columns:1fr; gap:40px }
  .pmr-hero-copy{ text-align:center }
  .pmr-hero-lead{ margin-left:auto; margin-right:auto }
  .pmr-hero-cta, .pmr-hero-badges{ justify-content:center }
  .pmr-preview--float{ left:auto; right:-8px; bottom:-24px; max-width:260px }
  .pc-only{ display:none }
}
@media(max-width:560px){
  .sp-only{ display:inline }
  .pmr-hero-cta .pmr-btn, .pmr-hero-cta .pmr-btn-ghost{ width:100%; justify-content:center }
  .pmr-hero-stats{ grid-template-columns:repeat(2,1fr); row-gap:18px; margin-top:40px }
  .pmr-hero-stats li:nth-child(3){ border-left:none }
  .pmr-hero-visual{ flex-direction:column; align-items:center }
  .pmr-hero-img{ max-width:none; aspect-ratio:4/3; object-position:center 30%; border-radius:20px }
  .pmr-preview--float{
    position:relative; left:auto; right:auto; bottom:auto;
    width:calc(100% - 32px); max-width:340px; margin:-48px auto 0; padding:14px 16px 16px;
    animation:none;
  }
}

/* ==== Section ==== */
.pmr-section{ padding:64px 0 }
.pmr-section--alt{ background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line) }
.pmr-section-head{ text-align:center; margin-bottom:40px }
.pmr-section-eyebrow{
  display:inline-block;
  font-size:.7rem; font-weight:800; letter-spacing:.22em;
  color:var(--accent); margin-bottom:10px;
}
.pmr-section-title{
  font-size:clamp(1.5rem,2.8vw,2rem); font-weight:800;
  letter-spacing:-.02em; margin:0 0 8px;
}
.pmr-section-lead{ color:var(--muted); margin:0 }

/* ==== Archetype grid ==== */
.pmr-arch-grid{
  display:grid; gap:18px;
  grid-template-columns:repeat(auto-fill, minmax(280px,1fr));
}
.pmr-arch-card{
  background:#fff; border:1px solid var(--line);
  border-radius:var(--r); padding:24px;
  position:relative; overflow:hidden;
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}
.pmr-arch-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:var(--arch-color, var(--accent));
}
.pmr-arch-card:hover{
  transform:translateY(-3px); box-shadow:var(--shadow-2);
  border-color:var(--arch-color, var(--accent));
}
.pmr-arch-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:14px;
  background:var(--arch-color, var(--accent)); color:#fff;
  font-weight:800; font-size:1.3rem;
  margin-bottom:14px;
}
.pmr-arch-name{
  margin:0 0 4px; font-size:1.15rem; font-weight:800;
  letter-spacing:-.01em; color:var(--ink);
}
.pmr-arch-catch{ margin:0 0 12px; font-size:.85rem; color:var(--arch-color, var(--muted)); font-weight:600 }
.pmr-arch-sum{ margin:0 0 16px; font-size:.92rem; color:var(--ink-2); line-height:1.65 }
.pmr-arch-foot{ padding-top:12px; border-top:1px solid var(--line-2) }
.pmr-arch-count{ font-size:.82rem; color:var(--muted); display:inline-flex; align-items:center; gap:5px }
.pmr-arch-count strong{ color:var(--ink); font-weight:700 }

/* ==== Steps ==== */
.pmr-steps{
  list-style:none; padding:0; margin:0;
  display:grid; gap:20px;
  grid-template-columns:repeat(3, 1fr);
}
@media(max-width:780px){ .pmr-steps{ grid-template-columns:1fr } }
.pmr-steps li{
  background:var(--bg); border:1px solid var(--line);
  border-radius:var(--r); padding:24px;
}
.pmr-step-num{
  display:inline-block;
  font-family:"Inter",sans-serif;
  font-size:.78rem; font-weight:800; letter-spacing:.16em;
  color:var(--accent); margin-bottom:10px;
}
.pmr-steps h3{ margin:0 0 8px; font-size:1.05rem; font-weight:800 }
.pmr-steps p{ margin:0; color:var(--muted); font-size:.92rem; line-height:1.7 }

/* ==== Quiz ==== */
.pmr-quiz-section{ padding:48px 0 }
.pmr-quiz-head{ text-align:center; margin-bottom:28px }
.pmr-quiz-title{
  font-size:clamp(1.5rem,3vw,2rem); font-weight:800;
  letter-spacing:-.02em; margin:6px 0;
}
.pmr-quiz-lead{ color:var(--muted); margin:0 }
.pmr-progress{ max-width:720px; margin:0 auto 28px }
.pmr-progress-meta{ display:flex; justify-content:flex-end; margin-bottom:8px }
.pmr-progress-num{
  font-size:.82rem; color:var(--muted); font-weight:700;
  font-variant-numeric:tabular-nums; letter-spacing:.02em;
}
.pmr-progress-num span{ color:var(--ink); font-weight:800 }
.pmr-progress-bar{
  height:6px; background:var(--line); border-radius:var(--r-pill); overflow:hidden;
}
.pmr-progress-fill{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  border-radius:var(--r-pill); transition: width .4s var(--ease);
}

#pmr-quiz{ max-width:720px; margin:0 auto }
.pmr-question{
  background:#fff; border:1px solid var(--line);
  border-radius:var(--r-lg); padding:32px;
  box-shadow:var(--shadow-1);
  border:none; padding:32px; margin:0 0 24px;
}
.pmr-question[hidden]{ display:none !important }
.pmr-question.is-enter{ animation: pmrIn .35s var(--ease) both }
.pmr-question.is-enter-rev{ animation: pmrInRev .35s var(--ease) both }
@keyframes pmrIn{
  from{ opacity:0; transform:translateX(20px) }
  to{ opacity:1; transform:translateX(0) }
}
@keyframes pmrInRev{
  from{ opacity:0; transform:translateX(-20px) }
  to{ opacity:1; transform:translateX(0) }
}
.pmr-q-num{
  display:inline-block;
  font-size:.78rem; font-weight:800; letter-spacing:.16em;
  color:var(--accent); margin-bottom:10px; padding:0;
}
.pmr-q-body{
  margin:0 0 24px; font-size:1.3rem; font-weight:700;
  line-height:1.5; letter-spacing:-.01em; color:var(--ink);
}
.pmr-choices{ display:flex; flex-direction:column; gap:10px }
.pmr-choice{
  position:relative; display:flex; align-items:center; gap:12px;
  padding:16px 18px; background:var(--bg-soft);
  border:1.5px solid var(--line); border-radius:var(--r-sm);
  cursor:pointer; transition: all var(--t);
}
.pmr-choice:hover{ border-color:var(--accent); background:#fff }
.pmr-choice input{ position:absolute; opacity:0; pointer-events:none }
.pmr-choice-body{ flex:1; font-size:.96rem; color:var(--ink); font-weight:500 }
.pmr-choice-arrow{
  width:24px; height:24px; border-radius:50%;
  border:1.5px solid var(--line);
  display:inline-flex; align-items:center; justify-content:center;
  color:transparent; flex-shrink:0;
  transition: all var(--t);
}
.pmr-choice:has(input:checked){
  border-color:var(--accent); background:var(--accent-soft);
  box-shadow: 0 0 0 4px rgba(99,102,241,.08);
}
.pmr-choice:has(input:checked) .pmr-choice-arrow{
  background:var(--accent); border-color:var(--accent); color:#fff;
}

.pmr-nav-row{
  max-width:720px; margin:24px auto 0;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
}
.pmr-nav-row .pmr-btn{ margin-left:auto }
.pmr-nav-row [hidden]{ display:none !important }

/* ==== Result hero ==== */
.pmr-result-hero{
  padding:60px 0 40px;
  background:
    radial-gradient(700px 350px at 50% -10%, color-mix(in srgb, var(--arch-color) 15%, transparent), transparent 70%),
    var(--bg);
}
.pmr-result-hero-inner{ text-align:center; max-width:720px }
.pmr-result-card{
  display:flex; align-items:center; gap:24px;
  margin:18px 0 18px; justify-content:center;
  flex-wrap:wrap;
}
.pmr-result-mark{
  width:96px; height:96px; border-radius:24px;
  background:var(--arch-color);
  color:#fff; font-weight:800; font-size:3rem;
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-2);
}
.pmr-result-text{ text-align:left }
.pmr-result-name{
  font-size:clamp(1.8rem,4vw,2.6rem); font-weight:800;
  letter-spacing:-.02em; margin:0;
}
.pmr-result-catch{ margin:6px 0 0; color:var(--arch-color); font-weight:600 }
.pmr-result-summary{
  font-size:1.02rem; color:var(--ink-2); line-height:1.8;
  margin:18px auto 18px; max-width:620px;
}
.pmr-result-sub{ font-size:.95rem; color:var(--muted); margin:0 0 30px }
.pmr-result-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap }

/* ==== Breakdown ==== */
.pmr-breakdown{ max-width:760px; margin:0 auto 40px }
.pmr-bd-row{
  display:grid; grid-template-columns:200px 1fr 60px;
  align-items:center; gap:16px;
  padding:12px 0; border-bottom:1px solid var(--line-2);
}
@media(max-width:560px){
  .pmr-bd-row{ grid-template-columns:1fr auto; gap:8px }
  .pmr-bd-bar{ grid-column:1/-1 }
}
.pmr-bd-label{ display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.pmr-bd-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:8px;
  background:var(--arch-color); color:#fff;
  font-weight:800; font-size:.85rem;
  flex-shrink:0;
}
.pmr-bd-name{ font-weight:700; color:var(--ink); font-size:.95rem }
.pmr-bd-tag{
  font-style:normal; font-size:.64rem; font-weight:800;
  padding:2px 8px; background:var(--arch-color); color:#fff;
  border-radius:var(--r-pill); letter-spacing:.05em;
}
.pmr-bd-tag--sub{ background:transparent; border:1.5px solid var(--arch-color); color:var(--arch-color) }
.pmr-bd-bar{
  background:var(--line-2); border-radius:var(--r-pill);
  height:8px; overflow:hidden;
}
.pmr-bd-fill{
  display:block; height:100%; background:var(--arch-color);
  border-radius:var(--r-pill);
  animation: pmrBar 1s var(--ease) both;
}
@keyframes pmrBar{ from{ width:0 !important } }
.pmr-bd-pct{
  font-variant-numeric:tabular-nums; font-weight:700; color:var(--ink);
  text-align:right;
}
.pmr-bd-row.is-primary{ background:color-mix(in srgb, var(--arch-color) 5%, transparent) }

/* ==== Result detail cards ==== */
.pmr-result-detail{
  display:grid; gap:18px; margin-top:30px;
  grid-template-columns:repeat(3, 1fr);
}
@media(max-width:880px){ .pmr-result-detail{ grid-template-columns:1fr } }
.pmr-card{
  background:#fff; border:1px solid var(--line);
  border-radius:var(--r); padding:22px;
  box-shadow:var(--shadow-1);
}
.pmr-card h3{
  margin:0 0 12px; font-size:.95rem; font-weight:800;
  letter-spacing:-.005em; color:var(--ink);
  display:inline-flex; align-items:center; gap:7px;
}
.pmr-card h3 .icn{ color:var(--accent) }
.pmr-card p{ margin:0; color:var(--ink-2); font-size:.92rem; line-height:1.75 }
.pmr-card--cta{ background:linear-gradient(135deg, var(--accent-soft), #fff) }

/* ==== Company card ==== */
.pmr-company-grid{
  display:grid; gap:18px;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
}
.pmr-company-card{
  background:#fff; border:1px solid var(--line);
  border-radius:var(--r); padding:22px;
  display:flex; flex-direction:column; gap:10px;
  transition: transform var(--t), border-color var(--t), box-shadow var(--t);
}
.pmr-company-card:hover{
  text-decoration:none; transform:translateY(-3px);
  border-color:var(--accent); box-shadow:var(--shadow-2);
}
.pmr-company-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px }
.pmr-company-logo{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:12px;
  color:#fff; font-weight:800; font-size:1.2rem;
  flex-shrink:0;
}
.pmr-company-logo--lg{ width:72px; height:72px; border-radius:16px; font-size:1.7rem }
.pmr-fit-badge{
  display:inline-flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--accent-soft); color:var(--accent);
  border-radius:var(--r-sm); padding:6px 12px; min-width:60px;
}
.pmr-fit-pct{ font-weight:800; font-size:1rem; font-variant-numeric:tabular-nums; line-height:1 }
.pmr-fit-label{ font-size:.6rem; letter-spacing:.16em; font-weight:700; opacity:.7 }
.pmr-company-name{ margin:0; font-size:1.08rem; font-weight:800; letter-spacing:-.01em; color:var(--ink) }
.pmr-company-tag{
  margin:0; font-size:.88rem; color:var(--ink-2); line-height:1.55;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.pmr-company-meta{
  display:flex; gap:12px; flex-wrap:wrap;
  font-size:.78rem; color:var(--muted);
  padding-top:10px; border-top:1px solid var(--line-2);
}
.pmr-company-meta span,
.pmr-company-meta a{
  display:inline-flex; align-items:center; gap:4px;
  color:var(--muted);
}
.pmr-company-meta a:hover{ color:var(--accent) }
.pmr-company-fits{
  display:flex; flex-wrap:wrap; gap:6px;
  margin-top:6px;
}
.pmr-fit-chip{
  display:inline-flex; align-items:center; gap:4px;
  background:color-mix(in srgb, var(--arch-color) 12%, transparent);
  color:var(--arch-color); font-weight:700; font-size:.74rem;
  padding:3px 9px; border-radius:var(--r-pill);
}
.pmr-fit-chip em{ font-style:normal; opacity:.7 }

/* ==== Page head (companies/company) ==== */
.pmr-page-head{
  background:#fff; border-bottom:1px solid var(--line);
  padding:48px 0 32px;
}
.pmr-page-title{
  font-size:clamp(1.5rem,3vw,2rem); font-weight:800;
  letter-spacing:-.02em; margin:6px 0 8px;
}
.pmr-page-lead{ color:var(--muted); margin:0 0 22px }
.pmr-filter{
  display:flex; gap:8px; flex-wrap:wrap; align-items:center;
  margin-bottom:16px;
}
.pmr-filter input[type=search],
.pmr-filter select{
  padding:10px 14px; border:1px solid var(--line);
  border-radius:var(--r-sm); font:inherit; font-size:.92rem; color:var(--ink);
  background:#fff;
}
.pmr-filter input[type=search]{ flex:1; min-width:200px }
.pmr-filter input[type=search]:focus,
.pmr-filter select:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 4px rgba(99,102,241,.1) }
.pmr-arch-pills{ display:flex; gap:8px; flex-wrap:wrap; margin-top:6px }
.pmr-arch-pills a{
  padding:6px 14px; font-size:.82rem; font-weight:600;
  border-radius:var(--r-pill); border:1px solid var(--line);
  background:#fff; color:var(--ink-2);
  transition: all var(--t);
}
.pmr-arch-pills a:hover{
  border-color:var(--arch-color, var(--accent));
  color:var(--arch-color, var(--accent));
  text-decoration:none;
}
.pmr-arch-pills a.is-active{
  background:var(--arch-color, var(--accent));
  border-color:var(--arch-color, var(--accent));
  color:#fff;
}
.pmr-results-meta{
  font-size:.82rem; color:var(--muted); margin:0 0 18px;
  text-align:right;
}

/* ==== Company hero ==== */
.pmr-company-hero{
  background:#fff; border-bottom:1px solid var(--line);
  padding:32px 0 40px;
}
.pmr-crumbs{
  display:flex; align-items:center; gap:8px;
  font-size:.78rem; color:var(--muted); margin-bottom:18px;
  letter-spacing:.04em;
}
.pmr-crumbs a:hover{ color:var(--accent) }
.pmr-crumbs .icn{ color:var(--muted-2) }
.pmr-company-banner{ display:flex; gap:24px; align-items:center; flex-wrap:wrap }
.pmr-company-title{ margin:0; font-size:clamp(1.5rem,3vw,2.2rem); font-weight:800; letter-spacing:-.02em }
.pmr-company-tag-big{ margin:6px 0 14px; font-size:1.05rem; color:var(--ink-2) }
.pmr-company-grid-detail{
  display:grid; grid-template-columns:minmax(0,1fr) 340px;
  gap:36px;
}
@media(max-width:880px){ .pmr-company-grid-detail{ grid-template-columns:1fr } }
.pmr-h2{
  font-size:1.25rem; font-weight:800; margin:0 0 12px;
  padding-bottom:10px; border-bottom:1px solid var(--line);
  letter-spacing:-.01em;
}
.pmr-detail-desc{ color:var(--ink-2); font-size:.96rem; line-height:1.85; margin:0 0 30px }

.pmr-fit-list{ list-style:none; padding:0; margin:0 }
.pmr-fit-list li + li{ margin-top:6px }
.pmr-fit-list a{
  display:flex; align-items:center; gap:12px;
  padding:10px 12px; border-radius:var(--r-sm);
  border:1px solid var(--line);
  transition: all var(--t);
}
.pmr-fit-list a:hover{
  border-color:var(--arch-color); text-decoration:none;
  background:color-mix(in srgb, var(--arch-color) 5%, transparent);
}
.pmr-fit-list-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:9px;
  background:var(--arch-color); color:#fff;
  font-weight:800; font-size:.9rem; flex-shrink:0;
}
.pmr-fit-list-text{ flex:1; min-width:0; display:flex; flex-direction:column; gap:0 }
.pmr-fit-list-text strong{ font-weight:700; font-size:.92rem; color:var(--ink) }
.pmr-fit-list-text em{ font-style:normal; font-size:.78rem; color:var(--muted) }
.pmr-fit-list-weight{ font-weight:800; font-size:.85rem; color:var(--arch-color); flex-shrink:0 }

/* ==== Top page: features / archetype image / steps / FAQ / CTA ==== */
.pmr-feature-grid{ display:grid; gap:20px; grid-template-columns:repeat(3,1fr) }
@media(max-width:880px){ .pmr-feature-grid{ grid-template-columns:1fr } }
.pmr-feature{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:28px; transition:transform var(--t), box-shadow var(--t);
}
.pmr-feature:hover{ transform:translateY(-3px); box-shadow:var(--shadow-2) }
.pmr-feature-icn{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:14px; margin-bottom:16px;
  background:var(--accent-soft); color:var(--accent);
}
.pmr-feature h3{ margin:0 0 8px; font-size:1.1rem; font-weight:800 }
.pmr-feature p{ margin:0; color:var(--ink-2); font-size:.93rem; line-height:1.75 }

/* Archetype card: 横並びヘッダー＋画像対応 */
.pmr-arch-card{ padding:0; display:flex; flex-direction:column }
.pmr-arch-body{ padding:24px; display:flex; flex-direction:column; flex:1 }
.pmr-arch-top{ display:flex; align-items:center; gap:14px; margin-bottom:12px }
.pmr-arch-top .pmr-arch-mark{ margin-bottom:0; flex-shrink:0 }
.pmr-arch-top .pmr-arch-catch{ margin:0 }
.pmr-arch-sum{ flex:1 }
.pmr-arch-img{
  aspect-ratio:16/10; overflow:hidden;
  background:color-mix(in srgb, var(--arch-color) 12%, #fff);
}
.pmr-arch-img img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease) }
.pmr-arch-card:hover .pmr-arch-img img{ transform:scale(1.04) }
.pmr-arch-card.has-img::before{ display:none }
.pmr-arch-card.has-img{ border-top:4px solid var(--arch-color) }

/* Steps: アイコン＋番号 */
.pmr-steps{ counter-reset:none }
.pmr-steps li{ position:relative; background:#fff; padding:28px }
.pmr-step-icn{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:50%; margin-bottom:14px;
  background:linear-gradient(135deg, var(--accent), #0ea5e9); color:#fff;
  box-shadow:0 8px 20px -8px rgba(99,102,241,.6);
}
.pmr-step-num{ display:block }
@media(min-width:781px){
  .pmr-steps li:not(:last-child)::after{
    content:""; position:absolute; top:54px; right:-21px;
    width:22px; height:2px; background:var(--line);
  }
}

/* FAQ */
.pmr-faq-wrap{ max-width:800px }
.pmr-faq{ display:grid; gap:10px }
.pmr-faq details{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r);
  transition:border-color var(--t), background var(--t);
}
.pmr-faq details[open]{ background:#fff; border-color:#c7d2fe }
.pmr-faq summary{
  list-style:none; cursor:pointer; position:relative;
  padding:18px 52px 18px 22px; font-weight:700; color:var(--ink);
}
.pmr-faq summary::-webkit-details-marker{ display:none }
.pmr-faq summary::before{ content:"Q."; color:var(--accent); font-weight:800; margin-right:8px }
.pmr-faq summary::after{
  content:""; position:absolute; right:22px; top:50%;
  width:9px; height:9px; margin-top:-7px;
  border-right:2px solid var(--muted); border-bottom:2px solid var(--muted);
  transform:rotate(45deg); transition:transform var(--t);
}
.pmr-faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-2px }
.pmr-faq details p{ margin:0; padding:0 22px 20px 50px; color:var(--ink-2); font-size:.93rem }

/* CTA band */
.pmr-cta-band{
  position:relative; overflow:hidden; text-align:center; color:#fff;
  padding:80px 0;
  background:
    radial-gradient(600px 300px at 15% 0%, rgba(14,165,233,.45), transparent 60%),
    radial-gradient(600px 300px at 85% 100%, rgba(168,85,247,.45), transparent 60%),
    linear-gradient(135deg, #312e81, #4f46e5);
}
.pmr-cta-band.has-img{
  background:
    linear-gradient(135deg, rgba(49,46,129,.86), rgba(79,70,229,.72)),
    var(--cta-img) center/cover no-repeat;
}
.pmr-cta-inner{ position:relative }
.pmr-cta-band h2{
  margin:0 0 12px; font-size:clamp(1.6rem,3.4vw,2.4rem);
  font-weight:800; letter-spacing:-.02em; line-height:1.35;
}
.pmr-cta-band p{ margin:0 0 30px; color:rgba(255,255,255,.8) }
.pmr-btn--light{ background:#fff; color:var(--ink); box-shadow:0 12px 30px -10px rgba(0,0,0,.4) }
.pmr-btn--light:hover{ background:#eef2ff; color:var(--accent) }
.pmr-main:has(> .pmr-cta-band:last-child) + .pmr-foot{ margin-top:0 }

/* ==== Footer ==== */
.pmr-foot{
  background:var(--ink); color:rgba(255,255,255,.72);
  padding:40px 0; margin-top:60px;
}
.pmr-foot-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; flex-wrap:wrap;
}
.pmr-foot-brand{ display:flex; flex-direction:column; gap:2px }
.pmr-foot-name{ font-weight:800; font-size:1.1rem; color:#fff; letter-spacing:-.01em }
.pmr-foot-tag{ font-size:.85rem; color:rgba(255,255,255,.55) }
.pmr-foot-nav{ display:flex; gap:20px; font-size:.88rem }
.pmr-foot-nav a{ color:rgba(255,255,255,.7) }
.pmr-foot-nav a:hover{ color:#fff }
.pmr-foot-rights{
  width:100%; margin:18px 0 0; padding-top:16px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:.72rem; color:rgba(255,255,255,.4);
  letter-spacing:.1em; text-align:center; text-transform:uppercase;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important }
}

/* テスト環境であることを示すリボン（右上固定） */
.test-ribbon{
  position:fixed; top:14px; right:-44px; z-index:9999;
  transform:rotate(45deg);
  background:#dc2626; color:#fff;
  font-size:11px; font-weight:800; letter-spacing:.04em;
  padding:5px 52px; line-height:1.2;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
  pointer-events:none; user-select:none;
}

/* ==== Mobile: 診断ページを詰めて、質問が上に来るように ==== */
@media(max-width:560px){
  .pmr-quiz-section{ padding:20px 0 32px }
  .pmr-quiz-head{ margin-bottom:16px }
  .pmr-quiz-head .pmr-eyebrow{ display:none }
  .pmr-quiz-title{ font-size:1.25rem; margin:0 }
  .pmr-quiz-lead{ font-size:.82rem }
  .pmr-progress{ margin-bottom:14px }
  .pmr-question{ padding:20px 18px; margin-bottom:16px }
  .pmr-q-body{ font-size:1.1rem; margin-bottom:16px }
  .pmr-choice{ padding:14px 14px }
  .pmr-nav-row{ margin-top:16px }
  .pmr-wrap{ padding:0 16px }
}
/* 進行に合わせたスクロール位置（固定ヘッダーの下に揃える） */
.pmr-progress{ scroll-margin-top:76px }

/* ==== TEST 表示はメニューと重ならない左下の小さなバッジに ==== */
.test-ribbon{
  top:auto; bottom:12px; left:12px; right:auto; transform:none;
  padding:4px 10px; border-radius:999px; font-size:10px; opacity:.9;
}

/* ==== Mobile: 写真を小さく（縦に長くならないように） ==== */
@media(max-width:560px){
  .pmr-hero{ padding:32px 0 32px }
  .pmr-hero-grid{ gap:24px }
  .pmr-hero-img{ aspect-ratio:16/10; max-height:230px; object-position:center 25%; border-radius:16px }
  .pmr-preview--float{ margin-top:-36px; max-width:300px; padding:12px 14px 14px }
  .pmr-preview--float .pmr-preview-main{ padding:8px 10px }
  .pmr-preview--float .pmr-preview-match{ padding:8px 10px }
  .pmr-hero-stats{ margin-top:28px; padding:16px 8px }
  .pmr-hero-stats strong{ font-size:1.6rem }

  .pmr-arch-grid{ gap:14px }
  .pmr-arch-img{ aspect-ratio:21/9 }
  .pmr-arch-img img{ object-position:center 30% }
  .pmr-arch-body{ padding:16px 18px }
  .pmr-arch-mark{ width:40px; height:40px; font-size:1.1rem; border-radius:12px }
  .pmr-arch-sum{ font-size:.88rem; margin-bottom:12px }

  .pmr-section{ padding:48px 0 }
  .pmr-section-head{ margin-bottom:28px }
  .pmr-cta-band{ padding:56px 0 }
}

/* ==== プロフィール入力 ==== */
.pmr-profile-lead{ margin:-8px 0 20px; color:var(--ink-2); font-size:.92rem }
.pmr-req, .pmr-opt{
  display:inline-block; font-size:.66rem; font-weight:800; padding:1px 6px; border-radius:4px;
  vertical-align:1px; margin-left:4px; letter-spacing:.04em;
}
.pmr-req{ background:#fee2e2; color:#b91c1c }
.pmr-opt{ background:#f1f5f9; color:var(--muted) }
.pmr-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px }
.pmr-field{ display:flex; flex-direction:column; gap:6px; font-size:.85rem; font-weight:700; color:var(--ink-2) }
.pmr-field[hidden]{ display:none }
.pmr-input{
  font:inherit; font-weight:500; font-size:16px; color:var(--ink); background:#fff;
  border:1.5px solid var(--line); border-radius:var(--r-sm); padding:11px 12px; width:100%;
  transition:border-color var(--t), box-shadow var(--t);
}
.pmr-input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 4px rgba(99,102,241,.12) }
select.pmr-input{ appearance:none; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 12px center; padding-right:34px }
.pmr-input-unit{ display:flex; align-items:center; gap:8px }
.pmr-input-unit em{ font-style:normal; font-weight:600; color:var(--muted); white-space:nowrap }
.pmr-consents{ margin-top:22px; display:flex; flex-direction:column; gap:10px }
.pmr-consent{
  display:flex; gap:10px; align-items:flex-start; padding:14px 16px; cursor:pointer;
  background:var(--bg-soft); border:1.5px solid var(--line); border-radius:var(--r-sm);
  font-size:.88rem; line-height:1.6; color:var(--ink-2);
}
.pmr-consent:has(input:checked){ border-color:var(--accent); background:var(--accent-soft) }
.pmr-consent input{ width:18px; height:18px; margin-top:2px; flex-shrink:0; accent-color:var(--accent) }
.pmr-consent a{ color:var(--accent); text-decoration:underline }
.pmr-alert{
  background:#fff; border:1px solid #fecaca; border-left:4px solid #dc2626; border-radius:var(--r);
  padding:24px 26px;
}
.pmr-alert h2{ margin:0 0 10px; font-size:1.15rem; color:#b91c1c }
.pmr-alert ul{ margin:0 0 20px; padding-left:20px; color:var(--ink-2) }

/* ==== 結果: 適職と適正年収 ==== */
.pmr-career{ display:grid; grid-template-columns:.9fr 1.1fr; gap:20px; align-items:start }
.pmr-salary-card{
  position:relative; overflow:hidden; color:#fff; border-radius:var(--r-lg); padding:30px 28px;
  background:
    radial-gradient(400px 220px at 100% 0%, rgba(14,165,233,.45), transparent 60%),
    linear-gradient(135deg, #312e81, #4f46e5);
  box-shadow:0 20px 40px -16px rgba(79,70,229,.55);
}
.pmr-salary-label{ display:block; font-size:.78rem; font-weight:700; letter-spacing:.08em; color:rgba(255,255,255,.7) }
.pmr-salary-job{ display:block; font-size:1.5rem; font-weight:800; margin:2px 0 18px; letter-spacing:-.01em }
.pmr-salary-range{ display:flex; align-items:baseline; gap:6px; margin:4px 0 14px; flex-wrap:wrap }
.pmr-salary-range b{ font-size:clamp(2.2rem,5vw,3rem); font-weight:800; letter-spacing:-.03em; font-variant-numeric:tabular-nums; line-height:1.1 }
.pmr-salary-range span{ font-size:1.4rem; opacity:.8 }
.pmr-salary-range small{ font-size:1rem; font-weight:700; margin-left:2px }
.pmr-salary-diff{ margin:0 0 10px; padding:10px 14px; background:rgba(255,255,255,.12); border-radius:10px; font-size:.9rem }
.pmr-salary-diff strong.up{ color:#fde68a; font-size:1.05rem }
.pmr-salary-note{ margin:8px 0 0; font-size:.78rem; color:rgba(255,255,255,.7); line-height:1.6 }
.pmr-jobs-card h3{ margin-top:0 }
.pmr-job-rank{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px }
.pmr-job-rank li{ display:flex; gap:14px; align-items:flex-start }
.pmr-job-no{
  flex-shrink:0; width:30px; height:30px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent-soft); color:var(--accent); font-weight:800; font-size:.9rem;
}
.pmr-job-rank li:first-child .pmr-job-no{ background:var(--accent); color:#fff }
.pmr-job-main{ flex:1; min-width:0 }
.pmr-job-head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px }
.pmr-job-head strong{ font-size:1rem }
.pmr-job-pct{ font-weight:800; color:var(--accent); font-variant-numeric:tabular-nums }
.pmr-job-pct small{ font-size:.75rem }
.pmr-job-bar{ display:block; height:6px; background:var(--line-2); border-radius:99px; overflow:hidden; margin:6px 0 6px }
.pmr-job-bar span{ display:block; height:100%; background:linear-gradient(90deg, var(--accent), #0ea5e9); border-radius:99px }
.pmr-job-main p{ margin:0; font-size:.84rem; color:var(--muted); line-height:1.6 }
.pmr-next-box{
  display:flex; gap:12px; align-items:flex-start; margin-top:20px; padding:16px 20px;
  background:#f0fdf4; border:1px solid #bbf7d0; border-radius:var(--r); color:#14532d; font-size:.92rem;
}
.pmr-next-box .icn{ color:#15803d; margin-top:2px }

/* ==== 文書ページ（プライバシーポリシー） ==== */
.pmr-doc{ max-width:820px }
.pmr-doc h2{ font-size:1.1rem; margin:32px 0 10px; padding-left:10px; border-left:4px solid var(--accent) }
.pmr-doc p, .pmr-doc li{ color:var(--ink-2); font-size:.94rem; line-height:1.9 }
.pmr-doc ul, .pmr-doc ol{ padding-left:22px }

@media(max-width:780px){
  .pmr-career{ grid-template-columns:1fr }
}
@media(max-width:560px){
  .pmr-form-grid{ grid-template-columns:1fr; gap:12px }
  .pmr-salary-card{ padding:24px 20px }
}
.pmr-field-label{ display:block }

/* =====================================================================
   Motion — 落ち着いた動き（ビジネス向け。motion.js と連動）
   ===================================================================== */

/* スクロールで出現: 少しだけ上がりながらフェード */
[data-reveal]{
  transition:
    opacity .6s ease var(--reveal-delay, 0ms),
    translate .6s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms);
}
[data-reveal]:not(.is-in){ opacity:0; translate:0 14px }

/* ヒーロー: 読み込み時に静かにフェードイン */
.pmr-hero-copy > *{ animation:pmrRise .7s cubic-bezier(.2,.7,.2,1) both }
.pmr-hero-copy > *:nth-child(2){ animation-delay:.06s }
.pmr-hero-copy > *:nth-child(3){ animation-delay:.12s }
.pmr-hero-copy > *:nth-child(4){ animation-delay:.18s }
.pmr-hero-copy > *:nth-child(5){ animation-delay:.24s }
.pmr-hero-copy > *:nth-child(6){ animation-delay:.30s }
.pmr-hero-visual{ animation:pmrFade .9s ease .15s both }
@keyframes pmrRise{ from{ opacity:0; translate:0 12px } to{ opacity:1; translate:0 0 } }
@keyframes pmrFade{ from{ opacity:0 } to{ opacity:1 } }

/* 背景の色の玉: ごくゆっくり、わずかに動く */
.pmr-blob--1{ animation:pmrDrift1 24s ease-in-out infinite alternate }
.pmr-blob--2{ animation:pmrDrift2 28s ease-in-out infinite alternate }
.pmr-blob--3{ display:none }
@keyframes pmrDrift1{ to{ translate:-40px 30px } }
@keyframes pmrDrift2{ to{ translate:40px -24px } }

/* 職種名の切り替わり（フェードのみ） */
.pmr-rotator{
  display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin:-6px 0 22px; padding:7px 14px 7px 12px; border-radius:var(--r-sm);
  background:#fff; border:1px solid var(--line);
  font-size:.9rem; font-weight:600; color:var(--ink-2);
}
.pmr-rotator .icn{ color:var(--accent) }
.pmr-rotator-word{ display:inline-block; min-width:9em; font-weight:800; color:var(--accent); transition:opacity .4s ease }
.pmr-rotator-word.is-out{ opacity:0 }

/* ボタン: ホバー時だけ控えめな光沢 */
.pmr-btn{ position:relative; overflow:hidden; isolation:isolate }
.pmr-btn::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(110deg, transparent 35%, rgba(255,255,255,.22) 50%, transparent 65%);
  translate:-120% 0; transition:translate .8s ease;
}
.pmr-btn:hover::after{ translate:120% 0 }

/* 職種の帯（1段・明るめ・ゆっくり） */
.pmr-marquee{
  position:relative; overflow:hidden; padding:14px 0;
  background:#fff; border-block:1px solid var(--line);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.pmr-marquee--rev{ display:none }
.pmr-marquee-track{ display:flex; width:max-content; animation:pmrMarquee 70s linear infinite }
.pmr-marquee:hover .pmr-marquee-track{ animation-play-state:paused }
.pmr-marquee-item{ display:inline-flex; align-items:center; gap:8px; padding:0 22px; font-size:.92rem; font-weight:600; white-space:nowrap; color:var(--ink-2) }
.pmr-marquee-item b{ font-weight:700; color:var(--accent); font-variant-numeric:tabular-nums }
.pmr-marquee-item::after{ content:""; width:4px; height:4px; border-radius:50%; background:var(--line); margin-left:22px }
@keyframes pmrMarquee{ to{ translate:-50% 0 } }

/* カード: ホバーで少し浮くだけ */
.pmr-feature, .pmr-company-card{ position:relative }
.pmr-feature:hover, .pmr-arch-card:hover{ transform:translateY(-3px) }

/* スクロール進捗バー（細く・単色） */
.pmr-scroll-progress{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:100; pointer-events:none;
  background:var(--accent); transform-origin:0 50%; transform:scaleX(0);
}

/* 結果ページ: バーが伸びる */
.pmr-job-rank li .pmr-job-bar span{ transition:width 1.1s cubic-bezier(.2,.7,.2,1) calc(var(--reveal-delay, 0ms) + .15s) }
.pmr-job-rank li[data-reveal]:not(.is-in) .pmr-job-bar span{ width:0 !important }
.pmr-bd-row .pmr-bd-fill{ transition:width 1.1s cubic-bezier(.2,.7,.2,1) calc(var(--reveal-delay, 0ms) + .15s) }
.pmr-bd-row[data-reveal]:not(.is-in) .pmr-bd-fill{ width:0 !important }
.pmr-result-mark{ animation:pmrFade .6s ease both }

/* 診断の選択肢: 選んだ瞬間に軽く反応 */
.pmr-choice:has(input:checked){ animation:pmrTap .25s ease }
@keyframes pmrTap{ 50%{ scale:.99 } 100%{ scale:1 } }

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce){
  [data-reveal]:not(.is-in){ opacity:1; translate:none }
  .pmr-marquee-track{ animation:none }
}

/* カウントアップ用の数字はラベル用 span の小さい文字を受け継がない */
.pmr-hero-stats strong span{ display:inline; font-size:inherit; color:inherit; letter-spacing:inherit; text-transform:none }
.pmr-preview-match > div{ min-width:0 }
.pmr-preview-match strong{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.pmr-preview-score{ white-space:nowrap }

/* ==== プライバシーポリシー（入力画面内） ==== */
.pmr-policy{ border:1.5px solid var(--line); border-radius:var(--r-sm); background:#fff; overflow:hidden }
.pmr-policy-head{
  display:flex; align-items:center; justify-content:space-between; gap:8px 12px; flex-wrap:wrap;
  padding:10px 14px; background:var(--bg-soft); border-bottom:1px solid var(--line); font-size:.88rem;
}
.pmr-policy-status{ display:inline-flex; align-items:center; gap:4px; font-size:.78rem; font-weight:700; color:var(--accent) }
.pmr-policy-status .icn{ rotate:90deg }
.pmr-policy-status.is-read{ color:var(--ok) }
.pmr-policy-status.is-warn{ color:var(--err) }
.pmr-policy-box{ max-height:240px; overflow-y:auto; padding:6px 16px 14px; overscroll-behavior:contain }
.pmr-policy-box:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px }
.pmr-policy-box h2{ font-size:.92rem; margin:18px 0 6px }
.pmr-policy-box p, .pmr-policy-box li{ font-size:.82rem; line-height:1.8 }
.pmr-policy-progress{ height:3px; background:var(--line-2) }
.pmr-policy-progress span{ display:block; height:100%; width:0; background:linear-gradient(90deg, var(--accent), #0ea5e9); transition:width .2s ease }
.pmr-consent.is-locked{ cursor:not-allowed; background:#f1f5f9; color:var(--muted) }
.pmr-consent.is-locked input{ cursor:not-allowed }
.pmr-consent.is-unlocked{ animation:pmrUnlock .6s ease }
@keyframes pmrUnlock{ 0%{ box-shadow:0 0 0 0 rgba(99,102,241,.45) } 100%{ box-shadow:0 0 0 12px rgba(99,102,241,0) } }
.pmr-consent.is-shake{ animation:pmrShake .4s ease }
@keyframes pmrShake{ 20%,60%{ translate:-6px 0 } 40%,80%{ translate:6px 0 } }

/* ==== 常に表示する「診断を始める」ボタン（スクロール中だけ隠れる） ==== */
.pmr-float-cta{
  position:fixed; right:24px; bottom:calc(24px + env(safe-area-inset-bottom, 0px)); z-index:60;
  display:flex; flex-direction:column; align-items:center; gap:0;
  padding:12px 26px 10px; border-radius:14px;
  background:var(--accent); color:#fff; text-decoration:none;
  box-shadow:0 12px 28px -10px rgba(79,70,229,.55), 0 2px 6px rgba(15,23,42,.12);
  transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .35s ease, background var(--t);
}
.pmr-float-cta:hover{ background:#4f46e5; color:#fff }
.pmr-float-cta.is-hidden{ transform:translateY(calc(100% + 40px)); opacity:0; pointer-events:none }
.pmr-float-cta-main{ display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:1rem; line-height:1.3 }
.pmr-float-cta-sub{ font-size:.72rem; opacity:.85; letter-spacing:.04em }
/* フッターの最後の行が隠れないように余白を足す */
body:has(.pmr-float-cta) .pmr-foot{ padding-bottom:110px }
@media(max-width:560px){
  .pmr-float-cta{ left:16px; right:16px; bottom:calc(12px + env(safe-area-inset-bottom, 0px)); flex-direction:row; justify-content:center; gap:10px; padding:13px 16px }
  .pmr-float-cta-sub{ font-size:.75rem }
  body:has(.pmr-float-cta) .test-ribbon{ bottom:calc(76px + env(safe-area-inset-bottom, 0px)) }
}
@media (prefers-reduced-motion: reduce){ .pmr-float-cta{ transition:none } }

/* ==== 言語切り替え ==== */
.pmr-nav{ margin-left:auto }
.pmr-lang{ display:inline-flex; flex-shrink:0; border:1px solid var(--line); border-radius:var(--r-pill); overflow:hidden; font-size:.78rem }
.pmr-lang a{ padding:5px 11px; font-weight:700; color:var(--muted); transition: all var(--t) }
.pmr-lang a.is-active{ background:var(--ink); color:#fff }
.pmr-lang a:not(.is-active):hover{ background:var(--accent-soft); color:var(--accent) }
@media(max-width:780px){
  /* スマホ: ナビは画面外に出るので、言語切替はロゴとハンバーガーの間に常時表示 */
  .pmr-lang{ margin-left:auto }
  .pmr-lang a{ padding:7px 10px; font-size:.75rem }
}
@media(max-width:360px){
  .pmr-head-inner{ gap:10px }
  .pmr-brand-text{ font-size:.95rem }
}
.pmr-page-lead p{ margin:0 }

/* ==== 人物特性の質問（5 段階） ==== */
.pmr-likert-lead{ margin:-10px 0 18px; font-size:.88rem; color:var(--muted) }
.pmr-likert-item{ padding:16px 0; border-top:1px solid var(--line-2) }
.pmr-likert-item:first-of-type{ border-top:0; padding-top:4px }
.pmr-likert-q{ margin:0 0 12px; font-weight:700; color:var(--ink); line-height:1.6 }
.pmr-likert-item.is-answered .pmr-likert-q{ color:var(--ink-2) }
.pmr-likert-scale{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px }
.pmr-likert-opt{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer;
  padding:10px 4px; border:1.5px solid var(--line); border-radius:var(--r-sm); background:var(--bg-soft);
  text-align:center; transition:border-color var(--t), background var(--t);
}
.pmr-likert-opt:hover{ border-color:var(--accent); background:#fff }
.pmr-likert-opt input{ position:absolute; opacity:0; pointer-events:none }
.pmr-likert-dot{ width:18px; height:18px; border-radius:50%; border:2px solid var(--muted-2); background:#fff; transition:all var(--t) }
.pmr-likert-opt--5 .pmr-likert-dot, .pmr-likert-opt--1 .pmr-likert-dot{ width:22px; height:22px }
.pmr-likert-label{ font-size:.72rem; line-height:1.35; color:var(--ink-2); font-weight:600 }
.pmr-likert-opt:has(input:checked){ border-color:var(--accent); background:var(--accent-soft) }
.pmr-likert-opt:has(input:checked) .pmr-likert-dot{ border-color:var(--accent); background:var(--accent); box-shadow:inset 0 0 0 3px #fff }
.pmr-likert-opt:has(input:focus-visible){ outline:2px solid var(--accent); outline-offset:2px }
@media(max-width:560px){
  .pmr-likert-scale{ gap:4px }
  .pmr-likert-opt{ padding:8px 2px }
  .pmr-likert-label{ font-size:.64rem }
}

/* ==== 人物特性（トップ・結果・企業） ==== */
.pmr-trait-chips{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px }
.pmr-trait-chips li{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; display:flex; flex-direction:column; gap:2px }
.pmr-trait-chips b{ font-size:1rem; color:var(--ink) }
.pmr-trait-chips span{ font-size:.85rem; color:var(--muted); line-height:1.6 }
.pmr-trait-strong{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 auto 18px; max-width:860px }
.pmr-trait-strong span{ font-size:.85rem; font-weight:700; color:var(--muted); margin-right:4px }
.pmr-trait-strong b{ background:var(--accent); color:#fff; border-radius:var(--r-pill); padding:4px 14px; font-size:.9rem }
.pmr-traits{ display:flex; flex-direction:column; gap:10px; max-width:860px; margin:0 auto; --arch-color:var(--accent) }
.pmr-trait-row{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 3em; gap:14px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:12px 16px }
.pmr-trait-row.is-strong{ border-color:var(--accent) }
.pmr-trait-label{ display:flex; flex-direction:column; min-width:0 }
.pmr-trait-label b{ font-size:.95rem }
.pmr-trait-label small{ color:var(--muted); font-size:.78rem; line-height:1.5 }
@media(max-width:560px){ .pmr-trait-row{ grid-template-columns:minmax(0,1fr) 3em } .pmr-trait-row .pmr-bd-bar{ grid-column:1 / -1; grid-row:2 } }
.pmr-fit-chip--trait{ --arch-color:#15803d }
.pmr-want-traits{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px }
.pmr-want-traits li{ display:flex; flex-direction:column; padding:8px 10px; border-left:3px solid var(--accent); background:var(--bg-soft); border-radius:0 6px 6px 0 }
.pmr-want-traits b{ font-size:.9rem }
.pmr-want-traits span{ font-size:.8rem; color:var(--muted) }
.pmr-trait-row .pmr-bd-fill{ transition:width 1.1s cubic-bezier(.2,.7,.2,1) calc(var(--reveal-delay, 0ms) + .15s) }
.pmr-trait-row[data-reveal]:not(.is-in) .pmr-bd-fill{ width:0 !important }
.pmr-freetext-input{ min-height:150px; resize:vertical; line-height:1.7 }
.pmr-freetext-note{ margin:10px 0 0; font-size:.8rem; color:var(--muted) }

/* 結果ページ: マイページへの案内 */
.pmr-mypage-box{ display:flex; gap:20px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-top:20px; padding:20px 24px;
  background:linear-gradient(135deg, #eef2ff, #f5f3ff); border:1px solid #c7d2fe; border-radius:var(--r) }
.pmr-mypage-box b{ font-size:1.05rem; color:var(--ink) }
.pmr-mypage-box p{ margin:4px 0 0; color:var(--ink-2, #475569); font-size:.9rem; max-width:560px }
.pmr-mypage-box .pmr-btn{ white-space:nowrap }

/* ===== 第3期: 企業の魅力ページ（印・社長の想い・写真・働く人の声・募集ポジション） ===== */
.pmr-badges{ display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 0 }
.pmr-badge{ display:inline-flex; gap:4px; align-items:center; padding:3px 10px; border-radius:var(--r-pill); background:#ecfdf5; color:#047857; font-size:.75rem; font-weight:700; border:1px solid #a7f3d0 }
.pmr-badges--sm{ margin:2px 0 6px }
.pmr-badges--sm .pmr-badge{ font-size:.68rem; padding:1px 8px }
.pmr-ceo{ display:flex; gap:22px; align-items:flex-start; padding:20px; margin:0 0 30px; border-radius:var(--r-lg); background:linear-gradient(135deg, var(--accent-soft), #fff); border:1px solid var(--line) }
.pmr-ceo-photo{ width:150px; height:150px; object-fit:cover; border-radius:var(--r); flex-shrink:0; box-shadow:var(--shadow-2) }
.pmr-ceo-name{ margin:0; text-align:right; color:var(--ink-2); font-size:.9rem }
.pmr-gallery{ display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:12px; margin:0 0 30px }
.pmr-gallery figure{ margin:0 }
.pmr-gallery img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r); display:block }
.pmr-gallery figcaption{ font-size:.8rem; color:var(--muted); margin-top:4px }
.pmr-voices{ display:flex; flex-direction:column; gap:12px; margin:0 0 30px }
.pmr-voice{ display:flex; gap:14px; padding:14px 16px; border-radius:var(--r); background:var(--bg-card); border:1px solid var(--line) }
.pmr-voice img, .pmr-voice-ph{ width:64px; height:64px; border-radius:50%; object-fit:cover; flex-shrink:0 }
.pmr-voice-ph{ display:grid; place-items:center; background:var(--line-2); color:var(--muted-2) }
.pmr-voice b{ font-size:.85rem; color:var(--accent) }
.pmr-voice p{ margin:4px 0 0; font-size:.92rem; color:var(--ink-2); line-height:1.8 }
.pmr-positions{ display:flex; flex-direction:column; gap:12px; margin:0 0 30px }
.pmr-position{ padding:14px 16px; border-radius:var(--r); background:var(--bg-card); border:1px solid var(--line); border-left:4px solid var(--accent) }
.pmr-position b{ font-size:1rem }
.pmr-position-meta{ display:flex; flex-wrap:wrap; gap:6px 14px; margin:6px 0 0; font-size:.82rem; color:var(--ink-2) }
.pmr-position-meta span{ display:inline-flex; gap:4px; align-items:center }
.pmr-position-body{ margin:8px 0 0; font-size:.88rem; color:var(--ink-2); line-height:1.8 }
@media (max-width:640px){ .pmr-ceo{ flex-direction:column } .pmr-ceo-photo{ width:110px; height:110px } }

/* ===== 第3期: 地域・職種のページ ===== */
.area-hero{ display:flex; flex-direction:column; gap:4px; padding:22px 24px; margin:0 0 30px; border-radius:var(--r-lg); background:linear-gradient(135deg, #312e81, #6366f1); color:#fff }
.area-hero span{ font-size:.82rem; opacity:.85 }
.area-hero b{ font-size:clamp(1.8rem, 5vw, 2.6rem); font-weight:800; letter-spacing:-.02em }
.area-hero small{ font-size:1rem; font-weight:700 }
.area-hero em{ font-style:normal; font-size:.78rem; opacity:.8 }
.area-table{ width:100%; border-collapse:collapse; margin:0 0 30px; font-size:.9rem }
.area-table th, .area-table td{ padding:9px 8px; border-bottom:1px solid var(--line-2); text-align:left; vertical-align:middle }
.area-table th{ width:30%; font-weight:700; white-space:nowrap }
.area-table td.num{ text-align:right; white-space:nowrap; font-weight:700 }
.area-table--jobs th a{ color:var(--accent) }
.area-table--jobs th a:hover{ text-decoration:underline }
.area-table td:nth-child(2){ width:45% }
.area-bar{ display:block; height:8px; border-radius:4px; background:var(--accent-2); min-width:4px }
.area-types{ display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:10px; margin:0 0 30px }
.area-type{ padding:12px 14px; border-radius:var(--r); border:1px solid var(--line); border-top:4px solid var(--c); background:var(--bg-card) }
.area-type b{ display:block }
.area-type span{ color:#f59e0b; font-size:.8rem }
.area-type p{ margin:4px 0 0; font-size:.8rem; color:var(--muted) }
.area-links{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 30px }
.area-links a{ display:inline-flex; gap:6px; align-items:baseline; padding:6px 12px; border:1px solid var(--line); border-radius:var(--r-pill); background:var(--bg-card); font-size:.85rem }
.area-links a:hover{ border-color:var(--accent); color:var(--accent) }
.area-links small{ color:var(--muted); font-size:.72rem }
.area-regions{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:16px }
.area-region{ padding:16px; border-radius:var(--r); background:var(--bg-card); border:1px solid var(--line) }
.area-region h2{ margin:0 0 10px; font-size:1rem }
.area-region .area-links{ margin:0 }
.area-cos{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px }
.area-cos li{ display:flex; flex-direction:column }
.area-cos a{ color:var(--accent); font-weight:700 }
.area-cos small{ color:var(--muted); font-size:.75rem }
@media (max-width:640px){ .area-table th{ width:auto; white-space:normal } .area-table td:nth-child(2){ display:none } }

/* ===== 信頼の見える化（フッターの運営会社・運営会社ページ・利用者の声）・SNS シェア ===== */
.pmr-foot-op{ width:100%; margin:14px 0 0; font-size:.75rem; color:rgba(255,255,255,.5); line-height:1.7 }
.about-table{ width:100%; border-collapse:collapse; margin:0 0 30px }
.about-table th, .about-table td{ padding:12px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; font-size:.92rem }
.about-table th{ width:28%; color:var(--muted); font-weight:700; white-space:nowrap }
.about-flow{ list-style:none; counter-reset:af; padding:0; margin:0 0 16px; display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:12px }
.about-flow li{ counter-increment:af; padding:16px; border-radius:var(--r); background:var(--bg-card); border:1px solid var(--line); display:flex; flex-direction:column; gap:6px }
.about-flow li::before{ content:counter(af); display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--accent); color:#fff; font-weight:800; font-size:.85rem }
.about-flow span{ font-size:.85rem; color:var(--ink-2); line-height:1.75 }
.about-note{ padding:12px 14px; border-radius:var(--r-sm); background:var(--accent-soft); font-size:.88rem; color:#3730a3; margin:0 0 30px }
.about-safe{ padding-left:20px; margin:0 0 30px; line-height:1.9; font-size:.92rem }
.about-safe b{ display:block }
.pmr-voices-list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:14px }
.pmr-tm{ margin:0; padding:18px; border-radius:var(--r); background:var(--bg-card); border:1px solid var(--line); display:flex; flex-direction:column; gap:10px }
.pmr-tm blockquote{ margin:0; font-size:.92rem; line-height:1.85; color:var(--ink-2) }
.pmr-tm blockquote::before{ content:"“"; display:block; font-size:2rem; line-height:1; color:var(--accent-2) }
.pmr-tm figcaption{ font-size:.78rem; color:var(--muted); font-weight:700 }
.pmr-share{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:22px }
.pmr-share-label{ font-size:.8rem; font-weight:700; color:var(--muted); margin-right:4px }
.pmr-share-btn{ display:inline-flex; align-items:center; padding:7px 14px; border-radius:var(--r-pill); border:1px solid var(--line); background:#fff; color:var(--ink); font-size:.8rem; font-weight:700; cursor:pointer; font-family:inherit; text-decoration:none }
.pmr-share-btn:hover{ border-color:var(--accent); color:var(--accent) }
.pmr-share-btn.is-line{ background:#06c755; border-color:#06c755; color:#fff }
.pmr-share-btn.is-x{ background:#0f172a; border-color:#0f172a; color:#fff }
.pmr-share-btn.is-fb{ background:#1877f2; border-color:#1877f2; color:#fff }
.pmr-share-btn.is-line:hover, .pmr-share-btn.is-x:hover, .pmr-share-btn.is-fb:hover{ color:#fff; opacity:.88 }

/* ===== RSL のロゴ ===== */
.pmr-brand-emblem{ display:block; width:36px; height:36px; border-radius:50%; box-shadow:0 1px 4px rgba(15,23,42,.18) }

/* システム名（Job-Match）＋運営のブランド名 */
.pmr-brand-text small{ display:block; font-size:.62rem; font-weight:600; color:var(--muted); letter-spacing:.02em; margin-top:-2px }

/* 利用規約 */
.pmr-terms-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 0 }
.pmr-terms-tabs a{ padding:7px 16px; border-radius:var(--r-pill); border:1px solid var(--line); background:#fff; font-size:.88rem; font-weight:700 }
.pmr-terms-tabs a.is-on{ background:var(--ink); color:#fff; border-color:var(--ink) }
.pmr-draft{ padding:12px 16px; border-radius:var(--r-sm); background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; font-size:.9rem; margin:0 0 20px }
.pmr-doc ol{ padding-left:1.4em; margin:0 0 8px }

/* 「上場企業とのつながり」の表示 */
.pmr-trust-note{ display:inline-flex; align-items:center; gap:8px; margin:14px 0 0; padding:7px 14px; border-radius:var(--r-pill); background:#fff; border:1px solid #c7d2fe; color:#3730a3; font-size:.85rem; font-weight:700; box-shadow:var(--shadow-1) }
.pmr-trust-note--sm{ margin:6px 0 0 28px; padding:4px 10px; font-size:.78rem; box-shadow:none }

/* 市場価値（今の年収と目安の比較）・人物特性の上位◯% */
.pmr-mv{ margin:16px 0 8px; padding:14px 16px; border-radius:var(--r); background:var(--bg-soft); border:1px solid var(--line) }
.pmr-mv--up{ background:linear-gradient(135deg, #ecfdf5, #eef2ff); border-color:#a7f3d0 }
.pmr-mv-label{ display:block; font-size:.75rem; font-weight:800; letter-spacing:.06em; color:var(--muted) }
.pmr-mv-main{ margin:4px 0 0; font-size:1.02rem; line-height:1.7; color:var(--ink) }
.pmr-mv-main strong{ color:#047857; font-size:1.35em }
.pmr-mv-sub{ margin:6px 0 0; font-size:.85rem; color:var(--ink-2) }
.pmr-mv-more{ margin:8px 0 10px; padding-left:1.2em; font-size:.88rem; color:var(--ink-2); line-height:1.8 }
.pmr-mv-more b{ color:#047857 }
.pmr-pct{ display:inline-block; margin-left:6px; padding:1px 8px; border-radius:var(--r-pill); background:#fef3c7; color:#92400e; font-size:.72rem; font-style:normal; font-weight:800; vertical-align:middle }
.pmr-pct-note{ margin:4px 0 14px; font-size:.75rem; color:var(--muted) }
.pmr-next-box--try{ background:#fffbeb; border-color:#fde68a }
.pmr-salary-card .pmr-mv-more{ color:rgba(255,255,255,.92) }
.pmr-salary-card .pmr-mv-more b{ color:#a7f3d0 }

/* 理念（運営会社ページ）・ひとことの理念（トップページ） */
.about-philo{ text-align:center; padding:34px 20px; margin:0 0 10px; border-radius:var(--r); background:linear-gradient(135deg, #eef2ff, #fdf8ec); border:1px solid #e0e7ff; scroll-margin-top:90px }
.pmr-doc .about-philo-title{ margin:10px 0 0; padding:0; border:0; font-size:clamp(1.15rem, 3.4vw, 1.55rem); line-height:1.6; font-weight:800; color:#1e1b4b }
.about-prose p{ margin:0 0 14px; line-height:2; font-size:.95rem; color:var(--ink-2) }
.about-prose-em{ padding:14px 18px; border-left:4px solid #c9963f; background:#fdf8ec; border-radius:0 var(--r-sm) var(--r-sm) 0; font-weight:700; color:#5b4214 !important }
.about-values{ list-style:none; counter-reset:av; padding:0; margin:0 0 30px; display:grid; gap:12px }
.about-values li{ counter-increment:av; display:grid; grid-template-columns:34px 1fr; gap:4px 12px; padding:16px; border-radius:var(--r); background:var(--bg-card); border:1px solid var(--line) }
.about-values li::before{ content:counter(av); grid-row:span 2; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--accent); color:#fff; font-weight:800; font-size:.85rem }
.about-values b{ font-size:.98rem }
.about-values span{ font-size:.88rem; color:var(--ink-2); line-height:1.8 }
.about-story{ margin:0 0 34px; padding:22px 24px; border-radius:var(--r); background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-1) }
.about-story p{ margin:0 0 12px; line-height:2; font-size:.95rem; color:var(--ink-2) }
.about-story-sign{ margin:18px 0 0 !important; text-align:right; font-weight:700; color:var(--ink) !important }
.pmr-mission{ padding:46px 0; text-align:center; background:linear-gradient(135deg, #eef2ff, #fdf8ec); border-top:1px solid var(--line); border-bottom:1px solid var(--line) }
.pmr-mission-text{ margin:12px 0 14px; font-size:clamp(1.15rem, 3.6vw, 1.7rem); line-height:1.6; font-weight:800; color:#1e1b4b }
.pmr-mission-link{ font-weight:700; font-size:.92rem; color:var(--accent); text-decoration:none }
.pmr-mission-link:hover{ text-decoration:underline }

/* 公開準備中（入口だけ公開）: 診断のメール欄・公開のお知らせフォーム */
.pmr-field--wide{ grid-column: 1 / -1 }
.pmr-field-help{ display:block; margin-top:6px; font-size:12.5px; color:var(--muted, #6b7280); line-height:1.6 }
.pmr-prelaunch-form{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; max-width:560px }
.pmr-prelaunch-form .pmr-input{ flex:1 1 240px; min-width:0 }
.pmr-prelaunch-form small{ flex-basis:100%; font-size:12px; color:var(--muted, #6b7280) }

/* ===== サービス名を目立たせる（2026-11-10）: ヘッダーの名前・トップと LP の大きなブランドの見出し ===== */
.pmr-name-hot{
  background:linear-gradient(100deg, #f97316 0%, #e11d48 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.pmr-brand-emblem{ width:44px; height:44px }
.pmr-brand-text{ font-size:1.32rem; font-weight:900; letter-spacing:-.02em; line-height:1.15 }
.pmr-brand-text small{ font-size:.66rem }
.pmr-hero-brand{ display:flex; align-items:center; gap:14px; margin:0 0 22px }
.pmr-hero-brand-emblem{ width:64px; height:64px; border-radius:50%; box-shadow:0 4px 14px rgba(15,23,42,.18); flex:0 0 auto }
.pmr-hero-brand-name{ display:block; font-size:clamp(1.7rem, 3.4vw, 2.5rem); font-weight:900; letter-spacing:-.03em; line-height:1.1; color:var(--ink) }
.pmr-hero-brand small{ display:block; margin-top:4px; font-size:.78rem; font-weight:700; letter-spacing:.06em; color:var(--muted) }
.pmr-hero-brand small i{ font-style:normal; margin:0 6px; color:#cbd5e1 }
@media (max-width: 760px){
  .pmr-brand-emblem{ width:38px; height:38px }
  .pmr-brand-text{ font-size:1.12rem }
  .pmr-hero-brand{ justify-content:center; gap:10px; margin-bottom:16px }
  .pmr-hero-brand-emblem{ width:48px; height:48px }
  .pmr-hero-brand-name{ font-size:1.6rem; text-align:left }
}

/* スマートフォンで横にはみ出さない（右から出るメニュー・背景の飾りがページ幅を広げていたため）。clip は追従するヘッダーを壊さない */
html, body{ overflow-x:hidden; overflow-x:clip }
@media (max-width: 760px){
  .pmr-brand-text{ font-size:1.02rem; white-space:nowrap }
  .pmr-brand-text small{ font-size:.6rem }
  .pmr-brand-emblem{ width:34px; height:34px }
}
