@charset "utf-8";
/* WILLRAISE 担当者マッチング診断 — styles */

:root{
    --ink:#13192b;              /* ブランドネイビー */
    --ink-soft:#1f2740;
    --bg-page:#f7f3ed;
    --bg-page-deep:#ede8e0;
    --paper:#ffffff;
    --paper-warm:#f5f0e8;       /* ブランドのwarm白 */
    --text:#1a1a1a;
    --text-soft:#333333;
    --text-mute:#6a6a6a;
    --gold:#b69056;             /* ブランドゴールド */
    --gold-light:#ccae7e;
    --gold-deep:#96763f;
    --line:rgba(0,0,0,0.10);
    --line-soft:rgba(0,0,0,0.05);
    --gold-tint:rgba(182,144,86,0.06);
    --serif:'Cormorant Garamond','Noto Serif JP',serif;
    --jp-serif:'Noto Serif JP',serif;
    --jp-sans:'Noto Sans JP',sans-serif;
    --num:'Bodoni Moda','Noto Serif JP',serif;
    --ease:cubic-bezier(.22,.61,.36,1);
    --ease-snap:cubic-bezier(.34,1.56,.64,1);
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  html,body{
    background:var(--bg-page);
    background-image:radial-gradient(ellipse at top,#ede8df 0%,var(--bg-page) 50%,var(--bg-page-deep) 100%);
    background-attachment:fixed;
    color:var(--text);
    font-family:var(--jp-sans);
    font-weight:400;
    letter-spacing:.02em;
    overflow-x:hidden;
    min-height:100vh;
  }
  .grain{
    position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.25;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .15 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  }
  /* ====== STAGE ====== */
  .stage{
    position:relative;max-width:700px;margin:48px auto;
    padding:56px 56px 64px;background:var(--paper);
    box-shadow:0 16px 48px rgba(0,0,0,0.10),0 4px 12px rgba(0,0,0,0.06);
    z-index:2;
  }
  .stage::before{content:"";position:absolute;top:-1px;left:-1px;width:40px;height:40px;
    border-top:1px solid var(--gold);border-left:1px solid var(--gold);pointer-events:none;}
  .stage::after{content:"";position:absolute;bottom:-1px;right:-1px;width:40px;height:40px;
    border-bottom:1px solid var(--gold);border-right:1px solid var(--gold);pointer-events:none;}
  /* ====== HEADER ====== */
  .top{
    display:flex;justify-content:space-between;align-items:center;
    margin-bottom:56px;padding-bottom:24px;border-bottom:1px solid var(--line);
  }
  .brand{
    font-family:var(--serif);font-weight:600;letter-spacing:.3em;
    font-size:15px;color:var(--text);
  }
  .meta{font-family:var(--jp-sans);font-size:11px;letter-spacing:.18em;color:var(--text-mute);}
  /* ====== INTRO ====== */
  .intro{position:relative;text-align:center;padding:24px 0 20px;animation:fadeUp 1.2s var(--ease) both;}
  .intro .eyebrow{font-family:var(--jp-sans);font-size:12px;color:var(--gold-deep);
    letter-spacing:.25em;margin-bottom:28px;font-weight:600;}
  .intro h1{font-family:var(--jp-serif);font-weight:600;
    font-size:clamp(26px,4vw,38px);line-height:1.5;letter-spacing:.04em;color:var(--text);margin-bottom:4px;}
  .intro h1 em{font-style:normal;color:var(--gold-deep);}
  .intro .rule{width:1px;height:56px;background:var(--gold);margin:32px auto 28px;
    transform-origin:top;animation:ruleDrop 1.4s var(--ease) .4s both;}
  .intro p{font-family:var(--jp-sans);font-weight:400;font-size:14px;line-height:2;
    color:var(--text-mute);max-width:480px;margin:0 auto 40px;}
  .badges{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;margin-bottom:48px;
    font-size:12px;letter-spacing:.12em;color:var(--text-soft);font-family:var(--jp-sans);font-weight:600;}
  .badges span{display:flex;align-items:center;gap:10px;}
  .badges span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);}
  /* ====== START BUTTON ====== */
  .start-btn{position:relative;display:inline-flex;align-items:center;gap:22px;
    padding:20px 44px;background:var(--ink);color:var(--paper);border:none;cursor:pointer;
    font-family:var(--jp-sans);font-size:15px;letter-spacing:.18em;font-weight:600;
    overflow:hidden;transition:all .5s var(--ease);
    margin-top: 20px;
    text-decoration: none;
    box-shadow:0 6px 20px rgba(19,25,43,0.28),0 2px 6px rgba(19,25,43,0.15);}
  .start-btn::before{content:"";position:absolute;inset:0;
    background:linear-gradient(135deg,var(--gold-deep) 0%,var(--gold) 50%,var(--gold-light) 100%);
    transform:translateY(100%);transition:transform .6s var(--ease);}
  .start-btn:hover{box-shadow:0 12px 32px rgba(182,144,86,0.38),0 4px 10px rgba(19,25,43,0.20);transform:translateY(-2px);}
  .start-btn:hover::before{transform:translateY(0);}
  .start-btn span,.start-btn svg{position:relative;z-index:2;}
  .start-btn svg{transition:transform .4s var(--ease);}
  .start-btn:hover svg{transform:translateX(8px);}
  .start-wrap{text-align:center;}
  .start-note{font-size:11px;color:var(--text-mute);margin-top:20px;letter-spacing:.1em;font-family:var(--jp-sans);}
  /* ====== QUIZ ====== */
  .quiz{display:none;}
  .quiz.active{display:block;animation:fadeIn .6s var(--ease);}
  .quiz-head{display:flex;justify-content:space-between;align-items:flex-end;
    padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:40px;}
  .quiz-cat{font-family:var(--jp-sans);font-size:13px;color:var(--gold-deep);letter-spacing:.16em;font-weight:600;}
  .quiz-cat::before{content:"";display:inline-block;width:20px;height:1px;background:var(--gold);
    margin-right:12px;vertical-align:middle;}
  .quiz-num{font-family:var(--num);font-size:14px;letter-spacing:.05em;color:var(--text-mute);
    display:flex;align-items:baseline;gap:6px;font-weight:500;}
  .quiz-num b{font-family:var(--num);font-weight:700;color:var(--text);font-size:38px;letter-spacing:0;line-height:1;}
  .quiz-num span{font-size:15px;letter-spacing:.08em;}
  /* progress */
  .progress{position:relative;height:1px;background:var(--line);margin-bottom:56px;}
  .progress-fill{position:absolute;left:0;top:-1px;height:3px;background:var(--gold);transition:width .8s var(--ease);}
  .progress-dots{position:absolute;top:-3px;left:0;right:0;display:flex;justify-content:space-between;}
  .progress-dot{width:7px;height:7px;border-radius:50%;background:var(--paper);
    border:1px solid var(--line);transition:all .4s var(--ease);}
  .progress-dot.done{background:var(--gold);border-color:var(--gold);}
  .progress-dot.current{background:var(--ink);border-color:var(--ink);transform:scale(1.4);
    box-shadow:0 0 0 4px rgba(182,144,86,.18);}
  /* slide */
  .slides{position:relative;min-height:420px;}
  .slide{position:absolute;inset:0;opacity:0;pointer-events:none;
    transition:opacity .5s var(--ease),transform .6s var(--ease);}
  .slide.active{opacity:1;pointer-events:auto;position:relative;animation:slideIn .7s var(--ease);}
  .slide.exit-left{transform:translateX(-40px);opacity:0;}
  .slide.exit-right{transform:translateX(40px);opacity:0;}
  .q-number{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;}
  .qn-label{font-family:var(--jp-sans);font-size:12px;color:var(--gold-deep);
    letter-spacing:.28em;font-weight:600;padding-bottom:8px;}
  .qn-num{font-family:var(--num);font-weight:600;font-size:52px;color:var(--text);
    line-height:.9;letter-spacing:-0.01em;font-style:italic;}
  .q-title{font-family:var(--jp-serif);font-weight:600;font-size:clamp(20px,2.6vw,24px);
    line-height:1.6;color:var(--text);margin-bottom:10px;letter-spacing:.04em;}
  .q-sub{font-size:12px;color:var(--text-mute);margin-bottom:32px;letter-spacing:.08em;
    font-family:var(--jp-sans);font-weight:500;}
  .q-sub.multi::before{content:"※";color:var(--gold);margin-right:6px;}
  /* options (single select) */
  .options{display:flex;flex-direction:column;gap:12px;}
  .opt{position:relative;display:flex;align-items:center;gap:18px;
    padding:20px 24px;background:var(--paper);border:1px solid var(--line);cursor:pointer;
    transition:all .4s var(--ease);overflow:hidden;text-align:left;
    box-shadow:0 1px 3px rgba(19,25,43,0.04);}
  .opt-num{font-family:var(--num);font-style:italic;font-size:18px;color:var(--gold-deep);
    position:relative;z-index:2;transition:color .4s var(--ease);font-weight:600;
    min-width:22px;flex-shrink:0;align-self:center;}
  .opt-body{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;gap:4px;}
  .opt-main{font-family:var(--jp-serif);font-weight:600;font-size:15.5px;color:var(--text);
    letter-spacing:.04em;line-height:1.55;transition:color .4s var(--ease);display:block;}
  .opt-desc{font-family:var(--jp-sans);font-weight:400;font-size:12px;color:var(--text-mute);
    line-height:1.6;letter-spacing:.02em;transition:color .4s var(--ease);display:block;}
  .opt-mark{position:relative;z-index:2;width:22px;height:22px;border:1px solid rgba(0,0,0,0.2);
    border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;
    transition:all .4s var(--ease);background:var(--paper);align-self:center;}
  .opt-mark::after{content:"";width:8px;height:8px;border-radius:50%;background:transparent;
    transition:all .4s var(--ease-snap);transform:scale(0);}
  .opt::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--ink);
    transition:width .5s var(--ease);z-index:0;}
  .opt:hover{border-color:var(--gold);transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(19,25,43,0.12),0 2px 6px rgba(19,25,43,0.06);}
  .opt:hover .opt-mark{border-color:var(--gold);}
  .opt.selected{border-color:var(--ink);
    box-shadow:0 10px 30px rgba(19,25,43,0.20),0 4px 8px rgba(19,25,43,0.10);transform:translateY(-2px);}
  .opt.selected::before{width:100%;}
  .opt.selected .opt-main{color:var(--paper);}
  .opt.selected .opt-desc{color:rgba(255,255,255,0.7);}
  .opt.selected .opt-num{color:var(--gold-light);}
  .opt.selected .opt-mark{border-color:var(--gold);}
  .opt.selected .opt-mark::after{background:var(--gold);transform:scale(1);}
  /* chips (multi select Q4) */
  .chips{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;}
  .chip{position:relative;padding:15px 18px;background:var(--paper);border:1px solid var(--line);
    cursor:pointer;font-family:var(--jp-serif);font-size:14px;font-weight:600;color:var(--text);
    letter-spacing:.04em;transition:all .4s var(--ease);overflow:hidden;text-align:left;
    box-shadow:0 1px 3px rgba(19,25,43,0.04);display:flex;align-items:center;gap:12px;}
  .chip-check{position:relative;z-index:1;width:18px;height:18px;border:1px solid rgba(0,0,0,0.25);
    flex-shrink:0;transition:all .3s var(--ease);background:var(--paper);}
  .chip-check::after{content:"";position:absolute;top:2px;left:5px;width:5px;height:9px;
    border:solid var(--gold);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);
    transition:transform .3s var(--ease-snap);}
  .chip span{position:relative;z-index:1;transition:color .4s var(--ease);}
  .chip::before{content:"";position:absolute;inset:0;background:var(--gold-tint);
    transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);z-index:0;}
  .chip:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 6px 16px rgba(19,25,43,0.10);}
  .chip.selected{border-color:var(--gold);box-shadow:0 4px 12px rgba(182,144,86,0.20);}
  .chip.selected::before{transform:scaleX(1);}
  .chip.selected .chip-check{background:var(--ink);border-color:var(--ink);}
  .chip.selected .chip-check::after{transform:rotate(45deg) scale(1);}
  .chip.selected span{color:var(--gold-deep);}
  /* nav */
  .quiz-nav{display:flex;justify-content:space-between;align-items:center;
    margin-top:48px;padding-top:28px;border-top:1px solid var(--line);gap:16px;}
  .nav-btn{background:var(--paper);border:1px solid var(--line);cursor:pointer;
    font-family:var(--jp-sans);font-size:13px;letter-spacing:.16em;color:var(--text-mute);
    padding:14px 24px;font-weight:600;display:flex;align-items:center;gap:12px;
    transition:all .4s var(--ease);box-shadow:0 1px 3px rgba(19,25,43,0.04);}
  .nav-btn:hover{color:var(--text);border-color:var(--ink);box-shadow:0 4px 12px rgba(19,25,43,0.08);}
  .nav-btn:disabled{cursor:not-allowed;}
  .nav-btn.prev{visibility:visible;}
  .nav-btn.prev.hidden{visibility:hidden;}
  .nav-btn.prev:hover:not(:disabled) svg{transform:translateX(-4px);}
  .nav-btn svg{transition:transform .4s var(--ease);}
  .nav-btn.next{background:var(--ink);color:var(--paper);border-color:var(--ink);
    padding:16px 32px;font-size:13px;
    box-shadow:0 6px 18px rgba(19,25,43,0.24),0 2px 6px rgba(19,25,43,0.12);}
  .nav-btn.next:hover:not(:disabled){background:#0d1322;border-color:#0d1322;
    box-shadow:0 10px 26px rgba(19,25,43,0.34),0 3px 8px rgba(19,25,43,0.15);transform:translateY(-2px);}
  .nav-btn.next:hover:not(:disabled) svg{transform:translateX(4px);}
  .nav-btn.next:disabled{background:var(--ink);color:var(--paper);border-color:var(--ink);opacity:.35;box-shadow:none;}
  .nav-btn.next.ready{background:linear-gradient(135deg,var(--gold-deep) 0%,var(--gold) 100%);
    border-color:var(--gold-deep);color:var(--paper);padding:18px 36px;font-size:13.5px;
    font-weight:700;letter-spacing:.16em;box-shadow:0 10px 28px rgba(182,144,86,0.40),0 3px 8px rgba(150,118,63,0.20);}
  .nav-btn.next.ready:hover:not(:disabled){background:linear-gradient(135deg,var(--gold) 0%,var(--gold-light) 100%);
    border-color:var(--gold);box-shadow:0 14px 36px rgba(182,144,86,0.50),0 4px 10px rgba(150,118,63,0.25);transform:translateY(-2px);}
  /* ====== LOADING ====== */
  .loading{position:fixed;inset:0;background:var(--bg-page);z-index:9999;display:none;
    align-items:center;justify-content:center;flex-direction:column;gap:32px;padding:24px;text-align:center;}
  .loading.active{display:flex;animation:fadeIn .4s var(--ease);}
  .load-eyebrow{font-family:var(--jp-sans);font-size:12px;color:var(--gold-deep);letter-spacing:.3em;font-weight:600;}
  .load-text{font-family:var(--jp-serif);font-weight:400;font-size:22px;color:var(--text);
    letter-spacing:.1em;text-align:center;line-height:1.6;}
  .load-bar{width:240px;height:1px;background:rgba(0,0,0,0.12);position:relative;overflow:hidden;}
  .load-bar::after{content:"";position:absolute;inset:0;width:30%;background:var(--gold);
    animation:loadSlide 1.4s ease-in-out infinite;}
  @keyframes loadSlide{0%{transform:translateX(-100%);}100%{transform:translateX(380%);}}
  /* ====== RESULT ====== */
  .result{display:none;}
  .result.active{display:block;animation:fadeIn .8s var(--ease);}
  .result-eyebrow{text-align:center;font-family:var(--jp-sans);font-size:12px;color:var(--gold-deep);
    letter-spacing:.22em;margin:8px 0 18px;font-weight:600;animation:fadeUp .8s var(--ease) .2s both;}
  .result-typeid{text-align:center;font-family:var(--num);font-style:italic;font-weight:600;
    font-size:14px;color:var(--gold);letter-spacing:.2em;margin-bottom:8px;
    animation:fadeUp .8s var(--ease) .25s both;}
  .result-h{text-align:center;font-family:var(--jp-serif);font-weight:600;
    font-size:clamp(22px,3.4vw,30px);line-height:1.45;color:var(--text);margin-bottom:4px;
    animation:fadeUp .8s var(--ease) .35s both;}
  .result-rule{width:1px;height:40px;background:var(--gold);margin:24px auto;
    animation:ruleDrop 1s var(--ease) .5s both;transform-origin:top;}
  .result-desc{text-align:center;font-family:var(--jp-serif);font-size:14px;line-height:2;
    color:var(--text-soft);max-width:540px;margin:0 auto 28px;font-weight:500;letter-spacing:.03em;
    animation:fadeUp .8s var(--ease) .55s both;}
  .result-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:40px;
    animation:fadeUp .8s var(--ease) .65s both;}
  .result-tag{padding:6px 14px;background:var(--gold-tint);border:1px solid var(--gold);
    color:var(--gold-deep);font-size:11px;letter-spacing:.06em;font-family:var(--jp-sans);font-weight:600;}
  /* support block */
  .support-block{position:relative;padding:30px 32px;background:var(--paper-warm);
    border:1px solid var(--line);margin-bottom:36px;text-align:center;
    animation:fadeUp .9s var(--ease) .8s both;}
  .support-block::before{content:"";position:absolute;top:-1px;left:-1px;width:36px;height:36px;
    border-top:2px solid var(--gold);border-left:2px solid var(--gold);}
  .support-block::after{content:"";position:absolute;bottom:-1px;right:-1px;width:36px;height:36px;
    border-bottom:2px solid var(--gold);border-right:2px solid var(--gold);}
  .support-label{font-family:var(--jp-sans);font-size:12px;color:var(--gold-deep);
    letter-spacing:.2em;font-weight:600;margin-bottom:14px;}
  .support-text{font-family:var(--jp-serif);font-size:14px;line-height:1.95;color:var(--text-soft);
    letter-spacing:.03em;font-weight:500;max-width:540px;margin:0 auto;}
  /* bridge to form */
  .bridge{text-align:center;margin:0 0 30px;animation:fadeUp .9s var(--ease) .95s both;}
  .bridge-eyebrow{font-family:var(--jp-sans);font-size:12px;color:var(--gold-deep);
    letter-spacing:.22em;font-weight:600;margin-bottom:16px;}
  .bridge-h{font-family:var(--jp-serif);font-weight:600;font-size:clamp(19px,2.8vw,26px);
    line-height:1.55;letter-spacing:.05em;color:var(--text);}
  .bridge-rule{width:1px;height:32px;background:var(--gold);margin:20px auto;
    transform-origin:top;animation:ruleDrop 1s var(--ease) 1.05s both;}
  .bridge-text{font-family:var(--jp-serif);font-size:14px;line-height:2;color:var(--text-soft);
    letter-spacing:.03em;font-weight:500;max-width:540px;margin:0 auto;}
  .bridge-text .np{display:inline-block;}
  /* campaign banner */
  .campaign{position:relative;margin:8px 0 20px;padding:36px 32px;
    background:var(--ink);
    background-image:radial-gradient(ellipse at top right,#1f2a47 0%,var(--ink) 55%,#0d1322 100%);
    overflow:hidden;text-align:center;
    border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);
    animation:fadeUp 1s var(--ease) 1.05s both;}
  .campaign::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
    background:linear-gradient(90deg,transparent,var(--gold-light),transparent);opacity:.6;}
  .campaign::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;
    background:linear-gradient(90deg,transparent,var(--gold-light),transparent);opacity:.6;}
  .campaign-label{font-family:var(--num);font-style:italic;font-size:12px;letter-spacing:.3em;
    color:var(--gold-light);font-weight:500;margin-bottom:18px;display:flex;align-items:center;
    justify-content:center;gap:14px;}
  .campaign-label::before,.campaign-label::after{content:"";width:24px;height:1px;background:var(--gold);opacity:.7;}
  .campaign-text{font-family:var(--jp-serif);font-weight:500;font-size:clamp(17px,2.4vw,21px);
    line-height:1.7;color:#fff;letter-spacing:.06em;}
  .campaign-amount{color:var(--gold-light);font-weight:700;font-size:1.25em;
    padding:0 .08em;font-family:var(--jp-serif);}
  /* CTA */
  .cta-block{margin-top:8px;animation:fadeUp 1s var(--ease) 1.1s both;}
  .cta-lead{text-align:center;font-family:var(--jp-serif);font-size:15px;color:var(--text);
    font-weight:600;margin-bottom:24px;letter-spacing:.04em;line-height:1.6;}
  /* contact form */
  .cform{background:var(--paper);border:1px solid var(--line);padding:36px 34px;
    box-shadow:0 2px 8px rgba(19,25,43,0.04);margin-bottom:24px;}
  .cform-rule{width:28px;height:1px;background:var(--gold);margin:0 auto 30px;}
  .field{position:relative;margin-bottom:24px;}
  .field:last-of-type{margin-bottom:0;}
  .field label{display:block;font-family:var(--jp-sans);font-size:13px;color:var(--text);
    letter-spacing:.06em;margin-bottom:9px;font-weight:600;}
  .field label .req{display:inline-block;margin-left:8px;font-size:10px;font-weight:600;
    color:var(--gold-deep);border:1px solid var(--gold);padding:1px 7px;letter-spacing:.08em;vertical-align:2px;}
  .field input,.field select{width:100%;padding:13px 2px;background:transparent;border:none;
    border-bottom:1px solid var(--line);font-family:var(--jp-serif);font-size:16px;font-weight:500;
    color:var(--text);letter-spacing:.04em;transition:border-color .4s var(--ease);
    -webkit-appearance:none;appearance:none;border-radius:0;outline:none;}
  .field input::placeholder{color:var(--text-mute);opacity:.5;font-weight:400;}
  .field input:focus,.field select:focus{border-bottom-color:var(--gold);}
  .field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1L6 6L11 1' stroke='%231a1a1a' stroke-width='1.5'/></svg>");
    background-repeat:no-repeat;background-position:right 2px center;padding-right:24px;cursor:pointer;}
  .field select:invalid{color:var(--text-mute);opacity:.55;}
  .field.invalid input,.field.invalid select{border-bottom-color:#c2453f;}
  .field-err{font-size:11px;color:#c2453f;margin-top:6px;letter-spacing:.03em;font-weight:500;
    height:0;opacity:0;overflow:hidden;transition:all .3s var(--ease);}
  .field.invalid .field-err{height:auto;opacity:1;margin-top:7px;}
  /* privacy check */
  .privacy{display:flex;align-items:flex-start;gap:12px;margin:28px 0 4px;cursor:pointer;
    font-size:12.5px;color:var(--text-soft);line-height:1.7;letter-spacing:.03em;font-weight:500;}
  .privacy input{appearance:none;-webkit-appearance:none;width:19px;height:19px;
    border:1.5px solid rgba(0,0,0,0.25);background:var(--paper);cursor:pointer;flex-shrink:0;
    margin-top:1px;position:relative;transition:all .3s var(--ease);}
  .privacy input:checked{background:var(--ink);border-color:var(--ink);}
  .privacy input:checked::after{content:"";position:absolute;top:2px;left:6px;width:5px;height:9px;
    border:solid var(--gold);border-width:0 2px 2px 0;transform:rotate(45deg);}
  .privacy a{color:var(--text);text-decoration:underline;text-underline-offset:3px;}
  .privacy.invalid{color:#c2453f;}
  .privacy.invalid input{border-color:#c2453f;}
  .cta-row{display:flex;gap:14px;flex-direction:column;}
  .cta-main{position:relative;padding:24px 32px;background:var(--ink);color:var(--paper);
    border:none;cursor:pointer;font-family:var(--jp-sans);font-size:15px;letter-spacing:.12em;
    font-weight:700;overflow:hidden;transition:all .4s var(--ease);display:flex;align-items:center;
    justify-content:center;gap:18px;box-shadow:0 8px 22px rgba(19,25,43,0.28),0 2px 6px rgba(19,25,43,0.15);}
  .cta-main::before{content:"";position:absolute;inset:0;
    background:linear-gradient(135deg,var(--gold-deep),var(--gold));
    transform:translateY(100%);transition:transform .5s var(--ease);}
  .cta-main:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(182,144,86,0.38),0 4px 10px rgba(19,25,43,0.20);}
  .cta-main:hover::before{transform:translateY(0);}
  .cta-main span,.cta-main svg{position:relative;z-index:2;}
  .cta-sub{padding:18px;background:var(--paper);color:var(--text);border:1px solid var(--line);
    cursor:pointer;font-family:var(--jp-sans);font-size:13px;letter-spacing:.08em;font-weight:600;
    transition:all .4s var(--ease);display:flex;align-items:center;justify-content:center;gap:10px;
    box-shadow:0 1px 3px rgba(19,25,43,0.04);}
  .cta-sub:hover{border-color:#06c755;background:#06c755;color:#fff;transform:translateY(-1px);
    box-shadow:0 8px 20px rgba(6,199,85,0.25);}
  .restart{display:block;margin:36px auto 0;background:none;border:none;cursor:pointer;
    font-family:var(--jp-sans);font-size:13px;color:var(--text-mute);letter-spacing:.1em;
    transition:color .3s var(--ease);animation:fadeIn 1s var(--ease) 1.4s both;
    text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(0,0,0,0.15);}
  .restart:hover{color:var(--text);text-decoration-color:var(--gold);}
  /* burst fx */
  .burst{position:absolute;border-radius:50%;background:var(--gold);pointer-events:none;
    opacity:.35;transform:scale(0);animation:burst .6s var(--ease-snap) forwards;}
  @keyframes burst{to{transform:scale(20);opacity:0;}}
  /* animations */
  @keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
  @keyframes fadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
  @keyframes slideIn{from{opacity:0;transform:translateX(40px);}to{opacity:1;transform:translateX(0);}}
  @keyframes ruleDrop{from{transform:scaleY(0);}to{transform:scaleY(1);}}
  /* responsive */
  @media (max-width:720px){
    body{font-size:14px;}
    .stage{max-width:100%;margin:0 auto;padding:32px 20px 48px;box-shadow:0 8px 24px rgba(0,0,0,0.25);}
    .top{margin-bottom:32px;padding-bottom:18px;}
    .brand{font-size:13px;letter-spacing:.22em;}
    .meta{font-size:10px;}
    .intro h1{font-size:23px;}
    .intro p{font-size:13px;}
    .badges{gap:14px;font-size:11px;}
    .start-btn{padding:18px 32px;font-size:14px;letter-spacing:.12em;}
    .quiz-head{margin-bottom:28px;}
    .quiz-num b{font-size:30px;}
    .qn-num{font-size:42px;}
    .progress{margin-bottom:40px;}
    .slides{min-height:380px;}
    .q-title{font-size:18px;}
    .q-sub{margin-bottom:24px;}
    .opt{padding:16px 18px;gap:14px;}
    .opt-main{font-size:14.5px;}
    .opt-desc{font-size:11.5px;}
    .chips{grid-template-columns:1fr;}
    .chip{padding:13px 16px;font-size:13.5px;}
    .nav-btn{padding:12px 18px;font-size:12px;letter-spacing:.12em;}
    .nav-btn.next{padding:14px 22px;}
    .nav-btn.next.ready{padding:15px 24px;}
    .result-h{font-size:21px;}
    .agent{padding:24px 20px;}
    .agent-role{font-size:17px;}
    .cta-main{padding:20px 24px;font-size:14px;}
    .cform{padding:28px 22px;}
    .campaign{padding:28px 22px;}
    .campaign-label{font-size:11px;letter-spacing:.22em;margin-bottom:14px;}
    .campaign-text{font-size:16px;}
  }
  .campaign-img{display:block;width:100%;max-width:520px;height:auto;margin:0 auto 10px;}
  .campaign-terms-list{max-width:480px;margin:0 auto 16px;text-align:left;display:none;}
  .campaign-terms-item{display:flex;gap:10px;margin-bottom:8px;}
  .campaign-terms-item:last-child{margin-bottom:0;}
  .campaign-terms-item .b{flex:none;color:var(--gold-light);font-size:10px;line-height:1.9;}
  .campaign-terms-item .t{font-size:12px;font-weight:500;line-height:1.7;color:rgba(255,255,255,.82);}
  .campaign-terms{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#fff;background:#1a1a1a;text-decoration:none;letter-spacing:.04em;border:1px solid var(--gold-light);border-radius:2px;padding:11px 26px;margin-top:2px;transition:background .3s ease,border-color .3s ease;}
  .campaign-terms:hover{background:#333;border-color:var(--gold-light);color:#fff;}
  .wr-modal{position:fixed;inset:0;z-index:300;background:rgba(8,12,24,.66);display:none;align-items:center;justify-content:center;padding:24px;}
  .wr-modal.is-open{display:flex;}
  .wr-modal-box{background:#fff;max-width:560px;width:100%;max-height:84vh;overflow-y:auto;padding:40px 36px;position:relative;box-shadow:0 24px 70px rgba(0,0,0,.4);text-align:left;}
  .wr-modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:28px;line-height:1;color:#5a5240;cursor:pointer;padding:0;}
  .wr-modal-box h3{font-family:var(--jp-serif);font-size:20px;color:#16213f;margin:0 0 20px;letter-spacing:.05em;font-weight:600;}
  .wr-term-lead{font-size:15px;font-weight:700;color:#16213f;line-height:1.6;margin:0 0 16px;}
  .wr-term-item{display:flex;gap:14px;margin-bottom:10px;}
  .wr-term-item .b{flex:none;color:#16213f;font-size:10px;line-height:1.9;}
  .wr-term-item .t{font-size:13.5px;font-weight:500;line-height:1.7;color:#16213f;}
  .wr-term-note{font-size:12px;color:#9a9aa3;line-height:1.7;margin:-2px 0 12px;}
  .wr-term-note.last{margin:6px 0 0;}
  @media (prefers-reduced-motion:reduce){.campaign-terms{transition:none;}}

.wr-hero{min-height:100vh;min-height:100svh}
  .wr-parallax{will-change:transform}
  @keyframes wr-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  .wr-fv>*{opacity:0}
  .wr-ready .wr-fv>*{animation:wr-rise .85s cubic-bezier(.2,.7,.3,1) both}
  .wr-ready .wr-fv>*:nth-child(1){animation-delay:.10s}
  .wr-ready .wr-fv>*:nth-child(2){animation-delay:.20s}
  .wr-ready .wr-fv>*:nth-child(3){animation-delay:.30s}
  .wr-ready .wr-fv>*:nth-child(4){animation-delay:.40s}
  .wr-ready .wr-fv>*:nth-child(5){animation-delay:.50s}
  .wr-ready .wr-fv>*:nth-child(6){animation-delay:.60s}
  .wr-ready .wr-fv>*:nth-child(7){animation-delay:.70s}
  .wr-ready .wr-fv>*:nth-child(8){animation-delay:.80s}
  .wr-cta{position:relative;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease;will-change:transform}
  .wr-cta::after{content:"";position:absolute;top:0;left:-140%;width:55%;height:100%;background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.5) 50%,rgba(255,255,255,0) 100%);transform:skewX(-18deg);pointer-events:none}
  .wr-cta:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(194,162,92,.4)}
  .wr-cta:active{transform:translateY(0)}
  .wr-cta:hover::after{animation:wr-sheen .9s ease}
  @keyframes wr-sheen{from{left:-140%}to{left:140%}}
  .wr-ghost{transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .3s ease,background-color .3s ease,box-shadow .3s ease;will-change:transform}
  .wr-ghost:hover{transform:translateY(-2px);border-color:rgba(201,171,111,.9);background-color:rgba(201,171,111,.14);box-shadow:0 10px 26px rgba(0,0,0,.28)}
  .wr-ghost:active{transform:translateY(0)}
  @media (max-width:860px){
    .wr-site-nav{display:none}
    .wr-site-header>div{padding:12px 18px}
  }
  @media (max-width:680px){
    .wr-fvwrap{padding:56px 22px 52px!important}
    .wr-fv h1{font-size:clamp(32px,8.6vw,50px)!important;line-height:1.3!important;margin-bottom:14px!important}
    .wr-fv .wr-lead{font-size:clamp(15px,4.6vw,22px)!important;margin-bottom:22px!important}
    .wr-stats{gap:20px!important}
    .wr-stats img{height:46px!important}
  }
  @media (prefers-reduced-motion:reduce){
    .wr-parallax{transform:none!important}
    .wr-fv>*{opacity:1!important;animation:none!important}
    .wr-cta,.wr-ghost{transition:none}
    .wr-cta::after{display:none}
    .wr-cta:hover,.wr-ghost:hover{transform:none;box-shadow:none}
  }

/* ===== extracted from inline styles ===== */

/* ----- wr-site-header ----- */
.m-wr-site-header__bar{position:fixed;top:0;left:0;right:0;z-index:50;background:linear-gradient(180deg,#edeae4,#e4e1da);border-bottom:1px solid rgba(0,0,0,.06)}
.m-wr-site-header__box{max-width:1180px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.m-wr-site-header__box-2{display:flex;align-items:center;gap:10px}
.m-wr-site-header__img{height:38px;width:auto;display:block}
.m-wr-site-header__nav{display:flex;align-items:center;gap:34px}
.m-wr-site-header__link{font-size:13px;color:#2a3552;text-decoration:none;letter-spacing:.06em;white-space:nowrap}
.m-wr-site-header__cta{background:#16213f;color:#fff;font-size:13px;letter-spacing:.04em;text-decoration:none;padding:13px 22px;border-radius:3px;white-space:nowrap}

/* ----- wr-hero ----- */
.m-wr-hero__sec{position:relative;background:#0e1830;overflow:hidden;z-index:2}
.m-wr-hero__box{position:absolute;inset:0;overflow:hidden}
.m-wr-hero__box-2{position:absolute;inset:0;opacity:1}
.m-wr-hero__img{position:absolute;left:0;right:0;top:-15%;width:100%;height:130%;object-fit:cover;object-position:center}
.m-wr-hero__box-3{position:absolute;inset:0;background:linear-gradient(95deg,#0e1830 0%,#0e1830 34%,rgba(14,24,48,.86) 46%,rgba(14,24,48,.25) 62%,rgba(14,24,48,0) 78%)}
.m-wr-hero__box-4{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:96px 32px 84px}
.m-wr-hero__box-5{display:inline-block;border:1px solid rgba(255,255,255,.4);padding:11px 22px;font-size:14px;letter-spacing:.08em;color:#f2f0ea;margin-bottom:30px}
.m-wr-hero__title{font-family:'Shippori Mincho',serif;font-weight:600;color:#fff;font-size:74px;line-height:1.24;letter-spacing:.04em;margin-bottom:18px}
.m-wr-hero__text{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:27px;letter-spacing:.04em;color:#c9ab6f;margin-bottom:34px}
.m-wr-hero__text-2{font-family:'Shippori Mincho',serif;font-size:25px;line-height:1.7;color:#eef0f4;letter-spacing:.05em;margin-bottom:56px}
.m-wr-hero__box-6{display:flex;gap:40px;margin-bottom:22px}
.m-wr-hero__box-7{display:flex;align-items:center;gap:6px}
.m-wr-hero__img-2{height:56px;width:auto;display:block}
.m-wr-hero__box-8{text-align:center;padding:0 2px}
.m-wr-hero__box-9{font-family:'Shippori Mincho',serif;color:#d9c089;line-height:1}
.m-wr-hero__tag{font-size:40px;font-weight:600}
.m-wr-hero__tag-2{font-size:15px;margin-left:2px}
.m-wr-hero__box-10{font-size:11px;color:#e7e9ee;letter-spacing:.08em;margin-top:6px}
.m-wr-hero__box-11{font-size:9.5px;color:rgba(231,233,238,.6);letter-spacing:.04em;margin-top:5px;line-height:1.5;white-space:pre-line}
.m-wr-hero__box-12{font-size:10px;color:#c9905a;line-height:1.8;letter-spacing:.02em;margin-bottom:34px}
.m-wr-hero__box-13{display:flex;gap:16px;flex-wrap:wrap}
.m-wr-hero__cta{background:#c2a25c;color:#16213f;font-weight:500;font-size:15px;letter-spacing:.06em;text-decoration:none;padding:17px 40px;border-radius:2px}
.m-wr-hero__link{background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff;font-size:15px;letter-spacing:.06em;text-decoration:none;padding:17px 40px;border-radius:2px}
.m-wr-hero__text-3{font-size:11px;color:rgba(255,255,255,.45);margin-top:16px;letter-spacing:.04em}
.m-wr-hero__img-3{position:absolute;right:38px;bottom:34px;z-index:3;width:177px;height:177px;display:block}

/* ----- quiz ----- */
.m-quiz__box{width:25%}

/* ----- m ----- */
.m-m__bar{position:relative;z-index:2;background:#0e1830;padding:64px 32px 40px}
.m-m__box{max-width:1180px;margin:0 auto;display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.m-m__box-2{max-width:360px}
.m-m__box-3{display:flex;align-items:center;gap:10px}
.m-m__img{height:34px;width:auto;display:block}
.m-m__text{font-size:12px;color:#aeb6c8;line-height:1.9;margin-top:20px}
.m-m__box-4{display:flex;gap:80px}
.m-m__box-5{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:#c9ab6f;letter-spacing:.1em;margin-bottom:18px}
.m-m__box-6{display:flex;flex-direction:column;gap:14px}
.m-m__link{font-size:12px;color:#aeb6c8;text-decoration:none}
.m-m__box-7{max-width:1180px;margin:40px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.m-m__tag{font-size:11px;color:rgba(174,182,200,.6)}
.m-m__tag-2{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:12px;color:rgba(201,171,111,.7);letter-spacing:.06em}

/* ===== ヘッダーを上部固定で追従（PC/SP共通） =====
   html,body の overflow-x:hidden により position:sticky が効かないため、
   ヘッダーを fixed 化（上の .m-wr-site-header__bar 参照）し、
   body にヘッダー高さ分の余白を確保して本文が隠れないようにする。 */
body{padding-top:67px}
@media (max-width:860px){ body{padding-top:63px} }

/* ===== userlocal.jp配信の外部CTAバナー非表示（2026-08-28 追加、2026-08-28 セレクタ強化）
   サーバー/JS側（userlocal CTAウィジェット）が注入する固定バナーが25,000円版の内容のため、
   lp2（10,000円版）ではCSSで非表示にする。lp/側のCSSには入れていないので lp/ には影響しない。
   href末尾にトラッキング用パラメータが付く場合や、クラス名だけでは判定できない場合に備えて
   2種類のセレクタを併用（画像ドメインでの判定は :has() 対応ブラウザが前提）。 ===== */
a.shadow.content[href^="https://www.willgrp.co.jp/lp/"],
a.shadow.content:has(img[src*="userlocal.jp"]){display:none!important}

/* ===== 特典進呈規定モーダル本文（2026-09-01 全面改訂） =====
   マークアップは lp/inc/gift-terms.php（トップLPと共通）。ここでは .wr-modal-box 内で使用。 */
.gift-terms{color:#16213f}
.gift-terms__sec{margin-top:26px}
.gift-terms__sec:first-child{margin-top:0}
.gift-terms__title{font-family:var(--jp-serif);font-size:14px;font-weight:600;line-height:1.6;color:#16213f;letter-spacing:.04em;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid rgba(182,144,86,.5)}
.gift-terms__title-sub{display:block;font-family:var(--jp-sans);font-size:11px;font-weight:400;letter-spacing:0;color:var(--text-mute);margin-top:5px}
.gift-terms__list{list-style:none;margin:0;padding:0}
.gift-terms__item{display:flex;gap:12px;margin-bottom:9px}
.gift-terms__item::before{content:"●";flex:none;color:var(--gold);font-size:9px;line-height:2.2}
.gift-terms__item:last-child{margin-bottom:0}
.gift-terms__item--plain{display:block}
.gift-terms__item--plain::before{content:none}
.gift-terms__text{font-size:13px;font-weight:500;line-height:1.75;color:#16213f}
.gift-terms__note{color:#9a9aa3;font-size:11.5px;font-weight:400}
.gift-terms__label{font-weight:700;letter-spacing:.03em;margin-top:14px}
.gift-terms__item--plain:first-child .gift-terms__label{margin-top:0}
.gift-terms__example{margin-top:8px;padding:12px 14px;background:var(--paper-warm);font-size:12px;line-height:1.9;color:#5a5240}
.gift-terms__ol{list-style:none;counter-reset:wrgt;margin:8px 0 0;padding:0}
.gift-terms__ol>li{counter-increment:wrgt;position:relative;padding-left:1.9em;margin-bottom:6px;font-size:12.5px;font-weight:400;line-height:1.75}
.gift-terms__ol>li::before{content:counter(wrgt) ".";position:absolute;left:0;top:0;color:var(--gold);font-size:11.5px}
.gift-terms__ol>li:last-child{margin-bottom:0}
@media (max-width:640px){
  .wr-modal-box{padding:32px 22px;}
  .gift-terms__title{font-size:13px;}
  .gift-terms__item{gap:10px;}
  .gift-terms__text{font-size:12px;}
  .gift-terms__note{font-size:11px;}
  .gift-terms__ol>li{font-size:11.5px;}
}
