/* 体質チェック：余白と見出しを軸にした、紙の養生ノートのような画面 */
:root {
 --care-life-paper:#edf3e4; --care-life-edge:#bdc9aa; --care-life-ink:#536343;
 --care-food-paper:#fff1d7; --care-food-edge:#ddc495; --care-food-ink:#8a6938;
 --care-points-paper:#f9eae1; --care-points-edge:#d4b5a3; --care-points-ink:#82563f;
}
body[data-screen="start-screen"] { min-height:var(--app-h,100dvh); display:flex; flex-direction:column; }
body[data-screen="start-screen"] .hari-foot { display:none; }
body[data-screen="start-screen"] .app-wrapper { min-height:0; width:100%; flex:1; background:transparent; box-shadow:none; border:0; }
body[data-screen="start-screen"] .hari-nav { position:relative; }
.start-screen { padding:clamp(12px,3vh,32px) 24px max(16px,env(safe-area-inset-bottom)); justify-content:center; gap:18px; }
.start-hero { display:flex; align-items:center; text-align:left; margin:0; gap:4px; }
.start-hero__copy { flex:1; min-width:0; }
.start-eyebrow { font-size:12px; letter-spacing:.08em; margin-bottom:8px; color:var(--color-primary); }
.start-hero__title { font-size:30px; white-space:nowrap; margin-bottom:12px; }
.start-hero__subtitle { font-size:14px; line-height:1.8; }
.start-mascot { width:31%; height:auto; max-width:130px; flex:none; object-fit:contain; }
.start-meta { display:flex; justify-content:space-between; gap:6px; font-size:12px; padding:12px 0; border-block:1px solid var(--color-border); color:var(--color-text-light); }
.start-meta span+span { border-left:1px solid var(--color-border); padding-left:9px; }
.start-features { margin:0; padding:0; background:transparent; font-size:14px; line-height:1.8; }
.start-features__title { font-size:12px; margin-bottom:5px; }
.start-disclaimer { margin:0; padding:0; background:transparent; border:0; font-size:11.5px; line-height:1.7; color:#6b655a; }
.start-screen .btn-primary { border-radius:10px; padding:15px 12px; font-size:16px; }
@media (max-height:580px) {
 body[data-screen="start-screen"] .hari-nav-inner { padding:8px 16px; }
 body[data-screen="start-screen"] .hari-brand img { height:28px; }
 body[data-screen="start-screen"] .hari-back { padding:5px 9px; font-size:11px; }
 .start-screen { gap:11px; padding:12px 20px; }
 .start-hero__title { font-size:27px; margin-bottom:5px; }
 .start-eyebrow { margin-bottom:4px; font-size:11px; }
 .start-hero__subtitle, .start-features { font-size:12px; }
 .start-meta { padding:8px 0; font-size:11px; }
 .start-disclaimer { font-size:11px; line-height:1.6; }
 .start-mascot { max-width:105px; }
 .start-screen .btn-primary { padding:12px; }
}
body[data-screen="result-screen"] .app-wrapper { max-width:760px; background:#faf8f5; box-shadow:none; }
body[data-screen="result-screen"] .hari-nav { position:relative; }
.result-screen { padding-bottom:0; }
.result-screen-header { background:transparent; color:var(--color-primary); text-align:left; padding:22px 24px 10px; }
.result-screen-header__title { font-size:16px; margin:0; }
.result-screen-header__sub { display:none; }
#result-content { padding:0 24px 12px; }
.result-banner { padding:12px 0 18px; border:0; }
.result-eyebrow { color:var(--color-text-light); font-size:12px; letter-spacing:.12em; }
.result-banner__primary { display:flex; align-items:center; gap:4px; padding:12px 0; margin:0; border:0; box-shadow:none; background:transparent; }
.result-banner__copy { flex:1; min-width:0; }
.result-banner__badge { color:var(--color-primary); background:#e8e9de; border-radius:4px; padding:2px 8px; font-size:11px; }
.result-banner__type { font-family:'Shippori Mincho',serif; font-weight:600; font-size:26px; line-height:1.65; }
.result-banner__tagline { font-size:13px; line-height:1.8; color:#5e574c; }
.result-banner__illustration { margin:0; flex:0 0 36%; }
.result-banner__illustration img { width:100%; height:auto; max-width:185px; }
.result-banner__secondary { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 14px; box-shadow:none; border:0; border-block:1px solid var(--color-border); padding:11px 0; border-radius:0; background:transparent; margin:2px 0 0; font-size:13px; }
.result-banner__secondary span { font-size:11px; color:var(--color-text-light); }
.result-banner__secondary strong { font-weight:500; }
.result-state { border-left:2px solid #939e7c; padding:2px 0 2px 14px; margin:0 0 30px; }
.result-state h2 { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--color-primary); margin-bottom:8px; }
.result-state p { font-size:14px; line-height:1.9; }
.section-title { border:0; padding:0; font-family:'Shippori Mincho',serif; font-size:21px; font-weight:600; letter-spacing:.05em; }
.section-subtitle { font-size:12px; color:#6b655a; line-height:1.8; margin:6px 0 18px; }
.selfcare-section { padding:0; border:0; margin-bottom:30px; }
.selfcare-layer { padding:0; margin:0 0 20px; background:transparent; border:0; }
.selfcare-layer__title { font-size:12px; font-weight:500; color:#716756; margin:18px 0 10px; }
.selfcare-layer__desc { font-size:14px; line-height:1.9; }
.selfcare-block { background:#fff; border:1px solid var(--color-border); border-radius:12px; margin:10px 0; overflow:hidden; box-shadow:none; }
.selfcare-block__header { display:flex; align-items:center; flex-wrap:wrap; width:100%; padding:15px; background:#fff; gap:10px; color:var(--color-text); }
.selfcare-block__header:hover { background:#fbfaf7; }
.selfcare-block__title { font-size:15px; font-weight:500; }
.selfcare-block__icon { display:flex; }
.selfcare-block__arrow { font-size:18px; color:var(--color-primary); }
.care-preview { width:100%; text-align:left; color:#5e574c; font-weight:400; }
.care-preview-text { font-size:13px; line-height:1.9; display:block; padding:0 4px; }
.care-preview__more { display:block; text-align:right; color:var(--color-primary); font-size:11px; margin-top:8px; }
.selfcare-block__header[aria-expanded="true"] .care-preview { display:none; }
.care-point-preview, .care-food-preview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; text-align:center; font-size:12px; }
.care-point-preview>span, .care-food-preview>span { display:flex; flex-direction:column; align-items:center; gap:5px; }
.care-point-preview img { width:80px; max-width:100%; height:80px; object-fit:contain; }
.care-point-preview__text { display:flex; align-items:center; justify-content:center; height:80px; font-size:11px; color:#716756; line-height:1.7; }
.care-food-preview__images { display:flex; align-items:center; justify-content:center; height:48px; width:100%; }
.care-food-preview__images img { min-width:0; width:42px; max-width:100%; flex-shrink:1!important; height:42px; }
.care-food-preview img { max-width:100%; }
.selfcare-block__body { padding:0 16px 16px; border-top:1px solid #eee8de; }
.selfcare-list { padding-top:12px; }
.selfcare-list li { font-size:14px; line-height:1.9; padding-block:8px; }
.diet-tags { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; gap:8px; }
.diet-tag { display:flex; flex-direction:column; flex-wrap:nowrap; justify-content:center; padding:10px 6px; font-size:13px; border-radius:10px; background:#f5f4ee; color:#474f3e; border:0; text-align:center; }
.diet-tag__images { display:flex; align-items:center; justify-content:center; width:100%; height:48px; }
.diet-tag__images .illustration { min-width:0; max-width:48px; flex-shrink:1!important; object-fit:contain; }
.diet-tag__name { display:flex; align-items:center; justify-content:center; min-height:3.2em; line-height:1.6; }
.diet-tag--avoid { background:#f8eeeb; color:#784c3f; }
.diet-label { margin-top:18px; color:#4f5d43; font-size:13px; }
.recipe-tip { font-size:13px; background:#f6f1e4; }
.acu-warning { font-size:12px; line-height:1.85; padding:12px; margin-top:16px; background:#f7f1e5; border:0; color:#6a5439; }
.acu-point { background:#fff; padding:18px 0; margin:0; border:0; border-bottom:1px solid var(--color-border); border-radius:0; }
.acu-point:last-child { border-bottom:0; padding-bottom:0; }
.acu-point__name { font-size:17px; color:var(--color-primary); margin:0 0 12px; }
.acu-point__layout { display:flex; gap:16px; align-items:flex-start; }
.acu-point__figure { flex:0 0 38%; text-align:center; }
.acu-point__figure img { width:100%; height:180px; object-fit:contain; display:block; }
.acu-point__figure figcaption { font-size:10px; color:#716756; margin-top:4px; }
.acu-point__info { flex:1; min-width:0; }
.acu-point__info dl>div { margin-bottom:10px; }
.acu-point__info dt { font-size:11px; color:#7a6b53; font-weight:600; margin-bottom:3px; }
.acu-point__info dd { font-size:13px; line-height:1.85; }
.acu-point__link { display:inline-block; color:var(--color-primary); font-size:12px; text-underline-offset:3px; padding:6px 0; }
.acu-point__noimage { font-size:11px; color:#716756; }
.result-reading { border-block:1px solid var(--color-border); margin-bottom:26px; }
.result-reading summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:12px; padding:20px 0; font-size:14px; font-weight:500; }
.result-reading summary::-webkit-details-marker { display:none; }
.result-reading[open] summary span { transform:rotate(45deg); }
.result-reading__body { padding-bottom:20px; }
.result-detail-section { padding:0; border:0; }
.result-detail-section .section-title { font-size:18px; }
.constitution-subtype-detail { background:#f0eee5; border-color:#d6cdb9; }
.constitution-subtype-detail__desc, .constitution-subtype-detail__features { font-size:14px; line-height:1.9; }
.tongue-pulse { background:#fff; }
.result-chart-section { padding:0 0 24px; border:0; }
.result-chart-section .section-title { font-size:18px; }
.balanced-maintenance { margin-bottom:28px; padding:20px; background:#eeefe6; border-radius:10px; }
.balanced-maintenance h3 { font-size:15px; margin:12px 0 8px; }
.balanced-maintenance p { font-size:14px; line-height:1.9; }
.yojo-cta-section { padding:0; }
.yojo-cta-card { box-shadow:none; background:#f0ede4; }
.result-disclaimer { padding:24px 0; background:transparent; font-size:11px; line-height:1.9; color:#6b655a; }
.result-footer { max-width:none; padding:10px 20px max(10px,env(safe-area-inset-bottom)); box-shadow:0 -2px 10px #302e2010; background:rgba(250,248,245,.97); }
.result-footer .btn-pdf { padding:13px 10px; font-size:15px; border-radius:10px; }
.result-footer .btn-pdf:hover { background:#435237; }
.result-footer .btn-pdf:disabled { background:#8a8e82; }
.result-retry { padding:0 24px 28px; text-align:center; }
.result-retry .btn-retry { min-height:44px; padding:10px 24px; border:1px solid var(--color-border); border-radius:8px; background:transparent; font-size:13px; }
.btn-pdf:focus-visible, .btn-retry:focus-visible, .accordion-toggle:focus-visible, .acu-point__zoom:focus-visible { outline:3px solid #63744e; outline-offset:3px; }
@media(min-width:600px) {
 #result-content { padding-inline:44px; }
 .result-screen-header { padding-inline:44px; }
 .result-banner__type { font-size:34px; }
 .result-banner__primary { min-height:210px; }
 .result-banner__tagline, .result-state p { font-size:16px; }
 .selfcare-block__header { padding:20px; }
 .acu-point__info dd { font-size:15px; }
 .acu-point__figure img { height:230px; }
}
@media(max-width:350px) {
 #result-content { padding-inline:18px; }
 .result-banner__type { font-size:23px; }
 .acu-point__layout { flex-direction:column; gap:12px; }
 .acu-point__figure { align-self:center; width:180px; }
}
/* 体質別の内容を生活・食事・ツボの3冊にまとめる。 */
.care-intro { position:relative; padding:14px 16px; margin:0 0 24px; border:1px solid #d7c9ad; border-radius:16px 16px 16px 3px; background:#fff5df; font-size:13px; line-height:1.9; color:#665335; }
.care-panel { --care-paper:var(--care-life-paper); --care-edge:var(--care-life-edge); --care-ink:var(--care-life-ink); border:1px solid var(--care-edge); border-radius:16px; margin:16px 0; }
.care-panel--food { --care-paper:var(--care-food-paper); --care-edge:var(--care-food-edge); --care-ink:var(--care-food-ink); }
.care-panel--points { --care-paper:var(--care-points-paper); --care-edge:var(--care-points-edge); --care-ink:var(--care-points-ink); }
.care-panel .selfcare-block__header, .care-panel .selfcare-block__header:hover { background:var(--care-paper); gap:8px; padding:16px; }
.care-panel .selfcare-block__title { color:var(--care-ink); font-size:16px; font-weight:600; }
.care-panel__number { color:var(--care-ink); font-size:12px; font-weight:600; }
.care-panel .selfcare-block__arrow { margin-left:auto; color:var(--care-ink); }
.care-panel .selfcare-block__body { border-top:1px dashed var(--care-edge); padding:0 16px 16px; }
.care-panel .care-preview { margin-top:6px; }
.care-panel .care-preview__more { color:var(--care-ink); }
.care-panel .care-point-preview { grid-template-columns:repeat(3,minmax(0,1fr)); }
.care-panel .selfcare-list { list-style:none; padding:6px 0 0; }
.care-panel .selfcare-list li { position:relative; padding:10px 0 10px 20px; border-bottom:1px dashed #e2e5d9; }
.care-panel .selfcare-list li::before { content:'✓'; position:absolute; left:0; color:#82916e; }
.care-panel .selfcare-list li:last-child { border:0; }
.care-panel .selfcare-list strong { color:var(--care-life-ink); font-weight:700; }
.care-panel .diet-tag { background:#fff5df; border:1px solid #ecddbc; }
.care-panel .diet-tag--avoid { background:#f8ece5; border-color:#ead8ca; }
.care-panel .recipe-tip { border:1px dashed #d5bb9b; background:#fff9ed; border-radius:4px 12px 12px; }
.care-panel .acu-point__figure { border-radius:12px; background:#faf7f2; padding:8px; }
.care-panel--points .acu-point__name { color:var(--care-points-ink); }
.care-panel--points .acu-point__info dt { color:var(--care-points-ink); font-weight:700; }
.care-panel--points .acu-point__caution { border-left:2px solid #ba805e; padding-left:8px; }
.care-panel--points .acu-warning { border-radius:8px; background:var(--care-points-paper); color:var(--care-points-ink); }
.acu-point__zoom { display:block; border-radius:8px; cursor:zoom-in; }
/* 同じページで位置図と説明を読む。dialogでフォーカスを拡大画面内に保つ。 */
.acu-viewer { margin:auto; padding:0; width:min(640px,calc(100% - 24px)); max-width:none; max-height:calc(100dvh - 24px); border:1px solid var(--care-points-edge); border-radius:18px; background:#fffdf8; color:var(--color-text); box-shadow:0 18px 60px #302b2533; overflow:hidden; }
.acu-viewer[open] { display:flex; flex-direction:column; }
.acu-viewer::backdrop { background:rgba(48,43,37,.48); }
.acu-viewer__header { display:flex; flex:none; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border-bottom:1px solid var(--care-points-edge); background:var(--care-points-paper); }
.acu-viewer__header p { font-size:11px; color:var(--care-points-ink); }
.acu-viewer__header h2 { font-size:20px; color:var(--care-points-ink); line-height:1.5; }
.acu-viewer__close { display:flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; border:1px solid var(--care-points-edge); border-radius:50%; background:#fffdf8; color:var(--care-points-ink); font:400 28px/1 sans-serif; cursor:pointer; }
.acu-viewer__close:focus-visible { outline:3px solid var(--care-points-ink); outline-offset:3px; }
.acu-viewer__body { overflow:auto; overscroll-behavior:contain; min-height:0; padding:16px 20px 22px; }
.acu-viewer figure { margin:0; text-align:center; }
.acu-viewer img { display:block; width:100%; height:min(48dvh,420px); object-fit:contain; }
.acu-viewer__status { font-size:12px; color:var(--care-points-ink); }
.acu-viewer__info { margin-top:16px; padding-top:14px; border-top:1px dashed var(--care-points-edge); }
.acu-viewer__info dt { font-size:12px; font-weight:700; color:var(--care-points-ink); margin-bottom:4px; }
.acu-viewer__info dd { font-size:14px; line-height:1.85; margin:0; }
.acu-viewer__info .acu-point__caution { margin-top:12px; border-left:2px solid #ba805e; padding-left:10px; }
@media print { .acu-viewer, .result-retry { display:none!important; } }
/* PDF専用。画面のレスポンシブ指定に影響されない固定A4組版。 */
.pdf-page { position:absolute; left:-9999px; top:0; width:794px; height:1123px; padding:32px 40px; box-sizing:border-box; background:#fff; color:#3a3a32; font:13px/1.8 'Noto Sans JP',sans-serif; }
.pdf-header { display:flex; justify-content:space-between; align-items:center; border-bottom:2px solid #7c8668; padding-bottom:10px; margin-bottom:18px; }
.pdf-header strong { font:500 21px 'Shippori Mincho',serif; color:#4f5d43; }
.pdf-header span { font-size:10px; color:#6b655a; }
.pdf-topic { font-size:12px; letter-spacing:.08em; color:#7a6b53; margin-bottom:10px; }
.pdf-block { margin-bottom:16px; }
.pdf-block h2 { font:600 19px 'Shippori Mincho',serif; color:#4f5d43; margin-bottom:9px; }
.pdf-block h3 { font-size:14px; color:#4f5d43; margin-bottom:6px; }
.pdf-block p { margin-bottom:5px; }
.pdf-block ul { padding-left:19px; }
.pdf-block li { padding-block:3px; }
.pdf-hero { display:flex; align-items:center; gap:24px; background:#f5f3ec; border-radius:10px; padding:16px 24px; }
.pdf-hero>div { flex:1; }
.pdf-hero h1 { font:600 29px/1.6 'Shippori Mincho',serif; color:#4f5d43; margin:4px 0 8px; }
.pdf-hero small { color:#6b655a; font-size:11px; }
.pdf-hero img { width:140px!important; height:140px!important; }
.pdf-state { border-left:3px solid #9aa487; padding:8px 14px; background:#faf9f6; }
.pdf-chart { display:flex; gap:28px; align-items:center; }
.pdf-chart>img { width:225px; height:225px; }
.pdf-scores { flex:1; }
.pdf-score { display:flex; align-items:center; gap:9px; margin:5px 0; font-size:11px; }
.pdf-score>span:first-child { width:30px; }
.pdf-score>span:last-child { width:35px; }
.pdf-score-track { flex:1; height:7px; background:#edeae3; }
.pdf-score-track i { display:block; height:100%; background:#929d7e; }
.pdf-foods { display:flex; flex-wrap:wrap; gap:7px; }
.pdf-food { display:inline-flex; align-items:center; gap:4px; border:1px solid #e8e3d8; padding:4px 8px; border-radius:6px; font-size:12px; }
.pdf-food .food-illustrations { display:inline-flex; }
.pdf-callout { background:#f4f0e6; padding:12px 16px; border-radius:6px; }
.pdf-warning { font-size:11px; line-height:1.8; padding:10px 14px; background:#f7f1e5; }
.pdf-page .acu-point { padding:0 0 14px; margin-bottom:14px; border-bottom:1px solid #e6e0d3; }
.pdf-page .acu-point__layout { display:flex; flex-direction:row; gap:20px; }
.pdf-page .acu-point__figure { flex:0 0 150px; width:150px; }
.pdf-page .acu-point__figure img { width:150px; height:160px; object-fit:contain; }
.pdf-page .acu-point__name { font-size:17px; margin-bottom:8px; }
.pdf-page [data-pdf-link] .acu-point__name { text-decoration:underline; text-underline-offset:3px; }
.pdf-page .acu-point__info dd { font-size:12px; line-height:1.8; }
.pdf-page .acu-point__info dt { font-size:11px; }
.pdf-page .acu-point__info dl>div { margin-bottom:6px; }
.pdf-page .acu-point__noimage { font-size:10px; }
.pdf-tongue-row { display:flex; gap:14px; border-top:1px solid #e6e0d3; padding:8px 0; }
.pdf-tongue-row strong { flex:0 0 30px; color:#4f5d43; }
.pdf-note { font-size:11px; color:#6b655a; line-height:1.8; }
.pdf-footer { position:absolute; bottom:26px; left:40px; right:40px; border-top:1px solid #ddd7ca; padding-top:8px; color:#6b655a; font-size:10px; line-height:1.7; }
.pdf-footer-meta { display:flex; justify-content:space-between; margin-bottom:5px; color:#4f5d43; }

.result-banner__subtype { display:block; font-family:var(--font-base); font-size:15px; font-weight:500; line-height:1.6; margin-top:5px; }
.pdf-features ul { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
.pdf-page--care .pdf-block { margin-bottom:12px; }
.pdf-page--care .pdf-block h2 { font-size:18px; margin-bottom:6px; }
.pdf-page--care .pdf-block li { padding-block:2px; }
.pdf-page--balanced .pdf-hero { padding:12px 20px; }
.pdf-page--balanced .pdf-hero img { width:110px!important; height:110px!important; }
.pdf-page--balanced .pdf-block { margin-bottom:12px; }
.pdf-page--balanced .pdf-block h2 { font-size:18px; margin-bottom:6px; }
.pdf-page--balanced .pdf-chart>img { width:190px; height:190px; }
/* 2枚版：ハリネズミが案内する、色つきのセルフケアノート。 */
.pdf-page--compact { padding:24px 34px; font-size:12px; line-height:1.7; background:#fffdf8; border-top:8px solid #889b77; }
.pdf-page--compact .pdf-header { border:0; padding:0 0 8px; margin-bottom:0; }
.pdf-page--compact .pdf-header strong { font:700 20px 'Noto Sans JP',sans-serif; letter-spacing:.04em; color:#536343; }
.pdf-page--compact .pdf-topic { display:inline-block; background:#e5edda; border-radius:20px; color:#536343; font-size:11px; font-weight:700; padding:3px 15px; margin-bottom:10px; }
.pdf-page--compact .pdf-footer { left:34px; right:34px; bottom:24px; border-top:1px dashed #c0bea8; }
.pdf-page--compact .pdf-block { margin-bottom:8px; }
.pdf-page--compact .pdf-block h2 { font:700 16px/1.5 'Noto Sans JP',sans-serif; color:#536343; margin-bottom:7px; }
.pdf-page--compact .pdf-block h3 { font-size:12px; line-height:1.6; }
.pdf-page--compact .pdf-illustrated-heading { display:flex; align-items:center; gap:8px; min-height:30px; }
.pdf-page--compact .pdf-illustrated-heading img { width:32px!important; height:32px!important; }
.pdf-step { color:#a97941; font:700 12px 'Noto Sans JP',sans-serif; }
.pdf-page--compact .pdf-hero { padding:0; background:transparent; gap:18px; }
.pdf-page--compact .pdf-hero img { width:134px!important; height:134px!important; flex-shrink:0; }
.pdf-result-bubble { position:relative; border:2px solid #a8b38c; border-radius:22px; background:#edf3df; padding:15px 20px; }
.pdf-result-bubble:before { content:''; position:absolute; width:18px; height:18px; left:-11px; top:50%; background:#edf3df; border-left:2px solid #a8b38c; border-bottom:2px solid #a8b38c; transform:rotate(45deg); }
.pdf-page--compact .pdf-hero h1 { font:700 27px/1.45 'Noto Sans JP',sans-serif; margin:4px 0 6px; color:#536343; }
.pdf-page--compact .pdf-hero small { font-size:11px; color:#63744e; }
.pdf-secondary-tag { display:inline-block; margin-top:4px; border:1px solid #c9d5b5; border-radius:12px; padding:1px 10px; background:#fffdf8; font-size:10px; color:#63744e; }
.pdf-page--compact .pdf-state { padding:9px 14px; background:#faebce; border:1px solid #dfc494; border-radius:12px; }
.pdf-page--compact .pdf-state h2 { font-size:12px; color:#95703b; margin-bottom:4px; }
.pdf-page--compact .pdf-state p { margin:0; }
.pdf-compact-overview { display:grid; grid-template-columns:235px 1fr; gap:12px; align-items:start; }
.pdf-compact-chart { border:1px solid #bdcbae; background:#f3f6eb; border-radius:16px; padding:12px; }
.pdf-compact-chart>img { display:block; width:180px; height:180px; margin:0 auto; }
.pdf-compact-chart>.pdf-note { text-align:center; margin:0 0 6px; }
.pdf-compact-scores { display:grid; grid-template-columns:1fr 1fr; gap:4px 6px; font-size:10px; }
.pdf-compact-scores>span { display:flex; justify-content:space-between; align-items:center; background:#fffdf8; border-radius:6px; padding:2px 7px; }
.pdf-compact-scores b { font-size:12px; color:#63744e; }
.pdf-compact-scores small { font-size:9px; padding-left:2px; font-weight:400; }
.pdf-about { border:1px solid #ddc8a8; border-radius:16px; padding:10px 14px; background:#fff5e4; }
.pdf-about h3 { margin-top:8px; color:#96764b; }
.pdf-about ul { display:grid; grid-template-columns:1fr 1fr; gap:1px 20px; }
.pdf-about li { font-size:11px; padding:0; }
.pdf-compact-subtype { margin-top:10px; border:1px solid #d7b6a5; border-radius:16px; padding:10px 14px; background:#fbede4; }
.pdf-page--compact .pdf-compact-subtype h2 { color:#a26a52; font-size:14px; }
.pdf-compact-subtype p { font-size:11.5px; }
.pdf-compact-subtype ul { display:grid; grid-template-columns:1fr 1fr; gap:1px 20px; }
.pdf-compact-subtype li { padding:0; font-size:11px; }
.pdf-page--compact .pdf-tongue-card { border:1px dashed #bfc8bd; border-radius:14px; padding:10px 14px; background:#f1f5ef; }
.pdf-page--compact .pdf-tongue-card h2 { font-size:13px; margin-bottom:5px; }
.pdf-page--compact .pdf-tongue-row { gap:8px; padding:4px 0; border-color:#d7dfd0; align-items:center; }
.pdf-page--compact .pdf-tongue-row strong { flex-basis:20px; }
.pdf-page--compact .pdf-tongue-row img { flex-shrink:0; width:26px!important; height:26px!important; }
.pdf-page--compact .pdf-note { font-size:10px; line-height:1.65; }
.pdf-page--compact .pdf-compact-lifestyle { border:1px solid #becbac; border-radius:16px; padding:10px 14px; background:#edf3df; }
.pdf-compact-lifestyle ul { display:grid; grid-template-columns:1fr 1fr; gap:3px 28px; }
.pdf-compact-lifestyle li { font-size:11.5px; padding:0; }
.pdf-diet-card { padding:10px 14px; border:1px solid #dfc494; border-radius:16px; background:#fff2d9; }
.pdf-compact-diet { display:grid; grid-template-columns:1.3fr 1fr; gap:12px; }
.pdf-page--compact .pdf-compact-diet h3 { display:flex; align-items:center; height:32px; color:#a26a52; margin-bottom:7px; }
.pdf-page--compact .pdf-foods { gap:5px; }
.pdf-page--compact .pdf-food { font-size:10.5px; padding:2px 5px; gap:2px; border:1px solid #d6dabc; background:#fffdf8; border-radius:8px; }
.pdf-page--compact .pdf-foods-avoid .pdf-food { border-color:#e1c7bb; background:#fae8dc; }
.pdf-page--compact .pdf-food img { width:23px!important; height:23px!important; }
.pdf-page--compact .pdf-compact-recipe { display:flex; align-items:center; gap:12px; padding:7px 12px; background:#fbede4; border:1px dashed #d4ac93; border-radius:4px 16px 16px 16px; font-size:11px; }
.pdf-compact-recipe>img { flex-shrink:0; }
.pdf-page--compact .pdf-compact-recipe h2 { display:inline; font-size:11px; color:#a26a52; margin-right:10px; }
.pdf-compact-recipe p { display:inline; }
.pdf-page--compact .pdf-warning { font-size:10px; padding:7px 12px; line-height:1.65; border-left:4px solid #d6a567; background:#faf2e6; border-radius:0 10px 10px 0; }
.pdf-page--compact .pdf-warning h2 { display:inline; font-size:11px; margin-right:10px; color:#95703b; }
.pdf-page--compact .pdf-warning p { display:inline; }
.pdf-compact-points { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; align-items:stretch; }
.pdf-page--compact .acu-point { padding:9px 10px; margin:0; border:1px solid var(--care-points-edge); border-top:5px solid var(--care-points-edge); border-radius:12px; background:var(--care-points-paper); }
.pdf-page--compact .acu-point__layout { display:block; }
.pdf-page--compact .acu-point__figure { display:flex; align-items:center; justify-content:center; width:100%; height:100px; margin:0 0 7px; background:#fff; border-radius:8px; }
.pdf-page--compact .acu-point__figure img { width:100%; height:100px; }
.pdf-page--compact .acu-point__name { font-size:14px; margin-bottom:8px; color:var(--care-points-ink); }
.pdf-page--compact .acu-point__info dd { font-size:12px; line-height:1.7; }
.pdf-page--compact .acu-point__info dt { display:inline-block; font-size:10px; padding:0 6px; border-radius:4px; background:#fffdf8; color:#8b713e; margin-bottom:3px; }
.pdf-page--compact .acu-point__noimage { font-size:10px; margin-top:8px; }
.pdf-page--balanced.pdf-page--compact .pdf-hero { padding:14px 22px; border:2px solid #a8b38c; border-radius:22px; background:#edf3df; }
.pdf-page--balanced.pdf-page--compact .pdf-chart { padding:8px 18px; background:#f3f6eb; border:1px solid #bdcbae; border-radius:16px; }

/* 2枚版も画面と同じ全ケアを掲載。生活・食事とツボを横に並べる。 */
.pdf-page--care.pdf-page--compact .pdf-care-intro { border:1px solid #ddc494; border-radius:12px 12px 12px 3px; padding:8px 12px; background:#fff5e4; font-size:11.5px; }
.pdf-care-intro p { margin:0; }
.pdf-care-columns { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.pdf-care-life, .pdf-care-food { padding:10px; border:1px solid var(--care-life-edge); border-radius:14px; background:var(--care-life-paper); }
.pdf-care-life { margin-bottom:12px; }
.pdf-care-life ul { padding-left:16px; }
.pdf-page--care .pdf-care-life li { font-size:11.5px; line-height:1.65; padding:1px 0; }
.pdf-care-life strong { font-weight:700; color:var(--care-life-ink); }
.pdf-care-food { border-color:var(--care-food-edge); background:var(--care-food-paper); }
.pdf-page--compact .pdf-care-life h2, .pdf-care-life .pdf-step { color:var(--care-life-ink); }
.pdf-page--compact .pdf-care-food h2, .pdf-care-food .pdf-step { color:var(--care-food-ink); }
.pdf-page--compact .pdf-care-point-column h2, .pdf-care-point-column .pdf-step { color:var(--care-points-ink); }
.pdf-page--compact .pdf-care-food h3 { font-size:11px; margin:8px 0 5px; color:#8a6938; }
.pdf-page--compact .pdf-care-food .pdf-food { font-size:11px; }
.pdf-page--compact .pdf-care-food .pdf-food img { width:22px!important; height:22px!important; }
.pdf-care-food .pdf-foods-avoid { margin-top:10px; padding:7px 9px; border:1px solid #e0c5b6; border-radius:8px; background:#f9e9df; }
.pdf-page--compact .pdf-care-food .pdf-foods-avoid h3 { margin:0 0 4px; }
.pdf-care-food .pdf-foods-avoid p { font-size:11.5px; line-height:1.7; margin:0; }
.pdf-care-recipes { margin-top:8px; border-top:1px dashed #d4b991; padding-top:3px; }
.pdf-page--compact .pdf-care-recipes h3 { display:flex; align-items:center; }
.pdf-care-recipes p { font-size:11.5px; line-height:1.7; margin-bottom:5px; }
.pdf-care-point-column>.pdf-illustrated-heading { padding-left:4px; }
.pdf-page--compact .pdf-care-point-column .pdf-warning { margin-bottom:10px; font-size:10px; background:var(--care-points-paper); border-color:var(--care-points-edge); }
.pdf-page--compact .pdf-care-point-column .pdf-warning h3 { font-size:11px; margin-bottom:4px; color:var(--care-points-ink); }
.pdf-page--compact .pdf-care-points .acu-point { display:grid; grid-template-columns:78px 1fr; gap:0 9px; padding:7px; margin-bottom:8px; border-top-width:1px; border-left:4px solid var(--care-points-edge); }
.pdf-page--compact .pdf-care-points .acu-point__name { grid-column:2; grid-row:1; font-size:13px; font-weight:700; line-height:1.5; margin:0 0 5px; }
.pdf-page--compact .pdf-care-points .acu-point__layout { display:contents; }
.pdf-page--compact .pdf-care-points .acu-point__figure { grid-column:1; grid-row:1 / span 2; height:92px; width:78px; margin:0; align-self:start; }
.pdf-page--compact .pdf-care-points .acu-point__figure img { width:78px; height:92px; }
.pdf-page--compact .pdf-care-points .acu-point__info { grid-column:2; grid-row:2; }
.pdf-page--compact .pdf-care-points .acu-point__info dd { display:inline; font-size:11.5px; line-height:1.6; }
.pdf-page--compact .pdf-care-points .acu-point__info dt { display:inline; background:transparent; padding:0; margin:0 4px 0 0; font-size:10px; font-weight:700; color:var(--care-points-ink); }
.pdf-page--compact .pdf-care-points .acu-point__info dl>div { margin-bottom:4px; font-size:11.5px; line-height:1.6; }
.pdf-page--compact .pdf-care-points .acu-point__info dl>div:last-child { margin:0; }
.pdf-page--compact .pdf-care-points .acu-point__caution dd { color:#975a40; }
.pdf-page--compact .pdf-care-points .acu-point__caution dt { color:#975a40; text-decoration:underline; text-underline-offset:2px; }
