:root{--pad:18px}
.top{z-index:15}
.app{overflow:clip;overflow:visible}
.review-ribbon{background:#eaece7;color:#59665b;border-bottom:1px solid #d9ded6;padding:7px 18px;font-size:10.5px;line-height:1.45;text-align:center}
.intro-kicker{font-size:12px;color:var(--green);font-weight:800;letter-spacing:.05em;margin:0 0 14px}
.intro-title{font-size:31px;line-height:1.53;letter-spacing:-.04em;margin:0 0 18px;max-width:370px}
.intro-lead{color:#556157;font-size:14px;line-height:1.85;margin:0 0 24px}
.intro-image{width:100%;height:180px;object-fit:cover;object-position:center;border-radius:0;margin:0 0 15px}
.step-indicator{display:flex;justify-content:space-between;align-items:center;color:#647168;font-size:12px;margin:0 0 24px}
.step-track{height:4px;background:#e8ece8;border-radius:10px;overflow:hidden;width:150px}.step-progress{height:100%;background:#4b8066;transition:width .2s}
.step-title{font-size:25px;line-height:1.5;letter-spacing:-.025em;margin:0 0 12px}
.step-help{font-size:13.5px;line-height:1.72;color:#667068;margin:0 0 21px}
.choice-list{display:grid;gap:9px;margin-bottom:26px}
.choice{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border:1px solid #d9dcd6;border-radius:15px;background:white;padding:15px 14px;color:#343d35;font-size:14px;line-height:1.55;min-height:54px;cursor:pointer}
.choice:focus-visible{outline:3px solid #86A997}
.choice[aria-pressed="true"]{background:#e6eee8;border-color:#59836d;box-shadow:inset 0 0 0 1px #59836d}
.choice-icon{color:var(--green);width:18px;text-align:center;font-size:15px;font-weight:800;flex:none}
.choice-title{font-weight:700}
.choice-desc{display:block;font-size:11.8px;color:#65736b;font-weight:400;margin-top:2px}
.secondary-action{border:0;background:none;color:#40634e;font-size:13px;font-weight:700;padding:13px 15px}
.step-actions{display:flex;align-items:center;gap:10px;margin-top:18px}.step-actions .primary{flex:1}
.primary:disabled{opacity:.45;cursor:not-allowed}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:20px}
.route-choice{display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:102px;padding:14px 11px;border:1px solid #deded6;border-radius:15px;background:white;text-align:left;cursor:pointer}
.route-choice[aria-pressed="true"]{background:#e7efe9;border-color:#59836d;box-shadow:inset 0 0 0 1px #59836d}
.route-code{display:block;font-size:10px;color:#78857b;letter-spacing:.06em}.route-choice strong{font-size:13px;line-height:1.48;color:#333f36}
.select-label{display:block;font-size:13px;font-weight:700;color:#394b3c;margin:0 0 8px}
.select-field{width:100%;min-height:52px;padding:12px;border:1px solid #d4d9d2;border-radius:12px;background:white;color:#29372e;font-size:15px;margin:0 0 17px}
.hint{font-size:12px;line-height:1.8;color:#6b756b;margin:0 0 20px}
.location-choice{display:flex;align-items:center;gap:9px;margin:10px 0 20px;font-size:13px;line-height:1.6}
.review-panel{background:#f3f4f0;border:1px solid #d7ded6;border-radius:16px;padding:16px;margin:24px 0 0}
.review-panel h2{font-size:14px;margin:0 0 9px}.review-panel p{font-size:11.5px;color:#657167;line-height:1.6;margin:0 0 10px}.review-select{width:100%;min-height:42px;border:1px solid #bdc9bc;border-radius:9px;padding:8px;background:white;font-size:13px}
.back-link{border:0;background:transparent;color:#4b6c57;font-size:12.5px;padding:15px 0;margin:16px auto 0;display:block}
.result-state{margin:13px 0 16px;border:1px solid #d7e0d6;border-radius:10px;padding:11px 12px;background:#f2f7f1;color:#475749;font-size:11.8px;line-height:1.7}
.result-state.warn{border-color:#e0d3ba;background:#fbf7ed;color:#675b3f}
.result-title{word-break:normal;overflow-wrap:normal}
.theme-photo{overflow:hidden}
.theme-photo.split .winter,.theme-photo.split .summer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.theme-photo.split .winter{clip-path:polygon(0 0,55% 0,45% 100%,0 100%)}
.theme-photo.split .summer{clip-path:polygon(55% 0,100% 0,100% 100%,45% 100%)}
.detail-question{font-size:12.3px;line-height:1.72;color:#475147;margin:0 0 11px}
.axis-panel.a,.axis-panel.b{min-height:0}
.axis-panel .axis-text{font-size:12.1px;line-height:1.75}
.result-caution{margin:18px 0 0;font-size:11px;color:#6d746c;line-height:1.65}
.missing-state{border:1px solid #e3cfc8;background:#fff8f4;color:#775045;padding:18px;border-radius:15px;font-size:13px;line-height:1.8}
.result-actions{margin-top:24px}
.result-lead .lead-paragraph+.lead-paragraph{margin-top:10px}
@media(max-width:350px){.intro-title{font-size:26px}.step-title{font-size:22px}.choice-grid{gap:7px}.route-choice{min-height:95px;padding:11px 9px}.route-choice strong{font-size:12.2px}.review-ribbon{font-size:10px;padding:7px 12px}.result-state{font-size:11px}}

/* 2026-10-30 復旧：未確定のヘッダーを導入画面・質問画面へ足さない。 */
body:not(.result-mode) .top{display:none}
body:not(.result-mode) main{padding-top:36px}
.intro-hero{min-height:min(80svh,690px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 0 55px}
.intro-kicker{font-size:11px;letter-spacing:.06em;margin-bottom:24px}
.intro-title{max-width:400px;margin:0 auto 21px;font-size:27px;font-weight:700;line-height:1.65;letter-spacing:-.04em;text-align:center;text-wrap:balance}
.intro-lead{margin:0 auto 33px;font-size:13.8px;line-height:2;color:#556157;text-align:center}
.intro-hero .primary{max-width:330px}
.intro-footnote{font-size:11.5px;color:#7b8179;line-height:1.6;margin:17px 0 0}
.choice-title{display:block}
.compact-choice{margin-bottom:16px}
.hard-list{border-left:2px solid #dce6dd;padding:3px 0 0 14px;margin:0 0 16px}
.hard-list .step-help{margin:0 0 12px}
.hard-list .choice-list{gap:7px;margin-bottom:8px}
.hard-list .choice{min-height:48px;padding:11px 12px;font-size:12.8px}
.choice-grid{grid-template-columns:1fr}
.route-choice{min-height:64px;padding:15px 16px;justify-content:center}
.route-choice strong{font-size:14px}
.building-options{border:0;padding:0;margin:5px 0 17px;min-width:0}
.building-options legend{font-size:13px;font-weight:700;color:#394b3c;margin:0 0 11px;padding:0}
.building-choice{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #dddeda;border-radius:11px;padding:12px 13px;margin-bottom:8px;min-height:48px;font-size:13.5px;line-height:1.5;cursor:pointer}
.building-choice:has(input:checked){background:#ebf3ed;border-color:#759682}
.building-choice input{accent-color:var(--green);width:16px;height:16px;flex:none}
.review-panel #review-show{display:block;width:100%;text-align:center;margin-top:8px}
.region-note{font-size:11.5px;line-height:1.8;color:#685b44;background:#faf6eb;border:1px solid #e0d8c8;border-radius:11px;padding:10px 12px;margin:6px 0 16px}
.compare-question{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:14px 3px 16px}
.compare-question span{font-size:11px;letter-spacing:.05em;font-weight:800;color:#8b9a8c}
.compare-question strong{font-size:14px;line-height:1.65;letter-spacing:-.01em}
.takeaway-copy{font-size:13px;line-height:1.84;color:#444c45;margin:0 0 7px}
.result-title{text-align:center}
.result-lead{text-align:left}
@media(max-width:350px){
 body:not(.result-mode) main{padding-top:25px}
 .intro-title{font-size:22.5px;line-height:1.66}
 .intro-lead{font-size:12.2px;line-height:1.9}
 .route-choice{min-height:59px;padding:13px 12px}
 .route-choice strong{font-size:13px}
 .building-choice{font-size:12.5px}
}

/* 導入写真と下部固定の操作領域。結果の追従写真や2社比較とは独立。 */
body.intro-mode main{padding-top:0;padding-bottom:128px}
.intro-hero{display:block;min-height:0;padding:0 0 18px;text-align:center}
.intro-visual{height:225px;overflow:hidden;margin:0 calc(-1 * var(--pad)) 27px;background:#e9ebe5}
.intro-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 52%}
.intro-kicker{margin:0 0 19px}
.intro-title{font-size:26px;line-height:1.55;margin-bottom:20px}
.intro-lead{margin:0 auto 19px;line-height:1.85}
.intro-footnote{margin:0;font-size:11px}
body.question-mode main{padding-bottom:128px}
.step-title{text-align:center;margin:0 auto 14px;max-width:360px}
.step-help{text-align:center;margin:0 auto 23px;max-width:360px}
.step-actions,.intro-actions{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,430px);z-index:20;display:flex;align-items:center;gap:11px;margin:0;padding:12px var(--pad) calc(16px + env(safe-area-inset-bottom));border-top:1px solid #e4e3de;background:rgba(255,253,249,.97);box-shadow:0 -6px 18px rgba(41,48,41,.055);backdrop-filter:blur(10px)}
.step-actions .primary{flex:1}
.step-actions .secondary-action{flex:0 0 76px;min-height:50px;text-align:center;padding:12px 5px}
.intro-actions .primary{flex:1}
@media(max-width:350px){
 body.intro-mode main{padding-top:0}
 .intro-visual{height:176px;margin-bottom:21px}
 .intro-title{font-size:22px;line-height:1.55;margin-bottom:15px}
 .intro-lead{font-size:12.1px;line-height:1.8;margin-bottom:15px}
 .intro-kicker{margin-bottom:13px}
 .step-actions,.intro-actions{padding:11px var(--pad) calc(13px + env(safe-area-inset-bottom))}
 .step-title{font-size:22px;line-height:1.48}
}

/* 承認済みの入口写真・高さを維持し、比較アプリの目的を端的に伝える。 */
body.intro-mode .intro-hero{padding:0;min-height:0;text-align:left}
body.intro-mode .intro-visual{position:relative;height:clamp(355px,59svh,540px);margin:0 calc(-1 * var(--pad));overflow:hidden;background:#8a8b78}
body.intro-mode .intro-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,31,27,.03) 0%,rgba(22,31,27,.05) 36%,rgba(18,29,22,.67) 100%);pointer-events:none}
body.intro-mode .intro-visual img{object-position:54% center;transform:scale(1.01)}
.intro-visual-copy{position:absolute;z-index:2;left:25px;right:22px;bottom:46px;color:#fff}
.intro-issue{font-size:11px;letter-spacing:.16em;font-weight:700;margin:0 0 16px;color:#f1f4ea}
body.intro-mode .intro-title{max-width:400px;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:32px;font-weight:700;letter-spacing:-.055em;line-height:1.46;color:#fff;margin:0;text-align:left;text-wrap:initial;text-shadow:0 1px 7px rgba(20,28,21,.18)}
.intro-photo-credit{position:absolute;z-index:2;right:14px;top:14px;background:rgba(17,22,18,.4);color:#fff;font-size:9px;letter-spacing:.03em;padding:5px 8px;border-radius:3px}
.intro-copy{padding:26px 4px 0;margin:0}
body.intro-mode .intro-lead{font-size:15px;line-height:1.83;letter-spacing:-.015em;color:#38433b;font-weight:500;text-align:left;margin:0 0 14px}
body.intro-mode .intro-footnote{font-size:11.2px;color:#7c817b;line-height:1.6;text-align:left;margin:0}
body.intro-mode main{padding-bottom:148px}
.result-title-line{display:block;white-space:nowrap}
.user-caution{font-size:11.4px;line-height:1.72;color:#647068;margin:20px 0 4px;padding:13px 0 0;border-top:1px solid var(--line)}
.takeaway{padding-top:21px}
.takeaway li{margin:9px 0;line-height:1.8}
.hard-confirm{display:flex;align-items:flex-start;gap:11px;padding:15px 14px;margin:16px 0 4px;background:#f4f7f3;border:1px solid #cbdad0;border-radius:12px;color:#354a3b;font-weight:700;font-size:13.2px;line-height:1.7;cursor:pointer;text-align:left}
.hard-confirm input{width:19px;height:19px;accent-color:var(--green);flex:none;margin:2px 0 0}
body.intro-mode .intro-lead{font-size:15px;line-height:1.8}
.point-button{font-size:12px;letter-spacing:.01em}
@media(max-width:350px){
 body.intro-mode .intro-visual{height:clamp(312px,55svh,445px)}
 .intro-visual-copy{left:18px;right:14px;bottom:38px}
 body.intro-mode .intro-title{font-size:26px;line-height:1.5}
 .intro-issue{margin-bottom:12px}
 .intro-copy{padding-top:23px}
 body.intro-mode .intro-lead{font-size:13.5px}
 .result-title-line{white-space:normal;display:block}
}

/* Q3の4項目が収まらない小さな画面は、同じ候補のプルダウンに切り替える。 */
.q3-choice-select{display:none}
@media(max-height:700px){
 .q3-choice-buttons{display:none}
 .q3-choice-select{display:block;margin:8px 0 20px}
}

/* 質問の文章・選択肢は変更せず、階層と選択状態を視覚的に読み取りやすくする。 */
body.question-mode main{background:radial-gradient(ellipse 95% 200px at 50% 0%,#eef2e9 0%,rgba(238,242,233,0) 100%)}
.step-indicator{font-weight:650;color:#52715e}
.step-track{height:5px;background:#dfe9df}
.choice-list .choice{border-color:#d5ded4;background:linear-gradient(115deg,#f9fbf7 0%,#fff 70%);box-shadow:0 2px 9px rgba(49,65,49,.045)}
.choice-list .choice[aria-pressed="true"]{background:#e6eee8;border-color:#59836d;box-shadow:inset 0 0 0 1px #59836d}
.q3-choice-buttons .route-choice{border-color:#d2dcd1;background:linear-gradient(105deg,#f9fbf7,#fff);box-shadow:0 2px 9px rgba(49,65,49,.048)}
.q3-choice-buttons .route-choice[aria-pressed="true"]{background:#e7efe9;border-color:#59836d;box-shadow:inset 0 0 0 1px #59836d}

/* 装飾は余白・色面だけ。承認済みの選択肢文言・数・順序は触れない。 */
.q1-list .choice{border-left:4px solid #b3cbb9;padding-left:12px}
.q1-list .choice:nth-child(2){border-left-color:#aac9d3}
.q1-list .choice:nth-child(3){border-left-color:#d1c1a7}
.q1-list .choice:nth-child(4){border-left-color:#bfbcd2}
.q3-choice-buttons .route-choice{position:relative;padding-left:20px;overflow:hidden}
.q3-choice-buttons .route-choice::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#adcbba}
.q3-choice-buttons .route-choice:nth-child(2)::before{background:#abc6d1}

.q3-choice-buttons .route-choice:nth-child(3)::before{background:#cec2ac}
.q3-choice-buttons .route-choice:nth-child(4)::before{background:#bebbd0}
.q3-choice-buttons .route-choice[aria-pressed="true"]::before{background:#416f56}

/* 結果の見出しとリードは書体・文字の強弱のみで階層化する。色面・罫線・追加ラベルは使わない。 */
body.result-mode .result-title{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:29px;font-weight:600;line-height:1.51;letter-spacing:.018em;margin-bottom:23px}
body.result-mode .lead-paragraph:first-child{color:#595F59}
body.result-mode .lead-paragraph:last-child{color:#343E37;font-weight:600;letter-spacing:.006em}
.photo-attribution{display:block;margin-top:3px;font-size:10px;line-height:1.5}
.photo-attribution a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:350px){
 body.result-mode .result-title{font-size:25px;line-height:1.51;margin-bottom:21px}
 body.result-mode .lead-paragraph:last-child{font-weight:600}
}

/* 公開時の申込フォーム。既存の結果コピー・比較デザインは変更しない。 */
.inquiry-panel[hidden]{display:none}
.inquiry-panel{scroll-margin-top:90px;margin:18px 0 22px;padding:20px 17px 23px;background:#f5f7f3;border:1px solid #d7e0d6;border-radius:14px}
.inquiry-title{font-size:19px;line-height:1.5;font-weight:700;color:#2c4435;margin:0 0 10px}
.inquiry-lead{font-size:13px;line-height:1.78;color:#4f6055;margin:0 0 18px}
.inquiry-field{margin:0 0 15px}
.inquiry-field>label{display:block;font-size:13px;font-weight:700;color:#36463b;margin:0 0 7px}
.inquiry-field input,.inquiry-field select,.inquiry-field textarea{display:block;width:100%;max-width:100%;border:1px solid #bbc9bf;background:#fff;color:#24342a;border-radius:9px;padding:12px;font:inherit;font-size:15px;min-height:46px}
.inquiry-field textarea{resize:vertical;line-height:1.65}
.inquiry-field :is(input,select,textarea):focus{outline:2px solid #59826b;outline-offset:2px}
.inquiry-field .required{font-size:10px;color:#765342;margin-left:6px}
.inquiry-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.72;color:#3d4f41;margin:13px 0;cursor:pointer}
.inquiry-consent input{flex:none;margin:3px 0 0;width:18px;height:18px;accent-color:var(--green)}
.inquiry-consent a{color:#315a45;text-decoration:underline;text-underline-offset:2px}
.inquiry-note{font-size:11.5px;line-height:1.7;color:#6b746d;margin:12px 0 16px}
.inquiry-feedback{font-size:12px;line-height:1.65;color:#9b423a;min-height:0}
.inquiry-submit{width:100%;min-height:52px}
.inquiry-submit:disabled{opacity:.6;cursor:wait}
.inquiry-secondary{display:block;width:100%;min-height:47px;padding:10px 13px;border:1px solid #90ab99;border-radius:9px;background:#fff;color:#315d44;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.inquiry-secondary:focus-visible{outline:2px solid #59826b;outline-offset:3px}
.inquiry-hidden{display:none}
.inquiry-visit{border:1px solid #d7e0d6;border-radius:10px;padding:12px 11px;margin:8px 0 17px;background:#fff}
.inquiry-visit-option{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.7;color:#36463b;font-weight:700;cursor:pointer}
.inquiry-visit-option input{flex:none;margin:4px 0 0;width:18px;height:18px;accent-color:var(--green)}
.inquiry-visit-option small{font-size:10px;font-weight:400;color:#66776b;margin-left:6px}
.inquiry-visit-option:has(input:disabled){opacity:.55;cursor:not-allowed}
#inquiry-visit-fields[hidden]{display:none}
#inquiry-visit-fields{margin-top:12px;padding-top:6px;border-top:1px solid #e6ebe5}
.inquiry-receipt{font-size:13px;font-weight:700;letter-spacing:.035em;color:#315d44;background:white;border:1px solid #d7e0d6;border-radius:8px;padding:10px 12px;margin:0 0 15px}
@media(max-width:350px){.inquiry-panel{padding:16px 12px 19px}.inquiry-title{font-size:17px}}
