:root{
  --navy:#173456;
  --navy2:#24476d;
  --pink:#bd2e6d;
  --pink-dark:#9f2058;
  --pink-soft:#fff4f8;
  --gold:#b98a27;
  --line:#e7edf4;
  --text:#1a2b42;
  --muted:#65758b;
  --bg:#fbfcfe;
  --shadow:0 16px 42px rgba(20,45,80,.08);
}

/* Multiple catalog selector */
.catalog-book-select{display:flex;align-items:center;gap:6px;margin:0;color:var(--navy);font-size:11px;font-weight:900;white-space:nowrap}
.catalog-book-select[hidden]{display:none!important}
.catalog-book-select select{min-width:150px;max-width:230px;height:34px;border:1px solid #d8e1ec;border-radius:8px;background:#fff;color:var(--navy);padding:5px 28px 5px 9px;font:inherit}
.catalog-global-result small{line-height:1.5}
@media(max-width:760px){.catalog-book-select{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr)}.catalog-book-select select{width:100%;max-width:none}.catalog-pdf-toolbar{flex-wrap:wrap}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(90deg,#fff 0%,#fff 72%,#f8fbff 100%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.7;letter-spacing:.02em}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
.container{width:min(1200px,94vw);margin:0 auto}
.site-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 0 18px}
.logo{font-family:"Noto Serif JP",serif;color:var(--pink);font-weight:900;font-size:30px;letter-spacing:.08em;line-height:1}
.logo-sub{font-size:12px;color:#6b7584;margin-top:8px}
.header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #dce6f1;border-radius:8px;padding:9px 14px;font-size:13px;text-decoration:none;font-weight:800;background:#fff;color:var(--navy)}
.pill.line{color:#15a653;border-color:#caead8}.pill.consult{color:#2565ad}
.phone{font-size:22px;font-weight:900;color:#b12736;line-height:1;text-align:right}.phone small{display:block;color:#555;font-size:12px;margin-top:7px}
.hero{border:1px solid #f2cbd9;background:linear-gradient(100deg,#fff 0%,#fff8fb 62%,#fff 100%);border-radius:14px;padding:34px 38px;margin:4px auto 24px;display:grid;grid-template-columns:1fr 290px;gap:24px;align-items:center}
.hero h1{font-family:"Noto Serif JP",serif;margin:0 0 8px;font-size:40px;color:var(--pink);line-height:1.25;letter-spacing:.04em}.hero p{margin:0;font-weight:800;color:var(--navy)}
.preview-box{background:#fff;border-radius:12px;border:1px solid #e6ebf2;box-shadow:var(--shadow);padding:20px;text-align:center;color:var(--navy);font-weight:800}.preview-lines{display:grid;gap:8px;margin:12px auto 10px;width:160px}.preview-lines span{height:10px;background:#f5d6e2;border-radius:999px}.preview-lines span:nth-child(2){background:#f0c6d7;width:80%;margin:auto}.preview-lines span:nth-child(3){background:#f8e8ee;width:65%;margin:auto}
.stepper{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;margin:18px 0 28px;position:relative}.stepper::before{content:"";position:absolute;left:4%;right:4%;top:19px;height:2px;background:#dfe5ec}.step{position:relative;text-align:center;color:var(--navy);font-weight:900;font-size:13px}.step-num{position:relative;z-index:1;margin:0 auto 6px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--pink);color:#fff;font-size:19px;box-shadow:0 0 0 8px #fff}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.main-form{display:grid;gap:18px}.section{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:20px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:16px}.section-title .num{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--pink);color:#fff;font-weight:900;font-size:18px}.section-title h2{margin:0;color:var(--navy);font-size:20px}.section-title small{color:#7b8796;font-size:12px;font-weight:700}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:14px}.plan-card,.option-card{position:relative;border:2px solid #e8edf3;border-radius:12px;background:#fff;padding:16px 12px 12px;text-align:center;transition:.18s;overflow:hidden}.plan-card:hover,.option-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.plan-card.selected,.option-card.selected{border-color:var(--pink);background:#fff8fb}.badge{position:absolute;top:10px;right:10px;color:#fff;font-size:11px;font-weight:900;padding:4px 10px;border-radius:999px;line-height:1.2;z-index:2}.badge-kasou{background:#d85f1a}.badge-kazoku{background:#d33682}.badge-yujin{background:#8c3bb9}.badge-shinshiki{background:#2c5aa0}.plan-card h3{font-size:15px;color:var(--pink);margin:2px 0 8px;padding-right:78px;min-height:40px;line-height:1.45;text-align:left;word-break:keep-all;overflow-wrap:normal}.plan-card p{font-size:11px;margin:0 0 10px;color:#6b7584;font-weight:700;min-height:56px;text-align:center}.thumb{width:100%;height:118px;object-fit:cover;border-radius:8px;background:#f5f6f8}.plan-photo-frame{width:100%;height:138px;overflow:hidden;border-radius:8px;background:#fff;border:1px solid #f3e2ea;position:relative}.plan-card .thumb{width:100%;height:100%;border:0;border-radius:0;object-fit:cover;object-position:var(--crop-x,18%) var(--crop-y,50%);background:#fff;transform:scale(var(--crop-scale,1.7));transform-origin:center center}.plan-photo-frame:after{content:"";position:absolute;right:0;top:0;bottom:0;width:16%;background:linear-gradient(90deg,rgba(255,255,255,0) 0%, rgba(255,255,255,.72) 70%, rgba(255,255,255,.95) 100%);pointer-events:none}.plan-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:10px}.price{font-weight:900;color:#b12736;font-size:18px;line-height:1.15;text-align:left;flex:1;word-break:keep-all}.price small{display:block;font-size:11px;margin-top:4px}.detail-btn{margin-top:0;background:var(--navy);color:#fff;border:0;border-radius:999px;padding:10px 14px;font-size:12px;font-weight:900;width:auto;flex:none;white-space:nowrap}.note{font-size:12px;color:#7a8391;margin:12px 0 0}.field{display:grid;gap:7px;margin:12px 0}.field label,.field-title{font-weight:900;color:var(--navy);font-size:14px}.select,input[type=text],input[type=number]{width:100%;border:1px solid #dbe3ec;border-radius:8px;padding:12px 14px;background:#fff;color:var(--text)}.select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.venue-card{display:grid;grid-template-columns:250px 1fr;gap:20px;border:1px solid #e6edf4;border-radius:12px;padding:14px;margin-top:12px}.venue-card img{width:100%;height:160px;border-radius:8px;object-fit:cover}.venue-card h3{margin:2px 0 6px;color:var(--navy);font-size:20px}.venue-card p{margin:0 0 10px}.specs{display:grid;gap:4px;color:#56667a;font-size:13px}.hall-list{display:grid;gap:10px;margin-top:12px}.radio-row{display:flex;align-items:center;gap:10px;border:2px solid #e8edf3;border-radius:10px;padding:14px;background:#fff}.radio-row.selected{border-color:#f1a5c3;background:#fff8fb}.radio-dot{width:22px;height:22px;border-radius:50%;border:2px solid #d4dde9;display:grid;place-items:center;flex:none}.selected .radio-dot{border-color:var(--pink)}.selected .radio-dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--pink)}.radio-row strong{flex:1;color:var(--navy)}.radio-row .money{font-weight:900;color:#17243a}.choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.choice{border:2px solid #e8edf3;border-radius:10px;background:#fff;padding:12px;display:flex;align-items:center;gap:10px;font-weight:900;color:var(--navy)}.choice.selected{border-color:#f1a5c3;background:#fff8fb;color:var(--pink)}.choice small{display:block;color:#65758b;font-weight:700}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.distance-box{border:1px solid #ffd4df;background:linear-gradient(100deg,#fff8fb,#fff);border-radius:12px;padding:16px;display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:center}.distance-illust{min-height:150px;border-radius:12px;background:linear-gradient(135deg,#eef8ff,#fff 60%,#fff4f8);position:relative;overflow:hidden}.distance-illust:before{content:"";position:absolute;inset:22px 18px;border:5px dashed #9bd2ec;border-radius:50%;transform:rotate(-12deg)}.distance-illust:after{content:"🚑";position:absolute;right:35px;bottom:28px;font-size:48px}.distance-head{display:flex;align-items:center;gap:10px;color:var(--pink);font-weight:900;font-size:18px}.tag{background:var(--pink);color:#fff;border-radius:999px;padding:5px 10px;font-size:12px}.distance-lines{display:grid;gap:8px;margin:8px 0}.distance-line{display:grid;grid-template-columns:1fr auto;gap:10px;border-bottom:1px solid #eadfe5;padding-bottom:5px;font-weight:800}.distance-total{text-align:right;color:#b12736;font-size:30px;font-weight:900}.outline-btn{border:1px solid #d8e1ec;background:#fff;color:var(--navy);border-radius:999px;padding:8px 14px;font-weight:900}.option-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.checkmark{position:absolute;top:10px;left:10px;width:26px;height:26px;border-radius:6px;border:2px solid #d8e2eb;background:#fff;display:grid;place-items:center;color:#fff}.selected .checkmark{background:var(--pink);border-color:var(--pink)}.selected .checkmark:after{content:"✓";font-weight:900}.option-card h3{font-size:14px;min-height:42px;margin:8px 0;color:var(--navy)}.option-card .thumb{height:120px}.option-summary{text-align:right;border-top:1px solid #edf1f5;margin-top:12px;padding-top:12px;color:var(--navy);font-weight:900}.option-summary strong{color:#b12736;font-size:26px}.foodgift{display:grid;grid-template-columns:1fr 1fr;gap:16px}.order-box{border:1px solid #e6edf4;border-radius:12px;padding:14px}.order-box h3{margin:0 0 10px;color:var(--navy)}.qty-row{display:grid;grid-template-columns:1fr 110px;gap:8px}.qty-control{display:grid;grid-template-columns:36px 1fr 36px;gap:4px}.qty-control button,.add-order{border:1px solid #d8e1ec;background:#fff;color:var(--navy);border-radius:8px;font-weight:900}.qty-control input{text-align:center;padding:9px}.add-order{width:100%;margin-top:10px;color:var(--pink);border-color:#efbfd0}.order-list{display:grid;gap:6px;margin-top:10px}.order-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f7f9fc;border-radius:8px;padding:8px 10px;font-size:13px}.order-item button{border:0;background:transparent;color:#b6294b;font-weight:900}.cta{border:1px solid #f6c9da;background:linear-gradient(100deg,#fff8fb,#fff);border-radius:12px;padding:20px;display:flex;gap:20px;align-items:center;justify-content:center;text-align:center}.cta-icon{width:74px;height:74px;border:2px solid #f3bed2;border-radius:18px;display:grid;place-items:center;font-size:34px;background:#fff}.cta h2{margin:0;color:var(--pink);font-size:20px}.cta p{margin:4px 0 14px;color:#66758a;font-size:13px}.cta-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.primary-btn{background:var(--pink);color:#fff;border:0;border-radius:7px;padding:12px 26px;font-weight:900;box-shadow:0 10px 24px rgba(189,46,109,.2)}.secondary-btn{background:#fff;color:var(--navy);border:1px solid #d8e1ec;border-radius:7px;padding:12px 26px;font-weight:900}.sidebar{position:sticky;top:18px;display:grid;gap:18px}.summary-card,.included-card,.chart-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.summary-head{background:var(--navy);color:#fff;padding:17px;font-weight:900;font-size:18px}.summary-body{padding:16px}.total-label{font-size:13px;font-weight:800;color:#66758a}.total-price{font-size:42px;color:#b12736;font-weight:900;line-height:1;margin:8px 0 12px}.total-price small{font-size:17px}.summary-list{display:grid;gap:8px}.summary-row{display:grid;grid-template-columns:88px 1fr;gap:8px;border:1px solid #edf1f5;border-radius:8px;padding:9px;font-size:13px}.summary-row b{color:var(--pink)}.print-side{width:100%;margin-top:14px}.included-card,.chart-card{padding:18px}.included-card h3,.chart-card h3{margin:0 0 12px;color:var(--navy);font-size:16px}.included-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.included-list li{position:relative;padding-left:22px;font-size:13px;font-weight:800;color:#56667a}.included-list li:before{content:"●";position:absolute;left:0;color:var(--gold);font-size:12px}.chart-lines{display:grid;gap:8px}.chart-line{display:grid;grid-template-columns:1fr 85px;gap:8px;align-items:center;font-size:12px;color:#66758a}.bar{height:10px;border-radius:999px;background:#e6ded8;overflow:hidden}.bar span{display:block;height:100%;background:#e7a8bd}.site-footer{background:var(--navy);color:#fff;text-align:center;padding:18px;margin-top:28px;font-size:13px}.site-footer a{color:#fff;text-decoration:none}.modal{position:fixed;inset:0;background:rgba(17,32,52,.55);display:none;z-index:40;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-card{background:#fff;width:min(680px,96vw);border-radius:18px;padding:24px;box-shadow:0 20px 70px rgba(0,0,0,.25)}.modal-head{display:flex;justify-content:space-between;gap:12px}.modal h2{margin:0;color:var(--navy)}.modal-close{border:0;background:#f0f4f8;border-radius:50%;width:36px;height:36px;font-weight:900}.detail-list{background:#f8fafc;border-radius:12px;padding:14px;margin-top:12px;color:#526176;white-space:pre-line}.loading{opacity:.55;pointer-events:none}
@media(max-width:1040px){.layout{grid-template-columns:1fr}.sidebar{position:static;grid-template-columns:1fr 1fr}.plan-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){body{background:#fff}.container{width:min(100% - 24px,560px)}.site-header{padding:16px 0;align-items:flex-start;flex-direction:column}.header-actions{justify-content:flex-start}.phone{text-align:left}.hero{grid-template-columns:1fr;padding:24px 20px}.hero h1{font-size:30px}.preview-box{display:none}.stepper{grid-template-columns:repeat(4,1fr);row-gap:14px}.layout{display:block}.main-form{gap:14px}.section{padding:16px;border-radius:12px}.plan-grid,.option-grid{grid-template-columns:repeat(2,1fr)}.thumb{height:110px}.plan-photo-frame{height:118px}.plan-card h3{padding-right:66px;min-height:38px;font-size:14px}.plan-card p{min-height:54px}.plan-actions{gap:6px}.price{font-size:16px}.detail-btn{padding:9px 12px;font-size:11px}.venue-card{grid-template-columns:1fr}.venue-card img{height:170px}.choice-grid{grid-template-columns:repeat(2,1fr)}.split,.foodgift,.distance-box{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr;margin-top:18px}.summary-card{position:static}.cta{display:block}.cta-icon{margin:0 auto 12px}.total-price{font-size:36px}}
@media(max-width:420px){.plan-grid,.option-grid{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr}.qty-row{grid-template-columns:1fr}.section-title h2{font-size:18px}.logo{font-size:26px}}


/* プランカード表示調整 v4：金額・詳細ボタンを行揃え */
.plan-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.plan-card{display:flex;flex-direction:column;min-height:465px;padding:16px 12px 14px}
.plan-card h3{font-size:16px;line-height:1.45;min-height:46px;padding-right:82px;margin:2px 0 8px;word-break:keep-all;overflow-wrap:normal;text-align:left}
.plan-card p{min-height:58px;margin-bottom:10px}
.plan-photo-frame{height:150px}
.plan-photo-frame:after{content:none}
.plan-card .thumb{object-fit:cover;object-position:var(--crop-x,24%) var(--crop-y,54%);transform:scale(var(--crop-scale,1.55));transform-origin:center center}
.plan-actions{display:block;margin-top:auto;padding-top:12px}
.plan-actions .price{min-height:50px;text-align:left;font-size:20px;line-height:1.15}
.plan-actions .detail-btn{display:block;width:100%;margin-top:8px;padding:11px 12px}
@media(max-width:1040px){.plan-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.plan-grid{grid-template-columns:repeat(2,1fr)}.plan-card{min-height:430px}.plan-card h3{font-size:14px;min-height:42px;padding-right:66px}.plan-card p{min-height:58px}.plan-photo-frame{height:125px}.plan-actions .price{font-size:17px;min-height:44px}.plan-actions .detail-btn{font-size:12px;padding:10px 10px}}
@media(max-width:520px){.plan-grid{grid-template-columns:1fr}.plan-card{min-height:auto}.plan-card h3,.plan-card p{min-height:auto}.plan-photo-frame{height:170px}}

/* 見積書印刷用 */
.estimate-page{background:#eef2f6;padding:26px;min-height:100vh}.paper{width:210mm;min-height:297mm;margin:0 auto;background:#fff;color:#16243a;padding:14mm 16mm;box-shadow:0 8px 35px rgba(0,0,0,.12);position:relative}.quote-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid var(--navy);padding-bottom:12px}.quote-logo{font-family:"Noto Serif JP",serif;color:var(--pink);font-size:28px;font-weight:900;letter-spacing:.08em}.quote-company{font-size:11px;color:#607086;line-height:1.7;margin-top:6px}.quote-meta{text-align:right;font-size:12px;color:#3e5069}.quote-title{text-align:center;margin:22px 0 16px}.quote-title h1{font-family:"Noto Serif JP",serif;font-size:34px;letter-spacing:.25em;margin:0;color:var(--navy)}.quote-title p{margin:6px 0 0;color:#6b7584}.quote-summary{display:grid;grid-template-columns:1fr 76mm;gap:18px;align-items:end;margin:18px 0}.recipient{border-bottom:1px solid #9aa8b8;padding-bottom:8px;font-size:18px;font-weight:800}.recipient small{display:block;margin-top:8px;font-size:11px;color:#607086;font-weight:500}.grand-total{border:2px solid var(--pink);background:#fff8fb;padding:14px 16px;text-align:right}.grand-total span{display:block;font-size:12px;color:#607086;font-weight:800}.grand-total strong{font-size:34px;color:#b12736;line-height:1}.quote-table{width:100%;border-collapse:collapse;margin-top:16px;font-size:12px}.quote-table th{background:var(--navy);color:#fff;text-align:left;padding:9px;border:1px solid var(--navy)}.quote-table td{border:1px solid #dbe3ec;padding:8px;vertical-align:top}.quote-table td.money{text-align:right;white-space:nowrap;font-weight:800}.quote-table .category{color:var(--pink);font-weight:900}.quote-total-table{width:78mm;margin:14px 0 0 auto;border-collapse:collapse;font-size:12px}.quote-total-table th,.quote-total-table td{border:1px solid #dbe3ec;padding:8px}.quote-total-table th{text-align:left;background:#f7f9fc}.quote-total-table td{text-align:right;font-weight:900}.quote-total-table .final th,.quote-total-table .final td{background:#fff4f8;color:#b12736;font-size:16px}.quote-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.quote-box{border:1px solid #dbe3ec;border-radius:8px;padding:12px;min-height:96px}.quote-box h3{margin:0 0 8px;color:var(--navy);font-size:14px}.quote-box ul{margin:0;padding-left:18px;font-size:11px;color:#4e5f76}.quote-note{margin-top:18px;border-top:1px solid #dbe3ec;padding-top:12px;font-size:11px;color:#5b6a7d;line-height:1.75}.quote-footer{position:absolute;left:16mm;right:16mm;bottom:12mm;border-top:2px solid var(--navy);padding-top:10px;display:flex;justify-content:space-between;gap:16px;align-items:flex-end;font-size:11px;color:#54647a}.qr-row{display:flex;gap:10px}.qr-placeholder{width:62px;height:62px;border:1px solid #dbe3ec;background:#f7f9fc;display:grid;place-items:center;text-align:center;font-size:9px;color:#7b8796}.qr-placeholder img{width:100%;height:100%;object-fit:contain}.print-actions{width:210mm;margin:0 auto 16px;display:flex;justify-content:flex-end;gap:10px}.print-actions button,.print-actions a{border:0;text-decoration:none;border-radius:999px;padding:10px 18px;font-weight:900;background:var(--pink);color:#fff}.print-actions a{background:#fff;color:var(--navy);border:1px solid #d8e1ec}@media print{body{background:#fff}.estimate-page{padding:0;background:#fff}.print-actions{display:none}.paper{box-shadow:none;margin:0;width:auto;min-height:297mm;padding:12mm 14mm}.quote-footer{left:14mm;right:14mm;bottom:10mm}@page{size:A4;margin:0}}
@media(max-width:900px){.estimate-page{padding:10px}.paper,.print-actions{width:100%}.paper{min-height:auto;padding:18px}.quote-summary,.quote-columns{grid-template-columns:1fr}.quote-footer{position:static;margin-top:20px}.quote-top{flex-direction:column;gap:10px}.quote-meta{text-align:left}.quote-title h1{font-size:28px}.quote-table{font-size:11px}}


/* 20260709 v5: プラン8件をPCで4列表示、金額と詳細ボタンの縦位置を統一 */
.plan-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.plan-card{display:flex;flex-direction:column;min-height:450px;padding:16px 12px 12px}
.plan-card h3{font-size:15px;line-height:1.45;min-height:44px;padding-right:76px;word-break:keep-all;overflow-wrap:normal;text-align:left}
.plan-card p{min-height:58px}
.plan-photo-frame{height:132px}
.plan-actions{display:block;margin-top:auto;padding-top:12px}
.plan-actions .price{min-height:50px;text-align:left;font-size:19px;line-height:1.15}
.plan-actions .detail-btn{display:block;width:100%;margin-top:8px;padding:11px 12px}
@media(max-width:1040px){.plan-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.plan-grid{grid-template-columns:repeat(2,1fr)}.plan-card{min-height:430px}.plan-card h3{font-size:14px;min-height:42px;padding-right:66px}.plan-card p{min-height:58px}.plan-photo-frame{height:125px}.plan-actions .price{font-size:17px;min-height:44px}.plan-actions .detail-btn{font-size:12px;padding:10px 10px}}
@media(max-width:520px){.plan-grid{grid-template-columns:1fr}.plan-card{min-height:auto}.plan-card h3,.plan-card p{min-height:auto}.plan-photo-frame{height:170px}}


/* final fix v7: compact plan cards, badge above title, pickup selection visual */
.plan-grid{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:14px !important}
.plan-card{display:flex !important;flex-direction:column !important;min-height:355px !important;padding:12px 10px 10px !important}
.plan-card .plan-head{display:block !important;text-align:left !important;margin-bottom:6px !important}
.plan-card .badge{position:static !important;display:inline-block !important;align-self:flex-start !important;margin:0 0 8px 0 !important;font-size:10px !important;padding:4px 9px !important;border-radius:999px !important;line-height:1.2 !important}
.plan-card h3{padding-right:0 !important;margin:0 !important;min-height:0 !important;font-size:15px !important;line-height:1.35 !important;text-align:left !important;word-break:keep-all !important;overflow-wrap:normal !important}
.plan-card p{min-height:42px !important;margin:0 0 8px 0 !important;font-size:11px !important;line-height:1.5 !important;text-align:center !important}
.plan-photo-frame{height:116px !important;border-radius:8px !important;overflow:hidden !important}
.plan-photo-frame:after{content:none !important}
.plan-card .thumb{width:100% !important;height:100% !important;transform:none !important;object-fit:cover !important;object-position:center center !important}
.plan-actions{display:block !important;margin-top:auto !important;padding-top:8px !important}
.plan-actions .price{min-height:38px !important;font-size:18px !important;line-height:1.1 !important;text-align:left !important}
.plan-actions .price small{display:block !important;font-size:11px !important;margin-top:3px !important}
.plan-actions .detail-btn{display:block !important;width:100% !important;margin-top:7px !important;padding:10px 10px !important}
.choice{cursor:pointer}
.choice.selected{border-color:#f1a5c3 !important;background:#fff8fb !important;color:#bd2e6d !important}
@media(max-width:1040px){.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}.plan-card{min-height:348px !important}}
@media(max-width:760px){.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.plan-card{min-height:335px !important}.plan-card h3{font-size:14px !important}.plan-card p{min-height:40px !important}.plan-photo-frame{height:108px !important}.plan-actions .price{font-size:16px !important;min-height:34px !important}.plan-actions .detail-btn{padding:9px 10px !important;font-size:11px !important}}
@media(max-width:520px){.plan-grid{grid-template-columns:1fr !important}.plan-card{min-height:auto !important}.plan-card p{min-height:0 !important}.plan-photo-frame{height:160px !important}}

/* final fix v9: images aligned, smaller detail button, compact card */
.plan-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important;align-items:stretch !important;gap:14px !important}
.plan-card{min-height:320px !important;padding:10px 10px 10px !important}
.plan-card .plan-head{height:58px !important;margin-bottom:6px !important;overflow:hidden !important}
.plan-card .badge{margin:0 0 5px 0 !important;font-size:10px !important;padding:3px 9px !important}
.plan-card h3{font-size:14px !important;line-height:1.28 !important;margin:0 !important;display:-webkit-box !important;-webkit-line-clamp:2 !important;-webkit-box-orient:vertical !important;overflow:hidden !important}
.plan-card p{height:36px !important;min-height:36px !important;margin:0 0 8px 0 !important;font-size:10.5px !important;line-height:1.55 !important;display:-webkit-box !important;-webkit-line-clamp:2 !important;-webkit-box-orient:vertical !important;overflow:hidden !important}
.plan-photo-frame{height:108px !important;margin-top:0 !important;flex:none !important}
.plan-card .thumb{height:100% !important;object-fit:cover !important;object-position:center center !important;transform:none !important}
.plan-actions{padding-top:8px !important;margin-top:auto !important;text-align:left !important}
.plan-actions .price{min-height:34px !important;font-size:17px !important;line-height:1.08 !important;margin:0 !important}
.plan-actions .price small{font-size:10.5px !important;margin-top:3px !important}
.plan-actions .detail-btn{width:auto !important;min-width:112px !important;display:inline-block !important;margin-top:6px !important;padding:7px 16px !important;font-size:12px !important;line-height:1.3 !important}
.field-hint{margin:4px 0 0;color:#7b8796;font-size:12px;font-weight:700}
@media(max-width:1180px){.plan-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important}.plan-card{min-height:315px !important}.plan-photo-frame{height:102px !important}}
@media(max-width:1040px){.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}.plan-card{min-height:320px !important}.plan-photo-frame{height:112px !important}}
@media(max-width:760px){.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.plan-card{min-height:310px !important}.plan-card .plan-head{height:54px !important}.plan-card p{height:34px !important;min-height:34px !important}.plan-photo-frame{height:104px !important}.plan-actions .price{font-size:16px !important;min-height:32px !important}.plan-actions .detail-btn{min-width:108px !important;padding:7px 14px !important}}
@media(max-width:520px){.plan-grid{grid-template-columns:1fr !important}.plan-card{min-height:auto !important}.plan-card .plan-head{height:auto !important}.plan-card h3,.plan-card p{display:block !important;height:auto !important;min-height:0 !important}.plan-photo-frame{height:160px !important}}

/* v11: 料理・返礼品カタログ選択 */
.order-head-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.order-head-row .field{margin:0}
.catalog-open-btn{border:1px solid #efbfd0;background:#fff8fb;color:var(--pink);border-radius:999px;padding:10px 16px;font-weight:900;white-space:nowrap;align-self:end}
.catalog-open-btn:hover{box-shadow:0 8px 20px rgba(189,46,109,.12)}
.catalog-modal{padding:18px;align-items:center;justify-content:center}
.catalog-card{background:#fff;width:min(1280px,98vw);height:min(860px,94vh);border-radius:18px;padding:18px;box-shadow:0 20px 70px rgba(0,0,0,.26);display:flex;flex-direction:column}
.catalog-modal-head{align-items:flex-start;margin-bottom:12px}
.catalog-modal-head h2{color:var(--navy);margin:0;font-size:22px}
.catalog-lead{margin:4px 0 0;color:#607086;font-size:13px;font-weight:700}
.catalog-layout{display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,430px);gap:14px;min-height:0;flex:1}
.catalog-pdf-box,.catalog-picker-box{border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;min-height:0;overflow:hidden}
.catalog-pdf-box{display:flex;flex-direction:column}.catalog-pdf-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#fff;border-bottom:1px solid #e2e8f0;color:var(--navy);font-size:13px}.catalog-pdf-toolbar a{color:var(--pink);font-weight:900;text-decoration:none}.catalog-pdf-box iframe{width:100%;height:100%;border:0;background:#fff;flex:1}
.catalog-picker-box{padding:12px;display:flex;flex-direction:column}.catalog-search-row{display:grid;grid-template-columns:1fr 98px;gap:10px;align-items:end}.catalog-search-row label{font-size:12px;color:var(--navy);font-weight:900}.catalog-search-row input{margin-top:4px;width:100%;border:1px solid #dbe3ec;border-radius:8px;padding:10px;background:#fff}.catalog-help{margin:8px 0 10px;color:#66758a;font-size:12px}.catalog-items{display:grid;gap:8px;overflow:auto;padding-right:4px}.catalog-item-card{border:1px solid #e5ebf2;border-radius:12px;background:#fff;padding:10px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;transition:.18s}.catalog-item-card:hover{border-color:#efbfd0;box-shadow:0 8px 20px rgba(20,45,80,.08)}.catalog-item-card.catalog-added{background:#fff4f8;border-color:var(--pink)}.catalog-item-main h3{margin:0;color:var(--navy);font-size:14px;line-height:1.45}.catalog-item-main p{margin:4px 0 0;color:#7a8391;font-size:11px}.catalog-item-side{text-align:right;display:grid;gap:6px;justify-items:end}.catalog-item-side strong{color:#b12736;font-size:15px}.catalog-item-side button{background:var(--pink);color:#fff;border:0;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:900;white-space:nowrap}
@media(max-width:980px){.catalog-card{height:94vh}.catalog-layout{grid-template-columns:1fr}.catalog-pdf-box{min-height:44vh}.catalog-picker-box{min-height:0}.catalog-items{max-height:36vh}.order-head-row{grid-template-columns:1fr}.catalog-open-btn{width:100%}}


/* v12: プラン名欠け修正・説明文拡大 */
.plan-card .plan-head{height:auto !important;min-height:64px !important;overflow:visible !important}
.plan-card h3{font-size:14px !important;line-height:1.4 !important;display:block !important;-webkit-line-clamp:unset !important;-webkit-box-orient:initial !important;overflow:visible !important;white-space:normal !important;word-break:keep-all !important;overflow-wrap:anywhere !important}
.plan-card p{height:auto !important;min-height:44px !important;font-size:12px !important;line-height:1.65 !important;display:block !important;-webkit-line-clamp:unset !important;-webkit-box-orient:initial !important;overflow:visible !important}
.plan-card{min-height:340px !important}
@media(max-width:760px){.plan-card .plan-head{min-height:60px !important}.plan-card h3{font-size:14px !important;line-height:1.38 !important}.plan-card p{min-height:42px !important;font-size:11.5px !important;line-height:1.6 !important}.plan-card{min-height:330px !important}}
@media(max-width:520px){.plan-card .plan-head{min-height:auto !important}.plan-card h3,.plan-card p{min-height:0 !important}}


/* v13: 料理・返礼品を上下配置、カタログページ連動 */
.foodgift{grid-template-columns:1fr !important;gap:18px !important}
.foodgift[hidden]{display:none!important}
.catalog-pdf-toolbar{flex-wrap:wrap !important}
.catalog-page-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.catalog-page-controls button{border:1px solid #d8e1ec;background:#fff;color:var(--navy);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:900}
.catalog-page-controls button:disabled{opacity:.45;cursor:not-allowed}
.catalog-page-controls label{display:flex;align-items:center;gap:5px;font-weight:900;color:var(--navy)}
.catalog-page-controls input{width:58px;border:1px solid #dbe3ec;border-radius:7px;padding:6px 8px;text-align:center;background:#fff}
.catalog-help{line-height:1.6}
@media(max-width:980px){.catalog-pdf-toolbar{align-items:flex-start}.catalog-page-controls{width:100%;order:3}.catalog-page-controls input{width:64px}}


/* v14: カタログページ画像表示とページ送り連動 */
.catalog-pdf-box iframe{display:none}
.catalog-image-wrap{width:100%;height:100%;min-height:0;overflow:auto;background:#fff;flex:1;display:flex;justify-content:center;align-items:flex-start;padding:10px}
.catalog-page-image{display:block;width:100%;max-width:900px;height:auto;box-shadow:0 2px 10px rgba(20,45,80,.12);background:#fff}
.catalog-pdf-toolbar strong::after{content:"（ページ画像表示）";font-size:11px;color:#7b8796;margin-left:6px;font-weight:700}
@media(max-width:980px){.catalog-image-wrap{padding:6px}.catalog-page-image{max-width:100%}}


/* v15: カタログ画像をスクロールなしで表示し、画像クリックで商品選択 */
.catalog-card{height:min(900px,96vh) !important}
.catalog-layout{grid-template-columns:minmax(520px,1fr) minmax(340px,410px) !important}
.catalog-pdf-box{display:flex;flex-direction:column}
.catalog-image-wrap{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden !important;padding:10px !important;background:#fff}
.catalog-image-stage{position:relative;display:inline-block;max-width:100%;max-height:100%}
.catalog-page-image{display:block;max-width:min(100%,900px);max-height:calc(96vh - 210px);width:auto;height:auto;box-shadow:0 2px 10px rgba(20,45,80,.12);background:#fff}
.catalog-hotspots{position:absolute;inset:0;pointer-events:none}
.catalog-hotspot{position:absolute;border:2px solid rgba(216,75,130,.34);background:rgba(216,75,130,.08);border-radius:10px;cursor:pointer;pointer-events:auto;transition:.18s}
.catalog-hotspot:hover,.catalog-hotspot:focus{background:rgba(216,75,130,.18);border-color:rgba(189,46,109,.78);box-shadow:0 0 0 2px rgba(255,255,255,.8) inset}
.catalog-hotspot-chooser{position:absolute;right:12px;bottom:12px;z-index:4;background:rgba(255,255,255,.98);border:1px solid #f1c1d3;border-radius:12px;box-shadow:0 18px 40px rgba(20,45,80,.18);padding:10px;min-width:240px;max-width:min(72%,320px)}
.catalog-hotspot-chooser .chooser-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;color:var(--navy)}
.catalog-hotspot-chooser .chooser-head strong{font-size:13px}
.catalog-hotspot-chooser .chooser-head button{border:0;background:#f0f4f8;border-radius:999px;width:28px;height:28px;font-weight:900}
.catalog-hotspot-chooser .chooser-list{display:grid;gap:6px;max-height:280px;overflow:auto}
.catalog-hotspot-chooser .chooser-item{border:1px solid #e5ebf2;background:#fff;border-radius:10px;padding:8px 10px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;text-align:left}
.catalog-hotspot-chooser .chooser-item span{font-size:12px;font-weight:800;color:var(--navy)}
.catalog-hotspot-chooser .chooser-item b{font-size:12px;color:#b12736}
.catalog-hotspot-chooser .chooser-item:hover{border-color:#efbfd0;background:#fff7fa}
.catalog-items{padding-right:4px}
.catalog-item-card.catalog-focus{border-color:#d84b82;box-shadow:0 0 0 2px rgba(216,75,130,.12)}
@media(max-width:980px){.catalog-card{height:96vh !important}.catalog-layout{grid-template-columns:1fr !important}.catalog-image-wrap{min-height:42vh}.catalog-page-image{max-width:100%;max-height:42vh}.catalog-hotspot-chooser{max-width:82%;right:8px;bottom:8px}}


/* v16: 料理・返礼品セクションのレイアウト改善 */
.order-box{padding:18px 18px 16px !important;background:linear-gradient(180deg,#fff,#fcfdff) !important;box-shadow:0 4px 14px rgba(20,45,80,.04)}
.order-box h3{margin:0 0 14px !important;font-size:28px;line-height:1.2;color:var(--navy)}
.order-head-row{grid-template-columns:minmax(0,1fr) 170px !important;gap:12px !important;align-items:end !important}
.order-head-row .field label{font-size:15px !important;display:grid;gap:8px}
.order-head-row .select{height:50px;padding:12px 42px 12px 14px;font-size:15px;font-weight:800}
.catalog-open-btn{height:50px !important;display:inline-flex;align-items:center;justify-content:center;padding:0 16px !important;white-space:nowrap;font-size:14px;line-height:1.2;text-align:center}
.qty-row{grid-template-columns:170px minmax(170px,200px) !important;gap:12px !important;align-items:end;margin-top:2px}
.qty-control{grid-template-columns:44px minmax(80px,1fr) 44px !important;gap:6px !important;align-items:stretch}
.qty-control button,.add-order{height:50px !important;display:inline-flex;align-items:center;justify-content:center;padding:0 14px !important;font-size:14px;line-height:1.2}
.qty-control button{font-size:22px;border-radius:10px;background:#f8fbff}
.qty-control input{height:50px !important;padding:10px 8px !important;font-size:22px;font-weight:900;border-radius:10px}
.add-order{margin-top:0 !important;border-radius:10px;background:#fff8fb;color:var(--pink);border:1px solid #efbfd0;font-weight:900;min-width:170px}
.add-order:hover,.catalog-open-btn:hover{transform:translateY(-1px)}
.order-list{margin-top:14px !important}
.order-item{padding:10px 12px !important;border:1px solid #e8eef5;background:#f8fbff}
.order-item button{padding:4px 0}
@media(max-width:900px){
  .order-box h3{font-size:24px}
  .order-head-row{grid-template-columns:1fr !important}
  .catalog-open-btn{width:100% !important}
  .qty-row{grid-template-columns:1fr !important}
  .add-order{width:100% !important;min-width:0}
}
@media(max-width:520px){
  .order-box{padding:16px 14px 14px !important}
  .order-box h3{font-size:22px}
  .order-head-row .select{height:46px;font-size:14px}
  .catalog-open-btn,.qty-control button,.qty-control input,.add-order{height:46px !important}
  .qty-control input{font-size:20px}
}


/* v17: 追加済み料理・返礼品の数量を行内で個別変更 */
.order-item-editable{display:grid !important;grid-template-columns:minmax(0,1fr) 168px 110px 48px !important;gap:10px !important;align-items:center !important;padding:10px 12px !important}
.order-item-name{font-weight:800;color:var(--navy);line-height:1.55;word-break:break-word}
.order-qty-inline{display:grid;grid-template-columns:34px 58px auto 34px;gap:5px;align-items:center;justify-content:end}
.order-qty-inline button{height:34px;border:1px solid #d8e1ec;background:#fff;color:var(--navy);border-radius:8px;font-size:18px;font-weight:900;display:grid;place-items:center}
.order-qty-inline input{height:34px !important;min-height:0 !important;border:1px solid #dbe3ec;border-radius:8px;text-align:center;font-weight:900;font-size:15px;padding:4px !important;background:#fff;color:var(--navy)}
.order-qty-inline span{font-size:12px;font-weight:900;color:#66758a;white-space:nowrap}
.order-amount{text-align:right;color:#b12736;white-space:nowrap;font-size:14px}
.order-delete{border:0;background:transparent;color:#b6294b;font-weight:900;padding:6px 0;text-align:center}
@media(max-width:760px){
  .order-item-editable{grid-template-columns:1fr !important;gap:8px !important}
  .order-qty-inline{justify-content:start;grid-template-columns:38px 72px auto 38px}
  .order-amount{text-align:left;font-size:16px}
  .order-delete{text-align:left}
}


/* v18: 追加済みリスト内の数量変更ボタン表示を強制 */
.order-item-editable{display:grid !important;grid-template-columns:minmax(0,1fr) 176px 110px 48px !important;gap:10px !important;align-items:center !important;padding:10px 12px !important;overflow:visible !important}
.order-item-editable .order-qty-inline{display:grid !important;grid-template-columns:36px 60px auto 36px !important;gap:5px !important;align-items:center !important;justify-content:end !important;visibility:visible !important;opacity:1 !important}
.order-item-editable .order-qty-inline button,.order-item-editable .order-qty-btn{height:34px !important;width:36px !important;border:1px solid #d8e1ec !important;background:#fff !important;color:#173456 !important;border-radius:8px !important;font-size:18px !important;font-weight:900 !important;display:grid !important;place-items:center !important;line-height:1 !important;padding:0 !important;visibility:visible !important;opacity:1 !important}
.order-item-editable .order-qty-inline input,.order-item-editable .order-qty-input{display:block !important;width:60px !important;height:34px !important;min-height:0 !important;border:1px solid #dbe3ec !important;border-radius:8px !important;text-align:center !important;font-weight:900 !important;font-size:15px !important;padding:4px !important;background:#fff !important;color:#173456 !important;visibility:visible !important;opacity:1 !important}
.order-item-editable .order-qty-inline span{display:block !important;font-size:12px !important;font-weight:900 !important;color:#66758a !important;white-space:nowrap !important}
.order-item-editable .order-amount{text-align:right !important;color:#b12736 !important;white-space:nowrap !important;font-size:14px !important}
.order-item-editable .order-delete{display:block !important;border:0 !important;background:transparent !important;color:#b6294b !important;font-weight:900 !important;padding:6px 0 !important;text-align:center !important;white-space:nowrap !important}
@media(max-width:760px){.order-item-editable{grid-template-columns:1fr !important}.order-item-editable .order-qty-inline{justify-content:start !important;grid-template-columns:38px 72px auto 38px !important}.order-item-editable .order-qty-inline input{width:72px !important}.order-item-editable .order-amount{text-align:left !important;font-size:16px !important}.order-item-editable .order-delete{text-align:left !important}}


/* v19: 下部固定の合計金額バー */
.floating-total-bar{position:fixed;left:0;right:0;bottom:0;z-index:35;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));pointer-events:none}
.floating-total-inner{max-width:1240px;margin:0 auto;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border:1px solid #e7d8df;box-shadow:0 -8px 28px rgba(18,35,60,.12);border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;pointer-events:auto}
.floating-total-text small{display:block;font-size:12px;font-weight:800;color:#66758a;margin-bottom:3px}.floating-total-text strong{display:block;font-size:28px;line-height:1;color:#b12736;font-weight:900}.floating-total-text strong span{font-size:14px;color:#a63b56}.floating-total-btn{border:0;background:var(--pink);color:#fff;border-radius:999px;padding:12px 20px;font-weight:900;white-space:nowrap;box-shadow:0 10px 22px rgba(189,46,109,.18)}
body{padding-bottom:110px}
@media(min-width:1041px){.floating-total-inner{max-width:1240px}.floating-total-text strong{font-size:26px}}
@media(max-width:760px){body{padding-bottom:118px}.floating-total-bar{padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))}.floating-total-inner{padding:10px 12px;gap:10px;border-radius:14px}.floating-total-text strong{font-size:22px}.floating-total-text strong span{font-size:12px}.floating-total-btn{padding:10px 14px;font-size:13px}}
@media(max-width:480px){.floating-total-inner{align-items:flex-end}.floating-total-text strong{font-size:20px}.floating-total-btn{padding:10px 12px}}


/* v20: 下部固定バー削除・料金構成イメージ削除 */
.floating-total-bar{display:none !important}
body{padding-bottom:0 !important}
.chart-card{display:none !important}
@media(min-width:1041px){.sidebar{position:sticky;top:18px}.summary-card{position:sticky;top:18px;z-index:5}}

/* v21: seikatsu-sc.com風ヘッダー・フッター */
body{padding-bottom:0 !important}.floating-total-bar{display:none !important}.chart-card{display:none !important}
.sc-official-header{background:#fff;border-bottom:1px solid #f3d7e2}.sc-header-inner{width:min(1180px,94vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 0 12px}.sc-brand{text-decoration:none;color:#111;display:block}.sc-brand-kicker{display:block;color:#7361a4;font-weight:900;font-size:14px;line-height:1.2}.sc-brand-main{display:flex;align-items:center;gap:8px;font-size:31px;font-weight:900;letter-spacing:.02em;line-height:1.25}.sc-brand-icons{font-size:18px;letter-spacing:-2px;color:#e93862}.sc-brand-badge{display:inline-block;background:#ffe7ee;color:#333;border-radius:999px;padding:5px 13px;font-weight:800;font-size:13px}.sc-header-contact{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.sc-mini-btn{border:1px solid #dfe7ef;background:#fff;border-radius:999px;padding:9px 14px;text-decoration:none;color:#17436c;font-weight:900;font-size:13px}.sc-header-phone{text-decoration:none;color:#e6003c;font-size:28px;font-weight:900;line-height:1;text-align:right}.sc-header-phone small{display:block;color:#444;font-size:12px;margin-top:7px}.sc-global-nav{background:#14375d;display:flex;justify-content:center;gap:0;flex-wrap:wrap}.sc-global-nav a{color:#fff;text-decoration:none;padding:12px 18px;font-weight:900;border-left:1px solid rgba(255,255,255,.2);font-size:14px}.sc-global-nav a:last-child{border-right:1px solid rgba(255,255,255,.2)}.sc-page-title{background:linear-gradient(90deg,#fff7fb,#fff);border-top:1px solid #f5d2df;text-align:center;padding:22px 14px}.sc-page-title h1{margin:0;color:#14375d;font-family:"Noto Serif JP",serif;font-size:30px;letter-spacing:.08em}.sc-official-footer{margin-top:36px;background:#14375d;color:#fff}.sc-footer-cta{background:#fff7fb;color:#14375d;border-top:1px solid #f2ccd8;border-bottom:1px solid #f2ccd8;width:100%;display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;padding:18px}.sc-footer-cta strong{color:#c51d5f;font-size:20px}.sc-footer-cta a{display:inline-flex;align-items:center;border:1px solid #f0b8cc;border-radius:999px;padding:9px 16px;text-decoration:none;color:#14375d;background:#fff;font-weight:900}.sc-footer-main{width:min(1180px,94vw);margin:0 auto;display:flex;justify-content:space-between;gap:24px;padding:28px 0}.sc-footer-logo{font-size:24px;font-weight:900;margin:0 0 8px}.sc-footer-main p{margin:0;line-height:1.8}.sc-footer-links{display:grid;grid-template-columns:repeat(2,auto);gap:8px 18px;align-content:start}.sc-footer-links a{color:#fff;text-decoration:none}.sc-copy{text-align:center;background:#0c2948;padding:12px;font-size:12px}
@media(max-width:780px){.sc-header-inner{display:block}.sc-header-contact{justify-content:flex-start;margin-top:12px}.sc-brand-main{font-size:25px}.sc-header-phone{font-size:23px;text-align:left}.sc-global-nav{justify-content:flex-start;overflow:auto;flex-wrap:nowrap}.sc-global-nav a{white-space:nowrap}.sc-footer-main{display:block}.sc-footer-links{grid-template-columns:1fr;margin-top:18px}}

/* v21: 見積書ページ */
.estimate-view-body{background:#f5f7fb}.estimate-pro-page{padding:22px 12px 32px;background:#eef2f6}.estimate-actions{width:min(210mm,96vw);margin:0 auto 14px;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.estimate-actions a,.estimate-actions button{border:1px solid #d8e1ec;text-decoration:none;border-radius:999px;padding:10px 14px;font-weight:900;background:#fff;color:#14375d}.estimate-actions button:nth-of-type(1),.estimate-actions button:nth-of-type(2),.estimate-actions button:nth-of-type(3){background:var(--pink);color:#fff;border-color:var(--pink)}.quote-action-message{width:min(210mm,96vw);margin:0 auto 14px;background:#fff7fb;border:1px solid #efbfd0;color:#14375d;border-radius:10px;padding:10px 14px;font-weight:800}.quote-action-message.bad{background:#fff0f0;border-color:#e99;color:#a00}.quote-paper-pro{width:210mm;min-height:297mm;margin:0 auto;background:#fff;position:relative;padding:12mm 13mm 10mm;border:2px solid #f5a7c1;box-shadow:0 8px 35px rgba(0,0,0,.12);color:#14375d;font-family:"Noto Serif JP","Hiragino Mincho ProN",serif}.quote-paper-pro:before{content:"";position:absolute;inset:6mm;border:1px solid #f8cad8;border-radius:8px;pointer-events:none}.qp-head,.qp-meta-row,.qp-main-grid,.qp-lower-grid,.qp-contact-row,.qp-qr-row{position:relative;z-index:1}.qp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.qp-kicker{margin:0;color:#6657a5;font-size:12px;font-weight:900}.qp-logo{font-size:28px;font-weight:900;color:#111;line-height:1.25}.qp-icons{font-size:16px;color:#e63858;margin-right:8px}.qp-leaf{color:#28a95a;margin-left:5px}.qp-badge{display:inline-block;background:#ffe5ed;border-radius:999px;padding:4px 12px;margin:3px 0 0;font-size:11px;font-weight:900;color:#333}.qp-phone{text-align:right;color:#e6003c;font-size:28px;line-height:1;font-weight:900}.qp-phone span{background:#e6003c;color:#fff;border-radius:3px;font-size:19px;padding:5px 9px;margin-right:12px}.qp-phone small{display:block;color:#444;font-size:12px;margin-top:7px}.qp-title{text-align:center;margin:18mm 0 10mm}.qp-title h1{margin:0;color:#153e67;font-size:34px;letter-spacing:.28em;border-bottom:3px solid #e61d5b;display:inline-block;padding:0 22px 5px}.qp-title p{margin:8px 0 0;color:#333;font-size:13px}.qp-meta-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:8mm}.qp-recipient{font-size:24px;border-bottom:1px solid #777;width:65mm;padding-bottom:5px;color:#153e67}.qp-recipient span{color:#111}.qp-meta{text-align:right;font-size:13px;line-height:1.9;color:#333}.qp-total-band{position:relative;z-index:1;border:1px solid #f2aeca;border-radius:7px;display:grid;grid-template-columns:42mm 1fr 58mm;align-items:center;gap:8px;padding:9mm;margin-bottom:8mm}.qp-total-label{background:#fff0f5;color:#e61d5b;font-size:22px;font-weight:900;text-align:center;padding:11px;border-radius:5px}.qp-total-main{font-size:44px;color:#e6003c;font-weight:900;line-height:1;text-align:center}.qp-total-main span{font-size:16px;margin-left:8px}.qp-tax{border-left:1px solid #f0b9c8;padding-left:16px;color:#555;line-height:1.8;font-size:14px}.qp-main-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:7mm}.qp-box{border:1px solid #f2aeca;border-radius:7px;padding:5mm;background:#fff}.qp-box h2,.qp-included h2,.qp-selected h2{margin:0 0 4mm;color:#e61d5b;font-size:20px;letter-spacing:.06em;border-bottom:2px solid #f3a9c3;padding-bottom:6px}.qp-table{width:100%;border-collapse:collapse;font-size:12px;color:#222}.qp-table th{background:#fff3f7;color:#333;border:1px solid #f4bfd1;padding:8px;text-align:center}.qp-table td{border-bottom:1px dashed #f5c6d5;padding:8px;vertical-align:top}.qp-table td:first-child{color:#9b3156;font-weight:900}.qp-table .money{text-align:right;white-space:nowrap}.qp-subtotal,.qp-final{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:8px 10px}.qp-subtotal{border-top:2px solid #f5b5c9;color:#14375d}.qp-subtotal strong{color:#e6003c;font-size:20px}.qp-final{background:#fff1f6;color:#14375d;font-weight:900}.qp-final strong{font-size:26px;color:#e6003c}.qp-note,.qp-footer-note{font-size:11px;color:#555}.qp-choice-list{display:grid;grid-template-columns:64px 1fr;gap:0;margin:0}.qp-choice-list dt,.qp-choice-list dd{border-bottom:1px dashed #f2c0d0;margin:0;padding:9px 6px;min-height:35px}.qp-choice-list dt{color:#14375d;font-weight:900}.qp-choice-list dd{color:#333}.qp-lower-grid{display:grid;grid-template-columns:1.2fr .9fr;gap:7mm;margin-top:7mm}.qp-included ul{display:grid;grid-template-columns:1fr 1fr;gap:7px 22px;padding-left:18px;margin:0;color:#333;font-size:13px}.qp-included li::marker{color:#e61d5b}.qp-selected{border:1px solid #f2aeca;border-radius:7px;padding:5mm}.qp-selected p{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:10px;border-bottom:1px dashed #f2c0d0}.qp-selected strong{color:#555}.qp-contact-row,.qp-qr-row{display:grid;grid-template-columns:1.2fr .9fr;gap:6mm;margin-top:6mm}.qp-help,.qp-call,.qp-qr-box{border:1px solid #f2aeca;border-radius:7px;padding:12px;background:#fff}.qp-help{color:#14375d;font-weight:900;text-align:center}.qp-call{color:#e6003c;font-weight:900;font-size:26px;text-align:center}.qp-call small{display:block;color:#444;font-size:12px;margin-top:4px}.qp-qr-box{display:flex;align-items:center;justify-content:center;gap:18px;color:#14375d;font-weight:900}.qp-qr-box .qr-placeholder{width:70px;height:70px}.qp-footer-note{text-align:center;margin:8px 0 0}.corner{position:absolute;width:22px;height:22px;border-color:#f3a1bc}.corner-tl{top:4mm;left:4mm;border-left:2px solid;border-top:2px solid;border-radius:8px 0 0 0}.corner-tr{top:4mm;right:4mm;border-right:2px solid;border-top:2px solid;border-radius:0 8px 0 0}.corner-bl{bottom:4mm;left:4mm;border-left:2px solid;border-bottom:2px solid;border-radius:0 0 0 8px}.corner-br{bottom:4mm;right:4mm;border-right:2px solid;border-bottom:2px solid;border-radius:0 0 8px 0}
@media(max-width:900px){.quote-paper-pro,.estimate-actions,.quote-action-message{width:100%}.quote-paper-pro{min-height:auto;padding:20px}.qp-head,.qp-meta-row,.qp-main-grid,.qp-lower-grid,.qp-contact-row,.qp-qr-row,.qp-total-band{grid-template-columns:1fr;display:grid}.qp-phone{text-align:left}.qp-title{margin:28px 0}.qp-title h1{font-size:28px}.qp-total-main{text-align:left}.qp-tax{border-left:0;border-top:1px solid #f0b9c8;padding:10px 0 0}.qp-included ul{grid-template-columns:1fr}}
@media print{.sc-official-header,.sc-official-footer,.no-print{display:none!important}.estimate-pro-page{padding:0;background:#fff}.quote-paper-pro{box-shadow:none;margin:0;width:auto;min-height:297mm;padding:10mm 12mm}.quote-paper-pro:before{inset:4mm}@page{size:A4;margin:0}}

/* v21: list/contact */
.list-page,.contact-page{padding:28px 0}.list-tools{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:16px}.list-card,.contact-card{background:#fff;border:1px solid #e6edf4;border-radius:14px;box-shadow:var(--shadow);padding:22px}.list-card h2,.contact-card h2{margin:0 0 12px;color:#14375d}.quote-list-table-wrap{overflow:auto}.quote-list-table{width:100%;border-collapse:collapse;font-size:14px}.quote-list-table th{background:#14375d;color:#fff;padding:10px;text-align:left;white-space:nowrap}.quote-list-table td{border-bottom:1px solid #edf1f5;padding:10px;vertical-align:top}.quote-list-table a{color:#bd2e6d;font-weight:900}.quote-list-table .money{text-align:right;white-space:nowrap}.stats-table small{display:block;color:#7a8391}.contact-quote-summary{background:#fff7fb;border:1px solid #efbfd0;border-radius:10px;padding:12px;margin:12px 0 18px}.contact-form{display:grid;gap:14px}.contact-form label{display:grid;gap:6px;color:#14375d;font-weight:900}.contact-form label span{display:inline-block;margin-left:8px;background:#bd2e6d;color:#fff;border-radius:999px;padding:2px 8px;font-size:11px}.contact-form input,.contact-form textarea{border:1px solid #dbe3ec;border-radius:8px;padding:12px;background:#fff;font:inherit}.form-error{background:#fff0f0;border:1px solid #f0b2b2;color:#a00;padding:10px 12px;border-radius:8px;margin-bottom:12px}


/* v22: 宛名入力・プラン詳細リンク・通知・サマリー調整 */
.summary-list{gap:6px !important}.summary-row{padding:7px 8px !important;min-height:0 !important;line-height:1.25 !important;font-size:12px !important;grid-template-columns:76px 1fr !important}.summary-row b{line-height:1.25}.summary-row span{line-height:1.25}.modal-plan-link{display:inline-flex;margin-top:14px;align-items:center;justify-content:center;background:var(--pink);color:#fff;text-decoration:none;border-radius:999px;padding:10px 18px;font-weight:900;font-size:14px}.modal-plan-link[hidden]{display:none !important}.order-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);z-index:80;background:rgba(24,42,65,.96);color:#fff;border-radius:999px;padding:12px 22px;font-weight:900;box-shadow:0 18px 40px rgba(0,0,0,.18);opacity:0;transition:.22s;max-width:min(92vw,720px);text-align:center}.order-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.contact-name-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.same-recipient-check{border:1px solid #e1e8f0;background:#f8fafc;border-radius:10px;padding:12px 14px !important;display:flex !important;gap:8px;align-items:center;white-space:nowrap;font-weight:900;color:var(--navy)}.same-recipient-check input{width:auto !important}.contact-form input[type=text],.contact-form input[type=tel],.contact-form input[type=email],.contact-form textarea{width:100%;border:1px solid #dbe3ec;border-radius:8px;padding:12px;background:#fff}.contact-form label span{color:var(--pink);font-size:12px;margin-left:6px;font-weight:900}
@media(max-width:720px){.contact-name-line{grid-template-columns:1fr}.same-recipient-check{justify-content:flex-start}.summary-row{grid-template-columns:72px 1fr !important}}


/* v23 adjustments */
.catalog-page-controls button{min-width:132px !important;padding:10px 18px !important;background:var(--pink) !important;color:#fff !important;border-color:var(--pink) !important;box-shadow:0 8px 18px rgba(189,46,109,.16)}
.catalog-page-controls button:disabled{opacity:.45 !important;background:#d9e1ea !important;border-color:#d9e1ea !important;color:#fff !important}
.catalog-help{font-size:18px !important;line-height:1.55 !important;color:var(--navy) !important;font-weight:900 !important;margin:10px 0 12px !important}.catalog-help span{font-size:18px !important;font-weight:900 !important;color:var(--navy)}.catalog-help br{display:none}
.order-toast{left:50% !important;top:50% !important;bottom:auto !important;transform:translate(-50%,-50%) scale(.96) !important;max-width:min(92vw,760px) !important;padding:14px 24px !important;font-size:18px !important;border-radius:16px !important;background:rgba(24,42,65,.96) !important}.order-toast.show{transform:translate(-50%,-50%) scale(1) !important}
.option-card .thumb{height:116px !important;object-fit:cover !important;object-position:center center !important;background:#fff !important;border:1px solid #edf2f6}
.option-card h3{font-size:13px !important;line-height:1.45 !important;min-height:44px !important}
@media(max-width:760px){.catalog-page-controls button{min-width:110px !important;padding:9px 12px !important}.catalog-help,.catalog-help span{font-size:16px !important}.order-toast{font-size:16px !important;padding:13px 18px !important}.option-card .thumb{height:102px !important}}


/* v24 option card readability & sharper images */
.option-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:12px !important}
.option-card{padding:14px 12px 12px !important;display:flex !important;flex-direction:column !important;align-items:stretch !important;min-height:260px !important}
.option-card h3{font-size:13px !important;line-height:1.45 !important;min-height:54px !important;margin:2px 0 10px !important;color:var(--navy) !important;padding:0 4px 0 36px !important;text-align:center !important;display:flex !important;align-items:flex-start !important;justify-content:center !important;word-break:keep-all !important;overflow-wrap:anywhere !important}
.checkmark{top:12px !important;left:12px !important;width:26px !important;height:26px !important;z-index:3 !important}
.option-card .thumb{width:100% !important;height:132px !important;object-fit:contain !important;object-position:center center !important;background:#fff !important;border:1px solid #edf2f6 !important;border-radius:10px !important;display:block !important;padding:0 !important;image-rendering:auto !important}
.option-card .price,.option-card .money{margin-top:10px !important}
.option-card .price{font-size:18px !important;text-align:left !important}
.option-card .price, .option-card .money, .option-card strong{color:#b12736 !important}
.option-card .thumb-wrap{background:#fff}
@media(max-width:980px){.option-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.option-card{min-height:250px !important}}
@media(max-width:560px){.option-grid{grid-template-columns:1fr 1fr !important}.option-card{min-height:236px !important;padding:12px 10px 10px !important}.option-card h3{font-size:12px !important;min-height:52px !important;padding-left:34px !important}.option-card .thumb{height:116px !important}}


/* v25 option header/title fix and user-supplied images */
.option-card{padding:44px 12px 12px !important;min-height:272px !important}
.option-card h3{padding:0 !important;margin:0 0 10px !important;min-height:52px !important;display:flex !important;align-items:flex-start !important;justify-content:center !important;text-align:center !important;line-height:1.45 !important;font-size:13px !important;color:var(--navy) !important}
.checkmark{top:10px !important;left:10px !important;width:24px !important;height:24px !important;z-index:5 !important}
.option-card .thumb{height:132px !important;object-fit:cover !important;object-position:center center !important;border-radius:10px !important;background:#fff !important}
@media(max-width:980px){.option-card{min-height:260px !important}}
@media(max-width:560px){.option-card{padding:42px 10px 10px !important;min-height:248px !important}.option-card h3{min-height:48px !important;font-size:12px !important}.option-card .thumb{height:118px !important}}


/* v26: 安置日数説明文とA4見積書比率 */
#storageDaysLabel{font-size:14px !important;line-height:1.65 !important;color:var(--navy) !important;font-weight:900 !important}
.quote-paper-pro{width:210mm !important;min-height:297mm !important;aspect-ratio:210 / 297 !important;box-sizing:border-box !important}
.estimate-actions,.quote-action-message{width:min(210mm,96vw) !important}
@media print{.quote-paper-pro{width:210mm !important;min-height:297mm !important;aspect-ratio:auto !important;box-shadow:none !important;margin:0 auto !important;box-sizing:border-box !important}.estimate-pro-page{padding:0 !important;background:#fff !important}@page{size:A4 portrait;margin:0}}
@media(max-width:900px){.quote-paper-pro{width:100% !important;min-height:auto !important;aspect-ratio:auto !important}}


/* v28 distance manual API execution */
#distanceBtn:disabled{opacity:.55;cursor:not-allowed;background:#dbe3ec !important;color:#607086 !important;border-color:#dbe3ec !important}
#secDistance.loading #distanceBtn{pointer-events:none;opacity:.65}


/* v29: A4見積書の収まり改善 */
.quote-paper-pro{padding:9mm 11mm 8mm !important;overflow:hidden}
.quote-paper-pro:before{inset:4mm !important}
.qp-head{gap:12px !important}.qp-kicker{font-size:10px !important}.qp-logo{font-size:24px !important}.qp-badge{font-size:10px !important;padding:3px 10px !important}.qp-phone{font-size:24px !important}.qp-phone span{font-size:16px !important;padding:4px 8px !important;margin-right:10px !important}.qp-phone small{font-size:10px !important;margin-top:5px !important}
.qp-title{margin:10mm 0 6mm !important}.qp-title h1{font-size:28px !important;padding:0 18px 4px !important}.qp-title p{font-size:11px !important;margin-top:6px !important}
.qp-meta-row{margin-bottom:5mm !important}.qp-recipient{font-size:18px !important;width:58mm !important}.qp-meta{font-size:11px !important;line-height:1.7 !important}
.qp-total-band{grid-template-columns:34mm 1fr 49mm !important;padding:5mm !important;gap:6px !important;margin-bottom:5mm !important}.qp-total-label{font-size:18px !important;padding:8px !important}.qp-total-main{font-size:34px !important}.qp-total-main span{font-size:13px !important}.qp-tax{font-size:11px !important;line-height:1.6 !important;padding-left:12px !important}
.qp-main-grid{gap:4mm !important}.qp-lower-grid{gap:4mm !important;margin-top:4mm !important}.qp-box{padding:3.5mm !important}.qp-box h2,.qp-included h2,.qp-selected h2{font-size:16px !important;margin-bottom:2.8mm !important;padding-bottom:4px !important}
.qp-table{font-size:10.5px !important;table-layout:fixed !important}.qp-table th{padding:5px !important;font-size:10px !important}.qp-table td{padding:5px 4px !important;line-height:1.35 !important;word-break:break-word !important}.qp-table th:nth-child(1),.qp-table td:nth-child(1){width:18%}.qp-table th:nth-child(2),.qp-table td:nth-child(2){width:50%}.qp-table th:nth-child(3),.qp-table td:nth-child(3){width:10%;text-align:center}.qp-table th:nth-child(4),.qp-table td:nth-child(4){width:22%}
.qp-subtotal,.qp-final{margin-top:6px !important;padding:6px 8px !important}.qp-subtotal strong{font-size:16px !important}.qp-final strong{font-size:20px !important}.qp-note,.qp-footer-note{font-size:9.5px !important;line-height:1.5 !important}
.qp-choice-list{grid-template-columns:58px 1fr !important}.qp-choice-list dt,.qp-choice-list dd{padding:6px 5px !important;min-height:0 !important;font-size:10.5px !important;line-height:1.45 !important}
.qp-included ul{gap:6px 16px !important;padding-left:18px !important}.qp-included li{font-size:10.5px !important;line-height:1.5 !important}.qp-selected p{padding:7px 0 !important;font-size:10.5px !important;line-height:1.5 !important;grid-template-columns:92px 1fr !important}.qp-selected small{font-size:9.5px !important}.qp-contact-row{margin-top:5mm !important;gap:4mm !important}.qp-help,.qp-call{padding:10px 12px !important;min-height:0 !important;font-size:10.5px !important}.qp-call{font-size:20px !important}.qp-call small{font-size:10px !important;margin-top:4px !important}.qp-qr-row{margin-top:4mm !important;gap:4mm !important}.qp-qr-box{padding:8px 10px !important;font-size:10px !important;gap:12px !important}.qp-qr-box .qr-placeholder{width:54px !important;height:54px !important}.corner{width:16px !important;height:16px !important}
.quote-paper-pro.dense-1 .qp-title{margin:8mm 0 5mm !important}.quote-paper-pro.dense-1 .qp-title h1{font-size:26px !important}.quote-paper-pro.dense-1 .qp-total-main{font-size:31px !important}.quote-paper-pro.dense-1 .qp-table{font-size:10px !important}.quote-paper-pro.dense-1 .qp-table td,.quote-paper-pro.dense-1 .qp-table th{padding:4px !important}.quote-paper-pro.dense-1 .qp-box h2,.quote-paper-pro.dense-1 .qp-included h2,.quote-paper-pro.dense-1 .qp-selected h2{font-size:15px !important}.quote-paper-pro.dense-1 .qp-choice-list dt,.quote-paper-pro.dense-1 .qp-choice-list dd,.quote-paper-pro.dense-1 .qp-selected p,.quote-paper-pro.dense-1 .qp-included li{font-size:10px !important;line-height:1.4 !important}.quote-paper-pro.dense-1 .qp-help,.quote-paper-pro.dense-1 .qp-call,.quote-paper-pro.dense-1 .qp-qr-box{font-size:10px !important}
.quote-paper-pro.dense-2{padding:8mm 10mm 7mm !important}.quote-paper-pro.dense-2 .qp-logo{font-size:22px !important}.quote-paper-pro.dense-2 .qp-phone{font-size:22px !important}.quote-paper-pro.dense-2 .qp-title{margin:7mm 0 4mm !important}.quote-paper-pro.dense-2 .qp-title h1{font-size:24px !important;letter-spacing:.18em !important}.quote-paper-pro.dense-2 .qp-title p{font-size:10px !important}.quote-paper-pro.dense-2 .qp-meta-row{margin-bottom:4mm !important}.quote-paper-pro.dense-2 .qp-recipient{font-size:17px !important}.quote-paper-pro.dense-2 .qp-total-band{padding:4mm !important;margin-bottom:4mm !important}.quote-paper-pro.dense-2 .qp-total-label{font-size:16px !important}.quote-paper-pro.dense-2 .qp-total-main{font-size:28px !important}.quote-paper-pro.dense-2 .qp-tax{font-size:10px !important}.quote-paper-pro.dense-2 .qp-main-grid,.quote-paper-pro.dense-2 .qp-lower-grid{gap:3mm !important}.quote-paper-pro.dense-2 .qp-box{padding:3mm !important}.quote-paper-pro.dense-2 .qp-box h2,.quote-paper-pro.dense-2 .qp-included h2,.quote-paper-pro.dense-2 .qp-selected h2{font-size:14px !important;margin-bottom:2mm !important}.quote-paper-pro.dense-2 .qp-table{font-size:9.2px !important}.quote-paper-pro.dense-2 .qp-table th{font-size:9px !important}.quote-paper-pro.dense-2 .qp-table td,.quote-paper-pro.dense-2 .qp-table th{padding:3px 3px !important;line-height:1.25 !important}.quote-paper-pro.dense-2 .qp-subtotal,.quote-paper-pro.dense-2 .qp-final{padding:5px 7px !important}.quote-paper-pro.dense-2 .qp-subtotal strong{font-size:14px !important}.quote-paper-pro.dense-2 .qp-final strong{font-size:18px !important}.quote-paper-pro.dense-2 .qp-choice-list{grid-template-columns:52px 1fr !important}.quote-paper-pro.dense-2 .qp-choice-list dt,.quote-paper-pro.dense-2 .qp-choice-list dd{padding:5px 4px !important;font-size:9.4px !important;line-height:1.35 !important}.quote-paper-pro.dense-2 .qp-included ul{gap:4px 12px !important;padding-left:16px !important}.quote-paper-pro.dense-2 .qp-included li,.quote-paper-pro.dense-2 .qp-selected p{font-size:9.4px !important;line-height:1.35 !important}.quote-paper-pro.dense-2 .qp-selected p{grid-template-columns:84px 1fr !important;padding:5px 0 !important}.quote-paper-pro.dense-2 .qp-selected small,.quote-paper-pro.dense-2 .qp-note,.quote-paper-pro.dense-2 .qp-footer-note{font-size:8.8px !important;line-height:1.35 !important}.quote-paper-pro.dense-2 .qp-contact-row{margin-top:4mm !important;gap:3mm !important}.quote-paper-pro.dense-2 .qp-help,.quote-paper-pro.dense-2 .qp-call{padding:8px 10px !important;font-size:9.2px !important}.quote-paper-pro.dense-2 .qp-call{font-size:17px !important}.quote-paper-pro.dense-2 .qp-qr-row{margin-top:3mm !important;gap:3mm !important}.quote-paper-pro.dense-2 .qp-qr-box{padding:7px 8px !important;font-size:9px !important;gap:8px !important}.quote-paper-pro.dense-2 .qp-qr-box .qr-placeholder{width:46px !important;height:46px !important}
@media print{.quote-paper-pro{overflow:hidden !important}}


/* v30: 火葬費選択 */
.cremation-fee-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.cremation-fee-choice{width:100%;border:2px solid #e5ebf2;border-radius:12px;background:#fff;padding:14px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;color:var(--navy);cursor:pointer;transition:.18s}
.cremation-fee-choice:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.cremation-fee-choice.selected{border-color:#ef9fbd;background:#fff7fb}
.cremation-fee-choice .radio-dot{width:22px;height:22px}
.cremation-fee-choice.selected .radio-dot{border-color:var(--pink)}
.cremation-fee-choice.selected .radio-dot:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--pink)}
.cremation-fee-choice span:nth-child(2){display:grid;gap:4px}.cremation-fee-choice strong{font-size:15px}.cremation-fee-choice small{font-size:11px;color:#66758a;font-weight:700}.cremation-fee-choice b{color:#b12736;font-size:19px;white-space:nowrap}
.cremation-extra-box{margin-top:14px;border:1px solid #e5ebf2;border-radius:12px;padding:14px;background:#f9fbfd;display:grid;gap:8px}.cremation-extra-box .field-title{margin:0 0 3px}
.cremation-check-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid #e2e9f1;border-radius:10px;padding:12px 14px;color:var(--navy);font-weight:900;cursor:pointer}.cremation-check-row input{width:20px;height:20px;accent-color:var(--pink)}.cremation-check-row strong{color:#b12736;font-size:17px;white-space:nowrap}
.cremation-admin-box{margin:14px 0;background:#fff8fb;border-color:#efbfd0}.cremation-admin-box .row-title{margin-bottom:10px}.cremation-admin-box .hint{font-size:12px;color:#66758a}
@media(max-width:760px){.cremation-fee-grid{grid-template-columns:1fr}.cremation-fee-choice{grid-template-columns:22px minmax(0,1fr) auto;padding:12px}.cremation-fee-choice strong{font-size:14px}.cremation-fee-choice b{font-size:17px}.cremation-check-row{padding:11px 12px}}


/* v31: 安置日数・追加ドライアイス表示 */
.dry-ice-summary{margin-top:12px;border:1px solid #efbfd0;background:linear-gradient(100deg,#fff8fb,#fff);border-radius:10px;padding:12px 14px;display:grid;gap:8px}
.dry-ice-summary>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px dashed #efcfda;padding-bottom:7px;color:var(--navy);font-weight:800}
.dry-ice-summary>div:last-child{border-bottom:0;padding-bottom:0}.dry-ice-summary span{font-size:13px}.dry-ice-summary strong{color:#b12736;font-size:16px;white-space:nowrap}
@media(max-width:560px){.dry-ice-summary>div{grid-template-columns:1fr;gap:4px}.dry-ice-summary strong{white-space:normal;font-size:15px}}


/* v32: 安置先別の施工管理費・弊社安置料金 */
.storage-cost-summary{margin-top:12px;border:1px solid #f0bfd0;background:linear-gradient(100deg,#fff8fb,#fff);border-radius:12px;padding:12px 14px;display:grid;gap:8px}
.storage-cost-summary>div{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px dashed #edc8d5;padding-bottom:8px;color:var(--navy);font-weight:900}
.storage-cost-summary>div:last-child{border-bottom:0;padding-bottom:0}.storage-cost-summary span{font-size:13px;line-height:1.5}.storage-cost-summary strong{color:#b12736;font-size:17px;white-space:nowrap}
.attendee-storage-fee-admin,.office-storage-admin{background:#fffafb;border-color:#efc7d5}
@media(max-width:640px){.storage-cost-summary>div{display:grid;gap:4px}.storage-cost-summary strong{font-size:16px;white-space:normal}}


/* v33: その他安置施工管理費・遺体衛生剤 */
.body-hygiene-summary{margin-top:10px;border:1px solid #cfdced;background:linear-gradient(100deg,#f7fbff,#fff);border-radius:10px;padding:12px 14px;display:grid;gap:8px}
.body-hygiene-summary>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;color:var(--navy);font-weight:800}
.body-hygiene-summary span{font-size:13px}.body-hygiene-summary strong{color:#b12736;font-size:16px;white-space:nowrap}
.body-hygiene-admin{background:#f8fbff;border-color:#cad9ea}.body-hygiene-fee-grid{align-items:end}
@media(max-width:560px){.body-hygiene-summary>div{grid-template-columns:1fr;gap:4px}.body-hygiene-summary strong{white-space:normal;font-size:15px}}


/* v34: 見積書宛名入力モーダル・見積明細表記調整 */
body.modal-open{overflow:hidden}
.recipient-modal{z-index:120 !important;align-items:center !important;justify-content:center !important;padding:20px !important}
.recipient-modal-card{width:min(520px,92vw) !important;padding:26px !important;border-radius:16px !important;box-shadow:0 24px 80px rgba(10,29,53,.32) !important}
.recipient-modal-card .modal-head{align-items:center !important;border-bottom:1px solid #e8edf3 !important;padding-bottom:14px !important}
.recipient-modal-card h2{font-size:24px !important;color:var(--navy) !important;margin:0 !important}
.recipient-modal-lead{margin:18px 0 16px !important;color:#526176 !important;font-size:14px !important;line-height:1.7 !important}
.recipient-modal-label{display:block !important;color:var(--navy) !important;font-weight:900 !important;font-size:14px !important;margin-bottom:7px !important}
.recipient-modal-input{width:100% !important;border:2px solid #dbe3ec !important;border-radius:10px !important;padding:13px 14px !important;background:#fff !important;font-size:18px !important;line-height:1.4 !important;outline:none !important}
.recipient-modal-input:focus{border-color:var(--pink) !important;box-shadow:0 0 0 4px rgba(189,46,109,.1) !important}
.recipient-modal-error{margin:8px 0 0 !important;color:#b00020 !important;font-size:13px !important;font-weight:900 !important}
.recipient-modal-actions{display:flex !important;justify-content:flex-end !important;gap:10px !important;margin-top:20px !important}
.recipient-modal-actions button{min-width:110px !important}
@media(max-width:560px){.recipient-modal-card{padding:20px !important}.recipient-modal-card h2{font-size:21px !important}.recipient-modal-actions{display:grid !important;grid-template-columns:1fr 1fr !important}.recipient-modal-actions button{min-width:0 !important;width:100% !important}}

/* v35: 初期未選択・入力チェック・添付見積書レイアウト */
.empty-selection-card{grid-column:1/-1;width:100%;border:1px dashed #cfd9e5;border-radius:10px;background:#f8fafc;color:#66758a;padding:18px;text-align:center;font-size:13px;font-weight:800;line-height:1.7}
.empty-selection-card.compact{padding:13px}
.summary-placeholder{color:#66758a!important;font-size:12px!important;line-height:1.65!important;font-weight:800!important}
.section.validation-error{border-color:#d94362!important;box-shadow:0 0 0 3px rgba(217,67,98,.12)!important}
.section.validation-error .section-title h2{color:#b71f42!important}
.estimate-validation-message{margin:14px auto 16px;background:#fff1f4;border:2px solid #e85b77;border-radius:12px;padding:14px 18px;color:#7d1730;text-align:left;max-width:680px}
.estimate-validation-message strong{display:block;font-size:17px;margin-bottom:5px}.estimate-validation-message p{margin:0 0 8px!important;color:#7d1730!important;font-size:13px!important}.estimate-validation-message ul{margin:0;padding-left:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;font-size:13px;font-weight:900}
.estimate-validation-message[hidden]{display:none!important}
@media(max-width:620px){.estimate-validation-message ul{grid-template-columns:1fr}}

/* 添付見本に近いA4縦型の見積書 */
.quote-paper-pro{width:210mm!important;min-height:297mm!important;padding:8mm 9mm 7mm!important;border:1.5px solid #f4a2bd!important;background:#fff!important;overflow:hidden!important}
.quote-paper-pro:before{inset:3.2mm!important;border-color:#f7bfd1!important;border-radius:5px!important}
.qp-head{gap:12px!important}.qp-kicker{font-size:9.5px!important}.qp-logo{font-size:23px!important}.qp-badge{font-size:9px!important;padding:3px 9px!important}.qp-phone{font-size:23px!important}.qp-phone span{font-size:15px!important;padding:4px 7px!important;margin-right:8px!important}.qp-phone small{font-size:9.5px!important;margin-top:4px!important}
.qp-title{margin:7mm 0 4mm!important}.qp-title h1{font-size:27px!important;letter-spacing:.26em!important;padding:0 18px 4px!important}.qp-title p{font-size:10px!important;margin-top:5px!important}
.qp-meta-row{margin-bottom:4mm!important}.qp-recipient{width:55mm!important;font-size:19px!important;padding-bottom:4px!important}.qp-meta{font-size:10px!important;line-height:1.65!important}
.qp-total-band{grid-template-columns:34mm 1fr 48mm!important;padding:4.5mm!important;margin-bottom:4mm!important;gap:6px!important}.qp-total-label{font-size:17px!important;padding:8px!important}.qp-total-main{font-size:32px!important}.qp-total-main span{font-size:12px!important}.qp-tax{font-size:10px!important;line-height:1.55!important;padding-left:10px!important}
.qp-main-grid{grid-template-columns:1.48fr .92fr!important;gap:4mm!important;align-items:start!important}.qp-lower-grid{grid-template-columns:1.48fr .92fr!important;gap:4mm!important;margin-top:3.5mm!important}
.qp-box{padding:3mm!important;border-radius:5px!important}.qp-box h2,.qp-included h2,.qp-selected h2{font-size:15px!important;margin-bottom:2mm!important;padding-bottom:4px!important;letter-spacing:.05em!important}
.qp-detail-table{table-layout:fixed!important;width:100%!important;font-size:8.7px!important;border-collapse:collapse!important}
.qp-detail-table th{padding:3px 2px!important;font-size:8.7px!important;background:#fff0f5!important;border:1px solid #f3c1d2!important;line-height:1.2!important}
.qp-detail-table td{padding:2px 3px!important;line-height:1.22!important;border-right:1px solid #f5d4df!important;border-bottom:1px solid #f2d4df!important;word-break:break-word!important;vertical-align:middle!important;height:17px!important}
.qp-detail-table .qp-row-no{width:7%!important;text-align:center!important;color:#333!important;font-weight:500!important}.qp-detail-table th:nth-child(2),.qp-detail-table td:nth-child(2){width:20%!important}.qp-detail-table th:nth-child(3),.qp-detail-table td:nth-child(3){width:43%!important}.qp-detail-table th:nth-child(4),.qp-detail-table td:nth-child(4){width:12%!important;text-align:center!important}.qp-detail-table th:nth-child(5),.qp-detail-table td:nth-child(5){width:18%!important}.qp-detail-table .money{text-align:right!important;white-space:nowrap!important}.qp-empty-row td{color:transparent!important}
.qp-subtotal,.qp-final{padding:5px 7px!important;margin-top:0!important}.qp-subtotal{border-top:1.5px solid #ef9eb9!important}.qp-subtotal strong{font-size:14px!important}.qp-final strong{font-size:18px!important}.qp-note{font-size:8px!important;margin:5px 0 0!important;line-height:1.35!important}
.qp-choice-list{grid-template-columns:60px 1fr!important}.qp-choice-list dt,.qp-choice-list dd{padding:5px 4px!important;min-height:27px!important;font-size:9.5px!important;line-height:1.35!important}.qp-choice-list dt{color:#174b7a!important}.qp-choice-list dd strong{color:#e6003c!important}
.qp-included ul{grid-template-columns:1fr 1fr!important;gap:3px 12px!important;padding-left:15px!important;font-size:9.2px!important;line-height:1.4!important}.qp-included li::marker{color:#e61d5b!important}
.qp-selected{padding:3mm!important;border-radius:5px!important}.qp-selected p{grid-template-columns:84px 1fr!important;padding:5px 3px!important;font-size:9px!important;line-height:1.35!important;gap:5px!important}.qp-selected strong{color:#555!important}.qp-selected span{color:#333!important}.qp-selected small{display:block;margin-top:5px;font-size:8px!important;line-height:1.4!important}
.qp-contact-row,.qp-qr-row{grid-template-columns:1.48fr .92fr!important;gap:4mm!important;margin-top:3.5mm!important}.qp-help,.qp-call,.qp-qr-box{padding:8px 10px!important;border-radius:5px!important;min-height:0!important}.qp-help{font-size:9.2px!important;line-height:1.55!important}.qp-call{font-size:18px!important}.qp-call small{font-size:9px!important}.qp-qr-box{font-size:8.8px!important;gap:9px!important}.qp-qr-box .qr-placeholder{width:44px!important;height:44px!important}.qp-footer-note{font-size:7.8px!important;line-height:1.35!important;margin:5px 0 0!important}
.corner{width:15px!important;height:15px!important}.corner-tl,.corner-tr{top:3mm!important}.corner-bl,.corner-br{bottom:3mm!important}.corner-tl,.corner-bl{left:3mm!important}.corner-tr,.corner-br{right:3mm!important}
.quote-paper-pro.dense-1 .qp-detail-table{font-size:8.2px!important}.quote-paper-pro.dense-1 .qp-detail-table td{height:15.5px!important;padding:1.5px 2.5px!important}.quote-paper-pro.dense-2 .qp-detail-table{font-size:7.7px!important}.quote-paper-pro.dense-2 .qp-detail-table td{height:14px!important;padding:1px 2px!important}.quote-paper-pro.dense-2 .qp-title{margin:5mm 0 3mm!important}.quote-paper-pro.dense-2 .qp-total-band{padding:3.5mm!important;margin-bottom:3mm!important}.quote-paper-pro.dense-2 .qp-contact-row,.quote-paper-pro.dense-2 .qp-qr-row{margin-top:2.5mm!important}
@media print{.quote-paper-pro{width:210mm!important;min-height:297mm!important;max-height:297mm!important;margin:0!important;padding:8mm 9mm 7mm!important;overflow:hidden!important}.estimate-pro-page{padding:0!important}@page{size:A4 portrait;margin:0}}
@media(max-width:900px){.quote-paper-pro{width:100%!important;min-height:auto!important;max-height:none!important;padding:18px!important}.qp-detail-table td{height:auto!important}.qp-main-grid,.qp-lower-grid,.qp-contact-row,.qp-qr-row{grid-template-columns:1fr!important}.qp-empty-row{display:none}.qp-included ul{grid-template-columns:1fr!important}}

/* v35b: 右側を縦積みにして添付見本の構成へ */
.qp-right-stack{display:grid;gap:3.2mm;align-content:start;min-width:0}
.qp-right-stack .qp-included{padding:0 2mm 1mm}
.qp-right-stack .qp-included h2{margin-bottom:2mm!important}
.qp-right-stack .qp-included ul{grid-template-columns:1fr 1fr!important;gap:3px 9px!important;padding-left:14px!important}
.qp-right-stack .qp-selected{padding:3mm!important}
@media(max-width:900px){.qp-right-stack{gap:14px}.qp-right-stack .qp-included{padding:0}.qp-right-stack .qp-included ul{grid-template-columns:1fr!important}}

/* v35c: 明細行を添付見本と同じ1行表示にしてA4へ収める */
.qp-detail-table{font-size:7.5px!important}
.qp-detail-table th{font-size:7.8px!important;padding:2px!important;height:15px!important}
.qp-detail-table td{font-size:7.5px!important;line-height:1.05!important;height:15px!important;min-height:15px!important;padding:1px 2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.qp-detail-table th:nth-child(2),.qp-detail-table td:nth-child(2){width:17%!important}.qp-detail-table th:nth-child(3),.qp-detail-table td:nth-child(3){width:48%!important}.qp-detail-table th:nth-child(4),.qp-detail-table td:nth-child(4){width:10%!important}.qp-detail-table th:nth-child(5),.qp-detail-table td:nth-child(5){width:18%!important}
.qp-subtotal,.qp-final{padding:4px 7px!important}.qp-note{margin-top:3px!important}

/* v35d: 問合せ・QR欄をA4下部へ固定 */
@media print{
  .quote-paper-pro{height:297mm!important;max-height:297mm!important}
  .qp-contact-row{position:absolute!important;left:9mm!important;right:9mm!important;bottom:23mm!important;margin:0!important;z-index:2!important}
  .qp-qr-row{position:absolute!important;left:9mm!important;right:9mm!important;bottom:7.5mm!important;margin:0!important;z-index:2!important}
  .qp-footer-note{position:absolute!important;left:9mm!important;right:9mm!important;bottom:2.5mm!important;margin:0!important;z-index:2!important}
}
@media screen and (min-width:901px){
  .quote-paper-pro{height:297mm!important;max-height:297mm!important}
  .qp-contact-row{position:absolute!important;left:9mm!important;right:9mm!important;bottom:23mm!important;margin:0!important;z-index:2!important}
  .qp-qr-row{position:absolute!important;left:9mm!important;right:9mm!important;bottom:7.5mm!important;margin:0!important;z-index:2!important}
  .qp-footer-note{position:absolute!important;left:9mm!important;right:9mm!important;bottom:2.5mm!important;margin:0!important;z-index:2!important}
}

/* v35e: A4下部欄の重なり防止と最終余白調整 */
@media print{
  .qp-contact-row{bottom:27mm!important}
  .qp-qr-row{bottom:9.5mm!important}
  .qp-footer-note{bottom:4.5mm!important}
}
@media screen and (min-width:901px){
  .qp-contact-row{bottom:27mm!important}
  .qp-qr-row{bottom:9.5mm!important}
  .qp-footer-note{bottom:4.5mm!important}
}


/* v35final: A4下部の余白・重なり最終調整 */
@media print, screen and (min-width:901px){
  .qp-contact-row{bottom:27mm!important}
  .qp-qr-row{bottom:9.5mm!important}
  .qp-footer-note{bottom:4.2mm!important}
  .qp-help,.qp-call{padding:6px 8px!important;min-height:0!important}
  .qp-help{font-size:8.8px!important;line-height:1.4!important}
  .qp-call{font-size:16px!important;line-height:1.15!important}
  .qp-call small{font-size:8.5px!important;margin-top:3px!important}
  .qp-qr-box{padding:5px 8px!important;font-size:8.2px!important;line-height:1.35!important;gap:8px!important}
  .qp-qr-box .qr-placeholder{width:38px!important;height:38px!important}
  .qp-footer-note{font-size:7.4px!important;line-height:1.25!important}
}

/* v38: 搬送料金表示・見積表示回数認証 */
.distance-fare-summary{margin:14px 0 12px;border:1px solid #f1c8d6;border-radius:10px;overflow:hidden;background:#fff}
.distance-fare-summary>div{display:grid;grid-template-columns:minmax(0,1fr) 92px 118px;gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid #f3e2e8;font-size:13px;color:var(--navy)}
.distance-fare-summary>div:last-child{border-bottom:0}.distance-fare-summary span{font-weight:900}.distance-fare-summary b{text-align:right;color:#51647a}.distance-fare-summary strong{text-align:right;color:#b12736;font-size:16px}.distance-fare-summary .distance-fare-total{background:#fff6f9}.distance-fare-summary .distance-fare-total strong{font-size:20px}
.estimate-verification-card{width:min(520px,94vw)!important}.estimate-verification-lead{color:#53657a;line-height:1.75;margin:12px 0 18px}.estimate-verification-card>div[id$="Step"]{display:grid;gap:12px}.estimate-verification-card .primary-btn,.estimate-verification-card .secondary-btn{width:100%;justify-content:center}.estimate-code-input{font-size:28px!important;letter-spacing:.35em;text-align:center;font-weight:900}.estimate-verify-message{margin:14px 0 0;padding:10px 12px;border-radius:8px;background:#f5f8fb;color:#14375d;font-weight:800}.estimate-verify-message.bad{background:#fff0f0;color:#a00;border:1px solid #efb3b3}
@media(max-width:560px){.distance-fare-summary>div{grid-template-columns:1fr 70px 94px;padding:8px;font-size:12px}.distance-fare-summary strong{font-size:14px}.distance-fare-summary .distance-fare-total strong{font-size:17px}}

/* v38: 搬送料金・見積書表示制限・メール認証 */
.distance-action-guide{margin:5px 0 10px;color:#66758a;font-size:13px;font-weight:800}
.transport-fee-summary{margin:12px 0 10px;border:1px solid #f0ceda;border-radius:10px;background:#fff;padding:10px 12px;display:grid;gap:7px}
.transport-fee-summary>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px dashed #eadbe1;padding-bottom:7px;font-size:13px}
.transport-fee-summary>div:last-child{border-bottom:0;padding-bottom:0}
.transport-fee-summary span{color:#526176;font-weight:800}
.transport-fee-summary strong{color:#14375d;font-weight:900;white-space:nowrap}
.transport-fee-summary .transport-fee-total{margin-top:2px;padding-top:3px}
.transport-fee-summary .transport-fee-total span,.transport-fee-summary .transport-fee-total strong{color:#b12736;font-size:16px}
.email-verification-modal{z-index:95}
.email-verification-card{width:min(520px,94vw);padding:26px}
.email-verification-card .modal-head{align-items:center}
.email-verification-lead{margin:12px 0 18px;color:#526176;line-height:1.75;font-weight:700}
.email-verification-note{margin:8px 0 14px;color:#6b7584;font-size:12px;line-height:1.6}
.email-verification-main-btn{width:100%}
.email-verification-sent{margin:10px 0 16px;background:#f6fbff;border:1px solid #cfe0ed;color:#14375d;border-radius:10px;padding:11px 13px;line-height:1.6;font-weight:800}
.verification-code-input{text-align:center!important;font-size:28px!important;letter-spacing:.4em!important;font-weight:900!important;padding-left:calc(14px + .4em)!important}
.email-verification-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.email-verification-message{margin-top:12px!important;background:#eef8f0;border:1px solid #b8ddc0;color:#24743a!important;border-radius:9px;padding:9px 11px}
.email-verification-message.bad{background:#fff0f0;border-color:#efb2b2;color:#a00!important}
.quote-list-table td:nth-child(4){word-break:break-all;min-width:180px}
@media(max-width:760px){
  .distance-action-guide{font-size:12px}
  .transport-fee-summary>div{font-size:12px;grid-template-columns:1fr}
  .transport-fee-summary strong{white-space:normal;text-align:left}
  .email-verification-card{padding:20px 16px}
  .email-verification-actions{grid-template-columns:1fr}
}

/* v38: 搬送車料金・見積表示制限・メール認証 */
#emailVerificationStepEmail,#emailVerificationStepCode{display:grid;gap:12px}
#emailVerificationStepEmail[hidden],#emailVerificationStepCode[hidden]{display:none!important}
.estimate-verification-card{width:min(520px,94vw)!important}
.estimate-verification-card .primary-btn,.estimate-verification-card .secondary-btn{width:100%;justify-content:center}
.quote-list-table td:nth-child(3){word-break:break-all}
@media(max-width:760px){.distance-fare-summary>div{grid-template-columns:minmax(0,1fr) 66px 92px}}

/* v38 final: 搬送車料金の3列表示を統一 */
#transportFeeSummary > div{
  grid-template-columns:minmax(0,1fr) 92px 118px !important;
  gap:10px !important;
  padding:9px 12px !important;
}
#transportFeeSummary > div > b{
  display:block !important;
  text-align:right !important;
  color:#51647a !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}
#transportFeeSummary > div > strong{
  display:block !important;
  text-align:right !important;
  color:#b12736 !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}
#transportFeeSummary .distance-fare-total{
  background:#fff6f9 !important;
}
@media(max-width:560px){
  #transportFeeSummary > div{
    grid-template-columns:minmax(0,1fr) 64px 90px !important;
    gap:6px !important;
    padding:8px !important;
    font-size:11.5px !important;
  }
}

/* req11: 入力完了表示・任意項目・住所連動・入力ガイダンス */
.section-title .num.completed,
.section.step-completed .section-title .num{
  background:#1769aa!important;
  box-shadow:0 0 0 4px rgba(23,105,170,.12),0 3px 10px rgba(23,105,170,.22)!important;
}
.section-title-choice{margin-left:auto}
.no-selection-check{
  display:inline-flex!important;align-items:center;gap:7px;width:auto!important;min-height:34px;
  padding:6px 11px;border:1px solid #cfdbe8;border-radius:999px;background:#f8fbff;
  color:var(--navy);font-size:13px;font-weight:900;line-height:1.2;cursor:pointer;white-space:nowrap;
}
.no-selection-check input{width:18px!important;height:18px!important;margin:0;accent-color:#1769aa}
.no-selection-check:has(input:checked){border-color:#1769aa;background:#eaf5ff;color:#1769aa}
.no-selection-check:has(input:disabled){opacity:.55;cursor:not-allowed}
.order-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.order-title-row h3{margin:0!important}
.option-grid.no-selection-disabled,
.order-box.no-selection-disabled .order-head-row,
.order-box.no-selection-disabled .order-list{opacity:.45;pointer-events:none;filter:grayscale(.3)}
.pickup-cost-summary{
  margin-top:12px;border:1px solid #c9dff1;background:linear-gradient(100deg,#f4faff,#fff);
  border-radius:12px;padding:12px 14px;display:grid;gap:8px;
}
.pickup-cost-summary>div{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--navy);font-weight:900}
.pickup-cost-summary strong{color:#b12736;font-size:17px;white-space:nowrap}
.pickup-cost-summary .summary-placeholder{color:#64758a;font-size:12px;font-weight:700}
input[readonly]{background:#f3f6f9!important;color:#485d75;cursor:default}
.primary-btn:disabled,.print-side:disabled{opacity:.48!important;cursor:not-allowed!important;box-shadow:none!important;filter:grayscale(.35)}
.action-guidance-highlight{
  position:relative;z-index:155!important;outline:4px solid #ffb000!important;outline-offset:4px!important;
  box-shadow:0 0 0 8px rgba(255,176,0,.18),0 10px 30px rgba(189,46,109,.25)!important;
  animation:req11GuidePulse .85s ease-in-out infinite alternate;
}
body.modal-open .action-guidance-highlight{z-index:39!important}
@keyframes req11GuidePulse{to{outline-color:#e62967;box-shadow:0 0 0 12px rgba(230,41,103,.12),0 12px 34px rgba(189,46,109,.3)}}
.order-guidance-dialog{z-index:150!important}
.order-guidance-card{width:min(480px,92vw)!important;text-align:center;padding:30px!important}
.order-guidance-card h2{font-size:22px;margin:10px 0!important}
.order-guidance-card p{font-size:15px;line-height:1.8;color:#455a72;margin:12px 0 22px}
.order-guidance-card .primary-btn{min-width:140px}
.order-guidance-icon{width:58px;height:58px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#1769aa,#37a4df);color:#fff;font-size:30px;font-weight:900;box-shadow:0 10px 26px rgba(23,105,170,.24)}
.estimate-processing-modal{z-index:220!important;background:rgba(12,30,52,.72)!important;backdrop-filter:blur(5px)}
.estimate-processing-card{width:min(500px,92vw)!important;text-align:center;padding:38px 30px!important;border:1px solid rgba(255,255,255,.5);background:linear-gradient(145deg,#fff,#f3f9ff)!important}
.estimate-processing-card h2{font-size:24px;margin:18px 0 10px!important;color:#173456!important}
.estimate-processing-card p{margin:0;color:#526a83;font-size:14px;line-height:1.8}
.estimate-processing-spinner{width:66px;height:66px;margin:0 auto;border-radius:50%;border:6px solid #dcecf8;border-top-color:#1769aa;border-right-color:#e62967;animation:req11Spin .9s linear infinite}
@keyframes req11Spin{to{transform:rotate(360deg)}}
@media(max-width:640px){
  .section-title-choice{margin-left:0}
  .section-title .section-title-choice+small{padding-left:37px}
  .no-selection-check{font-size:12px;padding:6px 9px}
  .order-title-row{align-items:flex-start}
  .pickup-cost-summary>div{display:grid;gap:4px}
  .pickup-cost-summary strong{white-space:normal}
  .estimate-processing-card{padding:30px 20px!important}
}

/* v40: 安置先・安置日数統合／搬送距離ボタン移動／料理・返礼品追加UI */
.stepper{grid-template-columns:repeat(10,1fr)}
.storage-combined-grid{display:grid;gap:18px}
.storage-place-block,.storage-days-block{min-width:0}
.storage-subtitle{margin:2px 0 10px}
.storage-days-block{border-top:1px solid #edf1f5;padding-top:16px}
.storage-days-block .field{margin:0}
.distance-section-title{flex-wrap:wrap;margin-bottom:8px}
.distance-section-title .distance-calc-btn{margin-left:auto}
.distance-calc-btn{border:1px solid #d7194a;background:#d7194a;color:#fff;border-radius:999px;padding:9px 18px;font-weight:900;font-size:13px;line-height:1.2;white-space:nowrap;box-shadow:0 8px 18px rgba(215,25,74,.18);transition:.18s}
.distance-calc-btn:hover:not(:disabled){transform:translateY(-1px);background:#bd123e;border-color:#bd123e}
.distance-calc-btn:disabled,#distanceBtn:disabled{background:#cfd6df !important;border-color:#cfd6df !important;color:#fff !important;box-shadow:none !important;cursor:not-allowed;opacity:1 !important}
.distance-action-guide{margin:0 0 12px 42px}
.order-head-row{grid-template-columns:minmax(0,1fr) auto !important;align-items:end !important;gap:12px !important}
.order-action-buttons{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding-bottom:0}
.order-action-buttons .order-action-small{width:auto !important;min-width:0 !important;height:40px !important;margin:0 !important;padding:0 13px !important;border-radius:999px !important;font-size:12px !important;line-height:1.2 !important;white-space:nowrap !important;display:inline-flex !important;align-items:center !important;justify-content:center !important}
.order-action-buttons .add-order{background:#fff8fb !important;color:var(--pink) !important;border:1px solid #efbfd0 !important}
.order-action-buttons .catalog-open-btn{background:#fff !important;color:var(--navy) !important;border:1px solid #d8e1ec !important}
.order-action-buttons .add-order:hover,.order-action-buttons .catalog-open-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(20,45,80,.08)}
.catalog-search-row.catalog-search-only{grid-template-columns:1fr !important}
.catalog-search-row.catalog-search-only label{width:100%}
@media(max-width:1040px){.stepper{grid-template-columns:repeat(5,1fr)}}
@media(max-width:760px){
  .stepper{grid-template-columns:repeat(4,1fr)}
  .distance-section-title{align-items:center}
  .distance-section-title .distance-calc-btn{margin-left:0;width:100%;margin-top:8px}
  .distance-action-guide{margin-left:0}
  .order-head-row{grid-template-columns:1fr !important}
  .order-action-buttons{justify-content:flex-start;flex-wrap:wrap}
  .order-action-buttons .order-action-small{height:38px !important;padding:0 12px !important}
}
@media(max-width:420px){.order-action-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}.order-action-buttons .order-action-small{width:100% !important}}


/* v40 final refinements */
.storage-days-block .storage-subtitle{margin:0 0 8px;color:var(--navy);font-size:15px}
.distance-section-title h2{white-space:nowrap}
.order-action-buttons .order-action-small{font-weight:900 !important}
@media(max-width:520px){
  .stepper .step:nth-child(7){font-size:11px}
  .distance-section-title h2{white-space:normal}
}

/* req13: configurable public logos, sticky completion steps and dynamic cremation extras */
.sc-brand-image{
  display:block;
  width:min(520px,48vw);
  max-width:100%;
  height:auto;
  object-fit:contain;
}
.sc-footer-logo-link{display:inline-block;max-width:min(480px,78vw)}
.sc-footer-logo-image{
  display:block;
  width:min(480px,78vw);
  max-width:100%;
  height:auto;
  object-fit:contain;
}
.stepper-sticky{
  position:sticky;
  top:0;
  z-index:36;
  margin:10px -10px 24px;
  padding:8px 10px 7px;
  border:1px solid rgba(218,226,236,.94);
  border-radius:12px;
  background:rgba(255,255,255,.97);
  box-shadow:0 8px 22px rgba(20,55,93,.12);
  backdrop-filter:blur(8px);
}
.stepper-sticky .stepper{margin:0}
.stepper-ready-action{
  grid-column:1/-1;
  display:flex;
  justify-content:center;
  padding:7px 0 1px;
}
.stepper-ready-action[hidden]{display:none!important}
.stepper-ready-action .primary-btn{
  min-height:38px;
  padding:9px 24px;
  font-size:13px;
}
body[data-estimate-ready="1"] .section[id]{scroll-margin-top:132px}
.cremation-additional-items{display:grid;gap:8px}
.cremation-extra-box[hidden],
#cremationNote[hidden]{display:none!important}
.cremation-check-row.is-required{cursor:default;background:#fff8fb;border-color:#efbfd0}
.cremation-check-row .cremation-required-badge,
.cremation-check-row .cremation-required-label{
  display:inline-block;
  margin-left:7px;
  border-radius:999px;
  padding:2px 7px;
  color:#fff;
  background:#b12736;
  font-size:10px;
  line-height:1.4;
  vertical-align:middle;
}
.cremation-check-row input:disabled{opacity:1}
@media(max-width:780px){
  .sc-brand-image{width:min(100%,520px)}
  .sc-footer-logo-link,.sc-footer-logo-image{width:min(100%,480px)}
}
@media(max-width:760px){
  .stepper-sticky{
    margin:6px -4px 14px;
    padding:5px 4px;
    border-radius:9px;
  }
  .stepper-sticky .stepper{row-gap:4.2px!important;column-gap:3px!important;margin:0!important}
  .stepper-ready-action{padding:4px 0 0}
  .stepper-ready-action .primary-btn{min-height:34px;padding:7px 18px;font-size:12px}
  .section[id]{scroll-margin-top:104px}
  body[data-estimate-ready="1"] .section[id]{scroll-margin-top:146px}
}


/* v42: 見積書の自動保存・PDF保存・アクション履歴 */
.estimate-actions button:disabled{opacity:.58!important;cursor:wait!important;transform:none!important}
.quote-action-table{min-width:1380px}
.quote-action-table th,.quote-action-table td{vertical-align:middle;text-align:center}
.quote-action-table th:nth-child(2),.quote-action-table td:nth-child(2),
.quote-action-table th:nth-child(3),.quote-action-table td:nth-child(3),
.quote-action-table th:nth-child(4),.quote-action-table td:nth-child(4),
.quote-action-table th:nth-child(5),.quote-action-table td:nth-child(5),
.quote-action-table th:nth-child(6),.quote-action-table td:nth-child(6){text-align:left}
.quote-action-status{display:inline-flex;min-width:44px;min-height:38px;border-radius:9px;align-items:center;justify-content:center;flex-direction:column;font-weight:900;line-height:1.1;padding:5px 7px}
.quote-action-status.yes{background:#fff0f5;color:#c21f61;border:1px solid #efbfd0}
.quote-action-status.no{background:#f3f6f9;color:#9aa5b2;border:1px solid #e2e8ef}
.quote-action-status small{display:block;margin-top:3px;font-size:9px;white-space:nowrap;font-weight:800;color:#65758b}
@media(max-width:760px){.quote-action-table{min-width:1240px}.quote-action-status{min-width:40px;padding:4px 6px}.quote-action-status small{font-size:8px}}


/* v43: estimate choice address rows and transport image refresh */
.qp-choice-list-rich dt{align-self:stretch}
.qp-choice-list-rich dd{word-break:break-word;white-space:normal}
.qp-address-cell{font-size:10px;line-height:1.55}
.quote-paper-pro.dense-1 .qp-address-cell{font-size:9.4px;line-height:1.45}
.quote-paper-pro.dense-2 .qp-address-cell{font-size:8.8px;line-height:1.35}
.distance-illust-img{display:block;width:100%;height:auto;object-fit:contain;background:#fff}


/* v44: 搬送距離画像の旧装飾を完全削除・見積書の名称住所表示 */
.distance-illust::before,
.distance-illust::after{
  content:none !important;
  display:none !important;
  border:0 !important;
  background:none !important;
}
.distance-illust{
  min-height:0 !important;
  background:#fff !important;
  overflow:hidden !important;
}
.distance-illust-img{
  position:relative !important;
  z-index:1 !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  background:#fff !important;
}
.qp-choice-list-grouped dt.qp-sub-label{
  padding-left:14px !important;
  color:#51647a !important;
  font-weight:800 !important;
}
.qp-choice-list-grouped dt.qp-group-label,
.qp-choice-list-grouped dd.qp-group-value{
  background:#fffafd;
  font-weight:900 !important;
}
.qp-choice-list-grouped dd.qp-address-cell{
  font-size:9.8px !important;
  line-height:1.45 !important;
  word-break:break-all !important;
}
.quote-paper-pro.dense-1 .qp-choice-list-grouped dd.qp-address-cell{font-size:9.2px !important}
.quote-paper-pro.dense-2 .qp-choice-list-grouped dd.qp-address-cell{font-size:8.6px !important}


/* v45: Googleマップで距離計算した住所の表示 */
.distance-resolved-addresses{margin:10px 0 12px;border:1px solid #d7e3ef;border-radius:10px;background:#f7fbff;padding:11px 12px}
.distance-resolved-addresses[hidden]{display:none!important}
.distance-resolved-addresses h3{margin:0 0 8px;color:#14375d;font-size:13px;font-weight:900}
.distance-resolved-addresses dl{margin:0;display:grid;grid-template-columns:104px minmax(0,1fr);gap:0}
.distance-resolved-addresses dt,.distance-resolved-addresses dd{margin:0;padding:7px 4px;border-top:1px dashed #dbe5ee;font-size:12px;line-height:1.55}
.distance-resolved-addresses dt{color:#315777;font-weight:900}
.distance-resolved-addresses dd{color:#24384f;word-break:break-word}
@media(max-width:560px){.distance-resolved-addresses dl{grid-template-columns:1fr}.distance-resolved-addresses dt{padding-bottom:2px}.distance-resolved-addresses dd{padding-top:2px;border-top:0}.distance-resolved-addresses dt:not(:first-child){border-top:1px dashed #dbe5ee}}

/* v46: Googleマップ住所候補表示 */
.distance-address-candidates{margin:10px 0 12px;border:2px solid #f1b8cb;border-radius:12px;background:#fff8fb;padding:13px 14px}
.distance-address-candidates[hidden]{display:none!important}
.distance-address-candidates>h3{margin:0 0 6px;color:#b1275a;font-size:16px;font-weight:900}
.distance-candidate-lead{margin:0 0 12px;color:#4c5f75;font-size:12px;line-height:1.65;font-weight:700}
.distance-candidate-group{border-top:1px solid #f0d5df;padding-top:11px;margin-top:11px}
.distance-candidate-group:first-of-type{border-top:0;padding-top:0;margin-top:0}
.distance-candidate-group h4{margin:0 0 4px;color:#14375d;font-size:14px;font-weight:900}
.distance-candidate-input{margin:0 0 8px;color:#758295;font-size:11px;line-height:1.5;word-break:break-word}
.distance-candidate-list{display:grid;gap:7px}
.distance-candidate-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #e2c5d0;border-radius:9px;background:#fff;padding:9px 11px;text-align:left;color:#1f3854;cursor:pointer;transition:.18s}
.distance-candidate-item:hover,.distance-candidate-item:focus{border-color:#bd2e6d;background:#fff1f6;box-shadow:0 5px 14px rgba(189,46,109,.10)}
.distance-candidate-item span{font-size:12px;line-height:1.55;font-weight:800;word-break:break-word}
.distance-candidate-item small{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:#bd2e6d;color:#fff;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900}
.distance-candidate-scope,.distance-candidate-empty,.distance-candidate-error{margin:8px 0 0;font-size:11px;line-height:1.6}
.distance-candidate-scope{color:#6b7584}
.distance-candidate-empty{color:#765d2a;background:#fff9e9;border:1px solid #f0dfb0;border-radius:8px;padding:8px 10px}
.distance-candidate-error{color:#9d253f;background:#fff0f3;border:1px solid #efbac6;border-radius:8px;padding:8px 10px}
@media(max-width:560px){
  .distance-address-candidates{padding:11px 10px}
  .distance-candidate-item{grid-template-columns:1fr;padding:9px}
  .distance-candidate-item small{justify-self:start}
}

/* v47: place_id固定計算・住所候補確認 */
.distance-candidate-item-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.distance-candidate-map-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfd9e5;background:#fff;color:#14375d;border-radius:999px;padding:7px 11px;font-size:10px;font-weight:900;text-decoration:none;white-space:nowrap}
.distance-candidate-map-link:hover{border-color:#bd2e6d;color:#bd2e6d}
.resolved-map-link{display:inline-flex;margin-left:7px;border:1px solid #cfd9e5;background:#fff;color:#14375d;border-radius:999px;padding:2px 8px;font-size:9px;font-weight:900;text-decoration:none;white-space:nowrap}
.resolved-map-link:hover{border-color:#bd2e6d;color:#bd2e6d}
@media(max-width:620px){.distance-candidate-item-wrap{grid-template-columns:1fr}.distance-candidate-map-link{justify-self:start}.resolved-map-link{margin:5px 0 0;display:flex;width:max-content}}


/* v50 geocoding usage cards */
#distanceApiStats .api-stats-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
#distanceApiStats .api-log-table th:nth-child(3),#distanceApiStats .api-log-table th:nth-child(4),#distanceApiStats .api-log-table td:nth-child(3),#distanceApiStats .api-log-table td:nth-child(4){white-space:nowrap;text-align:right}


/* v53: 葬儀プラン強調・画像下揃え・カタログ選択枠の重なり対策 */
.plan-grid{
  align-items:stretch !important;
}
.plan-card{
  display:flex !important;
  flex-direction:column !important;
  height:100% !important;
  min-height:410px !important;
  padding:14px 12px 12px !important;
}
.plan-card .plan-head{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  height:auto !important;
  min-height:94px !important;
  margin:0 0 8px !important;
  overflow:visible !important;
}
.plan-card .badge{
  position:static !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 0 9px !important;
  padding:6px 14px !important;
  font-size:15px !important;
  line-height:1.2 !important;
  min-height:30px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}
.plan-card h3{
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  font-size:18.2px !important;
  line-height:1.4 !important;
  text-align:left !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:anywhere !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:initial !important;
}
.plan-card p{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 0 10px !important;
  font-size:12px !important;
  line-height:1.6 !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:initial !important;
}
.plan-photo-frame{
  flex:none !important;
  width:100% !important;
  height:118px !important;
  margin-top:auto !important;
  margin-bottom:0 !important;
}
.plan-actions{
  display:block !important;
  margin-top:0 !important;
  padding-top:9px !important;
  text-align:left !important;
}
.plan-actions .price{
  min-height:0 !important;
  margin:0 !important;
  font-size:22.1px !important;
  line-height:1.12 !important;
}
.plan-actions .price small{
  font-size:13.5px !important;
  line-height:1.35 !important;
  margin-top:4px !important;
}
.plan-actions .detail-btn{
  margin-top:8px !important;
}
.catalog-hotspot{
  box-sizing:border-box !important;
  border-width:1px !important;
  border-radius:7px !important;
  background:rgba(216,75,130,.055) !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.72) inset !important;
}
.catalog-hotspot:hover,.catalog-hotspot:focus-visible{
  z-index:3 !important;
  background:rgba(216,75,130,.16) !important;
  border-color:rgba(189,46,109,.88) !important;
  outline:2px solid rgba(255,255,255,.9) !important;
  outline-offset:-3px !important;
}
@media(max-width:1040px){
  .plan-card{min-height:400px !important}
  .plan-card .plan-head{min-height:90px !important}
  .plan-card h3{font-size:17.5px !important}
  .plan-actions .price{font-size:21px !important}
}
@media(max-width:760px){
  .plan-card{min-height:390px !important;padding:12px 10px 10px !important}
  .plan-card .plan-head{min-height:86px !important}
  .plan-card .badge{font-size:13.5px !important;padding:6px 12px !important;min-height:28px !important}
  .plan-card h3{font-size:17px !important}
  .plan-card p{font-size:11.5px !important;line-height:1.55 !important}
  .plan-photo-frame{height:112px !important}
  .plan-actions .price{font-size:20px !important}
  .plan-actions .price small{font-size:12px !important}
}
@media(max-width:520px){
  .plan-card{min-height:410px !important}
  .plan-card .plan-head{min-height:auto !important}
  .plan-photo-frame{height:170px !important}
}

/* v55: A4背景画像へ文字を重ねる見積書 */
.estimate-template-sheet{position:relative;width:min(210mm,96vw);aspect-ratio:210/297;margin:0 auto;background:#fff;overflow:hidden;box-shadow:0 8px 35px rgba(0,0,0,.14);font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;color:#222}
.estimate-template-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;z-index:0}
.estimate-template-overlays{position:absolute;inset:0;z-index:1;pointer-events:none}
.estimate-overlay-field{position:absolute;overflow:hidden;line-height:1.45;white-space:normal;word-break:break-word;box-sizing:border-box}
.estimate-field-recipient{font-weight:700;display:flex;align-items:center}
.estimate-field-quote_date,.estimate-field-quote_no{font-weight:600;display:flex;align-items:center;justify-content:flex-end;white-space:nowrap}
.estimate-field-total_label{font-weight:900;display:flex;align-items:center;justify-content:center}
.estimate-field-total_amount{font-family:"Noto Serif JP",serif;font-weight:900;display:flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1.05}
.estimate-field-tax_info{display:flex;align-items:center;white-space:pre-line;line-height:1.8}
.estimate-field-company_name,.estimate-field-company_phone,.estimate-field-estimate_title{font-weight:900}
.estimate-field-estimate_title{letter-spacing:.18em}
.estimate-field-detail_table,.estimate-field-selections,.estimate-field-included_items,.estimate-field-food_gift_status{display:flex;flex-direction:column;min-height:0}
.estimate-field-detail_table h2,.estimate-field-selections h2,.estimate-field-included_items h2,.estimate-field-food_gift_status h2{font-size:1.52em;line-height:1.25;margin:0 0 .55em;color:#e61d5b;font-weight:900;letter-spacing:.04em}
.estimate-detail-header,.estimate-detail-row{display:grid;grid-template-columns:5.5% 18% 46.5% 10% 20%;gap:0;align-items:start}
.estimate-detail-header{font-weight:900;font-size:.84em;margin-bottom:.25em;text-align:center}
.estimate-detail-rows{display:grid;align-content:start;gap:.16em;min-height:0;overflow:hidden;flex:1}
.estimate-detail-row{font-size:.88em;line-height:1.35;box-sizing:border-box}
.estimate-detail-row+.estimate-detail-row{border-top:var(--detail-row-separator,0 solid transparent)}
.estimate-detail-row>span{min-width:0;padding-right:.3em}
.estimate-detail-row>span:first-child,.estimate-detail-row>span:nth-child(4){text-align:center}
.estimate-detail-row>span:last-child{text-align:right;white-space:nowrap;padding-right:0}
.estimate-detail-totals{display:grid;grid-template-columns:1fr auto;gap:.25em .8em;align-items:center;margin-top:.45em;font-size:1em;font-weight:900}
.estimate-detail-totals strong{color:#e6003c;font-size:1.18em;text-align:right;white-space:nowrap}
.estimate-field-selections dl{display:grid;grid-template-columns:32% 68%;gap:.27em 0;margin:0;min-height:0;overflow:hidden;font-size:.91em;line-height:1.38}
.estimate-field-selections dt{font-weight:900;color:#14375d;padding-right:.45em}
.estimate-field-selections dd{margin:0;min-width:0;word-break:break-word}
.estimate-field-included_items .estimate-included-items-flow{display:block;width:100%;margin:0;padding:0;font-size:.92em;line-height:1.38;overflow:hidden;white-space:break-spaces}
.estimate-field-food_gift_status p{display:grid;grid-template-columns:34% 66%;gap:.35em;margin:.1em 0;font-size:.9em;line-height:1.35}
.estimate-field-food_gift_status strong{color:#14375d}
.estimate-template-sheet.dense-1 .estimate-field-detail_table{font-size:calc(1em * .91)!important}
.estimate-template-sheet.dense-2 .estimate-field-detail_table{font-size:calc(1em * .82)!important}
@media(max-width:900px){.estimate-template-sheet{width:96vw;box-shadow:0 5px 20px rgba(0,0,0,.12)}.estimate-actions,.quote-action-message{width:96vw!important}}
@media print{
  .estimate-template-sheet{width:210mm!important;height:297mm!important;aspect-ratio:auto!important;margin:0!important;box-shadow:none!important;page-break-after:avoid}
  .estimate-template-background{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  @page{size:A4 portrait;margin:0}
}

.estimate-field-total_amount{gap:.28em}.estimate-total-number{font-family:Arial,Helvetica,sans-serif;font-size:1em;letter-spacing:0;font-weight:900}.estimate-total-suffix{font-size:.38em;font-weight:900;white-space:nowrap;margin-top:.55em}

/* v56: 見積書フォント・行間・明細列位置編集 */
.estimate-overlay-field{line-height:inherit}
.estimate-field-total_amount{font-family:inherit}
.estimate-total-number{font-family:inherit}
.estimate-detail-header,.estimate-detail-row{grid-template-columns:var(--detail-grid,5.5% 18% 46.5% 10% 20%)}
.estimate-detail-row{line-height:inherit}
.estimate-field-selections dl,.estimate-field-included_items .estimate-included-items-flow,.estimate-field-food_gift_status p{line-height:inherit}
.estimate-field-detail_table h2,.estimate-field-selections h2,.estimate-field-included_items h2,.estimate-field-food_gift_status h2{font-family:inherit}


/* v57: 見積明細の列ごとの文字揃え */
.estimate-detail-header>span:nth-child(1),.estimate-detail-row>span:nth-child(1){text-align:var(--detail-align-no,left)!important}
.estimate-detail-header>span:nth-child(2),.estimate-detail-row>span:nth-child(2){text-align:var(--detail-align-category,left)!important}
.estimate-detail-header>span:nth-child(3),.estimate-detail-row>span:nth-child(3){text-align:var(--detail-align-content,left)!important}
.estimate-detail-header>span:nth-child(4),.estimate-detail-row>span:nth-child(4){text-align:var(--detail-align-qty,left)!important}
.estimate-detail-header>span:nth-child(5),.estimate-detail-row>span:nth-child(5){text-align:var(--detail-align-amount,right)!important}


/* v58: 見積明細の金額列を確実に右揃え */
.estimate-detail-header>span,.estimate-detail-row>span{display:block;width:100%;min-width:0;box-sizing:border-box}
.estimate-detail-header>span:nth-child(5),.estimate-detail-row>span:nth-child(5){text-align:var(--detail-align-amount,right)!important;justify-self:stretch!important;padding-left:.15em!important;padding-right:0!important;font-variant-numeric:tabular-nums}
.estimate-editor-mini-detail>div>*{display:block;width:100%;min-width:0;box-sizing:border-box}
.estimate-editor-mini-detail>div>*:nth-child(5){text-align:var(--detail-align-amount,right)!important;justify-self:stretch!important;padding-left:.15em!important;padding-right:0!important;font-variant-numeric:tabular-nums}


/* v59: カタログ商品選択枠の表示設定 */
.catalog-hotspot{
  border:var(--catalog-frame-border-width,0px) solid var(--catalog-frame-border-color,transparent) !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
}
.catalog-hotspot:hover,.catalog-hotspot:active{
  border-color:var(--catalog-frame-border-color,transparent) !important;
  background:var(--catalog-frame-hover-background,transparent) !important;
  box-shadow:none !important;
  outline:0 !important;
}
.catalog-hotspot:focus-visible{
  border-color:var(--catalog-frame-border-color,transparent) !important;
  background:var(--catalog-frame-hover-background,transparent) !important;
  box-shadow:none !important;
  outline:2px solid rgba(20,55,93,.55) !important;
  outline-offset:-2px !important;
}

/* v62: スマホ入力画面最適化・ステップリンク・入力途中保存 */
.section[id]{scroll-margin-top:88px}
.stepper .step{
  text-decoration:none;
  min-width:0;
  cursor:pointer;
}
.stepper .step-label{display:block}
.stepper .step.completed{color:#1769aa}
.stepper .step.completed .step-num{
  background:#1769aa;
  box-shadow:0 0 0 6px #fff,0 3px 10px rgba(23,105,170,.22);
}
.stepper .step:focus-visible{outline:2px solid #1769aa;outline-offset:4px;border-radius:8px}
.section-title .num{
  flex:0 0 32px;
  width:32px;
  min-width:32px;
  max-width:32px;
  height:32px;
  min-height:32px;
  max-height:32px;
  aspect-ratio:1/1;
  line-height:1;
  border-radius:50%;
}
.pickup-name-field{position:relative;z-index:18}
.pickup-suggestion-menu{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% - 23px);
  z-index:70;
  max-height:320px;
  overflow:auto;
  overscroll-behavior:contain;
  background:#fff;
  border:1px solid #ccd9e7;
  border-radius:10px;
  box-shadow:0 16px 36px rgba(20,55,93,.18);
  padding:5px;
}
.pickup-suggestion-menu[hidden]{display:none!important}
.pickup-suggestion-item{
  display:grid;
  width:100%;
  gap:3px;
  border:0;
  border-bottom:1px solid #edf1f5;
  border-radius:7px;
  background:#fff;
  color:#14375d;
  padding:10px 11px;
  text-align:left;
  cursor:pointer;
}
.pickup-suggestion-item:last-child{border-bottom:0}
.pickup-suggestion-item:hover,.pickup-suggestion-item:focus-visible{background:#fff3f7;outline:0}
.pickup-suggestion-item strong{font-size:13px;line-height:1.4}
.pickup-suggestion-item span{font-size:11px;line-height:1.5;color:#64758a;word-break:break-word}
.pickup-suggestion-empty{padding:12px;color:#65758a;font-size:12px;line-height:1.6}
.distance-illust picture{display:block;width:100%;height:100%}

@media(max-width:760px){
  .container{width:min(100% - 16px,560px)!important}
  .stepper{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:6px 3px!important;
    margin:10px 0 16px!important;
  }
  .stepper::before{display:none!important}
  .step{
    font-size:9.5px!important;
    line-height:1.15!important;
    padding:2px 0!important;
    letter-spacing:0!important;
  }
  .step-num{
    width:26px!important;
    min-width:26px!important;
    max-width:26px!important;
    height:26px!important;
    min-height:26px!important;
    max-height:26px!important;
    aspect-ratio:1/1!important;
    margin:0 auto 3px!important;
    font-size:13px!important;
    line-height:1!important;
    box-shadow:0 0 0 3px #fff!important;
  }
  .step.completed .step-num{box-shadow:0 0 0 3px #fff,0 2px 7px rgba(23,105,170,.2)!important}
  .step-label{min-height:22px;display:flex!important;align-items:flex-start;justify-content:center;text-align:center;word-break:keep-all}
  .main-form{gap:10px!important}
  .section{padding:13px 11px!important;border-radius:11px!important}
  .section-title{gap:8px!important;margin-bottom:11px!important;align-items:flex-start!important;flex-wrap:wrap}
  .section-title .num{
    flex:0 0 29px!important;
    width:29px!important;
    min-width:29px!important;
    max-width:29px!important;
    height:29px!important;
    min-height:29px!important;
    max-height:29px!important;
    aspect-ratio:1/1!important;
    border-radius:50%!important;
    font-size:16px!important;
  }
  .section-title h2{font-size:18px!important;line-height:1.45!important;flex:1;min-width:0}
  .section-title small{width:100%;padding-left:37px;margin-top:-3px;font-size:10px!important;line-height:1.45}
  #secPlan .section-title{margin-bottom:9px!important}
  #secPlan .note{font-size:10px;margin-top:8px}
  #secPlan .plan-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  #secPlan .plan-card{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
    height:auto!important;
    padding:8px!important;
    border-width:1.5px!important;
    border-radius:9px!important;
  }
  #secPlan .plan-card .plan-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    min-height:67px!important;
    height:67px!important;
    margin:0 0 5px!important;
    overflow:hidden!important;
  }
  #secPlan .plan-card .badge{
    position:static!important;
    margin:0 0 5px!important;
    padding:3px 7px!important;
    min-height:20px!important;
    font-size:10px!important;
    line-height:1.15!important;
  }
  #secPlan .plan-card h3{
    font-size:13.5px!important;
    line-height:1.32!important;
    margin:0!important;
    padding:0!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
    text-align:left!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  #secPlan .plan-card p{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    height:32px!important;
    min-height:32px!important;
    margin:0 0 6px!important;
    overflow:hidden!important;
    font-size:9.5px!important;
    line-height:1.65!important;
    text-align:left!important;
  }
  #secPlan .plan-photo-frame{
    width:100%!important;
    height:88px!important;
    min-height:88px!important;
    margin:0!important;
    border-radius:7px!important;
  }
  #secPlan .plan-actions{margin:0!important;padding-top:6px!important}
  #secPlan .plan-actions .price{
    min-height:31px!important;
    font-size:16px!important;
    line-height:1.08!important;
    text-align:left!important;
  }
  #secPlan .plan-actions .price small{font-size:9px!important;line-height:1.25!important;margin-top:2px!important}
  #secPlan .plan-actions .detail-btn{
    width:100%!important;
    min-width:0!important;
    margin-top:5px!important;
    padding:6px 4px!important;
    font-size:10px!important;
    border-radius:999px!important;
  }
  .pickup-suggestion-menu{
    position:absolute;
    top:calc(100% - 20px);
    max-height:min(46vh,330px);
    border-radius:9px;
    padding:4px;
    box-shadow:0 12px 28px rgba(20,55,93,.23);
  }
  .pickup-suggestion-item{min-height:52px;padding:9px 10px;touch-action:manipulation}
  .pickup-suggestion-item strong{font-size:13px}
  .pickup-suggestion-item span{font-size:10.5px}
  .distance-section-title{align-items:center!important}
  .distance-section-title .distance-calc-btn{width:auto!important;max-width:58%;margin:0 0 0 auto!important;padding:8px 11px!important;font-size:11px!important}
  .distance-action-guide{padding-left:37px;margin-top:-6px!important;font-size:10px!important}
  .distance-box{grid-template-columns:1fr!important;gap:10px!important;padding:10px!important}
  .distance-illust{
    width:100%!important;
    height:124px!important;
    min-height:124px!important;
    border-radius:9px!important;
    overflow:hidden!important;
    background:#f8fbff!important;
  }
  .distance-illust picture{height:100%!important}
  .distance-illust-img{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center!important;
  }
}
@media(max-width:370px){
  #secPlan .plan-grid{gap:6px!important}
  #secPlan .plan-card{padding:7px!important}
  #secPlan .plan-card h3{font-size:12.5px!important}
  #secPlan .plan-photo-frame{height:80px!important;min-height:80px!important}
  #secPlan .plan-actions .price{font-size:15px!important}
  .step{font-size:9px!important}
}

/* v63: 見積り専用問い合わせフォーム・見積画像一覧 */
.contact-page-pro{display:grid;gap:18px;padding:28px 0 44px}
.contact-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;background:linear-gradient(120deg,#fff7fb,#fff);border:1px solid #f0cbd9;border-radius:18px;padding:26px;box-shadow:var(--shadow)}
.contact-eyebrow{display:inline-block;color:var(--pink);font-weight:900;font-size:13px;margin-bottom:8px}.contact-hero-card h1{margin:0 0 10px;color:var(--navy);font-size:28px;line-height:1.4}.contact-hero-card p{margin:0;color:#58697e;line-height:1.8;font-weight:700}.contact-phone-cta{display:grid;gap:4px;min-width:260px;text-decoration:none;text-align:center;background:var(--navy);color:#fff;border-radius:14px;padding:18px 22px;box-shadow:0 12px 30px rgba(20,55,93,.2)}.contact-phone-cta small{font-weight:800}.contact-phone-cta strong{font-size:28px;color:#fff}.contact-phone-cta span{font-size:12px}
.contact-page-pro .contact-card{padding:24px;border-radius:16px}.contact-section-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}.contact-section-heading>span{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--pink);color:#fff;font-weight:900}.contact-section-heading h2{margin:0!important;font-size:21px!important}.contact-section-heading p{margin:4px 0 0;color:#6b7584;font-size:12px;font-weight:700}
.contact-quote-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:22px;align-items:start}.contact-quote-info dl{display:grid;grid-template-columns:120px 1fr;margin:0;border:1px solid #edf1f5;border-radius:12px;overflow:hidden}.contact-quote-info dt,.contact-quote-info dd{margin:0;padding:9px 12px;border-bottom:1px solid #edf1f5;font-size:13px}.contact-quote-info dt{background:#f7f9fc;color:var(--navy);font-weight:900}.contact-quote-info dd{color:#3f5068}.contact-quote-info dt:last-of-type,.contact-quote-info dd:last-of-type{border-bottom:0}.contact-quote-total{color:#b12736!important;font-size:18px!important;font-weight:900}.contact-quote-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.contact-quote-thumb-wrap{border:1px solid #e6edf4;border-radius:12px;background:#f7f9fc;padding:8px;box-shadow:0 6px 18px rgba(20,45,80,.06)}.contact-quote-thumb{display:block;width:100%;aspect-ratio:210/297;object-fit:cover;background:#fff;border-radius:8px}
.contact-form-pro{display:grid;gap:18px}.contact-form-pro label{display:grid;gap:7px;color:var(--navy);font-weight:900}.contact-form-pro label>span:not(.required):not(.optional){margin:0;background:none;color:inherit;border-radius:0;padding:0;font-size:inherit}.contact-form-pro .required,.contact-form-pro .optional{display:inline-block!important;margin-left:6px!important;border-radius:999px!important;padding:2px 8px!important;font-size:10px!important;line-height:1.4!important}.contact-form-pro .required{background:var(--pink)!important;color:#fff!important}.contact-form-pro .optional{background:#e7edf4!important;color:#526176!important}.contact-form-pro input[type=text],.contact-form-pro input[type=tel],.contact-form-pro input[type=email],.contact-form-pro select,.contact-form-pro textarea{width:100%;border:1px solid #dbe3ec;border-radius:10px;padding:12px 14px;background:#fff;color:#24364f;font:inherit}.contact-form-pro textarea{resize:vertical;line-height:1.75}.contact-form-grid{display:grid;gap:14px}.contact-form-grid.two-columns{grid-template-columns:1fr 1fr}.contact-name-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.contact-form-pro .same-recipient-check{display:flex!important;align-items:center!important;gap:7px!important;height:48px;padding:0 13px!important;margin:0!important;border:1px solid #dbe3ec;background:#f7f9fc;border-radius:10px;white-space:nowrap}.contact-form-pro .same-recipient-check input{width:auto!important;margin:0}
.contact-email-verification-box{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(170px,.5fr) auto;gap:10px;align-items:end;margin-top:16px;padding:16px;border:1px solid #d9e8f3;background:#f6fbff;border-radius:12px}.contact-email-label,.contact-code-label{margin:0}.verification-send-btn,.verification-check-btn{height:48px;white-space:nowrap}.contact-verification-status{grid-column:1/-1;margin:0;color:#617287;font-size:12px;font-weight:800}.contact-verification-status.ok{color:#19723d}.contact-verification-status.bad{color:#a00}.contact-verification-status.sent{color:#165b8d}
.contact-choice-fieldset{border:0;margin:18px 0 0;padding:0}.contact-choice-fieldset legend{color:var(--navy);font-weight:900;margin-bottom:10px}.contact-radio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.contact-radio-grid label,.contact-topic-grid label{display:block;position:relative}.contact-radio-grid input,.contact-topic-grid input{position:absolute;opacity:0;pointer-events:none}.contact-radio-grid span,.contact-topic-grid span{display:flex!important;align-items:center;min-height:48px;margin:0!important;padding:11px 13px!important;border:1.5px solid #dce4ed!important;border-radius:10px!important;background:#fff!important;color:var(--navy)!important;font-size:13px!important;line-height:1.5!important;font-weight:900!important;cursor:pointer}.contact-radio-grid input:checked+span,.contact-topic-grid input:checked+span{border-color:var(--pink)!important;background:#fff4f8!important;color:#b1275d!important;box-shadow:0 0 0 2px rgba(189,46,109,.08)}.urgency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.urgent-choice input:checked+span{border-color:#e48888!important;background:#fff4f4!important;color:#9d2935!important}.contact-urgent-note{margin-top:12px;padding:12px 14px;border:1px solid #f0c5c5;background:#fff5f5;border-radius:10px;color:#7a2631;font-weight:800}.contact-urgent-note a{color:#d41441;font-size:18px;font-weight:900}.contact-time-field{margin-top:14px;max-width:380px}
.contact-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.contact-topic-grid .topic-primary{grid-column:1/-1}.contact-topic-grid .topic-primary span{font-size:15px!important}.contact-topic-grid .topic-primary input:checked+span{background:#fff4f8!important;border-color:var(--pink)!important}
.contact-attachment-box{margin-top:16px;padding:16px;border:1px dashed #cbd8e4;background:#f8fafc;border-radius:12px}.contact-attachment-box p{margin:8px 0 0;color:#65758a;font-size:12px;line-height:1.65}.attachment-progress{margin-top:10px;padding:9px 11px;border-radius:8px;background:#eef8f0;color:#20713b;font-weight:800;font-size:12px}.attachment-progress.bad{background:#fff0f0;color:#a00}.attachment-list{display:grid;gap:7px;margin-top:10px}.attachment-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;background:#fff;border:1px solid #e5ebf2;border-radius:8px;font-size:12px}.attachment-list button{border:0;background:transparent;color:#b12736;font-weight:900}.attachment-list p{margin:0!important;text-align:right;font-weight:900;color:var(--navy)!important}
.contact-submit-card{text-align:center}.contact-privacy-agreement{display:grid;gap:16px;max-width:860px;margin:0 auto}.contact-privacy-policy{border:1px solid #dbe3ec;border-radius:12px;background:#fff;text-align:left;overflow:hidden}.contact-privacy-policy summary{padding:13px 16px;color:var(--navy);font-weight:900;cursor:pointer;list-style-position:inside;background:#f7f9fc}.contact-privacy-policy[open] summary{border-bottom:1px solid #e3e9f0}.contact-privacy-policy-body{padding:16px 18px}.contact-privacy-policy-body h3{margin:0 0 10px;color:var(--navy);font-size:16px}.contact-privacy-policy-body p{margin:0;color:#43546a;font-size:13px;line-height:1.85;white-space:pre-wrap}.privacy-check{display:flex!important;align-items:center;justify-content:center;gap:10px!important}.privacy-check input{width:20px;height:20px}.contact-submit-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:18px}.contact-submit-btn{min-width:300px}.contact-submit-note{margin:12px 0 0;color:#65758a;font-size:12px}.contact-ajax-message,.contact-global-error{position:sticky;top:10px;z-index:10;padding:12px 14px;border-radius:10px;background:#eef8f0;color:#216e38;font-weight:900}.contact-ajax-message.bad{background:#fff0f0;color:#a00;border:1px solid #efb5b5}.contact-complete-card,.contact-complete-inline{text-align:center;padding:36px!important}.contact-complete-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:#e6f7eb;color:#238346;font-size:34px;font-weight:900}.contact-acceptance-no{display:inline-block;margin:16px auto;padding:12px 24px;border:1px solid #efbfd0;border-radius:10px;background:#fff7fb;color:var(--navy)}.contact-acceptance-no strong{font-size:20px;color:var(--pink)}
.quote-column-settings{margin:16px 0;border:1px solid #e5ebf2;border-radius:12px;background:#f8fafc;padding:14px}.quote-column-settings-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;color:var(--navy)}.quote-column-settings-head strong{margin-right:auto}.quote-column-settings-head button{border:1px solid #d8e1ec;background:#fff;color:var(--navy);border-radius:999px;padding:6px 11px;font-weight:900}.quote-column-checks{display:flex;gap:8px;flex-wrap:wrap}.quote-column-checks label{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #dde5ed;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;color:#344960}.quote-column-checks input{margin:0}.quote-image-cell{width:84px;text-align:center}.quote-image-thumb-button{border:0;background:transparent;padding:0;cursor:pointer}.quote-image-thumb-button img{width:58px;height:82px;object-fit:cover;border:1px solid #dfe6ed;border-radius:5px;box-shadow:0 4px 10px rgba(20,45,80,.12)}.quote-image-waiting{display:inline-grid;place-items:center;width:58px;height:82px;background:#f1f4f8;border-radius:5px;color:#718095;font-size:10px}.quote-list-actions{white-space:nowrap}.quote-list-actions a{display:inline-block;margin-right:8px}.quote-image-modal{position:fixed;inset:0;z-index:120;background:rgba(16,31,51,.72);display:grid;place-items:center;padding:20px}.quote-image-modal[hidden]{display:none}.quote-image-modal-card{width:min(720px,95vw);max-height:94vh;background:#fff;border-radius:16px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;box-shadow:0 25px 80px rgba(0,0,0,.3)}.quote-image-modal-head{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid #e5ebf2;color:var(--navy)}.quote-image-modal-head button{border:0;background:#eef2f6;border-radius:50%;width:34px;height:34px;font-size:22px}.quote-image-modal-body{overflow:auto;background:#edf1f5;padding:16px;text-align:center}.quote-image-modal-body img{max-width:100%;height:auto;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.16)}.quote-image-modal-actions{padding:12px;text-align:center}
@media(max-width:900px){.contact-hero-card{grid-template-columns:1fr}.contact-phone-cta{min-width:0}.contact-quote-grid{grid-template-columns:1fr}.contact-quote-thumb-wrap{max-width:240px;margin:0 auto}.contact-email-verification-box{grid-template-columns:1fr 1fr}.contact-verification-status{grid-column:1/-1}.contact-form-grid.two-columns{grid-template-columns:1fr}.contact-radio-grid,.urgency-grid,.contact-topic-grid{grid-template-columns:1fr}.contact-topic-grid .topic-primary{grid-column:auto}}
@media(max-width:600px){.contact-page-pro{padding:16px 0 28px}.contact-hero-card,.contact-page-pro .contact-card{padding:16px}.contact-hero-card h1{font-size:22px}.contact-phone-cta strong{font-size:24px}.contact-section-heading h2{font-size:18px!important}.contact-quote-info dl{grid-template-columns:92px 1fr}.contact-quote-info dt,.contact-quote-info dd{padding:8px;font-size:12px}.contact-name-field{grid-template-columns:1fr}.contact-form-pro .same-recipient-check{height:auto;padding:11px!important}.contact-email-verification-box{grid-template-columns:1fr}.verification-send-btn,.verification-check-btn{width:100%}.contact-submit-btn{min-width:0;width:100%}.contact-submit-actions{display:grid}.quote-column-checks{display:grid;grid-template-columns:1fr 1fr}.quote-list-table{font-size:12px}}

/* v64: 見積書明細列・ご希望内容個別配置・問い合わせQR */
.estimate-detail-header>span.is-column-hidden,
.estimate-detail-row>span.is-column-hidden{visibility:hidden!important;pointer-events:none!important}
.estimate-field-selections{display:block!important;position:absolute!important}
.estimate-field-selections>h2{position:relative;z-index:2;margin:0 0 .25em}
.estimate-selection-items{position:absolute;inset:0;z-index:1}
.estimate-selection-item{position:absolute;display:grid;grid-template-columns:var(--selection-label-width,31%) minmax(0,1fr);align-items:start;gap:.25em;overflow:hidden;box-sizing:border-box}
.estimate-selection-item>b{font-size:var(--selection-label-size,8.5pt);line-height:inherit;color:#14375d;min-width:0;word-break:break-word}
.estimate-selection-item>span{min-width:0;word-break:break-word;white-space:normal;line-height:inherit}
.estimate-selection-item.no-label{grid-template-columns:1fr}
.estimate-field-contact_qr{display:flex!important;align-items:center;justify-content:center;overflow:visible!important;padding:0!important}
.estimate-field-contact_qr img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.estimate-field-contact_qr img[hidden]{display:none!important}
.estimate-field-staff_name{display:flex!important;align-items:center;overflow:hidden!important}
.estimate-field-staff_photo,.estimate-field-staff_qr{display:flex!important;align-items:center;justify-content:center;overflow:hidden!important;padding:0!important}
.estimate-field-staff_photo img,.estimate-field-staff_qr img{display:block;width:100%;height:100%;object-fit:contain}
.estimate-field-staff_profile{white-space:pre-wrap!important;overflow:hidden!important}
.estimate-field-staff_profile span{display:block;width:100%;height:100%;white-space:pre-wrap}
@media print{
  .estimate-field-contact_qr img{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}


/* v65: inquiry source distinction in quote list */
.quote-action-status.contact-source-status{min-width:88px}
.quote-action-status.contact-source-status.estimate{background:#eef6ff;color:#18558c;border:1px solid #b9d6ee}
.quote-action-status.contact-source-status.qr{background:#fff2f8;color:#a92e68;border:1px solid #efbdd3}
.quote-action-status.contact-source-status small{color:inherit}
.quote-action-table [data-col="contacted_estimate"],.quote-action-table [data-col="contacted_qr"]{min-width:112px;text-align:center}
@media(max-width:760px){.quote-action-status.contact-source-status{min-width:78px}.quote-action-table [data-col="contacted_estimate"],.quote-action-table [data-col="contacted_qr"]{min-width:102px}}

/* v66: 見積りの削除済一覧・復元 */
.quote-list-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;white-space:normal!important;min-width:230px}
.quote-list-actions a{margin-right:0!important;white-space:nowrap}
.quote-trash-button,.quote-restore-button{appearance:none;border:0;border-radius:999px;padding:7px 12px;font-size:12px;line-height:1.25;font-weight:900;cursor:pointer;white-space:nowrap;transition:.16s}
.quote-trash-button{background:#fff1f1;color:#a32635;border:1px solid #edc0c5}
.quote-trash-button:hover{background:#a32635;color:#fff;border-color:#a32635}
.quote-restore-button{background:#edf8f1;color:#176b38;border:1px solid #b9dfc7}
.quote-restore-button:hover{background:#176b38;color:#fff;border-color:#176b38}
.quote-trash-button:disabled,.quote-restore-button:disabled{opacity:.55;cursor:wait}
.quote-trash-nav{border-color:#e3b7c5!important;background:#fff7fa!important;color:#a52e60!important}
.quote-trash-explanation{margin:0 0 14px;padding:11px 13px;border:1px solid #e4eaf0;border-radius:10px;background:#f8fafc;line-height:1.7}
.quote-deleted-page .list-card{border-color:#e0e7ee}
.quote-deleted-table tbody tr{background:#fbfcfd}
.quote-deleted-table tbody tr:hover{background:#fff8fb}
.quote-deleted-table [data-col="deleted_at"]{white-space:nowrap;min-width:126px}
.quote-deleted-table [data-col="operation"]{min-width:250px}
@media(max-width:760px){
  .quote-list-actions{min-width:190px;gap:5px}
  .quote-trash-button,.quote-restore-button{padding:7px 10px;font-size:11px}
  .quote-deleted-table [data-col="operation"]{min-width:210px}
}

/* v68: 見積書太字設定・小計/概算合計個別設定・明細行間統一 */
.estimate-field-total_amount,
.estimate-total-number,
.estimate-total-suffix{font-weight:inherit!important}
.estimate-field-detail_table h2,
.estimate-field-selections h2,
.estimate-field-included_items h2,
.estimate-field-food_gift_status h2{font-weight:inherit}
.estimate-detail-header{font-weight:400}
.estimate-detail-rows{
  display:flex!important;
  flex-direction:column!important;
  align-content:initial!important;
  gap:.16em!important;
  min-height:0!important;
  overflow:hidden!important;
  flex:1 1 auto!important;
}
.estimate-detail-row{
  flex:0 0 auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  line-height:inherit!important;
  grid-auto-rows:min-content!important;
}
.estimate-detail-row>span{
  margin:0!important;
  min-height:0!important;
  line-height:inherit!important;
  white-space:normal;
}
.estimate-detail-row>span.detail-col-amount{white-space:nowrap}
.estimate-detail-totals{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:.25em!important;
  flex:0 0 auto!important;
  width:100%!important;
  margin-top:auto!important;
  padding-top:.35em!important;
  box-sizing:border-box!important;
  font-size:inherit!important;
  font-weight:inherit!important;
}
.estimate-detail-total-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:baseline;
  column-gap:.8em;
  width:100%;
  min-height:0;
}
.estimate-detail-total-row>span,
.estimate-detail-total-row>strong{
  display:block;
  min-width:0;
  line-height:1.2;
  margin:0;
}
.estimate-detail-total-row>strong{white-space:nowrap}
.estimate-selection-item>b{font-weight:var(--selection-label-weight,700)!important}
.estimate-selection-item>span{font-weight:var(--selection-value-weight,400)!important}
.estimate-field-food_gift_status strong{font-weight:inherit}
.estimate-field-included_items .estimate-included-items-flow{font-weight:inherit}


/* v69: 利用方法アコーディオン・時間制式場・スマホ調整 */
.hero-lead{max-width:760px;line-height:1.85}
.estimate-guide{margin-top:16px;max-width:780px;border:1px solid #efbfd0;border-radius:12px;background:#fff;overflow:hidden}
.estimate-guide summary{list-style:none;cursor:pointer;position:relative;padding:12px 46px 12px 16px;color:var(--navy);font-size:15px;font-weight:900;background:#fff8fb}
.estimate-guide summary::-webkit-details-marker{display:none}
.estimate-guide summary::after{content:"＋";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--pink);color:#fff;font-size:17px;line-height:1}
.estimate-guide[open] summary::after{content:"−"}
.estimate-guide-body{padding:15px 17px 17px;color:#526176;background:#fff}
.estimate-guide-body ol{margin:0;padding:0;list-style:none;display:grid;gap:10px;counter-reset:guide}
.estimate-guide-body li{counter-increment:guide;position:relative;padding-left:38px;line-height:1.65}
.estimate-guide-body li::before{content:counter(guide);position:absolute;left:0;top:0;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#fff0f5;color:var(--pink);font-weight:900}
.estimate-guide-body li strong{display:block;color:var(--navy);font-size:13px}
.estimate-guide-body li span{display:block;font-size:12px}
.estimate-guide-body>p{margin:13px 0 0;padding-top:11px;border-top:1px dashed #e8dce2;font-size:12px;line-height:1.7}
.hall-hour-selector{margin-top:12px;border:1px solid #efbfd0;border-radius:11px;background:#fff8fb;padding:13px 14px;display:grid;grid-template-columns:minmax(190px,260px) 1fr;gap:14px;align-items:end}
.hall-hour-selector label{display:grid;gap:6px;font-weight:900;color:var(--navy);font-size:13px}
.hall-hour-selector .select{background-color:#fff}
.hall-hour-calculation{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-height:45px;padding:0 4px;color:#526176;font-weight:800}
.hall-hour-calculation strong{color:#b12736;font-size:22px;white-space:nowrap}
.radio-row .money{white-space:nowrap}
@media(max-width:760px){
  .hero-lead{font-size:13px;line-height:1.75}
  .estimate-guide{margin-top:12px;border-radius:10px}
  .estimate-guide summary{padding:11px 42px 11px 13px;font-size:14px}
  .estimate-guide-body{padding:13px}
  .estimate-guide-body li{padding-left:34px}
  .hall-hour-selector{grid-template-columns:1fr;gap:8px;padding:11px}
  .hall-hour-calculation{justify-content:space-between;min-height:0;padding:0}
  .hall-hour-calculation strong{font-size:19px}
  #secPlan .plan-card .plan-head{min-height:86px!important;height:86px!important}
  #secPlan .plan-card .badge{padding:4px 9px!important;min-height:26px!important;font-size:13px!important;line-height:1.2!important;margin-bottom:6px!important}
  #secPlan .plan-card h3{font-size:16.2px!important;line-height:1.32!important}
  #secPlan .plan-card p{height:43px!important;min-height:43px!important;font-size:11.4px!important;line-height:1.55!important}
  .catalog-page-controls{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:"prev next" "page page"!important;gap:8px!important;width:100%!important}
  #catalogPrevPage{grid-area:prev!important}
  #catalogNextPage{grid-area:next!important}
  .catalog-page-controls label{grid-area:page!important;justify-content:center!important;width:100%!important;padding-top:2px!important}
  .catalog-page-controls button{width:100%!important;min-width:0!important;margin:0!important}
  .catalog-page-controls input{width:68px!important}
}


/* v70: 見積書の文字揃え反映・明細行間統一 */
.estimate-overlay-field{
  text-align:var(--estimate-align,inherit);
}
.estimate-simple-value{
  display:block;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  text-align:inherit;
  line-height:inherit;
}
/* Previously these fields had fixed center/right flex alignment, which overrode
   the alignment selected in the management screen. */
.estimate-field-recipient,
.estimate-field-quote_date,
.estimate-field-quote_no,
.estimate-field-total_label,
.estimate-field-tax_info{
  display:flex!important;
  align-items:center!important;
  justify-content:var(--estimate-justify,flex-start)!important;
  text-align:var(--estimate-align,left)!important;
}
.estimate-field-total_amount{
  justify-content:var(--estimate-justify,center)!important;
  text-align:var(--estimate-align,center)!important;
}
.estimate-field-detail_table h2,
.estimate-field-selections h2,
.estimate-field-included_items h2,
.estimate-field-food_gift_status h2{
  text-align:inherit!important;
}
/* A row is only as tall as its actual content.  Imported hidden line breaks and
   zero-width characters are normalized server-side; single-line option rows now
   have exactly the same step as all other single-line rows. */
.estimate-detail-rows{
  display:block!important;
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
  gap:0!important;
  align-content:initial!important;
}
.estimate-detail-row{
  display:grid!important;
  grid-template-columns:var(--detail-grid,5.5% 18% 46.5% 10% 20%)!important;
  align-items:start!important;
  grid-auto-rows:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0 0 .12em!important;
  line-height:var(--detail-line-height,1.35)!important;
}
.estimate-detail-row:last-child{padding-bottom:0!important}
.estimate-detail-row>span{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:var(--detail-line-height,1.35)!important;
  vertical-align:top!important;
}
.estimate-detail-row>span.detail-col-no,
.estimate-detail-row>span.detail-col-category,
.estimate-detail-row>span.detail-col-qty,
.estimate-detail-row>span.detail-col-amount{
  white-space:nowrap!important;
}
.estimate-detail-row>span.detail-col-content{
  white-space:normal!important;
  overflow-wrap:anywhere;
}


/* v71: 見積書の文字揃え完全反映・明細行間の最終統一 */
.estimate-simple-field{
  display:flex!important;
  align-items:center!important;
  justify-content:var(--estimate-justify,flex-start)!important;
  text-align:var(--estimate-align,left)!important;
}
.estimate-simple-field>.estimate-simple-value{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  text-align:inherit!important;
  line-height:inherit!important;
}
.estimate-field-company_name,.estimate-field-company_subtitle,
.estimate-field-company_phone,.estimate-field-estimate_title,
.estimate-field-estimate_message,.estimate-field-recipient,
.estimate-field-quote_date,.estimate-field-quote_no,
.estimate-field-total_label,.estimate-field-tax_info,
.estimate-field-contact_message,.estimate-field-contact_phone,
.estimate-field-footer_note{
  justify-content:var(--estimate-justify,flex-start)!important;
  text-align:var(--estimate-align,left)!important;
}
.estimate-field-total_amount{
  justify-content:var(--estimate-justify,center)!important;
  text-align:var(--estimate-align,center)!important;
}
/* Do not distribute spare vertical space among detail rows.  Only rows whose
   visible content really wraps become taller; all single-line rows share the
   exact same baseline step. */
.estimate-detail-rows{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-content:initial!important;
  gap:0!important;
  row-gap:0!important;
}
.estimate-detail-row{
  display:grid!important;
  grid-template-columns:var(--detail-grid,5.5% 18% 46.5% 10% 20%)!important;
  align-items:start!important;
  align-content:start!important;
  grid-auto-rows:auto!important;
  flex:0 0 auto!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:.04em 0!important;
  line-height:var(--detail-line-height,1.35)!important;
}
.estimate-detail-row>span{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:var(--detail-line-height,1.35)!important;
  vertical-align:top!important;
}
.estimate-detail-row>span.detail-col-no,
.estimate-detail-row>span.detail-col-category,
.estimate-detail-row>span.detail-col-qty,
.estimate-detail-row>span.detail-col-amount{white-space:nowrap!important}
.estimate-detail-row>span.detail-col-content{white-space:normal!important;overflow-wrap:anywhere}


/* v72: スマホ見積書のA4比率維持・印刷1ページ固定 */
.estimate-sheet-viewport{
  width:210mm;
  height:297mm;
  margin:0 auto;
  position:relative;
  overflow:visible;
}
@media screen and (max-width:900px){
  .estimate-pro-page{padding:12px 0 24px!important;overflow-x:hidden!important}
  .estimate-sheet-viewport{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    min-height:0!important;
    margin:0 auto!important;
    overflow:visible!important;
  }
  .estimate-template-sheet{
    width:210mm!important;
    height:297mm!important;
    min-width:210mm!important;
    min-height:297mm!important;
    max-width:none!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    transform:scale(var(--estimate-mobile-scale,1))!important;
    transform-origin:top left!important;
    margin:0!important;
    box-shadow:0 5px 20px rgba(0,0,0,.12)!important;
  }
  /* A4全体を縮小するため、管理画面で設定したptサイズをスマホだけ拡大しない */
  .estimate-template-sheet .estimate-overlay-field{
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
  }
}
@media print{
  html,body{
    width:210mm!important;
    height:297mm!important;
    min-width:210mm!important;
    min-height:297mm!important;
    max-height:297mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .estimate-view-body,.estimate-page,.estimate-pro-page{
    width:210mm!important;
    height:297mm!important;
    min-height:297mm!important;
    max-height:297mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .estimate-sheet-viewport{
    width:210mm!important;
    height:297mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    page-break-before:avoid!important;
    page-break-after:avoid!important;
    page-break-inside:avoid!important;
    break-before:avoid-page!important;
    break-after:avoid-page!important;
    break-inside:avoid-page!important;
  }
  .estimate-template-sheet{
    width:209.6mm!important;
    height:296.5mm!important;
    min-width:209.6mm!important;
    min-height:296.5mm!important;
    max-width:209.6mm!important;
    max-height:296.5mm!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    box-shadow:none!important;
    overflow:hidden!important;
    page-break-before:avoid!important;
    page-break-after:avoid!important;
    page-break-inside:avoid!important;
    break-inside:avoid-page!important;
  }
  .estimate-template-background{width:100%!important;height:100%!important}
  @page{size:A4 portrait;margin:0!important}
}


/* v73: list sticky header, image save, staged catalog selection and global search */
.quote-list-sticky-head{position:sticky;top:0;z-index:25;background:#fff;padding:4px 0 12px;border-bottom:1px solid #e5ebf2;box-shadow:0 8px 16px rgba(20,45,80,.06)}
.quote-list-table thead{position:sticky;top:var(--quote-list-sticky-offset,180px);z-index:20}
.quote-list-table thead th{position:sticky;top:var(--quote-list-sticky-offset,180px);z-index:20}
.order-action-buttons{display:flex;gap:8px;flex-wrap:wrap}.catalog-search-open-btn{background:#fff!important;color:var(--navy)!important;border:1px solid #cfd9e4!important}
.catalog-confirm-bar,.catalog-search-confirm-bar{margin-top:10px;padding:10px;border-top:1px solid #e4eaf0;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;bottom:0;z-index:8}
.catalog-pending-name{font-weight:900;color:var(--navy);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-confirm-bar button,.catalog-search-confirm-bar button{border:0;border-radius:999px;background:var(--pink);color:#fff;font-weight:900;padding:10px 16px}.catalog-confirm-bar button:disabled,.catalog-search-confirm-bar button:disabled{background:#ccd5df;color:#fff}
.catalog-item-card.catalog-selected{border-color:var(--pink)!important;box-shadow:0 0 0 2px rgba(189,46,109,.14)!important;background:#fff7fb}.catalog-item-card.catalog-selected .catalog-item-side button{background:#14375d}
.catalog-search-card{width:min(760px,94vw);max-height:90vh;display:flex;flex-direction:column}.catalog-global-search-label{display:grid;gap:6px;font-weight:900;color:var(--navy);margin:14px 0}.catalog-global-search-label input{border:1px solid #dbe3ec;border-radius:10px;padding:12px;font:inherit}.catalog-global-search-results{display:grid;gap:8px;overflow:auto;min-height:120px;max-height:54vh}.catalog-global-result{width:100%;border:1px solid #e0e7ee;border-radius:10px;background:#fff;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.catalog-global-result span{display:grid;gap:4px}.catalog-global-result small{color:#718095}.catalog-global-result strong{color:#b12736;white-space:nowrap}.catalog-global-result.selected{border-color:var(--pink);box-shadow:0 0 0 2px rgba(189,46,109,.12);background:#fff7fb}
.quantity-change-highlight{outline:3px solid #e62967;outline-offset:4px;border-radius:12px;animation:qtyPulse 1s ease-in-out 3}.quantity-change-tip{background:#e62967;color:#fff;font-weight:900;padding:8px 12px;border-radius:9px;margin-bottom:8px;text-align:center}@keyframes qtyPulse{50%{outline-color:#ffb4ca}}
@media(max-width:760px){.catalog-confirm-bar,.catalog-search-confirm-bar{display:grid;grid-template-columns:1fr}.catalog-confirm-bar button,.catalog-search-confirm-bar button{width:100%}.catalog-pending-name{text-align:center}.catalog-search-card{padding:18px 14px}.quote-list-sticky-head{top:0}.quote-list-table thead,.quote-list-table thead th{top:var(--quote-list-sticky-offset,230px)}}

/* v73 Pro再構築：保存一覧固定、共有経路、カタログ確定追加を安定化 */
.quote-list-page-pro .list-card{overflow:visible!important}
.quote-list-sticky-head{
  top:env(safe-area-inset-top,0px)!important;
  z-index:60!important;
  padding:10px 0 12px!important;
  background:rgba(255,255,255,.98)!important;
  border-bottom:1px solid #dfe7ef!important;
  box-shadow:0 10px 22px rgba(20,45,80,.10)!important;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  isolation:isolate;
}
.quote-list-table-wrap{position:relative;scrollbar-gutter:stable}
.quote-list-table thead,.quote-list-table thead th{top:var(--quote-list-sticky-offset,180px)!important}

.quote-share-card{width:min(620px,94vw);padding:24px}
.quote-share-lead{margin:6px 0 0;color:#607086;line-height:1.65;font-size:13px}
.quote-share-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.quote-share-option{
  border:1px solid #dbe3ec;background:#fff;color:var(--navy);border-radius:14px;padding:16px;
  display:grid;gap:5px;text-align:left;transition:.18s;cursor:pointer
}
.quote-share-option:hover,.quote-share-option:focus-visible{border-color:#e89ab9;background:#fff7fb;box-shadow:0 8px 22px rgba(20,45,80,.08);transform:translateY(-1px)}
.quote-share-option span{font-size:16px;font-weight:900}.quote-share-option small{color:#6a788b;line-height:1.45}
.quote-share-gmail{border-color:#efb6ca}.quote-share-message{margin:14px 0 0;border-radius:10px;padding:10px 12px;background:#eef8f0;color:#216e38;font-weight:800}
.quote-share-message.bad{background:#fff0f0;color:#a00;border:1px solid #efb5b5}

.catalog-item-card[aria-selected="true"]{border-color:var(--pink)!important;background:#fff7fb!important;box-shadow:0 0 0 2px rgba(189,46,109,.14)!important}
.catalog-item-card [data-catalog-select][aria-pressed="true"]{background:var(--navy)!important;color:#fff!important}
.catalog-global-search-count{margin:0;padding:8px 10px;border-radius:8px;background:#f2f6fa;color:var(--navy);font-size:12px;font-weight:900;position:sticky;top:0;z-index:2}
.catalog-global-result[aria-pressed="true"]{border-color:var(--pink);box-shadow:0 0 0 2px rgba(189,46,109,.12);background:#fff7fb}
.catalog-confirm-bar button,.catalog-search-confirm-bar button{min-width:190px}
.quantity-change-tip{grid-column:1/-1;width:100%;box-sizing:border-box}
.order-qty-inline.quantity-change-highlight{outline:3px solid #e62967;outline-offset:4px;background:#fff8fb;border-radius:10px;padding:4px}

.cremation-fee-note{
  margin-top:12px;padding:12px 14px;border:1px solid #d5e3ef;border-left:4px solid #1c75b5;
  border-radius:10px;background:#f7fbff;color:#29465f;display:grid;grid-template-columns:auto 1fr;gap:8px 12px;
}
.cremation-fee-note strong{color:var(--navy);white-space:nowrap}
.cremation-fee-note p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}
.cremation-fee-note[hidden]{display:none!important}

@media(max-width:760px){
  .quote-list-sticky-head{max-height:min(56vh,430px);overflow:auto;overscroll-behavior:contain;padding:8px 0 10px!important}
  .quote-share-options{grid-template-columns:1fr}.quote-share-card{padding:20px 16px}
  .catalog-confirm-bar button,.catalog-search-confirm-bar button{min-width:0}
}

/* v73 Pro再構築：保存一覧固定、共有経路、カタログ確定追加を安定化 */
.quote-list-page-pro .list-card{overflow:visible!important}
.quote-list-sticky-head{
  top:env(safe-area-inset-top,0px)!important;
  z-index:60!important;
  padding:10px 0 12px!important;
  background:rgba(255,255,255,.98)!important;
  border-bottom:1px solid #dfe7ef!important;
  box-shadow:0 10px 22px rgba(20,45,80,.10)!important;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  isolation:isolate;
}
.quote-list-table-wrap{position:relative;scrollbar-gutter:stable}
.quote-list-table thead,.quote-list-table thead th{top:var(--quote-list-sticky-offset,180px)!important}

.quote-share-card{width:min(620px,94vw);padding:24px}
.quote-share-lead{margin:6px 0 0;color:#607086;line-height:1.65;font-size:13px}
.quote-share-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.quote-share-option{
  border:1px solid #dbe3ec;background:#fff;color:var(--navy);border-radius:14px;padding:16px;
  display:grid;gap:5px;text-align:left;transition:.18s;cursor:pointer
}
.quote-share-option:hover,.quote-share-option:focus-visible{border-color:#e89ab9;background:#fff7fb;box-shadow:0 8px 22px rgba(20,45,80,.08);transform:translateY(-1px)}
.quote-share-option span{font-size:16px;font-weight:900}.quote-share-option small{color:#6a788b;line-height:1.45}
.quote-share-gmail{border-color:#efb6ca}.quote-share-message{margin:14px 0 0;border-radius:10px;padding:10px 12px;background:#eef8f0;color:#216e38;font-weight:800}
.quote-share-message.bad{background:#fff0f0;color:#a00;border:1px solid #efb5b5}

.catalog-item-card[aria-selected="true"]{border-color:var(--pink)!important;background:#fff7fb!important;box-shadow:0 0 0 2px rgba(189,46,109,.14)!important}
.catalog-item-card [data-catalog-select][aria-pressed="true"]{background:var(--navy)!important;color:#fff!important}
.catalog-global-search-count{margin:0;padding:8px 10px;border-radius:8px;background:#f2f6fa;color:var(--navy);font-size:12px;font-weight:900;position:sticky;top:0;z-index:2}
.catalog-global-result[aria-pressed="true"]{border-color:var(--pink);box-shadow:0 0 0 2px rgba(189,46,109,.12);background:#fff7fb}
.catalog-confirm-bar button,.catalog-search-confirm-bar button{min-width:190px}
.quantity-change-tip{grid-column:1/-1;width:100%;box-sizing:border-box}
.order-qty-inline.quantity-change-highlight{outline:3px solid #e62967;outline-offset:4px;background:#fff8fb;border-radius:10px;padding:4px}

@media(max-width:760px){
  .quote-list-sticky-head{max-height:min(56vh,430px);overflow:auto;overscroll-behavior:contain;padding:8px 0 10px!important}
  .quote-share-options{grid-template-columns:1fr}.quote-share-card{padding:20px 16px}
  .catalog-confirm-bar button,.catalog-search-confirm-bar button{min-width:0}
}


/* v74: smartphone-safe estimate image capture */
.estimate-capture-host{
  position:fixed!important;
  left:-12000px!important;
  top:0!important;
  width:210mm!important;
  height:297mm!important;
  overflow:hidden!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
  z-index:-2147483647!important;
  background:#fff!important;
}
.estimate-capture-host .estimate-template-sheet,
.estimate-capture-host .estimate-capture-sheet{
  display:block!important;
  position:relative!important;
  left:0!important;
  top:0!important;
  width:210mm!important;
  height:297mm!important;
  min-width:210mm!important;
  min-height:297mm!important;
  max-width:210mm!important;
  max-height:297mm!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  transform-origin:top left!important;
  box-shadow:none!important;
  overflow:hidden!important;
  aspect-ratio:auto!important;
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}

/* v76: スマートフォンのプラン説明を3行まで確実に表示し、下端の操作領域を保護 */
@media(max-width:760px){
  #secPlan .plan-card .plan-head{height:104px!important;min-height:104px!important}
  #secPlan .plan-card p{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:3!important;
    line-clamp:3!important;
    height:54px!important;
    min-height:54px!important;
    overflow:hidden!important;
  }
  .sc-copy{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .contact-page-pro{grid-template-columns:minmax(0,1fr)}
  .contact-page-pro>*{min-width:0}
  .contact-form-pro{grid-template-columns:minmax(0,1fr)}
  .contact-form-pro>*{min-width:0}
  .contact-form-pro input[type=file]{width:100%;max-width:100%;min-width:0}
  .contact-form-pro .required,.contact-form-pro .optional{justify-self:start!important;max-width:100%}
}

/* v76: 保存一覧は表領域を縦横スクロールし、列見出しをその領域の上端に固定 */
.quote-list-page-pro .quote-list-table-wrap{
  position:relative!important;
  max-height:calc(100dvh - var(--quote-list-sticky-offset,180px) - 28px)!important;
  min-height:240px;
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.quote-list-page-pro .quote-list-table thead,
.quote-list-page-pro .quote-list-table thead th{top:0!important;z-index:30!important}
@media(max-width:760px){
  .quote-list-page-pro .quote-list-table-wrap{
    max-height:calc(100dvh - var(--quote-list-sticky-offset,230px) - 16px)!important;
    min-height:210px;
  }
}

/* v77: プラン連動の含有内容・サイドバーアコーディオン・平均利用時間 */
.sidebar-accordion{overflow:hidden}
.sidebar-accordion>summary{list-style:none;cursor:pointer;position:relative;padding-right:52px;user-select:none}
.sidebar-accordion>summary::-webkit-details-marker{display:none}
.sidebar-accordion>summary::after{content:"＋";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--navy);font-size:17px;line-height:1}
.sidebar-accordion[open]>summary::after{content:"−"}
.sidebar-accordion.included-card{padding:0}
.included-card.sidebar-accordion>summary{font-size:16px}
.included-body{padding:16px 18px 18px;max-height:min(62vh,640px);overflow:auto}
.included-list .included-empty{padding-left:0;color:#7a8391;font-weight:700;line-height:1.65}
.included-list .included-empty::before{content:none}
.hall-hour-label-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hall-hour-label-line>small{color:#66758a;font-size:12px;font-weight:700;line-height:1.45}
@media(max-width:760px){
  .sidebar-accordion>summary{padding:14px 48px 14px 15px;font-size:16px}
  .sidebar-accordion>summary::after{right:14px}
  .included-body{padding:14px 15px 16px;max-height:none;overflow:visible}
  .hall-hour-label-line{gap:3px 7px}
  .hall-hour-label-line>small{font-size:11.5px}
}

/* v78: プラン別選択可否・合計常時表示・見積一覧の固定見出しと並べ替え */
.summary-head-with-total{
  display:block;
  padding:0!important;
}
.summary-head-with-total::after{
  top:23px!important;
  transform:translateY(-50%)!important;
}
.summary-head-title{
  display:block;
  min-height:23px;
  padding:14px 52px 13px 17px;
}
.summary-always-total{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
  padding:13px 17px 14px;
  color:var(--text);
  background:#fff;
  border-top:1px solid rgba(255,255,255,.2);
}
.summary-always-total .total-label{display:block;margin:0;color:#66758a;line-height:1.4;white-space:nowrap}
.summary-always-total .total-price{
  display:block;
  margin:0;
  color:#b12736;
  font-size:32px;
  line-height:1;
  text-align:right;
  white-space:nowrap;
}
.summary-always-total .total-price small{font-size:14px;margin-left:4px}
.plan-selection-disabled{
  background:#f5f7fa;
  border-color:#dbe2ea;
}
.plan-selection-disabled select,
.plan-selection-disabled .order-action-buttons,
.plan-selection-disabled .qty-row,
.plan-selection-disabled .add-order,
.plan-selection-disabled .order-list{opacity:.48}
.plan-selection-disabled-message{
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid #d4dce6;
  border-radius:8px;
  color:#46566b;
  background:#fff;
  font-weight:800;
}
.plan-selection-disabled-message[hidden]{display:none!important}
.plan-card[tabindex]:focus-visible{outline:3px solid #1b6fb5;outline-offset:3px}

.quote-list-page-pro .quote-list-sticky-head{
  position:sticky!important;
  top:env(safe-area-inset-top,0px)!important;
  z-index:60!important;
}
.quote-list-page-pro .quote-list-table-wrap{
  max-height:calc(100dvh - var(--quote-list-sticky-offset,180px) - 28px)!important;
  overflow:auto!important;
  overscroll-behavior:contain;
}
.quote-list-page-pro .quote-list-table thead,
.quote-list-page-pro .quote-list-table thead th{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
}
.quote-list-page-pro .quote-list-sortable-head{position:sticky!important;top:0!important;z-index:30!important}
.quote-sort-button{
  appearance:none;
  width:100%;
  min-height:34px;
  margin:0;
  padding:0;
  border:0;
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:inherit;
  background:transparent;
  font:inherit;
  font-weight:900;
  text-align:left;
  white-space:nowrap;
  cursor:pointer;
}
.quote-sort-button:hover,.quote-sort-button:focus-visible{background:rgba(255,255,255,.14);outline:2px solid rgba(255,255,255,.7);outline-offset:2px}
.quote-sort-button.is-sorted{color:#fff4b5}
.quote-sort-indicator{min-width:1.25em;text-align:center;font-size:12px}

@media(max-width:760px){
  .summary-head-title{padding:14px 48px 12px 15px}
  .summary-always-total{padding:12px 15px 13px}
  .summary-always-total .total-price{font-size:30px}
  .summary-head-with-total::after{top:22px!important}
  .quote-list-page-pro .quote-list-table-wrap{
    max-height:calc(100dvh - var(--quote-list-sticky-offset,230px) - 16px)!important;
  }
}

/* req13 final cascade overrides */
.stepper-sticky{position:sticky!important;top:0;z-index:36}
.stepper-sticky>.stepper{margin:0!important}
.stepper-ready-action[hidden]{display:none!important}
@media(min-width:1041px){
  .sidebar,
  .summary-card{
    top:calc(var(--staff-calculator-header-height,0px) + var(--estimate-stepper-height,126px) + 12px)!important;
  }
}
@media(max-width:760px){
  .stepper-sticky>.stepper{grid-template-columns:repeat(5,minmax(0,1fr))!important;row-gap:9.8px!important;column-gap:3px!important;margin:0!important}
  .order-item-editable{
    grid-template-columns:minmax(0,1fr) 68px!important;
    gap:7px 6px!important;
  }
  .order-item-editable .order-item-name{grid-column:1/-1;grid-row:1}
  .order-item-editable .order-qty-inline{
    grid-column:1;
    grid-row:2;
    justify-content:start!important;
  }
  .order-item-editable .order-delete{
    grid-column:2;
    grid-row:2;
    width:68px!important;
    height:36px!important;
    padding:0 8px!important;
    border:1px solid #e4a9ba!important;
    border-radius:8px!important;
    background:#fff4f8!important;
    color:#a61f46!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    box-shadow:0 2px 5px rgba(166,31,70,.08);
  }
  .order-item-editable .order-amount{grid-column:1/-1;grid-row:3}
}

/* mitsumori3: 日程別式場料金・火葬場分離・条件付き追加料金 */
.estimate-subselection,
.pickup-additional-box{
  margin:16px 0;
  padding:16px;
  border:1px solid #d7e2ee;
  border-radius:12px;
  background:#f8fbfe;
}
.estimate-subselection[hidden],
.pickup-additional-box[hidden]{display:none!important}
.estimate-subselection>.field-title,
.pickup-additional-box>.field-title{display:block;margin:0 0 10px;color:#173b61;font-weight:900}
.ceremony-type-choices,
.ceremony-residence-choices,
.decoration-timing-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
.attendee-exact-field{
  margin-top:14px;
  padding:14px;
  border:1px solid #d7e2ee;
  border-radius:10px;
  background:#f8fbfe;
}
.attendee-exact-field[hidden]{display:none!important}
.attendee-exact-field input{max-width:220px}
.radio-row.is-unavailable{
  opacity:.55;
  cursor:not-allowed;
  background:#f3f5f7;
}
.pickup-additional-items,
.cremation-additional-items{display:grid;gap:9px}
.distance-route-fare>span{display:flex;min-width:0;flex-direction:column;gap:2px}
.distance-route-fare>span>small{color:#65758a;font-size:11px;line-height:1.4}
@media(max-width:760px){
  .estimate-subselection,
  .pickup-additional-box{margin:12px 0;padding:13px}
  .ceremony-type-choices,
  .ceremony-residence-choices,
  .decoration-timing-choices{grid-template-columns:1fr}
  .attendee-exact-field input{max-width:none}
  .distance-route-fare{grid-template-columns:minmax(0,1fr) auto!important}
  .distance-route-fare>strong{grid-column:2}
}

/* mitsumori3 follow-up: 顧客向け斎場検索・有無選択・簡易料理/返礼品 */
.stepper .step:not(.completed) .step-num,
.section:not(.step-completed) .section-title .num{background:#d63252}
.stepper-status-legend{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:7px 0 2px;color:#5d6d7e;font-size:11px;font-weight:800}
.stepper-status-items{display:flex;justify-content:center;align-items:center;gap:16px;min-width:0}
.stepper-status-items>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.stepper-reset-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:9px 18px;
  border:2px solid #a91e49;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,#d6326c,#b62455);
  box-shadow:0 6px 16px rgba(178,39,75,.28),0 0 0 3px rgba(214,50,108,.1);
  font:inherit;
  font-size:13px;
  font-weight:900;
  line-height:1.25;
  letter-spacing:.02em;
  white-space:nowrap;
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.stepper-reset-button>span{font-size:1.25em;line-height:1}
.stepper-reset-button:hover{border-color:#8f173d;color:#fff;background:linear-gradient(135deg,#c82a61,#9f1c48);box-shadow:0 8px 20px rgba(178,39,75,.34),0 0 0 4px rgba(214,50,108,.12);transform:translateY(-1px)}
.stepper-reset-button:focus-visible{outline:3px solid rgba(23,105,170,.4);outline-offset:2px}
.stepper-reset-button:active{transform:translateY(0)}
.legend-dot{width:11px;height:11px;border-radius:50%;display:inline-block;background:#d63252}
.legend-dot.complete{background:#1769aa}
@media(max-width:760px){
  .stepper-status-legend{gap:6px;margin-top:5px;font-size:9.5px}
  .stepper-status-items{gap:7px}
  .stepper-status-items>span{gap:3px}
  .legend-dot{width:9px;height:9px}
  .stepper-reset-button{min-height:40px;padding:7px 12px;font-size:11.5px}
}
.venue-search-box{
  padding:16px;
  border:1px solid #cbddeb;
  border-radius:12px;
  background:linear-gradient(135deg,#f5fbff,#fff);
}
.venue-search-box>label{display:block;margin-bottom:8px;color:var(--navy);font-weight:900}
.venue-search-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}
.venue-search-input-row input{min-width:0}
.venue-search-btn{white-space:nowrap}
.venue-recommendation-results{margin-top:12px}
.venue-search-empty,.venue-search-message{margin:0;padding:11px 13px;border-radius:8px;background:#fff;color:#5d6d7f;font-size:13px}
.venue-recommendation-list{display:grid;gap:9px;margin-top:8px}
.venue-recommendation{
  width:100%;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px;
  border:2px solid #dfe8f0;
  border-radius:10px;
  background:#fff;
  color:var(--navy);
  text-align:left;
}
.venue-recommendation.selected{border-color:#1769aa;background:#f3f9ff}
.venue-recommendation-rank{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#1769aa;color:#fff;font-weight:900}
.venue-recommendation span:nth-child(2){display:grid;gap:2px}
.venue-recommendation small{color:#68788a;font-weight:600}
.venue-recommendation b{color:#1769aa;white-space:nowrap}
.radio-row.is-auto-selected{cursor:default}
.large-binary-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.large-binary-choice{
  min-height:58px;
  border:2px solid #dbe5ee;
  border-radius:12px;
  background:#fff;
  color:var(--navy);
  font-size:18px;
  font-weight:900;
}
.large-binary-choice.selected{border-color:#1769aa;background:#edf7ff;color:#1769aa;box-shadow:0 5px 15px rgba(23,105,170,.12)}
.customer-order-details[hidden],.customer-order-fields[hidden],#foodWakePeopleField[hidden]{display:none!important}
.customer-foodgift{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.customer-order-panel{padding:16px;border:1px solid #dfe7ef;border-radius:12px;background:#fff}
.customer-order-panel h3{margin:0 0 10px;color:var(--navy)}
.customer-catalog-link{display:inline-flex;margin:0 0 8px;color:#1769aa;font-size:13px;font-weight:900;text-decoration:underline;text-underline-offset:3px}
.customer-order-fields{padding-top:4px}
.number-with-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.number-with-unit span{color:var(--navy);font-weight:900}
.customer-order-required,.customer-order-unavailable{padding:14px;border-radius:10px;background:#f4f8fb;color:var(--navy);font-weight:900}
.customer-order-required{border-left:4px solid #1769aa;background:#eef7ff}
.ritual-bathing-notice{margin:12px 0 0;padding:10px 12px;border-radius:8px;background:#fff7e7;color:#75531a;font-size:13px;font-weight:800}
@media(max-width:760px){
  .venue-search-input-row,.customer-foodgift{grid-template-columns:1fr}
  .venue-search-btn{width:100%}
  .venue-recommendation{grid-template-columns:30px minmax(0,1fr)}
  .venue-recommendation>b{grid-column:2}
}

/* mitsumori3: 新規入力は全ステップ完了後にだけ概算合計を表示 */
body:not([data-staff-mode="1"]):not([data-estimate-ready="1"]) .summary-always-total{
  display:none!important;
}

/* mitsumori3: 宗教・葬儀種類によるプラン絞り込み／簡易・詳細見積り */
.plan-filter-group{
  margin:0 0 16px;
  padding:16px;
  border:1px solid #d8e4ef;
  border-radius:12px;
  background:linear-gradient(135deg,#f5faff 0%,#fff 68%);
}
.plan-filter-group + .plan-filter-group{margin-top:-4px}
.plan-filter-group .field-title,
.plan-filter-label{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  color:var(--navy);
  font-size:15px;
  font-weight:900;
}
.plan-filter-label::before{
  content:"";
  width:5px;
  height:20px;
  border-radius:999px;
  background:var(--pink);
  flex:none;
}
.plan-filter-options{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
[data-plan-filter-step="funeral-type"] .plan-filter-options{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.plan-filter-option{
  appearance:none;
  width:100%;
  min-height:52px;
  padding:10px 12px;
  border:2px solid #dce5ee;
  border-radius:10px;
  background:#fff;
  color:var(--navy);
  box-shadow:0 2px 7px rgba(23,52,86,.04);
  font-size:15px;
  font-weight:900;
  line-height:1.4;
  text-align:center;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.plan-filter-option:hover:not(:disabled):not([aria-disabled="true"]){
  border-color:#e29ab9;
  transform:translateY(-1px);
  box-shadow:0 7px 16px rgba(23,52,86,.08);
}
.plan-filter-option.selected,
.plan-filter-option.is-selected,
.plan-filter-option[aria-pressed="true"]{
  border-color:var(--pink);
  background:var(--pink-soft);
  color:var(--pink-dark);
  box-shadow:0 0 0 3px rgba(189,46,109,.1);
}
.plan-filter-option:disabled,
.plan-filter-option.disabled,
.plan-filter-option.is-disabled,
.plan-filter-option[aria-disabled="true"]{
  cursor:not-allowed;
  border-color:#e5e9ee;
  background:#f2f4f7;
  color:#929ba7;
  box-shadow:none;
  opacity:.72;
}
.plan-filter-option:focus-visible,
.estimate-mode-button:focus-visible{
  outline:3px solid #1b6fb5;
  outline-offset:3px;
}
.plan-filter-group[hidden],
.plan-filter-options[hidden],
.plan-filter-option[hidden],
.plan-grid[hidden],
.plan-filter-empty[hidden],
.plan-empty-guidance[hidden]{display:none!important}
.plan-filter-empty,
.plan-empty-guidance{
  margin:8px 0 14px;
  padding:15px 16px;
  border:1px dashed #bdcad8;
  border-radius:10px;
  background:#f8fafc;
  color:#52647a;
  font-size:13px;
  font-weight:800;
  line-height:1.7;
  text-align:center;
}

.estimate-mode-box{
  margin:18px 0 0;
  padding:18px;
  border:1px solid #f0c6d7;
  border-radius:13px;
  background:linear-gradient(120deg,#fff7fa 0%,#fff 62%,#f6faff 100%);
  box-shadow:0 10px 25px rgba(23,52,86,.06);
}
.estimate-mode-box > .field-title,
.estimate-mode-title{
  display:block;
  margin:0 0 5px;
  color:var(--navy);
  font-size:17px;
  font-weight:900;
  text-align:center;
}
.estimate-mode-description{
  margin:0 0 13px;
  color:#66768a;
  font-size:12px;
  font-weight:700;
  text-align:center;
}
.estimate-mode-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.estimate-mode-button{
  appearance:none;
  min-height:62px;
  padding:12px 16px;
  border:2px solid #cfdbe7;
  border-radius:11px;
  background:#fff;
  color:var(--navy);
  font-size:17px;
  font-weight:900;
  line-height:1.4;
  transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.estimate-mode-button:hover:not(:disabled){
  border-color:#d982a8;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(189,46,109,.1);
}
.estimate-mode-button.selected,
.estimate-mode-button.is-selected,
.estimate-mode-button[aria-pressed="true"]{
  border-color:var(--pink);
  background:var(--pink);
  color:#fff;
  box-shadow:0 9px 20px rgba(189,46,109,.2);
}
.estimate-mode-button:disabled,
.estimate-mode-button[aria-disabled="true"]{
  cursor:not-allowed;
  border-color:#e2e6eb;
  background:#f3f5f7;
  color:#959eaa;
  box-shadow:none;
}
/* 20260907 LINE: 簡易見積りの書類表示と明細・プラン内容 */
.simple-estimate-document-action{margin:10px 0 18px;text-align:center}
.simple-estimate-document-action .primary-btn{min-height:48px;min-width:190px;font-size:17px}
.simple-estimate-document-action .primary-btn:disabled{opacity:.55;cursor:not-allowed}
.simple-estimate-document-action .hint{margin:10px 0 0;font-size:12px}
#simpleEstimatePriceBasis{white-space:pre-line;line-height:1.9;text-align:left;padding:12px 14px;background:#fff;border:1px solid #d9e4ee;border-radius:10px}
.simple-estimate-included{margin:14px 0;border:1px solid #cfdeeb;border-radius:10px;overflow:hidden;background:#fff;text-align:left}
.simple-estimate-included summary{cursor:pointer;background:#173456;color:#fff;padding:14px 16px;font-weight:800;line-height:1.6}
.simple-estimate-included summary:focus-visible{outline:3px solid #dca51d;outline-offset:-4px}
.simple-estimate-included .included-list{padding:16px;margin:0;max-height:360px;overflow:auto}
.simple-estimate-error{border:1px solid #ee94ad;border-radius:10px;background:#fff2f5;padding:12px;color:#9f1944;text-align:left}
.simple-estimate-error[hidden],.distance-total[hidden],#manualVenueSelectField[hidden]{display:none!important}
.simple-estimate-result{
  margin-top:15px;
  padding:20px 18px 17px;
  border:2px solid var(--pink);
  border-radius:13px;
  background:#fff;
  box-shadow:0 12px 28px rgba(189,46,109,.12);
  text-align:center;
}
.simple-estimate-result[hidden],
.detail-estimate-sections[hidden],
.detail-estimate-sections.is-hidden,
.detail-estimate-sections[aria-hidden="true"],
.detail-estimate-sidebar[hidden],
.detail-estimate-sidebar.is-hidden,
.detail-estimate-sidebar[aria-hidden="true"]{display:none!important}
.section[hidden]{display:none!important}
#estimateModeBox[hidden],.cta[hidden]{display:none!important}
.stepper .step.progressive-locked{pointer-events:none;cursor:not-allowed}
.required-input-highlight:not(.section){
  --required-highlight-shadow-rest:0 0 0 4px rgba(229,160,0,.28),0 0 0 0 rgba(255,190,44,0),0 0 0 rgba(229,160,0,0);
  --required-highlight-shadow-peak:0 0 0 8px rgba(245,147,0,.58),0 0 0 14px rgba(255,190,44,.25),0 0 28px rgba(229,160,0,.26);
  outline:3px solid #e5a000!important;
  outline-offset:3px!important;
  border-radius:10px!important;
  box-shadow:var(--required-highlight-shadow-rest);
}
.stepper .step.current-required-step .step-num{
  --required-highlight-shadow-rest:0 0 0 5px rgba(229,160,0,.28),0 0 0 0 rgba(255,190,44,0),0 4px 13px rgba(133,91,0,.2);
  --required-highlight-shadow-peak:0 0 0 8px rgba(245,147,0,.55),0 0 0 13px rgba(255,190,44,.22),0 6px 20px rgba(133,91,0,.3);
  box-shadow:var(--required-highlight-shadow-rest);
}
.required-input-highlight:not(.section),
.stepper .step.current-required-step .step-num{
  animation:required-highlight-breathe 6s cubic-bezier(.45,0,.55,1) -3s infinite both;
}
@keyframes required-highlight-breathe{
  0%,100%{box-shadow:var(--required-highlight-shadow-rest)}
  42%,58%{box-shadow:var(--required-highlight-shadow-peak)}
}
@media(max-width:760px){
  .required-input-highlight:not(.section){
    --required-highlight-shadow-rest:0 0 0 4px rgba(229,160,0,.26),0 0 0 0 rgba(255,190,44,0),0 0 0 rgba(229,160,0,0);
    --required-highlight-shadow-peak:0 0 0 7px rgba(245,147,0,.55),0 0 0 11px rgba(255,190,44,.22),0 0 20px rgba(229,160,0,.22);
    outline-width:2px!important;
    outline-offset:2px!important
  }
  .stepper .step.current-required-step .step-num{
    --required-highlight-shadow-rest:0 0 0 4px rgba(229,160,0,.26),0 0 0 0 rgba(255,190,44,0),0 3px 10px rgba(133,91,0,.18);
    --required-highlight-shadow-peak:0 0 0 7px rgba(245,147,0,.52),0 0 0 10px rgba(255,190,44,.2),0 4px 16px rgba(133,91,0,.28)
  }
}
.layout:has(> .detail-estimate-sidebar[hidden]),
.layout:has(> .detail-estimate-sidebar.is-hidden),
.layout:has(> .detail-estimate-sidebar[aria-hidden="true"]){grid-template-columns:minmax(0,1fr)}
body:not([data-estimate-mode="detailed"]) .layout{
  grid-template-columns:minmax(0,1fr);
}
.simple-estimate-result .simple-estimate-label,
.simple-estimate-label{
  margin:0 0 4px;
  color:var(--navy);
  font-size:14px;
  font-weight:900;
}
.simple-estimate-amount{
  margin:3px 0 12px;
  color:#b12736;
  font-size:clamp(34px,5vw,48px);
  font-weight:900;
  letter-spacing:.01em;
  line-height:1.15;
  white-space:nowrap;
}
.simple-estimate-amount small{
  margin-left:4px;
  color:inherit;
  font-size:.4em;
}
.simple-estimate-notice{
  margin:0;
  padding:11px 13px;
  border:1px solid #e6d5ac;
  border-radius:9px;
  background:#fff9e9;
  color:#6c4c14;
  font-size:12px;
  font-weight:800;
  line-height:1.7;
  text-align:left;
}
.detail-estimate-sections{
  display:contents;
}
.detail-estimate-sections.is-revealing > .section,
.detail-estimate-sections.is-revealing > *{
  animation:detail-estimate-reveal .2s ease-out both;
}
@keyframes detail-estimate-reveal{
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:none}
}

@media(max-width:760px){
  .plan-filter-group{padding:13px;margin-bottom:12px}
  .plan-filter-options,
  [data-plan-filter-step="funeral-type"] .plan-filter-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .plan-filter-option{min-height:49px;padding:9px 8px;font-size:14px}
  .estimate-mode-box{margin-top:14px;padding:15px 13px}
  .estimate-mode-title,.estimate-mode-box > .field-title{font-size:16px}
  .estimate-mode-options{gap:9px}
  .estimate-mode-button{min-height:58px;padding:10px 8px;font-size:15px}
  .simple-estimate-result{padding:17px 13px 14px}
  .simple-estimate-amount{font-size:34px}
  .simple-estimate-notice{padding:10px 11px;font-size:11.5px}
}
@media(max-width:420px){
  .plan-filter-options{grid-template-columns:1fr 1fr}
  .estimate-mode-options{grid-template-columns:1fr}
  .estimate-mode-button{min-height:54px}
  .simple-estimate-amount{font-size:31px}
}
@media(prefers-reduced-motion:reduce){
  .plan-filter-option,
  .estimate-mode-button{transition:none}
  .detail-estimate-sections.is-revealing > *{animation:none}
  .required-input-highlight:not(.section),
  .stepper .step.current-required-step .step-num{
    animation:required-highlight-breathe 6s cubic-bezier(.45,0,.55,1) -3s infinite both!important
  }
}

/* 全入力完了時は、上部と下部の確認ボタンだけを強調する。 */
body[data-estimate-ready="1"] :is(#topOpenEstimate,#openEstimate):not(:disabled){
  --ready-cta-shadow-rest:0 0 0 5px rgba(229,160,0,.3),0 10px 24px rgba(189,46,109,.28);
  --ready-cta-shadow-peak:0 0 0 9px rgba(245,147,0,.52),0 0 26px rgba(229,160,0,.3),0 12px 28px rgba(189,46,109,.34);
  outline:3px solid #e5a000;
  outline-offset:3px;
  box-shadow:var(--ready-cta-shadow-rest);
  animation:estimate-ready-cta-breathe 4.8s ease-in-out -2.4s infinite both;
}
@keyframes estimate-ready-cta-breathe{
  0%,100%{box-shadow:var(--ready-cta-shadow-rest)}
  42%,58%{box-shadow:var(--ready-cta-shadow-peak)}
}
body[data-estimate-ready="1"] :is(#topOpenEstimate,#openEstimate):not(:disabled):focus-visible{
  animation:none;
  outline:3px solid #14375d;
  outline-offset:4px;
  box-shadow:0 0 0 3px #fff,0 0 0 8px #14375d,0 12px 28px rgba(20,55,93,.28);
}
@media(max-width:760px){
  body[data-estimate-ready="1"] :is(#topOpenEstimate,#openEstimate):not(:disabled){
    --ready-cta-shadow-rest:0 0 0 3px rgba(229,160,0,.3),0 8px 20px rgba(189,46,109,.25);
    --ready-cta-shadow-peak:0 0 0 6px rgba(245,147,0,.48),0 0 20px rgba(229,160,0,.27),0 9px 22px rgba(189,46,109,.3);
    outline-width:2px;
    outline-offset:2px;
  }
}
@media(prefers-reduced-motion:reduce){
  body[data-estimate-ready="1"] :is(#topOpenEstimate,#openEstimate):not(:disabled){
    animation:none!important;
    box-shadow:var(--ready-cta-shadow-peak)!important;
  }
  body[data-estimate-ready="1"] :is(#topOpenEstimate,#openEstimate):not(:disabled):focus-visible{
    box-shadow:0 0 0 3px #fff,0 0 0 8px #14375d,0 12px 28px rgba(20,55,93,.28)!important;
  }
}
