/* 植物レスキュー室：紙の観察ノートを意識した専用スタイル */
:root{
  --room-card:#F8F4E9;
  --room-choice:#F6F1E5;
  --room-selected:#E4E5D2;
  --room-shadow:0 28px 70px -46px rgba(33,43,22,0.45);
}
[data-theme="dark"]{
  --room-card:#252B24;
  --room-choice:#292F28;
  --room-selected:#343C31;
  --room-shadow:0 28px 70px -44px rgba(0,0,0,0.75);
}

.room-body{ min-height:100vh; }
.room-site-head{ position:relative; z-index:20; }
.room-shell,
.room-question-shell,
.room-result-shell{
  width:min(100% - 32px,760px);
  margin:0 auto;
}
.room-intro{
  padding:clamp(64px,9vw,100px) 0 clamp(80px,11vw,120px);
  background:
    radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--sage) 20%,transparent),transparent 36%),
    var(--paper);
}
.room-intro-shell{ max-width:760px; }
.room-intro h1{
  margin:14px 0 18px;
  font-size:clamp(2.15rem,7vw,3.5rem);
  font-weight:600;
  line-height:1.35;
}
.room-intro-lead{
  max-width:30em;
  margin:0;
  font-family:"Shippori Mincho",serif;
  font-size:clamp(1.1rem,3vw,1.32rem);
  font-weight:500;
  line-height:2;
}
.room-intro-note{ max-width:44em; margin:22px 0 0; color:var(--ink-soft); }
.room-forecast{
  display:grid;
  gap:4px;
  margin:clamp(28px,5vw,40px) 0 0;
  padding:18px 20px;
  border-left:2px solid var(--moss);
  background:var(--paper-soft);
}
.room-forecast p{ margin:0; color:var(--ink-soft); font-size:0.91rem; }
.room-forecast p:first-child{ color:var(--ink); font-weight:500; }
.room-symptoms{ margin-top:clamp(42px,7vw,60px); }
.room-symptoms h2{
  margin:0 0 18px;
  font-size:1.15rem;
  font-weight:600;
}
.room-symptom-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--line);
}
.room-symptom{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  color:var(--ink-soft);
}
.room-symptom:nth-child(odd){ border-right:1px solid var(--line); }
.room-symptom small{
  flex:none;
  color:var(--ink-faint);
  font-size:0.72rem;
  letter-spacing:0.08em;
}
.room-symptom-ready{ color:var(--ink); background:var(--paper-soft); }
.room-symptom-ready small{ color:var(--moss); font-weight:700; }
.room-symptom-consult a{ color:var(--moss); font-size:0.82rem; text-underline-offset:0.25em; }
.room-intro-actions{ display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; margin-top:36px; }
.room-button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 22px;
  border:1px solid transparent;
  border-radius:2px;
  font:inherit;
  font-size:0.94rem;
  line-height:1.45;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .1s ease;
}
.room-button[hidden]{ display:none; }
.room-button-primary{ background:var(--moss); color:var(--on-accent); border-color:var(--moss); }
.room-button-primary:hover{ background:var(--moss-hover); border-color:var(--moss-hover); }
.room-button-secondary{ background:transparent; color:var(--moss-ink); border-color:var(--moss); }
.room-button-secondary:hover{ background:var(--paper-soft); border-color:var(--moss-hover); }
.room-button:active{ transform:translateY(1px); }
.room-button-secondary:active{ background:var(--room-selected); border-color:var(--moss-hover); }
.room-text-link,.room-skip{
  color:var(--ink-soft);
  text-underline-offset:.3em;
  text-decoration-thickness:1px;
}
.room-text-link:hover,.room-skip:hover{ color:var(--ink); }
.room-noscript{ margin-top:26px; padding:14px 18px; border:1px solid var(--line); color:var(--ink-soft); }

.room-check{ min-height:70vh; background:var(--paper); }
.room-progress{
  position:sticky;
  top:0;
  z-index:15;
  min-height:43px;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.room-progress-inner{
  width:min(100% - 32px,760px);
  height:43px;
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 auto;
}
.room-progress-track{ flex:1; height:2px; background:var(--line); overflow:hidden; }
.room-progress-track span{ display:block; width:14.285%; height:100%; background:var(--moss); transition:width .15s ease; }
.room-progress p{ flex:none; min-width:5.7em; margin:0; color:var(--ink-soft); font-size:.78rem; text-align:right; }
.room-question{ min-height:calc(100vh - 44px); padding:24px 0 116px; }
.room-question-shell{ max-width:720px; }
.room-back{
  min-height:44px;
  margin:0 0 16px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ink-soft);
  font:inherit;
  font-size:.88rem;
  cursor:pointer;
}
.room-back:hover{ color:var(--ink); }
.room-question-kicker{
  margin:0 0 8px;
  color:var(--clay);
  font-family:"EB Garamond",serif;
  font-style:italic;
  font-size:.82rem;
  letter-spacing:.18em;
}
.room-question fieldset{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
}
.room-question fieldset + fieldset{ margin-top:clamp(38px,7vw,56px); padding-top:clamp(30px,5vw,40px); border-top:1px solid var(--line); }
.room-question legend{
  display:block;
  width:100%;
  margin:0 0 14px;
  padding:0;
  color:var(--ink);
  font-family:"Shippori Mincho",serif;
  font-size:clamp(1.25rem,4vw,1.62rem);
  font-weight:600;
  line-height:1.65;
}
.room-required,.room-optional{
  display:inline-block;
  margin-left:.5em;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.04em;
  vertical-align:.2em;
}
.room-required{ color:var(--clay); }
.room-optional{ color:var(--ink-soft); }
.room-field-help{ margin:0 0 16px; color:var(--ink-soft); font-size:.88rem; }
.room-help-details{ margin:0 0 18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.room-help-details summary,
.room-result-details summary{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  color:var(--moss-ink);
  font-weight:500;
}
.room-help-details ul{ margin:0 0 18px; padding-left:1.35em; color:var(--ink-soft); font-size:.88rem; }
.room-choice-section{ margin-top:26px; }
.room-choice-section h2{
  margin:0 0 10px;
  color:var(--ink-soft);
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:.8rem;
  font-weight:500;
  letter-spacing:.12em;
}
.room-choice-list{ display:grid; gap:8px; }
.room-choice{
  min-height:48px;
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  align-items:center;
  gap:12px;
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:2px;
  background:var(--room-choice);
  color:var(--ink);
  cursor:pointer;
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.room-choice:hover{ border-color:var(--ink-faint); }
.room-choice:has(input:checked){
  border-color:var(--moss);
  background:var(--room-selected);
  box-shadow:inset 3px 0 0 var(--moss);
}
.room-choice input{
  width:18px;
  height:18px;
  margin:0;
  accent-color:var(--moss);
}
.room-choice span{ line-height:1.65; }
.room-choice-list-compact{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.room-exclusive-list{ margin-top:18px; padding-top:18px; border-top:1px dashed var(--line); }
.room-conditional{
  margin-top:clamp(32px,6vw,48px) !important;
  padding:clamp(24px,5vw,34px) !important;
  border:1px solid var(--line) !important;
  background:var(--paper-soft);
}
.room-error{ margin:10px 0 0; color:var(--clay); font-size:.86rem; font-weight:500; }
.room-next-bar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:18;
  background:var(--paper);
  border-top:1px solid var(--line);
}
.room-next-inner{
  width:min(100% - 32px,760px);
  display:flex;
  justify-content:flex-start;
  gap:16px;
  margin:0 auto;
  padding:10px 0 max(16px,env(safe-area-inset-bottom));
}
.room-next-inner .room-button{ min-width:min(100%,220px); }
.room-next-inner #room-next{ margin-left:auto; }
.room-skip{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  margin-top:22px;
  padding:0;
  border:0;
  background:transparent;
  font:inherit;
  font-size:.88rem;
  cursor:pointer;
}
.room-sr-status{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}

.room-result{ padding:clamp(58px,9vw,90px) 0 clamp(84px,11vw,120px); }
.room-result-shell{ max-width:760px; }
.room-result h1{
  margin:14px 0 16px;
  font-size:clamp(2rem,6vw,3rem);
  font-weight:600;
  line-height:1.45;
}
.room-result-lead{ max-width:42em; margin:0 0 34px; color:var(--ink-soft); }
.room-safety{
  margin:0 0 32px;
  padding:22px clamp(20px,4vw,28px);
  border:1px solid var(--moss);
  background:transparent;
}
.room-safety h2{ margin:0 0 8px; font-size:1.12rem; line-height:1.75; }
.room-safety p{ margin:0; color:var(--ink-soft); }
.room-result-block{
  margin-top:32px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.room-result-primary{
  margin-top:0;
  padding:clamp(24px,5vw,34px);
  border:1px solid var(--line);
  background:transparent;
  box-shadow:none;
}
.room-result-block h2{
  margin:0 0 14px;
  color:var(--ink-soft);
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:.8rem;
  font-weight:500;
  letter-spacing:.12em;
}
.room-result-title{
  margin:0;
  font-family:"Shippori Mincho",serif;
  font-size:clamp(1.25rem,4vw,1.58rem);
  font-weight:600;
  line-height:1.8;
}
.room-result-reason{ margin:14px 0 0; color:var(--ink-soft); font-size:.92rem; }
.room-result-block ul,.room-result-details ul{ margin:0; padding-left:1.25em; }
.room-result-block li,.room-result-details li{ margin:0 0 9px; }
.room-result-details{ margin-top:36px; }
.room-result-details details{ border-top:1px solid var(--line); }
.room-result-details details:last-child{ border-bottom:1px solid var(--line); }
.room-result-details ul,.room-result-details p{ margin-top:0; margin-bottom:20px; color:var(--ink-soft); }
.room-result-controls{ display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; }
.room-consultation{ margin-top:42px; padding:22px clamp(20px,4vw,28px); border:1px solid var(--line); }
.room-consultation p{ margin:0 0 18px; color:var(--ink-soft); }

@media (max-width:600px){
  .room-symptom-list{ grid-template-columns:1fr; }
  .room-symptom:nth-child(odd){ border-right:0; }
  .room-choice-list-compact{ grid-template-columns:1fr; }
  .room-intro-actions{ align-items:stretch; flex-direction:column; }
  .room-intro-actions .room-button{ width:100%; }
  .room-text-link{ align-self:flex-start; }
  .room-next-inner{ gap:12px; }
  .room-next-inner .room-button{ flex:1 1 0; min-width:0; }
  .room-next-inner #room-next{ margin-left:0; }
  .room-result-controls{ flex-direction:column; }
  .room-result-controls .room-button{ width:100%; }
  .room-consultation .room-button{ width:100%; }
}

@media (max-width:390px){
  .room-shell,.room-question-shell,.room-result-shell,.room-progress-inner,.room-next-inner{ width:calc(100% - 32px); }
  .room-question{ padding-top:20px; }
  .room-choice{ padding:13px 14px; }
  .room-conditional{ padding:22px 16px !important; }
  .room-next-inner .room-button{ width:100%; min-width:0; }
}

@media (prefers-reduced-motion:reduce){
  .room-progress-track span,.room-choice,.room-button{ transition:none; }
}

@media print{
  @page{ margin:16mm; }
  html,body{ background:#fff !important; color:#222 !important; }
  .room-site-head,.room-intro,.room-progress,.room-next-bar,.room-result-controls,.room-consultation,.room-foot{ display:none !important; }
  .room-check,.room-result{ display:block !important; min-height:0; padding:0 !important; }
  .room-question{ display:none !important; }
  .room-result[hidden]{ display:none !important; }
  .room-result-shell{ width:100%; max-width:none; }
  .room-result-primary,.room-safety{ background:#fff !important; box-shadow:none; }
  .room-result-details details > :not(summary){ display:block !important; }
  .room-result-details summary{ color:#222 !important; }
}
