:root{
  --content-max:680px;
  --page-gutter:clamp(10px,2.4vw,18px);
  --bg:#f5f1ea;
  --paper:#fffdf9;
  --ink:#342a23;
  --muted:#796e64;
  --line:#e6ddd2;
  --primary:#70523f;
  --primary-dark:#51392b;
  --soft:#f3e9de;
  --blue:#edf5f7;
  --shadow:0 16px 44px rgba(62,43,30,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",Meiryo,sans-serif;line-height:1.75}
button,input,textarea,select{font:inherit}
button{color:inherit}

/* HERO -------------------------------------------------- */
.hero{width:min(calc(100% - (var(--page-gutter) * 2)),var(--content-max));margin:clamp(10px,2vw,18px) auto 0}
.hero-link{display:block;width:100%;aspect-ratio:68/27;overflow:hidden;border-radius:26px;text-decoration:none}
.hero-image{display:block;width:100%;height:100%;object-fit:cover}
.hero-link:focus-visible{outline:3px solid var(--primary);outline-offset:3px}

/* CONVERSATION BASE ------------------------------------- */
.conversation-main{width:min(calc(100% - (var(--page-gutter) * 2)),var(--content-max));margin:18px auto 0;padding:0 0 84px}
.conversation-panel{background:var(--paper);border:1px solid var(--line);border-radius:26px;padding:clamp(16px,3.8vw,34px);box-shadow:var(--shadow)}
.chat{display:flex;flex-direction:column;gap:18px}
.message-row{display:flex;gap:12px;align-items:flex-start}
.message-row.no-avatar{padding-left:clamp(0px,6vw,60px)}
.message-avatar{width:clamp(48px,6vw,54px);height:clamp(48px,6vw,54px);flex:0 0 clamp(48px,6vw,54px);border-radius:14px;object-fit:cover;object-position:center 24%;background:#eee7df}
.message-bubble{max-width:min(690px,calc(100vw - 92px));padding:14px 17px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(50,35,25,.03)}
.message-bubble p{margin:0}.message-bubble p+p{margin-top:5px}
.user-answer{align-self:flex-end;max-width:78%;margin-left:auto;padding:13px 17px;border:1px solid #d7e7eb;border-radius:18px;background:var(--blue);font-weight:800}
.choice-group{display:grid;gap:10px;margin-left:clamp(0px,6vw,60px)}
.choice-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border:1px solid var(--line);border-radius:16px;background:#fff;font-weight:700;text-align:left;cursor:pointer;transition:.15s}
.choice-label{display:flex;align-items:flex-start;gap:9px;min-width:0}
.choice-number{flex:0 0 auto;color:var(--primary-dark);font-weight:900}
.choice-button:hover{background:var(--soft);transform:translateY(-1px)}
.choice-button:disabled{opacity:.55;cursor:default;transform:none}
.choice-action{flex:0 0 auto;color:var(--primary);font-size:13px}
.section-kicker{margin-bottom:5px;color:var(--primary);font-size:10px;font-weight:900;letter-spacing:.17em}
.section-title{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(23px,4vw,32px);font-weight:600;line-height:1.45}
.section-lead{margin:6px 0;color:var(--muted)}
.numeric-note{margin:9px 0 0;color:var(--muted);font-size:10px;line-height:1.6}

/* CONCIERGE PICKER -------------------------------------- */
.concierge-picker{width:100%;display:grid;gap:12px}
.concierge-grid{width:100%;display:grid;grid-template-columns:repeat(4,minmax(64px,1fr));gap:clamp(6px,1.4vw,10px)}
.concierge-card{min-width:0;display:grid;grid-template-rows:auto auto auto 1fr;align-items:start;gap:7px;padding:clamp(7px,1.4vw,11px);border:1px solid var(--line);border-radius:18px;background:#fff;text-align:left;cursor:pointer;transition:.16s}
.concierge-card:hover{transform:translateY(-2px);border-color:#d6c2ae;background:var(--soft)}
.concierge-card:disabled{opacity:.55;cursor:default;transform:none}
.concierge-card-photo{width:100%;aspect-ratio:1/1;border-radius:13px;object-fit:cover;object-position:center 24%;background:#eee7df}
.concierge-card-kicker{font-size:9px;font-weight:900;letter-spacing:.14em;color:var(--primary)}
.concierge-card strong{font-size:clamp(11px,2.1vw,15px);line-height:1.45}
.concierge-card small{font-size:clamp(9px,1.7vw,11px);line-height:1.5;color:var(--muted)}
@media(max-width:600px){
  .concierge-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:12px}
  .concierge-card{padding:clamp(10px,3vw,14px)}
  .concierge-card strong{font-size:14px}
  .concierge-card small{font-size:clamp(12px,3.33vw,13px);line-height:1.65}
}

.concierge-card-satisfaction .concierge-card-photo{object-position:center center;transform:none}
.concierge-mood-satisfaction .concierge-feature-photo{object-position:center center}

/* TODAY'S CONCIERGE ------------------------------------- */
.concierge-mood{display:grid;grid-template-columns:clamp(64px,12vw,80px) minmax(0,1fr);gap:14px;align-items:start;padding:clamp(14px,2.5vw,22px);border:1px solid #decfbe;border-radius:24px;background:linear-gradient(145deg,#fffdf9,#f4ece3)}
.concierge-feature-photo{width:100%;aspect-ratio:1/1;height:auto;border-radius:15px;object-fit:cover;object-position:center 24%;background:#eee7df}
.concierge-mood-content{min-width:0;align-self:center}
.concierge-mood-copy h2{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(18px,3.2vw,23px);font-weight:600;line-height:1.4}
.concierge-preference{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.65}
.concierge-current-mood{grid-column:1/-1;min-width:0}
.concierge-mood-line{margin:0 0 8px;color:#5d554d;font-size:13px;line-height:1.7}
.mood-values{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.mood-value{max-width:100%;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.8);color:var(--primary-dark);font-size:11px;font-weight:700;line-height:1.6}
.concierge-pick{grid-column:1/-1;min-width:0;display:grid;gap:6px;padding-top:14px;border-top:1px solid var(--line)}
.concierge-pick-title{margin:0;font-size:14px;line-height:1.5;color:var(--primary-dark)}
.concierge-product{min-width:0;display:grid;gap:3px}.concierge-product strong{font-size:clamp(18px,3.3vw,22px);line-height:1.5;overflow-wrap:anywhere}.concierge-product small{font-size:11px;color:var(--muted)}
.concierge-product a{color:inherit;text-decoration:underline;text-decoration-color:#c3ae9c;text-decoration-thickness:1px;text-underline-offset:4px}
.concierge-product a:hover{color:var(--primary)}
.pickup-reason{grid-column:1/-1;padding:11px 13px;border:1px solid rgba(90,70,50,.12);border-radius:14px;background:rgba(255,255,255,.75)}
.pickup-reason strong{display:block;margin-bottom:4px;font-size:12px}.pickup-reason p{margin:0;color:#5d554d;font-size:13px;line-height:1.75;overflow-wrap:anywhere}
.pickup-footer{grid-column:1/-1;display:grid;justify-items:end;gap:8px;min-width:0}
.pickup-score{display:grid;gap:2px;color:var(--muted);font-size:10px;line-height:1.6}.pickup-score strong{color:var(--primary-dark);font-size:13px;white-space:nowrap}.pickup-score strong small{font-size:10px;font-weight:400}
.concierge-product a:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:3px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* YOUR QUESTIONS --------------------------------------- */
.question-entry{display:flex;justify-content:center}
.question-entry-button{position:relative;display:grid;justify-items:center;gap:2px;width:100%;max-width:360px;min-height:60px;padding:11px 36px 11px 18px;border:1px solid var(--primary-dark);border-radius:16px;background:var(--primary-dark);color:#fff;cursor:pointer;text-align:center}
.question-entry-label{font-size:clamp(14px,3.7vw,16px);font-weight:800;line-height:1.5}
.question-entry-note{font-size:11px;line-height:1.5;font-weight:400}
.question-entry-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:19px}
.question-entry-button:hover:not(:disabled){background:var(--primary)}
.question-entry-button:disabled{opacity:.6;cursor:default}
.question-entry-button:focus-visible,.concierge-card:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
.current-question,#personalResults{scroll-margin-top:16px}
.current-question:focus-visible,#personalResults:focus-visible{outline:2px solid var(--primary);outline-offset:5px;border-radius:18px}

/* CONCIERGE TOP 10 -------------------------------------- */
.concierge-ranking{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden}
.concierge-ranking-summary{position:relative;display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 38px;cursor:pointer;list-style:none;font-size:14px;font-weight:700;color:var(--primary-dark);text-align:center}
.concierge-ranking-summary::-webkit-details-marker{display:none}
.ranking-toggle{position:absolute;right:18px;font-size:18px;line-height:1;transition:transform .18s}
.concierge-ranking[open] .ranking-toggle{transform:rotate(180deg)}
.concierge-ranking-body{padding:0 18px 18px}
.concierge-ranking-list{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid var(--line)}
.ranking-row{display:grid;grid-template-columns:clamp(28px,4vw,38px) minmax(0,1fr) clamp(54px,8vw,70px) clamp(72px,11vw,98px);gap:10px;align-items:center;padding:11px 4px;border-bottom:1px solid var(--line)}
.ranking-position{text-align:center;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:23px;color:var(--primary)}
.ranking-product{min-width:0;display:flex;flex-direction:column;gap:2px}.ranking-product strong{font-size:14px;line-height:1.5}.ranking-product small{font-size:10px;color:var(--muted)}
.ranking-product-link{color:inherit;text-decoration:underline;text-decoration-color:#c3ae9c;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.ranking-product-link:hover{color:var(--primary)}
.ranking-product-link:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:3px}
.ranking-match{text-align:right;font-weight:900;color:var(--primary-dark)}
.ranking-reference{text-align:right;font-size:10px;line-height:1.55;color:var(--muted)}.ranking-reference b{color:var(--ink)}
.ranking-row.is-pickup{padding-left:7px;padding-right:7px;border-radius:12px;background:linear-gradient(90deg,rgba(243,233,222,.85),rgba(255,255,255,0))}
.pickup-tag{display:inline-flex;width:max-content;margin-top:3px;padding:2px 7px;border-radius:999px;background:var(--primary-dark);color:#fff;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.08em}

/* THINKING / RESULT INTRO -------------------------------- */
.result-thinking{display:grid;justify-items:center;gap:12px;padding:28px 18px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#fffdf9,#f3ece4);text-align:center}
.result-thinking img{width:138px;height:138px;border-radius:50%;object-fit:cover;object-position:center 22%;border:4px solid #fff;box-shadow:0 10px 28px rgba(62,43,30,.12)}
.result-thinking strong{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:22px;font-weight:600}
.thinking-dots{display:inline-flex;gap:5px}.thinking-dots i{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:dot 1s infinite alternate}.thinking-dots i:nth-child(2){animation-delay:.18s}.thinking-dots i:nth-child(3){animation-delay:.36s}@keyframes dot{to{opacity:.25;transform:translateY(-2px)}}
.result-intro-wrap{display:grid;gap:14px}
.result-concierge-lead{display:grid;justify-items:center;gap:12px}
.result-intro-photo{width:clamp(86px,16vw,124px);height:clamp(86px,16vw,124px);border-radius:20px;object-fit:cover;object-position:center 22%;border:4px solid #fff;box-shadow:0 9px 24px rgba(62,43,30,.1)}
.result-intro-speech{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:20px;background:#fff;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(16px,4.4vw,20px);font-weight:600;line-height:1.7;text-align:center;text-wrap:balance;color:#4f4740}
.result-priorities-panel{display:grid;justify-items:center;gap:12px;padding:20px;border:1px solid var(--line);border-radius:22px;background:#fff}
.result-priorities-label{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(20px,3.4vw,28px);font-weight:600;color:var(--primary-dark)}
.result-priorities-list{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.result-priorities-list span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:9px 12px;border:1px solid #d7e7eb;border-radius:16px;background:#f8fcfd;font-size:clamp(14px,2.4vw,17px);font-weight:900;color:var(--primary-dark);text-align:center}

/* RESULT CARDS ------------------------------------------ */
.results{display:grid;gap:20px;margin-top:4px}.comparison-story{gap:22px}
.personal-recommendations{display:grid;gap:16px}
.result-card{container:result-card / inline-size;min-width:0;padding:clamp(14px,3vw,22px);border:1px solid var(--line);border-radius:22px;background:#fff}
.role-favorite{border:2px solid #9a7a61;box-shadow:0 12px 30px rgba(80,53,36,.08)}
.result-card-heading{margin-bottom:10px}.result-role-title{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(18px,3.1vw,22px);font-weight:600;line-height:1.5}
.result-product-main,.result-product-copy{min-width:0}
.result-product-copy h2{margin:0;font-size:clamp(22px,3.8vw,29px);line-height:1.45;overflow-wrap:anywhere}.product-brand{margin-top:3px;font-size:11px;letter-spacing:.07em;color:var(--muted);overflow-wrap:anywhere}
.result-product-link,.other-product-link{color:inherit;text-decoration:underline;text-decoration-color:#c3ae9c;text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}
.result-product-link:hover,.other-product-link:hover{color:var(--primary)}
.result-product-link:focus-visible,.other-product-link:focus-visible,.image-search-link:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:3px}
.result-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin-top:12px}
.result-rank-corner{display:grid;gap:2px;font-size:11px;line-height:1.5;color:var(--muted)}.result-rank-corner b{color:var(--primary-dark);font-size:13px}

.result-side{display:grid;justify-items:end;gap:3px;margin-left:auto;text-align:right}.result-score-label{font-size:11px;line-height:1.5;color:var(--muted)}.result-score{font-size:clamp(28px,4.4vw,34px);font-weight:900;line-height:1.1;color:var(--primary-dark)}.result-score small{font-size:.42em}
.result-ref{margin:12px 0 0;font-size:11px;line-height:1.7;color:var(--muted)}
.concierge-comment{margin:15px 0 0;padding:13px 15px;border:1px solid var(--line);border-radius:16px;background:#fcfaf7;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.concierge-comment b{display:block;margin-bottom:5px;font-size:11px;color:var(--primary)}.concierge-comment p{margin:0}
.evidence-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:3px 10px;margin-top:16px}.evidence-heading b{font-size:12px}.evidence-heading span{font-size:10px;color:var(--muted)}
.evidence-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}
.evidence-column{min-width:0;display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:8px}
.evidence-axis{min-width:0;display:flex;flex-direction:column;gap:7px;padding:10px 11px;border:1px solid var(--line);border-radius:13px;background:#fff}
.evidence-name{font-size:clamp(12px,2.1vw,14px);font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.evidence-value{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:23px;margin-top:auto}
.evidence-value strong{margin-left:auto;font-size:clamp(16px,2.5vw,19px);line-height:1.2;color:var(--primary-dark);font-weight:800}
.evidence-axis.is-priority{background:var(--soft)}
.priority-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:5px;background:rgba(112,82,63,.12);color:var(--primary-dark);font-size:10px;font-weight:800;line-height:1.4;white-space:nowrap}
/* 項目名・重視・100%まで収まる幅があるときだけ、10項目を一斉に横並びにする。 */
@container result-card (min-width:540px){
  .evidence-axis{flex-direction:row;align-items:center;justify-content:space-between;gap:6px}
  .evidence-name{white-space:nowrap}
  .evidence-value{flex-shrink:0;gap:7px;margin-top:0}
}
.evidence-details{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.evidence-details summary{padding:10px 12px;color:var(--muted);font-size:12px;cursor:pointer}
.evidence-details summary:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.evidence-details[open]{padding-bottom:12px}
.numeric-details{display:grid;gap:0;margin:0 12px;padding:0}
.numeric-detail{min-width:0;display:grid;gap:3px;padding:8px 0;border-top:1px solid var(--line)}
.numeric-detail dt{font-size:12px;font-weight:700}.numeric-detail dd{margin:0;font-size:11px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}
@container result-card (min-width:440px){
  .numeric-detail{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px}
  .numeric-detail dd{white-space:nowrap}
}
.evidence-details .result-ref{margin:10px 12px 0}
.result-links{display:flex;justify-content:flex-end;margin-top:10px}
.image-search-link{display:inline-flex;align-items:center;gap:3px;min-height:36px;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:3px}
.image-search-link:hover{color:var(--primary-dark)}
.other-candidates{padding:20px;border:1px solid var(--line);border-radius:22px;background:#fff}.other-title{margin:0 0 8px;font-size:19px}.other-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(6px,1.4vw,9px)}.mini-card{min-width:0;display:grid;grid-template-rows:auto 1fr auto;align-items:start;gap:3px;padding:13px;border:1px solid var(--line);border-radius:15px}.mini-meta{font-size:10px;color:var(--muted)}.mini-card span{font-size:11px;font-weight:800;color:var(--primary)}
.retry-only{display:flex;justify-content:center;padding-top:2px}.retry-button{border:0;border-radius:999px;padding:12px 20px;background:var(--primary-dark);color:#fff;font-weight:800;cursor:pointer}

/* FOOTER / ERROR ---------------------------------------- */
.footer{text-align:center;color:var(--muted);font-size:11px;padding:0 18px 36px}.error{margin-bottom:16px;padding:14px;border:1px solid #efc3bf;border-radius:12px;background:#fff0ef}

/* LAYOUT POLICY ----------------------------------------- */
/* Mobile-first single-column design. The same composition is kept at every width;
   only sizes, gaps and type scale fluidly. PC simply gets a little more breathing room. */

/* V38: evidence is always two fixed columns (first 5 / last 5). */
.evidence-column:first-child{grid-column:1}
.evidence-column:last-child{grid-column:2}

.category-list{display:grid;gap:12px;margin-top:24px}.category-link{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);text-decoration:none}.category-link:hover{background:var(--soft)}.category-link span{font-size:13px;white-space:nowrap}.category-heading{margin-bottom:20px}[hidden]{display:none!important}

.product-facts{font-size:12px;line-height:1.7;color:var(--muted,#786a5c);margin:8px 0 0;overflow-wrap:anywhere}.product-facts span{display:block}.concierge-mood>.product-facts{grid-column:1/-1}.evaluation-note{font-size:12px;line-height:1.7;color:var(--muted,#786a5c)}.evaluation-note p{margin:8px 0}

/* V58: compact reference grades, separate from compatibility. */
.product-facts .product-reference{display:block;color:var(--muted);font-size:12px}
.product-reference b{font-size:14px;color:var(--ink)}
.product-reference small{display:inline;font-size:11px}
