/* ============================================================
   バイラル系ページ共通スタイル
   ex-diagnosis / trauma-check / omikuji
   ============================================================ */

.ms-container{max-width:760px;margin:0 auto;padding:0 20px;}

/* =============================================================
   元カレ診断 (.ex-diag)
   ============================================================= */
.ex-diag{padding-bottom:80px;background:#fff9f7;min-height:70vh;}
.ex-diag__hero{position:relative;padding:70px 0 50px;overflow:hidden;background:linear-gradient(135deg,#ffe5ec 0%,#f5d6ff 100%);}
.ex-diag__hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,107,166,.2),transparent 55%),radial-gradient(circle at 80% 70%,rgba(168,107,255,.15),transparent 55%);pointer-events:none;}
.ex-diag__hero .ms-container{position:relative;text-align:center;}
.ex-diag__label{display:inline-block;padding:5px 18px;background:#fff;border-radius:999px;color:#d14585;font-size:11px;font-weight:700;letter-spacing:.12em;margin-bottom:18px;box-shadow:0 2px 10px rgba(209,69,133,.15);}
.ex-diag__title{font-size:clamp(28px,7vw,44px);font-weight:900;margin:0 0 18px;color:#2a1850;line-height:1.3;letter-spacing:.02em;}
.ex-diag__desc{font-size:14px;line-height:2;color:#534670;margin:0;}

.ex-diag__screen{display:none;margin:40px 0;}
.ex-diag__screen--active{display:block;}

.ex-diag__intro-card{background:#fff;border-radius:24px;padding:36px 28px;box-shadow:0 8px 28px rgba(209,69,133,.1);text-align:center;border:1px solid #ffd1e8;}
.ex-diag__intro-icon{font-size:54px;margin-bottom:12px;}
.ex-diag__intro-card h2{font-size:20px;font-weight:800;margin:0 0 22px;color:#2a1850;}
.ex-diag__intro-list{list-style:none;padding:0;margin:0 0 28px;text-align:left;max-width:320px;margin:0 auto 28px;}
.ex-diag__intro-list li{padding:10px 0;border-bottom:1px dashed #ffd1e8;font-size:14px;color:#534670;}
.ex-diag__intro-list li:last-child{border-bottom:none;}
.ex-diag__start-btn{display:inline-block;padding:18px 48px;background:linear-gradient(135deg,#ff6ba6,#c06aff);color:#fff;border:none;border-radius:999px;font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(209,69,133,.3);transition:all .2s;letter-spacing:.05em;}
.ex-diag__start-btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(209,69,133,.4);}
.ex-diag__disclaimer{font-size:11px;color:#8a7aa0;margin:20px 0 0;}

.ex-diag__progress{margin-bottom:20px;}
.ex-diag__progress-bar{width:100%;height:8px;background:#ffe5ec;border-radius:999px;overflow:hidden;}
.ex-diag__progress-fill{height:100%;background:linear-gradient(90deg,#ff6ba6,#c06aff);border-radius:999px;transition:width .3s;width:0;}
.ex-diag__progress-text{text-align:center;margin:8px 0 0;font-size:12px;color:#8a7aa0;font-weight:600;}

.ex-diag__q-card{background:#fff;border-radius:24px;padding:32px 24px;box-shadow:0 6px 22px rgba(209,69,133,.1);border:1px solid #ffd1e8;}
.ex-diag__q-text{font-size:18px;font-weight:800;color:#2a1850;margin:0 0 24px;line-height:1.6;text-align:center;}
.ex-diag__choices{display:flex;flex-direction:column;gap:12px;}
.ex-diag__choice{padding:18px 20px;background:#fff;border:2px solid #ffd1e8;border-radius:16px;color:#2a1850;font-size:14px;font-weight:600;cursor:pointer;text-align:left;line-height:1.6;transition:all .2s;}
.ex-diag__choice:hover{background:linear-gradient(135deg,#fff5f9,#faf0ff);border-color:#ff6ba6;transform:translateX(4px);}
.ex-diag__back-btn{display:block;margin:20px auto 0;padding:8px 20px;background:none;border:none;color:#8a7aa0;font-size:13px;cursor:pointer;text-decoration:underline;}

.ex-diag__loading{text-align:center;padding:60px 20px;}
.ex-diag__spinner{width:48px;height:48px;border:4px solid #ffe5ec;border-top-color:#ff6ba6;border-radius:50%;margin:0 auto 20px;animation:ex-spin 1s linear infinite;}
@keyframes ex-spin{to{transform:rotate(360deg);}}
.ex-diag__loading p{color:#8a7aa0;font-size:14px;}

/* --- 結果表示 --- */
.ex-result__card{padding:40px 24px;border-radius:24px;text-align:center;margin-bottom:24px;box-shadow:0 10px 30px rgba(0,0,0,.08);}
.ex-result__sub{font-size:14px;margin:0 0 8px;color:#2a1850;opacity:.8;font-weight:600;}
.ex-result__emoji{font-size:72px;margin:8px 0 12px;line-height:1;}
.ex-result__title{font-size:34px;font-weight:900;margin:0 0 10px;color:#2a1850;letter-spacing:.05em;}
.ex-result__pop{font-size:12px;color:#2a1850;opacity:.7;margin:0;font-weight:600;letter-spacing:.05em;}

.ex-result__section{background:#fff;border-radius:20px;padding:28px 22px;margin-bottom:20px;box-shadow:0 4px 18px rgba(0,0,0,.05);border:1px solid #f0e5ff;}
.ex-result__h3{font-size:18px;font-weight:800;margin:0 0 16px;color:#2a1850;padding-bottom:10px;border-bottom:2px solid #f5e5ff;}
.ex-result__section p{font-size:14px;line-height:1.9;color:#534670;margin:0 0 12px;}
.ex-result__section strong{color:#c06aff;font-weight:700;}

.ex-result__gauge{width:100%;height:14px;background:#f5e5ff;border-radius:999px;overflow:hidden;margin:8px 0;}
.ex-result__gauge-bar{height:100%;border-radius:999px;transition:width .8s ease-out;}
.ex-result__gauge-pct{text-align:right;font-size:22px;font-weight:900;color:#c06aff;margin:4px 0 16px;}

.ex-result__advice{list-style:none;padding:0;margin:0 0 16px;}
.ex-result__advice li{padding:12px 16px;background:#faf5ff;border-left:4px solid #c06aff;border-radius:8px;margin-bottom:8px;font-size:14px;color:#2a1850;line-height:1.7;}
.ex-result__msg{background:linear-gradient(135deg,#fff5f9,#faf0ff);padding:16px 20px;border-radius:12px;font-size:14px;line-height:1.9;color:#534670;font-weight:500;margin:12px 0 0;}

.ex-result__share{background:#fff;border-radius:20px;padding:28px 22px;margin-bottom:20px;text-align:center;border:2px dashed #ff6ba6;}
.ex-result__share-ttl{font-size:16px;font-weight:800;margin:0 0 16px;color:#2a1850;}
.ex-result__share-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.ex-result__share-btn{flex:1;min-width:130px;padding:14px 20px;border-radius:12px;font-weight:700;font-size:14px;text-decoration:none;transition:all .2s;}
.ex-result__share-btn--x{background:#000;color:#fff;}
.ex-result__share-btn--x:hover{background:#333;transform:translateY(-2px);}
.ex-result__share-btn--line{background:#06c755;color:#fff;}
.ex-result__share-btn--line:hover{background:#05a948;transform:translateY(-2px);}

.ex-related{display:flex;flex-direction:column;gap:10px;}
.ex-related__card{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#faf5ff;border:1px solid #e5dbff;border-radius:12px;text-decoration:none;color:#2a1850;font-weight:600;font-size:14px;transition:all .2s;}
.ex-related__card:hover{background:#fff;border-color:#c06aff;transform:translateX(4px);}
.ex-related__icon{font-size:22px;}

.ex-result__cta{background:linear-gradient(135deg,#fff5f9,#faf0ff);border-radius:24px;padding:36px 24px;text-align:center;margin-bottom:20px;border:1px solid #ffd1e8;}
.ex-result__cta h3{font-size:20px;font-weight:800;margin:0 0 8px;color:#2a1850;}
.ex-result__cta p{font-size:13px;color:#534670;margin:0 0 22px;line-height:1.7;}
.ex-result__cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.ex-result__cta-btn{padding:14px 26px;border-radius:999px;font-weight:700;font-size:14px;text-decoration:none;transition:all .2s;display:inline-block;}
.ex-result__cta-btn--primary{background:linear-gradient(135deg,#ff6ba6,#c06aff);color:#fff;box-shadow:0 6px 16px rgba(209,69,133,.3);}
.ex-result__cta-btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(209,69,133,.4);}
.ex-result__cta-btn--secondary{background:#fff;color:#c06aff;border:2px solid #c06aff;}
.ex-result__cta-btn--secondary:hover{background:#faf0ff;}

.ex-result__redo{text-align:center;margin-top:16px;}
.ex-result__redo-btn{padding:10px 24px;background:none;border:1px solid #c06aff;border-radius:999px;color:#c06aff;font-size:13px;cursor:pointer;font-weight:600;}
.ex-result__redo-btn:hover{background:#c06aff;color:#fff;}


/* =============================================================
   毒親度・愛着傷チェック (.tr-check)
   ============================================================= */
.tr-check{padding-bottom:80px;background:#faf5f3;min-height:70vh;}
.tr-check__hero{position:relative;padding:70px 0 50px;overflow:hidden;background:linear-gradient(135deg,#d8e4ff 0%,#e5d8ff 100%);}
.tr-check__hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(107,125,255,.18),transparent 55%),radial-gradient(circle at 80% 70%,rgba(168,107,255,.15),transparent 55%);pointer-events:none;}
.tr-check__hero .ms-container{position:relative;text-align:center;}
.tr-check__label{display:inline-block;padding:5px 18px;background:#fff;border-radius:999px;color:#6a5ae0;font-size:11px;font-weight:700;letter-spacing:.12em;margin-bottom:18px;}
.tr-check__title{font-size:clamp(26px,6.5vw,40px);font-weight:900;margin:0 0 18px;color:#1c1550;line-height:1.3;}
.tr-check__desc{font-size:14px;line-height:2;color:#3a3060;margin:0;}

.tr-check__screen{display:none;margin:40px 0;}
.tr-check__screen--active{display:block;}

.tr-check__intro-card{background:#fff;border-radius:24px;padding:36px 28px;box-shadow:0 8px 28px rgba(107,90,224,.12);text-align:center;border:1px solid #e5d8ff;}
.tr-check__intro-icon{font-size:54px;margin-bottom:12px;}
.tr-check__intro-card h2{font-size:20px;font-weight:800;margin:0 0 18px;color:#1c1550;}
.tr-check__intro-note{background:#fff8e8;border-left:4px solid #f5b93a;padding:14px 18px;border-radius:8px;font-size:12px;color:#6a5030;line-height:1.8;text-align:left;margin:0 0 24px;}
.tr-check__start-btn{display:inline-block;padding:18px 48px;background:linear-gradient(135deg,#6a5ae0,#a869ff);color:#fff;border:none;border-radius:999px;font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(107,90,224,.3);transition:all .2s;}
.tr-check__start-btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(107,90,224,.4);}

.tr-check__progress{margin-bottom:20px;}
.tr-check__progress-bar{width:100%;height:8px;background:#e5d8ff;border-radius:999px;overflow:hidden;}
.tr-check__progress-fill{height:100%;background:linear-gradient(90deg,#6a5ae0,#a869ff);border-radius:999px;transition:width .3s;width:0;}
.tr-check__progress-text{text-align:center;margin:8px 0 0;font-size:12px;color:#6a5a8a;font-weight:600;}

.tr-check__q-card{background:#fff;border-radius:24px;padding:32px 24px;box-shadow:0 6px 22px rgba(107,90,224,.1);border:1px solid #e5d8ff;}
.tr-check__q-text{font-size:17px;font-weight:700;color:#1c1550;margin:0 0 24px;line-height:1.7;text-align:center;}
.tr-check__scale{display:flex;flex-direction:column;gap:10px;}
.tr-check__scale-btn{padding:14px 18px;background:#fff;border:2px solid #e5d8ff;border-radius:14px;color:#1c1550;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;}
.tr-check__scale-btn:hover{border-color:#6a5ae0;background:#faf5ff;transform:translateX(4px);}
.tr-check__back-btn{display:block;margin:20px auto 0;padding:8px 20px;background:none;border:none;color:#6a5a8a;font-size:13px;cursor:pointer;text-decoration:underline;}

.tr-result__score{background:linear-gradient(135deg,#e5d8ff,#c8b5ff);border-radius:24px;padding:40px 24px;text-align:center;margin-bottom:24px;box-shadow:0 10px 30px rgba(107,90,224,.15);}
.tr-result__score-label{font-size:13px;margin:0 0 12px;color:#1c1550;font-weight:700;letter-spacing:.1em;}
.tr-result__score-num{font-size:72px;font-weight:900;color:#1c1550;line-height:1;margin:0;letter-spacing:-.02em;}
.tr-result__score-num small{font-size:28px;font-weight:700;opacity:.7;}
.tr-result__score-level{display:inline-block;padding:6px 20px;background:#fff;border-radius:999px;color:#6a5ae0;font-size:14px;font-weight:800;margin:16px 0 0;}


/* =============================================================
   今日の愛着おみくじ (.omk)
   ============================================================= */
.omk{padding-bottom:80px;background:linear-gradient(180deg,#fff8e5 0%,#fff4d6 100%);min-height:80vh;}
.omk__hero{padding:60px 0 30px;text-align:center;}
.omk__hero h1{font-size:clamp(24px,6vw,36px);font-weight:900;margin:0 0 12px;color:#5a3d0a;}
.omk__hero p{font-size:13px;color:#7a5a30;margin:0;line-height:1.8;}
.omk__date{display:inline-block;padding:4px 16px;background:#fff;border-radius:999px;font-size:12px;font-weight:700;color:#c89030;margin-bottom:16px;box-shadow:0 2px 8px rgba(200,144,48,.15);}

.omk__intro-card{max-width:520px;margin:40px auto;background:#fff;border-radius:24px;padding:40px 24px;text-align:center;box-shadow:0 8px 28px rgba(200,144,48,.15);border:1px solid #f5dfa0;}
.omk__intro-card h2{font-size:18px;font-weight:800;margin:0 0 18px;color:#5a3d0a;}
.omk__type-select{margin-bottom:24px;}
.omk__type-select select{width:100%;padding:14px 16px;border:2px solid #f5dfa0;border-radius:12px;font-size:14px;color:#5a3d0a;background:#fff;font-weight:600;}
.omk__draw-btn{display:inline-block;padding:18px 48px;background:linear-gradient(135deg,#f5b93a,#e89030);color:#fff;border:none;border-radius:999px;font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(200,144,48,.3);transition:all .2s;letter-spacing:.05em;}
.omk__draw-btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(200,144,48,.4);}
.omk__draw-btn:disabled{opacity:.5;cursor:not-allowed;}

.omk__card{max-width:520px;margin:0 auto;background:#fff;border-radius:24px;padding:36px 24px;text-align:center;box-shadow:0 12px 40px rgba(200,144,48,.2);border:2px solid #f5dfa0;position:relative;overflow:hidden;animation:omk-appear .6s ease-out;}
@keyframes omk-appear{from{opacity:0;transform:translateY(20px) scale(.95);}to{opacity:1;transform:translateY(0) scale(1);}}
.omk__card::before{content:'';position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(245,185,58,.1),transparent 50%);pointer-events:none;}
.omk__fortune{font-size:58px;font-weight:900;letter-spacing:.1em;margin:0 0 12px;line-height:1;}
.omk__fortune--dai{color:#d14a4a;}
.omk__fortune--chu{color:#e89030;}
.omk__fortune--sho{color:#7a9030;}
.omk__fortune--kyo{color:#5a5a5a;}
.omk__lucky{font-size:11px;letter-spacing:.15em;color:#c89030;font-weight:700;margin:0 0 20px;}
.omk__msg{background:linear-gradient(135deg,#fff8e5,#fff4d6);border-radius:16px;padding:20px 18px;margin:16px 0;}
.omk__msg-ttl{font-size:12px;font-weight:700;color:#c89030;letter-spacing:.1em;margin:0 0 8px;}
.omk__msg-body{font-size:15px;line-height:1.9;color:#5a3d0a;margin:0;font-weight:500;}

.omk__items{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0;text-align:left;}
.omk__item{background:#faf5e5;padding:12px 14px;border-radius:10px;border:1px solid #f5dfa0;}
.omk__item-label{font-size:10px;color:#c89030;font-weight:700;margin:0 0 4px;letter-spacing:.1em;}
.omk__item-value{font-size:13px;color:#5a3d0a;font-weight:700;margin:0;}

.omk__advice{background:#5a3d0a;color:#fff8e5;border-radius:14px;padding:16px 20px;margin:16px 0;font-size:13px;line-height:1.8;text-align:left;}
.omk__advice strong{color:#f5dfa0;}

.omk__share-btns{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap;}
.omk__share-btn{padding:12px 20px;border-radius:10px;font-weight:700;font-size:13px;text-decoration:none;transition:all .2s;}
.omk__share-btn--x{background:#000;color:#fff;}
.omk__share-btn--line{background:#06c755;color:#fff;}
.omk__share-btn:hover{transform:translateY(-2px);}

.omk__redraw{text-align:center;margin-top:20px;}
.omk__redraw-btn{padding:8px 20px;background:none;border:1px solid #c89030;border-radius:999px;color:#c89030;font-size:12px;cursor:pointer;}
