/* Explanations are separate actions; opening them never changes a selection. */
.estimate-choice{position:relative;min-width:0}
#estimate-calculator .estimate-choice>.estimate-option{height:100%;min-height:146px;padding-bottom:46px}
#estimate-calculator .estimate-choice>.estimate-support-option{height:100%;min-height:136px;padding-bottom:44px}
.price-detail-trigger{font:400 11px/1.5 FaeviaSans,Arial,sans-serif;color:#555;border:0;border-bottom:1px solid #aaa;padding:4px 0;background:transparent;cursor:pointer;text-underline-offset:4px;min-height:28px}
.estimate-choice>.price-detail-trigger{position:absolute;bottom:11px;left:15px;z-index:1}
.estimate-choice:has(input:checked)>.estimate-option~.price-detail-trigger{color:#eee;border-color:#888}
#estimate-calculator .estimate-base>.price-detail-trigger{margin-left:auto;font-size:11px}
#estimate-calculator .estimate-rate>.price-detail-trigger{margin-left:14px;vertical-align:middle}
.feature-card>.price-detail-trigger{align-self:flex-start;margin-bottom:12px;font-size:12px}
.price-detail-trigger:focus-visible{outline:2px solid #777;outline-offset:4px}
html.price-detail-open{overflow:hidden;scrollbar-gutter:stable}
.price-detail-dialog{box-sizing:border-box;width:min(700px,calc(100% - 40px));max-width:700px;max-height:calc(100dvh - 64px);padding:0;margin:auto;border:0;border-radius:18px;background:#fff;color:#171717;box-shadow:0 24px 100px #0003;font-family:FaeviaSans,'Noto Sans JP',Arial,sans-serif;overflow:auto;overscroll-behavior:contain;text-align:left;line-height:1.8}
.price-detail-dialog::backdrop{background:rgb(0 0 0 / .48)}
.price-detail-dialog *{box-sizing:border-box}
.price-detail-top{display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;top:0;z-index:2;padding:16px 28px;border-bottom:1px solid #ececec;background:#fff}
.price-detail-top p{margin:0;font-size:11px;color:#777;letter-spacing:.05em}
.price-detail-close{border:1px solid #dedede;border-radius:25px;background:#f5f5f3;color:#222;min-height:38px;padding:7px 15px;font:400 12px/1.5 FaeviaSans,Arial,sans-serif;cursor:pointer}
.price-detail-content{padding:28px 38px 34px}
.price-detail-content h2{margin:0 0 14px;font-size:30px;font-weight:500;line-height:1.45;letter-spacing:-.035em;text-wrap:balance;outline:none}
.price-detail-content .price-detail-price{font-size:15px;color:#555;margin:0 0 25px}
.price-detail-content .price-detail-intro{font-size:19px;line-height:1.8;color:#222;margin:0 0 26px}
.price-detail-content h3{font-size:15px;font-weight:500;margin:0 0 10px;line-height:1.6}
.price-detail-example{padding:20px 22px;margin:0 0 26px;background:#f4f4f1;border-radius:10px}
.price-detail-example p{font-size:14px;margin:0;line-height:1.95;color:#444}
.price-detail-content>section{padding:0;margin:26px 0;border:0;background:none}
.price-detail-content ul{padding-left:20px;margin:0;list-style:disc}
.price-detail-content li{font-size:14px;line-height:1.95;margin:5px 0;color:#444;overflow-wrap:anywhere}
.price-detail-note{font-size:12px;line-height:1.95;color:#666;margin:24px 0 0;padding-top:18px;border-top:1px solid #e4e4e4}
.price-detail-footer{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:28px;padding-top:24px;border-top:1px solid #e4e4e4}
.price-detail-footer button{border:0;border-radius:5px;background:#171717;color:#fff;font:400 13px/1.5 FaeviaSans,Arial,sans-serif;min-height:44px;padding:12px 20px;cursor:pointer}
.price-detail-footer a{font-size:12px;line-height:1.8;color:#555;text-decoration:underline;text-underline-offset:4px}
.price-detail-dialog :is(button,a):focus-visible{outline:2px solid #777;outline-offset:4px}
@media(max-width:760px){#estimate-calculator .estimate-choice>.estimate-option{min-height:144px;padding-bottom:44px}#estimate-calculator .estimate-choice>.estimate-option input{bottom:45px}#estimate-calculator .estimate-choice>.estimate-support-option{min-height:137px;padding-bottom:41px}.estimate-choice>.price-detail-trigger{left:11px;bottom:9px;font-size:10px}#estimate-calculator .estimate-base>.price-detail-trigger{margin:4px 0 0;font-size:11px}#estimate-calculator .estimate-rate>.price-detail-trigger{margin-left:8px}.price-detail-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 28px);border-radius:15px}.price-detail-top{padding:12px 18px}.price-detail-content{padding:24px 24px 28px}.price-detail-content h2{font-size:25px}.price-detail-content .price-detail-intro{font-size:17px}.price-detail-content .price-detail-price{font-size:13px;margin-bottom:20px}.price-detail-example{padding:18px}.price-detail-content li{font-size:14px}}

#estimate-calculator .estimate-result .price-detail-trigger{color:#ddd;border-color:#888}

/* Pricing readability: separate labels, amounts and explanations without changing choices. */
#estimate-calculator .estimate-base{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;align-items:center;margin:0 0 22px}
#estimate-calculator .estimate-base>span{grid-column:1/-1;font-size:14px;margin:0}
#estimate-calculator .estimate-base strong{font-size:36px;white-space:nowrap}
#estimate-calculator .estimate-base>.price-detail-trigger{margin:0;justify-self:end}
#estimate-calculator .estimate-rate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center;margin:0 0 30px;line-height:1.7}
#estimate-calculator .estimate-rate>span{font-size:12px;margin:0}
#estimate-calculator .estimate-rate>.estimate-rate-label{font-size:14px;grid-column:1/-1}
#estimate-calculator .estimate-rate strong{font-size:22px;white-space:nowrap}
#estimate-calculator .estimate-rate>.price-detail-trigger{grid-column:2;grid-row:2/4;justify-self:end;margin:0}
#estimate-calculator .price-detail-trigger{font-size:12px;line-height:1.6;border:0;text-decoration:underline;text-underline-offset:4px}
#estimate-calculator .estimate-stage-title{margin-top:32px;margin-bottom:16px}
#estimate-calculator .estimate-help{font-size:13px!important;line-height:1.85!important}
#estimate-calculator .estimate-options>.estimate-help{font-size:13px!important}
#estimate-calculator .estimate-tabs{flex-wrap:wrap;gap:4px 16px;overflow:visible;border-bottom:0}
#estimate-calculator .estimate-tabs button{font-size:13px;min-height:40px}
#estimate-calculator .estimate-category .estimate-option-list,#estimate-calculator .estimate-extras .estimate-option-list{gap:12px}
#estimate-calculator .estimate-choice>.estimate-option{min-height:156px;padding:16px 14px 42px;gap:12px;font-size:14px;justify-content:flex-start}
#estimate-calculator .estimate-option>span{padding-right:22px}
#estimate-calculator .estimate-option em{font-size:12px;line-height:1.7;margin-top:6px}
#estimate-calculator .estimate-option>small{font-size:17px;white-space:nowrap;padding:0;margin-top:auto}
#estimate-calculator .estimate-option input{top:18px;bottom:auto;right:12px}
#estimate-calculator .estimate-choice>.price-detail-trigger{left:14px;bottom:10px}
#estimate-calculator .estimate-support-choices{grid-template-columns:1fr;gap:10px}
#estimate-calculator .estimate-choice>.estimate-support-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-height:100px;padding:14px 14px 40px;font-size:14px}
#estimate-calculator .estimate-support-option small{font-size:12px;line-height:1.7}
#estimate-calculator .estimate-support-option strong{font-size:17px;white-space:nowrap}
#estimate-calculator .estimate-conditions>summary,#estimate-calculator .estimate-result-details>summary{font-size:13px;line-height:1.8}
#estimate-calculator .estimate-conditions{margin-top:16px}
#estimate-calculator .estimate-result .estimate-help{font-size:13px!important;line-height:1.9!important}
#estimate-calculator .estimate-selection{font-size:14px;line-height:1.8}
#estimate-calculator #estimate-total{font-size:clamp(27px,3.3vw,44px);letter-spacing:-.04em;white-space:nowrap}
#estimate-calculator #estimate-selected-options li{font-size:12px}
#price .estimate-disclaimer{font-size:13px;line-height:1.9;max-width:76ch;margin-top:24px}

/* Shared action shape and keyboard clarity for the separate dialog surface. */
.price-detail-close,.price-detail-footer button{border-radius:999px;min-height:44px}
.price-detail-dialog :is(button,a):focus-visible{outline:2px solid #171717;outline-offset:3px;box-shadow:0 0 0 5px #fff}
.price-detail-content{overflow-wrap:anywhere}
@media(max-width:760px){
 #estimate-calculator{padding:24px 16px;gap:32px}
 #estimate-calculator .estimate-page-row{flex-wrap:wrap;gap:12px;margin-top:24px}
 #estimate-calculator .estimate-page-row .estimate-page-label{font-size:15px}
 #estimate-calculator .estimate-page-row .estimate-stage-title{margin:0;flex:1 0 100%}
 #estimate-calculator .estimate-mobile-total{display:grid;grid-template-columns:1fr;gap:8px;border:0;padding:18px 0;margin-bottom:24px}
 #estimate-calculator .estimate-mobile-total>span{font-size:13px}
 #estimate-calculator .estimate-mobile-total small{font-size:12px}
 #estimate-quick-total{font-size:30px;white-space:nowrap}
 #estimate-calculator .estimate-category .estimate-option-list,#estimate-calculator .estimate-extras .estimate-option-list{grid-template-columns:1fr}
 #estimate-calculator .estimate-choice>.estimate-option{min-height:0;padding:16px 14px 44px;gap:10px}
 #estimate-calculator .estimate-option>span{padding-right:22px}
 #estimate-calculator .estimate-result{padding:24px 16px}
 #estimate-calculator #estimate-total{font-size:clamp(26px,7vw,38px)}
 #estimate-calculator .estimate-stage-title>small{font-size:12px}
}
/* Four-digit counts remain readable without enlarging the compact control. */
#estimate-calculator .estimate-stepper{width:140px}
#estimate-calculator .estimate-stepper input{width:46px}

/* Keep the responsive total and its actions inside their own surface. */
#estimate-calculator :is(#estimate-total,#estimate-quick-total){white-space:normal;overflow-wrap:anywhere;max-width:100%;font-variant-numeric:tabular-nums}
#estimate-calculator #estimate-consult{border-radius:999px;min-height:48px}
#estimate-calculator .price-detail-trigger{min-height:32px}
