/* =========================================================
   DeBoラーニングパス 無料診断サイト
   Design language: 16personalities-inspired
   White base + Teal-green primary, Gold / Coral / Red accents
   ========================================================= */

:root{
  /* --- Brand base (16personalities-like) --- */
  --teal-700:#1f7d72;
  --teal-600:#279e8e;
  --teal-500:#2fae9c;
  --teal-400:#4fc2af;
  --teal-100:#e3f6f1;
  --teal-050:#f2fbf9;

  /* --- Accent colors used per risk-level / highlight --- */
  --gold-700:#a9740f;
  --gold-600:#c99213;
  --gold-500:#eab308;
  --gold-100:#fef3c7;

  --coral-600:#d1592f;
  --coral-500:#e37046;
  --coral-100:#fbe6dc;

  --red-600:#c0392b;
  --red-500:#dd5240;
  --red-100:#fbe1dd;

  /* --- DeBo logo pink (brand accent) --- */
  --pink-700:#c96a70;
  --pink-600:#dc7f84;
  --pink-500:#e59295;
  --pink-400:#eeacae;
  --pink-100:#fbe7e8;
  --pink-050:#fdf3f3;

  /* --- DeBo logo teal (secondary accent, distinct from primary teal) --- */
  --logo-teal-500:#75b9c6;

  /* --- Neutrals --- */
  --ink-900:#293241;
  --ink-700:#4a5568;
  --ink-500:#7b8794;
  --ink-300:#c3cbd4;
  --line:#e6eaee;
  --paper:#ffffff;
  --paper-soft:#f7faf9;
  --success:#279e8e;

  --radius-md:16px;
  --radius-lg:24px;
  --radius-pill:999px;
  --shadow-soft:0 8px 24px rgba(41,50,65,.08);
  --shadow-card:0 14px 36px rgba(41,50,65,.10);
  --watermark-size:340px;
  --font-jp:'Noto Sans JP','Zen Kaku Gothic New',sans-serif;
  --font-heading:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-jp);
  color:var(--ink-900);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:var(--font-heading);
  margin:0;
  line-height:1.5;
}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;}

.container{
  width:100%;
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
  position:relative;
  z-index:1;
}
.container--narrow{max-width:720px;}

/* ============ Progress bar ============ */
.progress-shell{
  position:fixed;
  top:0;left:0;right:0;
  height:5px;
  background:var(--line);
  z-index:2000;
}
.progress-shell__bar{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,var(--teal-500),var(--teal-400));
  transition:width .4s ease;
}

/* ============ Header ============ */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.site-header__watermark{
  position:absolute;
  top:50%; right:6%;
  transform:translateY(-50%);
  width:120px;
  height:auto;
  opacity:.06;
  pointer-events:none;
  z-index:0;
}
.site-header__inner{
  max-width:1080px;
  margin:0 auto;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
  z-index:1;
}
.brand{
  font-family:var(--font-heading);
  font-weight:900;
  font-size:20px;
  color:var(--ink-900);
  letter-spacing:.02em;
  display:flex;
  align-items:center;
  gap:8px;
}
.brand__logo{
  width:28px;
  height:28px;
  object-fit:contain;
  flex-shrink:0;
}
.brand__mark{
  color:var(--teal-600);
  margin-right:2px;
}
.header-tag{
  font-size:12px;
  font-weight:700;
  color:var(--teal-700);
  background:var(--teal-100);
  padding:6px 14px;
  border-radius:var(--radius-pill);
  letter-spacing:.03em;
  white-space:nowrap;
}

/* ============ Screens (SPA sections) ============ */
.screen{
  display:none !important;
  min-height:calc(100vh - 68px);
  padding:56px 0 80px;
  position:relative;
  scroll-margin-top:5px;
}
.screen.is-active{
  display:block !important;
  animation:fadeUp .5s ease both;
}
@keyframes fadeUp{
  from{opacity:0; transform:translateY(16px);}
  to{opacity:1; transform:translateY(0);}
}

/* ============ Landing (brushed-up, playful hero) ============ */
.screen--landing{
  background:
    radial-gradient(circle at 85% 8%, rgba(229,146,149,.35), transparent 45%),
    radial-gradient(circle at 6% 90%, rgba(255,216,140,.28), transparent 45%),
    linear-gradient(160deg,var(--teal-700) 0%, var(--teal-600) 38%, var(--teal-500) 68%, var(--teal-400) 100%);
  color:var(--paper);
  overflow:hidden;
  min-height:auto;
  padding-top:56px;
  padding-bottom:16px;
}
/* is-active 時のみ表示させる（.screen.is-active の display:block を上書きして flex 中央寄せにする） */
.screen--landing.is-active{
  display:flex !important;
  align-items:center;
}
.landing-bg{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;}
.landing-bg__shape{
  position:absolute;
  border-radius:50%;
  opacity:.5;
}
.landing-bg__watermark{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%) rotate(-8deg);
  width:min(640px,80vw);
  height:auto;
  opacity:.06;
  filter:brightness(0) invert(1);
}
.landing-bg__watermark--loading{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%) rotate(-8deg);
  width:min(520px,72vw);
  height:auto;
  opacity:.08;
  filter:brightness(0) invert(1);
  pointer-events:none;
  z-index:0;
}

/* Watermark used on plain-background screens (gate / quiz / result) */
.screen-watermark{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:min(var(--watermark-size),70vw);
  height:auto;
  opacity:.045;
  pointer-events:none;
  z-index:0;
}
.landing-bg__shape--1{
  width:460px;height:460px;
  background:radial-gradient(circle,rgba(255,255,255,.18),transparent 70%);
  top:-180px; right:-140px;
}
.landing-bg__shape--2{
  width:300px;height:300px;
  border:1px solid rgba(255,255,255,.25);
  background:transparent;
  bottom:0px; left:-80px;
}
.landing-bg__shape--3{
  width:140px;height:140px;
  border:1px solid rgba(255,255,255,.2);
  background:transparent;
  top:40%; right:6%;
}
.landing-bg__shape--pink{
  position:absolute;
  width:220px; height:220px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(229,146,149,.4),transparent 70%);
  bottom:14%; right:14%;
}
.landing-bg__blob{
  position:absolute;
  border-radius:42% 58% 65% 35% / 45% 45% 55% 55%;
  filter:blur(1px);
}
.landing-bg__blob--1{
  width:180px; height:180px;
  background:rgba(229,146,149,.22);
  top:14%; left:8%;
  animation:blobFloat 9s ease-in-out infinite;
}
.landing-bg__blob--2{
  width:130px; height:130px;
  background:rgba(255,224,158,.25);
  bottom:16%; right:26%;
  animation:blobFloat 7s ease-in-out infinite reverse;
}
@keyframes blobFloat{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-18px) rotate(8deg); }
}

/* Floating decorative icons / logos — adds a lively, "wow" feel */
.landing-float{
  position:absolute;
  pointer-events:none;
  z-index:0;
}
.landing-float--logo1{
  width:64px; height:auto;
  top:14%; left:10%;
  opacity:.9;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.18));
  animation:floatSpin 12s ease-in-out infinite;
}
.landing-float--logo2{
  width:46px; height:auto;
  bottom:20%; right:11%;
  opacity:.85;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.18));
  animation:floatSpin 10s ease-in-out infinite reverse;
}
.landing-float--icon1,
.landing-float--icon2,
.landing-float--icon3,
.landing-float--icon4{
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px; height:46px;
  border-radius:50%;
  background:rgba(255,255,255,.9);
  box-shadow:0 8px 20px rgba(0,0,0,.15);
  font-size:18px;
}
.landing-float--icon1{ top:22%; right:20%; color:var(--pink-600); animation:floatBounce 6s ease-in-out infinite; }
.landing-float--icon2{ bottom:6%; left:5%; color:var(--gold-600); animation:floatBounce 7.5s ease-in-out infinite .5s; }
.landing-float--icon3{ top:60%; right:8%; color:var(--teal-700); width:40px; height:40px; font-size:16px; animation:floatBounce 8s ease-in-out infinite 1s; }
.landing-float--icon4{ top:10%; left:32%; color:var(--gold-600); width:34px; height:34px; font-size:14px; animation:floatBounce 6.5s ease-in-out infinite 1.3s; }
.landing-float--dot1,
.landing-float--dot2,
.landing-float--dot3{
  border-radius:50%;
}
.landing-float--dot1{ width:14px; height:14px; background:var(--pink-400); top:32%; left:22%; animation:floatBounce 5s ease-in-out infinite; }
.landing-float--dot2{ width:10px; height:10px; background:#ffe9a8; top:74%; left:38%; animation:floatBounce 6s ease-in-out infinite .8s; }
.landing-float--dot3{ width:18px; height:18px; background:rgba(255,255,255,.5); top:8%; right:38%; animation:floatBounce 7s ease-in-out infinite .3s; }

@keyframes floatBounce{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-14px); }
}
@keyframes floatSpin{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-10px) rotate(10deg); }
}
@media (max-width:768px){
  .landing-float--logo1,.landing-float--logo2,
  .landing-float--icon1,.landing-float--icon2,.landing-float--icon3,.landing-float--icon4,
  .landing-float--dot1,.landing-float--dot2,.landing-float--dot3{
    display:none;
  }
}

.landing-container{position:relative; z-index:1; text-align:center; padding:24px 0 20px;}

.landing-logo-badge{
  width:88px; height:88px;
  margin:0 auto 22px;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 14px 30px rgba(0,0,0,.2), 0 0 0 6px rgba(255,255,255,.18);
  animation:badgePop .7s cubic-bezier(.34,1.56,.64,1) both;
}
.landing-logo-badge img{
  width:58px; height:58px;
  object-fit:contain;
}
@keyframes badgePop{
  0%{ transform:scale(0.4) rotate(-20deg); opacity:0; }
  100%{ transform:scale(1) rotate(0deg); opacity:1; }
}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:.04em;
  color:var(--ink-900);
  background:var(--paper);
  border:none;
  padding:9px 20px; border-radius:var(--radius-pill);
  margin-bottom:28px;
  box-shadow:0 6px 16px rgba(0,0,0,.12);
}
.eyebrow i{color:var(--pink-600);}
.eyebrow--highlight{
  display:flex;
  width:fit-content;
  margin-left:auto;
  margin-right:auto;
  font-size:19px;
  font-weight:900;
  padding:16px 32px;
  gap:12px;
  background:var(--gold-500);
  color:#5c3d00;
  border:3px solid #ffffff;
  box-shadow:0 10px 26px rgba(169,116,15,.4);
  text-align:center;
  border-radius:var(--radius-lg);
}
.eyebrow--highlight i{ color:#5c3d00; }
.eyebrow--highlight__icon{
  font-size:1.6em;
  flex-shrink:0;
}
.eyebrow--highlight__text{
  line-height:1.5;
}
.landing-title{
  font-size:clamp(28px,5vw,46px);
  font-weight:900;
  color:var(--paper);
  margin-bottom:24px;
  text-shadow:0 2px 12px rgba(0,0,0,.1);
}
.landing-title .highlight{
  color:#fff;
  position:relative;
  display:inline-block;
  z-index:1;
  text-decoration:none;
}
.landing-title .highlight::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0.08em;
  height:0.28em;
  background:var(--gold-500);
  border-radius:3px;
  z-index:-1;
}
.landing-lead{
  font-size:15px;
  color:rgba(255,255,255,.94);
  line-height:1.9;
  max-width:640px;
  margin:0 auto 32px;
}
.landing-blocks{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:stretch;
  gap:10px;
  margin-bottom:20px;
}
.landing-blocks.landing-blocks .landing-audience,
.landing-blocks.landing-blocks .landing-points{
  margin:0;
  flex:0 1 440px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
@media (max-width:860px){
  .landing-blocks{ flex-direction:column; align-items:center; }
}
.landing-points{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:440px;
  margin:0 auto 40px;
  text-align:center;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.3);
  border-radius:var(--radius-lg);
  padding:24px 26px;
  box-shadow:0 20px 50px rgba(0,0,0,.12);
}
.landing-points li{
  display:flex; align-items:center; justify-content:center; gap:12px;
  font-size:15px;
  color:#ffffff;
}
.landing-points__text{
  flex:0 1 auto;
}
.landing-points__strong{
  font-weight:900;
  position:relative;
  display:inline-block;
  z-index:1;
}
.landing-points__strong::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0.08em;
  height:0.28em;
  background:var(--gold-500);
  border-radius:3px;
  z-index:-1;
}
.landing-points__num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px; height:26px;
  flex-shrink:0;
  border-radius:50%;
  background:var(--teal-100);
  color:var(--teal-700);
  font-size:11px;
  font-weight:900;
}
.landing-points__num--pink{ background:var(--pink-100); color:var(--pink-700); }
.landing-points__num--gold{ background:var(--gold-100); color:var(--gold-700); }

.landing-points__check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px; height:26px;
  flex-shrink:0;
  border-radius:50%;
  background:var(--teal-100);
  color:var(--teal-700);
  font-size:12px;
}
.landing-points__check--teal{ background:var(--teal-100); color:var(--teal-700); }
.landing-points__check--pink{ background:var(--pink-100); color:var(--pink-700); }
.landing-points__check--gold{ background:var(--gold-100); color:var(--gold-700); }
.landing-audience{
  width:100%;
  max-width:440px;
  margin:0 auto 28px;
  text-align:center;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.3);
  border-radius:var(--radius-lg);
  padding:20px 24px;
  box-shadow:0 16px 40px rgba(0,0,0,.10);
}
.landing-audience__label{
  font-size:19px;
  font-weight:900;
  color:#fff;
  margin-bottom:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  letter-spacing:.02em;
}
.landing-audience__label i{ color:var(--gold-500); font-size:1.6em; flex-shrink:0; }
.landing-audience__label-text{
  position:relative;
  display:inline-block;
  z-index:1;
  text-shadow:0 2px 12px rgba(0,0,0,.1);
}
.landing-audience__label-text::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0.08em;
  height:0.28em;
  background:var(--gold-500);
  border-radius:3px;
  z-index:-1;
}
.landing-audience__chips{
  display:grid;
  grid-template-columns:repeat(2,max-content);
  justify-content:center;
  gap:10px 14px;
  margin-bottom:12px;
}
.landing-audience__chips li{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-size:15px;
  font-weight:700;
  color:var(--teal-700);
  background:var(--paper);
  padding:8px 16px;
  border-radius:var(--radius-pill);
  box-shadow:0 6px 16px rgba(0,0,0,.10);
  white-space:nowrap;
}
.landing-audience__chips i{ color:var(--pink-600); font-size:16px; }
@media (max-width:480px){
  .landing-audience__chips{ gap:8px 10px; }
  .landing-audience__chips li{ font-size:13px; padding:7px 10px; }
}
.landing-audience__note{
  font-size:12.5px;
  color:rgba(255,255,255,.9);
  line-height:1.7;
}
@media (max-width:600px){
  .landing-audience__chips li{ font-size:12px; padding:7px 13px; }
}
.landing-note{
  margin-top:16px;
  margin-bottom:36px;
  font-size:12px;
  color:rgba(255,255,255,.85);
}
.br-pc{display:inline;}
@media (max-width:600px){ .br-pc{display:none;} }

/* Attention-grabbing pulse on the main CTA */
.btn--pulse{
  animation:ctaPulse 2.6s ease-in-out infinite;
}
@keyframes ctaPulse{
  0%,100%{ box-shadow:0 10px 24px rgba(0,0,0,.14), 0 0 0 0 rgba(255,255,255,.5); }
  50%{ box-shadow:0 14px 30px rgba(0,0,0,.2), 0 0 0 10px rgba(255,255,255,0); }
}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:none;
  cursor:pointer;
  border-radius:var(--radius-pill);
  font-weight:700;
  font-family:var(--font-jp);
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease, background .18s ease;
}
.btn:active{transform:translateY(1px) scale(.99);}
.btn--primary{
  background:var(--paper);
  color:var(--teal-700);
  padding:15px 34px;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}
.btn--primary:hover{box-shadow:0 14px 30px rgba(0,0,0,.2); background:#fbfffe;}
.screen--gate .btn--primary,
.screen--quiz .btn--primary,
.screen--result .btn--primary{
  background:var(--teal-600);
  color:#fff;
  box-shadow:0 10px 24px rgba(39,158,142,.30);
}
.screen--gate .btn--primary:hover,
.screen--quiz .btn--primary:hover,
.screen--result .btn--primary:hover{
  background:var(--teal-700);
  box-shadow:0 14px 30px rgba(39,158,142,.4);
}
.btn--gold{
  /* var()を含むgradientでPDF自動生成時にエラーになる不具合の対策としてリテラル指定 */
  background:linear-gradient(135deg,#c99213,#a9740f);
  color:#ffffff;
  padding:17px 34px;
  box-shadow:0 10px 26px rgba(169,116,15,.45);
}
.btn--gold:hover{box-shadow:0 14px 30px rgba(169,116,15,.55);}
.btn--ghost{
  background:transparent;
  color:var(--teal-700);
  border:1.5px solid var(--line);
  padding:12px 26px;
}
.btn--ghost:hover{background:var(--teal-050); border-color:var(--teal-400);}
.btn--lg{font-size:16px;}
.btn--block{width:100%;}
.btn:disabled{opacity:.45; cursor:not-allowed;}

/* ============ Gate (form) screen ============ */
.screen--gate{background:var(--paper-soft); position:relative; overflow:hidden;}
.step-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--teal-600);
  text-transform:uppercase;
  margin-bottom:10px;
}
.section-title{
  font-size:clamp(22px,4vw,30px);
  font-weight:900;
  color:var(--ink-900);
  margin-bottom:14px;
}
.section-lead{
  font-size:14px;
  color:var(--ink-500);
  margin-bottom:32px;
  line-height:1.8;
}
.gate-form{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:32px;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--line);
  border-top:4px solid var(--pink-500);
}
.form-row{margin-bottom:22px;}
.form-row label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--ink-900);
  margin-bottom:8px;
}
.form-row .req{
  color:var(--coral-600);
  font-size:11px;
  font-weight:700;
  border:1px solid var(--coral-500);
  padding:1px 6px;
  border-radius:4px;
  margin-left:4px;
  vertical-align:middle;
}
.form-row input[type="text"],
.form-row input[type="email"]{
  width:100%;
  padding:13px 16px;
  border:1.5px solid var(--line);
  border-radius:12px;
  font-size:15px;
  font-family:inherit;
  background:var(--paper-soft);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.form-row input:focus{
  outline:none;
  border-color:var(--teal-500);
  box-shadow:0 0 0 3px rgba(47,174,156,.15);
  background:var(--paper);
}
.form-error{
  font-size:12px;
  color:var(--coral-600);
  min-height:16px;
  margin-top:6px;
}
.checkbox-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:13px;
  color:var(--ink-700);
  margin-bottom:26px;
  cursor:pointer;
}
.checkbox-row input{margin-top:3px; accent-color:var(--pink-600);}

/* ============ Quiz screen ============ */
.screen--quiz{background:var(--paper-soft); position:relative; overflow:hidden;}
.quiz-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
  flex-wrap:wrap;
  gap:8px;
}
.quiz-category{
  font-size:12px;
  color:var(--teal-700);
  background:var(--teal-100);
  padding:6px 14px;
  border-radius:var(--radius-pill);
  font-weight:700;
  transition:background .2s ease, color .2s ease;
}
.quiz-category.accent-pink{ color:var(--pink-700); background:var(--pink-100); }
.quiz-category.accent-gold{ color:var(--gold-700); background:var(--gold-100); }
.quiz-category.accent-coral{ color:var(--coral-600); background:var(--coral-100); }
.quiz-category.accent-logoteal{ color:#1f6b76; background:#e7f2f4; }

.quiz-card{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:36px 32px;
  box-shadow:var(--shadow-card);
  border:1px solid var(--line);
  border-top:4px solid var(--teal-500);
  min-height:260px;
  transition:border-color .2s ease;
}
.quiz-card.accent-pink{ border-top-color:var(--pink-500); }
.quiz-card.accent-gold{ border-top-color:var(--gold-500); }
.quiz-card.accent-coral{ border-top-color:var(--coral-500); }
.quiz-card.accent-logoteal{ border-top-color:var(--logo-teal-500); }

.quiz-option.accent-pink-hover:hover{border-color:var(--pink-400);}
.quiz-question{
  font-size:clamp(18px,3vw,22px);
  font-weight:700;
  color:var(--ink-900);
  margin-bottom:26px;
  line-height:1.6;
}
.quiz-options{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.quiz-option{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  border:1.5px solid var(--line);
  border-radius:var(--radius-md);
  cursor:pointer;
  background:var(--paper-soft);
  transition:all .16s ease;
  font-size:14.5px;
  color:var(--ink-900);
}
.quiz-option:hover{
  border-color:var(--teal-400);
  background:var(--teal-050);
  transform:translateX(2px);
}
.quiz-option.is-selected{
  border-color:var(--teal-500);
  background:var(--teal-100);
}
.quiz-option__radio{
  width:20px; height:20px;
  border-radius:50%;
  border:2px solid var(--ink-300);
  flex-shrink:0;
  position:relative;
  transition:border-color .16s ease;
}
.quiz-option.is-selected .quiz-option__radio{
  border-color:var(--teal-600);
}
.quiz-option.is-selected .quiz-option__radio::after{
  content:'';
  position:absolute; inset:3px;
  border-radius:50%;
  background:var(--teal-600);
}
.quiz-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:22px;
  flex-wrap:wrap;
  gap:10px;
}
.quiz-nav__hint{
  font-size:12px;
  color:var(--ink-500);
}


/* ============ Result screen ============ */
.screen--result{background:var(--paper-soft); position:relative; overflow:hidden;}
.result-hello{
  font-size:clamp(20px,3.4vw,26px);
  font-weight:900;
  color:var(--ink-900);
  margin-bottom:26px;
}

.result-level{
  display:flex;
  align-items:center;
  gap:20px;
  background:var(--teal-600);
  border-radius:var(--radius-lg);
  padding:26px 28px;
  margin-bottom:32px;
  box-shadow:var(--shadow-card);
  position:relative;
  overflow:hidden;
  /* transition:background .3s ease; は意図的に削除。
     診断結果表示直後に自動実行されるPDF生成（html2canvas）が、backgroundの
     トランジション中（＝グラデーションが補間途中の状態）をキャプチャしてしまうと
     "addColorStop...non-finite" エラーで失敗する不具合があり、遅延時間で回避しようと
     したが実行環境によってタイミングがずれ再発したため、根本対策として
     トランジション自体を廃止した（結果表示は一瞬なので視覚的な影響はごく僅か）。 */
}
.result-level::after{
  content:'';
  position:absolute; right:-40px; top:-40px;
  width:160px; height:160px;
  border-radius:50%;
  /* circleに明示的な半径を指定（html2canvasが半径未指定のcircleグラデーションを
     正しく計算できず、PDF生成時に "addColorStop...non-finite" エラーで
     落ちる不具合の回避策） */
  background:radial-gradient(circle 80px at center,rgba(255,255,255,.18),transparent 70%);
}
/* PDF自動生成（html2canvas）が、data-level切替直後にCSS変数(var())を含む
   gradientの色を正しく解決できず"addColorStop...non-finite"エラーになる不具合が
   確認されたため、ここでは var() を使わずリテラルのHEXカラーを直接指定している。 */
.result-level[data-level="low"]{background:linear-gradient(135deg,#279e8e,#2fae9c);}
.result-level[data-level="mid"]{background:linear-gradient(135deg,#a9740f,#c99213);}
.result-level[data-level="high"]{background:linear-gradient(135deg,#d1592f,#e37046);}
.result-level[data-level="critical"]{background:linear-gradient(135deg,#c0392b,#dd5240);}
.result-level__badge{
  flex-shrink:0;
  width:64px; height:64px;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:var(--ink-900);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:16px;
  z-index:1;
}
.result-level__label{
  font-size:18px;
  font-weight:900;
  color:#ffffff;
  margin-bottom:6px;
  text-shadow:0 1px 6px rgba(0,0,0,.25);
}
.result-level__desc{
  font-size:13px;
  color:rgba(255,255,255,.92);
  line-height:1.8;
  text-shadow:0 1px 4px rgba(0,0,0,.15);
}

.result-gauge-wrap{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:28px;
  margin-bottom:28px;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--line);
  text-align:center;
}
.gauge-chart-holder{
  position:relative;
  max-width:320px;
  margin:0 auto;
}
.gauge-score{
  position:absolute;
  left:50%; bottom:6%;
  transform:translateX(-50%);
  font-size:34px;
  font-weight:900;
  color:var(--ink-900);
}
.gauge-score span{
  font-size:15px;
  color:var(--ink-500);
  font-weight:700;
  margin-left:2px;
}
.gauge-caption{
  font-size:12px;
  color:var(--ink-500);
  margin-top:6px;
}

.result-radar-wrap{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:28px;
  margin-bottom:28px;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--line);
}
.result-subtitle{
  font-size:16px;
  font-weight:900;
  color:var(--ink-900);
  margin-bottom:18px;
  display:flex;
  align-items:center;
  gap:8px;
}
.result-subtitle i{color:var(--teal-600);}
.radar-chart-holder{max-width:480px; margin:0 auto; height:320px;}

.result-comments{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:28px;
  margin-bottom:28px;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--line);
}
.comment-list{display:flex; flex-direction:column; gap:14px;}
.comment-list li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:13.5px;
  color:var(--ink-700);
  line-height:1.8;
  padding:14px 16px;
  background:var(--teal-050);
  border-left:3px solid var(--teal-500);
  border-radius:8px;
}
.comment-list li.is-risk{
  background:var(--coral-100);
  border-left-color:var(--coral-500);
}
.comment-list li i{color:var(--teal-600); margin-top:2px;}
.comment-list li.is-risk i{color:var(--coral-600);}

.warning-block{
  display:flex;
  gap:16px;
  align-items:flex-start;
  background:var(--red-100);
  border:1.5px solid #f1beb4;
  border-radius:var(--radius-lg);
  padding:22px 24px;
  margin-bottom:32px;
}
.warning-block__icon{
  font-size:24px;
  color:var(--red-600);
  flex-shrink:0;
  margin-top:2px;
}
.warning-block__text{
  font-size:13.5px;
  color:#7c2a20;
  line-height:1.9;
}
.warning-block__text strong{color:var(--red-600);}

.solution-block{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  margin-bottom:28px;
  color:var(--ink-900);
}
.solution-block__eyebrow{
  font-size:12px;
  color:var(--teal-600);
  letter-spacing:.08em;
  font-weight:700;
  margin-bottom:10px;
}
.solution-block__title{
  font-size:clamp(18px,3vw,22px);
  font-weight:900;
  line-height:1.6;
  margin-bottom:16px;
  color:var(--ink-900);
}
.brand-inline{white-space:nowrap; color:var(--teal-700);}
.solution-block__lead{
  font-size:13.5px;
  color:var(--ink-700);
  line-height:1.9;
  margin-bottom:24px;
}
.solution-features{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}
.solution-features li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  background:var(--teal-050);
  border:1px solid var(--teal-100);
  border-radius:var(--radius-md);
  padding:16px;
  font-size:13px;
  font-weight:700;
  color:var(--ink-900);
}
.solution-features li.is-pink{ background:var(--pink-050); border-color:var(--pink-100); }
.solution-features li.is-gold{ background:var(--gold-100); border-color:#f0dba8; }
.solution-features li.is-coral{ background:var(--coral-100); border-color:#f4c9b3; }
.solution-features i{
  color:var(--teal-600);
  font-size:20px;
  margin-top:2px;
}
.solution-features li.is-pink i{ color:var(--pink-600); }
.solution-features li.is-gold i{ color:var(--gold-600); }
.solution-features li.is-coral i{ color:var(--coral-600); }
.solution-features small{
  display:block;
  font-weight:400;
  color:var(--ink-500);
  font-size:11.5px;
  margin-top:4px;
  line-height:1.6;
}

/* ============ Grant block (highlight) ============ */
.grant-block{
  position:relative;
  /* var()を含むgradientでPDF自動生成時にエラーになる不具合の対策としてリテラル指定 */
  background:linear-gradient(150deg,#c99213,#eab308 55%,#c99213);
  border:none;
  border-radius:var(--radius-lg);
  padding:44px 28px 36px;
  margin-bottom:32px;
  text-align:center;
  overflow:hidden;
  box-shadow:0 20px 50px rgba(138,95,15,.4);
}
.grant-block::before{
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 12% 15%, rgba(255,255,255,.25), transparent 40%),
    radial-gradient(circle at 88% 85%, rgba(255,255,255,.18), transparent 45%);
  pointer-events:none;
}
.grant-block__ribbon{
  position:absolute;
  top:16px; left:50%;
  transform:translateX(-50%);
  background:#ffffff;
  color:var(--gold-600);
  font-size:11px;
  font-weight:900;
  letter-spacing:.05em;
  padding:6px 18px;
  border-radius:var(--radius-pill);
  box-shadow:0 6px 14px rgba(0,0,0,.15);
}
.grant-block__inner{
  position:relative;
  z-index:1;
  margin-top:22px;
}
.grant-block__icon{
  font-size:40px;
  color:#ffffff;
  margin-bottom:14px;
  text-shadow:0 2px 10px rgba(90,60,0,.45);
}
.grant-block__title{
  font-size:clamp(19px,3.6vw,26px);
  font-weight:900;
  color:#ffffff;
  line-height:1.6;
  margin-bottom:16px;
  text-shadow:0 2px 10px rgba(90,60,0,.4);
}
.grant-block__percent{
  color:#ffffff;
  font-size:1.3em;
  margin:0 2px;
  text-decoration:underline;
  text-decoration-thickness:3px;
  text-underline-offset:4px;
  text-shadow:0 2px 10px rgba(90,60,0,.4);
}
.grant-block__desc{
  font-size:13.5px;
  color:rgba(255,255,255,.97);
  line-height:1.9;
  max-width:520px;
  margin:0 auto 26px;
  text-shadow:0 1px 6px rgba(90,60,0,.35);
}
.grant-block .btn--gold{
  background:#ffffff;
  color:var(--gold-600);
  box-shadow:0 10px 26px rgba(0,0,0,.2);
}
.grant-block .btn--gold:hover{
  background:#fffaf0;
}

/* ============ Contact block ============ */
.contact-block{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:30px 28px;
  margin-bottom:28px;
  box-shadow:var(--shadow-soft);
  border:1px solid var(--line);
  text-align:center;
}
.contact-block__icon{
  font-size:40px;
  color:var(--teal-600);
  margin-bottom:14px;
  display:block;
}
.contact-block__title{
  font-size:clamp(19px,3.6vw,26px);
  font-weight:900;
  color:var(--ink-900);
  line-height:1.6;
  margin-bottom:16px;
}
.contact-block__lead{
  font-size:13px;
  color:var(--ink-500);
  margin:6px 0 22px;
  line-height:1.8;
}
.contact-actions{display:flex; flex-direction:column; align-items:center; gap:14px;}
.contact-actions__sent{
  font-size:13.5px;
  color:var(--success);
  font-weight:700;
}

.result-footer-actions{
  text-align:center;
  margin-top:8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.result-pdf-status{
  text-align:center;
  font-size:13px;
  color:var(--teal-700);
  margin-top:12px;
}
.result-pdf-status.is-error{ color:var(--coral-600); }
/* PDF出力時にキャプチャ対象から除外する要素（ボタン・ステータス表示など） */
.no-pdf{ }


/* ============ Footer ============ */
.site-footer{
  background:var(--paper);
  border-top:1px solid var(--line);
  padding:32px 0;
  text-align:center;
}
.brand--footer{margin-bottom:10px; justify-content:center; display:flex; align-items:center; gap:8px;}
.brand--footer .brand__logo{width:26px; height:26px;}
.site-footer__text{
  font-size:11.5px;
  color:var(--ink-500);
  line-height:1.8;
}

/* ============ Responsive ============ */
@media (max-width:640px){
  .container{padding:0 18px;}
  .screen{padding:36px 0 60px;}
  .gate-form{padding:24px;}
  .quiz-card{padding:26px 20px;}
  .solution-features{grid-template-columns:1fr;}
  .result-level{flex-direction:column; text-align:center;}
  .br-mobile{display:block;}
  .site-header__inner{padding:14px 18px;}
  .header-tag{font-size:11px; padding:4px 10px;}
}
@media (min-width:641px){
  .br-mobile{display:inline;}
}
