.quote-page { min-height:100vh; height:auto; color:#343c56; background:#f7faff; font-size:17px; font-weight:500; line-height:1.7; opacity:1; animation:none; overflow-x:clip; }
.quote-page [hidden] { display:none !important; }
.quote-page .container { width:min(1280px,calc(100% - 64px)); }
.quote-page button, .quote-page input, .quote-page select, .quote-page textarea { font:inherit; }
.quote-page button, .quote-page a, .quote-page label { -webkit-tap-highlight-color:transparent; }
.quote-page svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.quote-page .quote-icons { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.quote-page button { cursor:pointer; }
.quote-page button:disabled { opacity:.6; cursor:default; }
.quote-page button:focus-visible, .quote-page a:focus-visible, .quote-upload:focus-visible { outline:3px solid #9273e5; outline-offset:4px; }
.quote-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.quote-header { background:rgba(255,255,255,.95); border-bottom:1px solid #eeedf7; }
.quote-header .nav { min-height:78px; padding:16px 0; gap:24px; flex-wrap:nowrap; }
.quote-header .brand { min-width:0; }
.quote-header #toplogo { width:215px; height:auto; }
.quote-nav { display:flex; gap:25px; margin-left:auto; font-size:15px; font-weight:700; color:#5d5877; }
.quote-nav a:hover { color:#7957c5; }
.quote-back { padding:9px 17px; border:1px solid #e1d8f6; border-radius:999px; color:#7155a8; background:#faf8ff; font-size:14px; font-weight:700; }
.quote-preview-note { padding:10px 20px; color:#6e6682; background:#eeeafb; text-align:center; font-size:13px; font-weight:600; }
.quote-preview-note span { margin-right:9px; color:#7454b3; font-size:11px; font-weight:900; letter-spacing:.08em; }
.quote-hero { position:relative; display:grid; grid-template-columns:1.2fr 1fr; gap:54px; padding-top:37px; padding-bottom:44px; align-items:center; }
.quote-eyebrow { margin:0 0 9px; color:#8464c3; font-size:12px; font-weight:800; letter-spacing:.12em; }
.quote-hero h1 { margin:0 0 17px; color:#29334f; font-size:54px; font-weight:900; line-height:1.35; letter-spacing:.02em; }
.quote-hero h1 span { background:linear-gradient(100deg,#3599e9,#8c61df 60%,#d963a7); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.quote-lead { margin:0 0 17px; color:#525d79; font-size:21px; font-weight:700; }
.quote-hero-caption, .quote-hero-caption > span { display:flex; align-items:center; gap:9px; }
.quote-hero-caption { color:#6b6885; font-size:16px; }
.quote-hero-caption svg { width:19px; height:19px; color:#9475ce; }
.quote-hero-art { position:relative; padding:30px 7px; }
.quote-hero-art > img { position:relative; width:100%; height:auto; padding:9px; border-radius:22px; background:#fff; box-shadow:0 16px 48px rgba(105,81,163,.12); transform:rotate(-3deg); animation:quoteArtFloat 7s ease-in-out infinite; }
.quote-art-orbit { position:absolute; inset:-35px -10px -10px; border-radius:50%; background:radial-gradient(ellipse,rgba(190,173,255,.2),rgba(222,231,255,.16) 50%,transparent 70%); }
.quote-art-tag { position:absolute; right:4px; bottom:5px; display:flex; padding:10px 17px; align-items:center; gap:7px; border:1px solid #fff; border-radius:999px; color:#8062a5; background:#fff; box-shadow:0 7px 20px rgba(123,92,255,.08); font-size:14px; font-weight:700; transform:rotate(3deg); }
.quote-art-tag svg { width:17px; height:17px; color:#d375a4; }
.quote-art-star { position:absolute; color:#869feb; font-size:35px; animation:quoteStar 4.6s ease-in-out infinite; }
.quote-art-star.star-one { left:-17px; top:6px; }
.quote-art-star.star-two { right:-4px; top:5px; color:#df90bb; font-size:26px; animation-delay:-2s; }
.quote-layout { display:grid; grid-template-columns:minmax(0,1fr) 304px; gap:26px; align-items:start; padding-bottom:70px; }
.quote-main { min-width:0; scroll-margin-top:90px; }
/* 大きな進行表示と、左に番号を置く入力カードで順番を示す。 */
.quote-progress { position:sticky; z-index:10; top:90px; display:flex; padding:10px; margin-bottom:26px; align-items:center; gap:9px; border:1px solid #e8e2f6; border-radius:23px; background:rgba(255,255,255,.97); box-shadow:0 8px 25px rgba(80,79,141,.05); scroll-margin-top:90px; }
.quote-progress button { position:relative; display:flex; min-width:0; min-height:66px; padding:12px 13px; align-items:center; gap:11px; flex:1; border:0; border-radius:16px; color:#706d88; background:#f7f7fc; font-size:16px; font-weight:800; transition:background .3s,color .3s,box-shadow .3s,transform .3s; }
.quote-progress button[aria-current='step'] { color:#fff; background:linear-gradient(110deg,#438fe8,#8563d9); box-shadow:0 5px 15px rgba(113,93,205,.21); }
.quote-progress button:disabled { opacity:1; color:#81778f; }
.quote-step-number { display:grid; width:37px; height:37px; flex-shrink:0; place-items:center; border:1px solid #dfdaed; border-radius:12px; background:#fff; font-size:17px; }
.quote-step-number b { font-weight:900; }
.quote-step-number > svg { display:none; width:20px; height:20px; }
.quote-progress button[aria-current='step'] .quote-step-number { border-color:rgba(255,255,255,.5); color:#fff; background:rgba(255,255,255,.18); animation:quoteStepPop .5s cubic-bezier(.34,1.56,.64,1); }
.quote-step-symbol { width:19px !important; height:19px !important; margin-left:auto; opacity:.5; }
.quote-progress button.is-complete { color:#5c6695; background:#f0f7ff; }
.quote-progress button.is-complete .quote-step-number { color:#319580; border-color:#cdece5; background:#eaf9f5; }
.quote-progress button.is-complete .quote-step-number b { display:none; }
.quote-progress button.is-complete .quote-step-number svg { display:block; animation:quoteCheckIn .4s ease both; }
.quote-progress i { width:12px; height:2px; flex-shrink:0; background:#e1dcf0; }
.quote-progress[data-current-step='1'] i:first-of-type, .quote-progress[data-current-step='2'] i { background:#9fa6e7; }
.quote-form { padding:0; }
.quote-section-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 5px 20px; }
.quote-section-heading .quote-eyebrow { margin-bottom:3px; }
.quote-section-heading h2 { margin:0; outline:none; color:#343d58; font-size:27px; font-weight:900; line-height:1.5; }
.quote-step-hint { color:#746d89; font-size:14px; font-weight:500; }
.quote-question { position:relative; display:grid; min-width:0; grid-template-columns:152px minmax(0,1fr); gap:22px; padding:24px; margin:0 0 18px; border:1px solid #e7e2f4; border-radius:23px; background:#fff; box-shadow:0 7px 24px rgba(72,92,130,.035); animation:quoteRowIn .5s ease both; }
.quote-step > .quote-question:nth-of-type(2) { animation-delay:.07s; }
.quote-step > .quote-question:nth-of-type(3) { animation-delay:.12s; }
.quote-step > .quote-question:nth-of-type(4) { animation-delay:.17s; }
.quote-question-heading { display:flex; min-width:0; align-items:flex-start; flex-direction:column; gap:11px; }
.quote-question-number { display:grid; width:37px; height:37px; place-items:center; flex-shrink:0; border-radius:12px; color:#7b61bb; background:linear-gradient(135deg,#edf4ff,#f1eafb); font-size:19px; font-weight:900; }
.quote-question-title-row { display:flex; width:100%; align-items:flex-start; gap:7px; }
.quote-question-title-row h3, .quote-question-title { margin:0; color:#4c4665; font-size:18px; font-weight:800; line-height:1.65; }
.quote-question-body { min-width:0; }
.quote-required, .quote-optional { display:inline-block; vertical-align:middle; font-size:12px; font-weight:700; line-height:1.7; }
.quote-required { padding:2px 8px; border-radius:6px; color:#b4577e; background:#fff0f5; }
.quote-optional { color:#78738a; }
.quote-label .quote-required, .quote-label .quote-optional { margin-left:6px; }
.quote-mode-picker { display:grid; min-width:0; grid-template-columns:1fr 1fr; gap:13px; padding:0; margin:0; border:0; }
.quote-mode-card { position:relative; display:flex; min-height:217px; padding:21px 17px; align-items:flex-start; flex-direction:column; border:2px solid #e6e5f0; border-radius:18px; background:#fff; cursor:pointer; transition:transform .3s cubic-bezier(.34,1.56,.64,1),border-color .25s,background .25s,box-shadow .25s; }
.quote-mode-card input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.quote-mode-card:has(input:checked) { border-color:#9979dc; background:linear-gradient(135deg,#f6faff,#f3edff); box-shadow:0 6px 18px rgba(123,92,255,.09); }
.quote-mode-card:has(input:focus-visible) { outline:3px solid #9273e5; outline-offset:3px; }
.quote-mode-icon { display:grid; width:44px; height:44px; margin-bottom:13px; place-items:center; border-radius:13px; color:#8664c0; background:#eee8fd; }
.quote-mode-icon svg { width:26px; height:26px; }
.quote-mode-card:nth-child(2) .quote-mode-icon { color:#c16c9b; background:#fdeaf4; }
.quote-mode-card:has(input:checked) .quote-mode-icon { animation:quoteIconWiggle .7s ease both; }
.quote-mode-card strong { color:#494465; font-size:20px; font-weight:900; line-height:1.6; }
.quote-mode-description { margin-top:auto; padding-top:12px; color:#6f648b; font-size:14px; font-weight:500; line-height:1.75; }
.quote-choice-check { position:absolute; top:17px; right:15px; display:grid; width:25px; height:25px; place-items:center; border:1.5px solid #d4cde6; border-radius:8px; color:transparent; background:#fff; }
.quote-choice-check svg { width:17px; height:17px; }
.quote-mode-card:has(input:checked) .quote-choice-check { border-color:#8968cf; color:#fff; background:#8968cf; animation:quoteCheckIn .35s ease both; }
.quote-input { display:block; width:100%; min-width:0; min-height:53px; padding:12px 14px; border:1.5px solid #dedae9; border-radius:12px; outline:none; color:#46455e; background:#fcfcff; font-size:17px !important; font-weight:500; line-height:1.75; transition:border-color .2s,box-shadow .2s,background .2s; }
.quote-input::placeholder { color:#8b879d; }
.quote-input:focus { border-color:#9c7ddd; background:#fff; box-shadow:0 0 0 4px #efe9fc; }
select.quote-input { padding-right:28px; cursor:pointer; }
.quote-search-row { display:grid; grid-template-columns:minmax(0,1fr) 172px; gap:10px; margin-bottom:12px; }
.quote-tool-select { background:#fff; font-weight:600; }
.quote-tool-count { margin:8px 2px 0; color:#746b88; font-size:13px; }
.quote-demo-box { margin-top:16px; overflow:hidden; border:1px solid #e0daee; border-radius:17px; background:#fbfbff; }
.quote-step-demo { margin-top:0; margin-bottom:23px; animation:quoteRowIn .5s ease both; }
.quote-demo-top { display:flex; min-height:53px; padding:12px 14px; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid #e9e4f3; background:#fff; color:#68607f; font-size:15px; }
.quote-demo-top > span { display:flex; min-width:0; align-items:center; gap:9px; }
.quote-demo-top i { display:block; width:8px; height:8px; flex-shrink:0; border-radius:50%; background:#59b5a5; box-shadow:0 0 0 3px #e5f8f3; animation:quoteDemoPulse 3s ease infinite; }
.quote-demo-top strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
.quote-demo-top .quote-text-button { flex-shrink:0; }
.quote-demo-empty { display:flex; min-height:234px; padding:30px 15px; align-items:center; justify-content:center; flex-direction:column; gap:17px; text-align:center; background:radial-gradient(ellipse at 50% 70%,#eeeefe,transparent 75%); }
.quote-demo-empty > span { display:grid; width:70px; height:70px; place-items:center; border:1px solid #fff; border-radius:22px; color:#9d82d0; background:#fff; box-shadow:0 5px 18px rgba(123,92,255,.055); animation:quoteEmptyFloat 5s ease-in-out infinite; }
.quote-demo-empty svg { width:34px; height:34px; }
.quote-demo-empty strong { color:#716681; font-size:16px; font-weight:600; }
.quote-demo-stage { position:relative; width:100%; overflow:hidden; aspect-ratio:16 / 9; background:linear-gradient(45deg,#f2f3fa 25%,transparent 25%,transparent 75%,#f2f3fa 75%) 0 0 / 24px 24px,linear-gradient(45deg,#f2f3fa 25%,#fafbff 25%,#fafbff 75%,#f2f3fa 75%) 12px 12px / 24px 24px; }
.quote-demo-stage iframe { position:absolute; top:0; left:0; width:1920px; height:1080px; max-width:none; border:0; transform-origin:0 0; }
.quote-demo-description { display:flex; padding:11px 14px; align-items:center; flex-wrap:wrap; gap:9px 18px; border-top:1px solid #e9e4f3; background:#fff; font-size:14px; }
.quote-demo-description a { color:#8061b2; text-decoration:underline; text-underline-offset:3px; }
.quote-demo-description .quote-help-button { margin-left:auto; }
.quote-new-chip { display:inline-flex; margin-top:15px; padding:7px 11px; align-items:center; gap:7px; border-radius:10px; color:#a15889; background:#fff2f8; font-size:14px; }
.quote-new-chip svg { width:17px; height:17px; }
.quote-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.quote-feature { position:relative; display:flex; min-height:55px; padding:12px 13px; align-items:center; gap:9px; border:1.5px solid #e2deed; border-radius:12px; color:#615474; background:#fff; font-size:16px; font-weight:600; cursor:pointer; transition:transform .25s cubic-bezier(.34,1.56,.64,1),border-color .2s,background .2s,color .2s; }
.quote-feature input { width:19px; height:19px; margin:0; flex-shrink:0; accent-color:#8f6dcc; }
.quote-feature:has(input:checked) { color:#7650b4; border-color:#b293e0; background:#f6f0ff; animation:quoteChoicePop .3s ease both; }
.quote-feature:has(input:focus-visible) { outline:3px solid #9273e5; outline-offset:2px; }
.quote-label { display:block; margin-bottom:9px; color:#554c68; font-size:17px; font-weight:700; line-height:1.8; }
.quote-field { margin-bottom:22px; }
.quote-field:last-child { margin-bottom:0; }
.quote-textarea { min-height:185px; resize:vertical; }
.quote-input-footer { display:flex; margin-top:10px; align-items:center; justify-content:space-between; gap:8px; color:#7b6d8d; font-size:13px; }
.quote-text-button { display:inline-flex; padding:3px 0; align-items:center; justify-content:center; gap:6px; border:0; color:#8263b6; background:transparent; font-size:14px !important; font-weight:700; }
.quote-text-button svg { width:18px; height:18px; }
.quote-text-button:hover { color:#63429b; }
.quote-upload { position:relative; display:flex; min-height:155px; padding:22px; align-items:center; justify-content:center; flex-direction:column; gap:9px; border:1.5px dashed #c9b5e6; border-radius:16px; color:#7e65a0; background:#fbf8ff; text-align:center; cursor:pointer; transition:background .2s,border-color .2s,transform .2s; }
.quote-upload > svg { width:32px; height:32px; color:#9b7bc5; transition:transform .3s; }
.quote-upload strong { font-size:17px; font-weight:700; }
.quote-upload small { color:#857094; font-size:13px; font-weight:500; }
.quote-upload:hover, .quote-upload.is-dragover { border-color:#9172c6; background:#f1e9fe; }
.quote-upload:hover > svg, .quote-upload.is-dragover > svg { transform:translateY(-4px) rotate(-5deg); }
.quote-file-list { display:grid; gap:10px; }
.quote-file { position:relative; display:grid; padding:12px; margin-top:12px; grid-template-columns:74px minmax(0,1fr) 28px; gap:12px; align-items:center; border:1px solid #e4dced; border-radius:13px; animation:quoteRowIn .3s ease both; }
.quote-file img { width:74px; height:70px; border-radius:8px; background:#f4f1fa; object-fit:contain; }
.quote-file-info { min-width:0; }
.quote-file-info strong { display:block; overflow:hidden; color:#6c557b; font-size:14px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.quote-file-info small { display:block; margin:3px 0 7px; color:#86748f; font-size:12px; }
.quote-file input { width:100%; padding:6px 8px; border:1px solid #ded4ea; border-radius:7px; color:#67517a; font-size:16px; outline:none; }
.quote-file input:focus { border-color:#a186c5; }
.quote-file button { display:grid; place-items:center; align-self:start; padding:0; width:28px; height:28px; border:0; border-radius:50%; color:#876c9d; background:#f1eaf8; line-height:1; }
.quote-file button svg { width:14px; height:14px; stroke-width:2; pointer-events:none; }
.quote-file-list + .quote-label { margin-top:18px; }
.quote-two-columns { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.quote-deadline { margin-top:17px; }
.quote-form-actions { display:flex; justify-content:space-between; gap:12px; padding:8px 0 0; }
.quote-primary-button, .quote-secondary-button { position:relative; display:inline-flex; min-height:55px; padding:14px 24px; align-items:center; justify-content:center; gap:12px; overflow:hidden; border:1px solid transparent; border-radius:15px; font-size:17px !important; font-weight:800; transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s; }
.quote-primary-button { margin-left:auto; color:#fff; background:linear-gradient(115deg,#347fda,#8054ce); box-shadow:0 7px 20px rgba(122,96,201,.2); }
.quote-primary-button::after { position:absolute; inset:0; content:''; pointer-events:none; background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.2) 50%,transparent 75%); transform:translateX(-120%); animation:quoteButtonShine 8s ease-in-out infinite; }
.quote-primary-button svg { width:21px; height:21px; transition:transform .3s; }
.quote-primary-button:hover { transform:translateY(-3px); box-shadow:0 11px 26px rgba(122,96,201,.24); }
.quote-primary-button:hover svg { transform:translateX(4px); }
.quote-primary-button:active { transform:scale(.97); }
.quote-secondary-button { color:#79648d; border-color:#ded4ea; background:#fff; }
.quote-draft-row { display:flex; margin-top:20px; align-items:center; gap:8px 13px; flex-wrap:wrap; }
.quote-inline-error { margin:14px 0 0; padding:12px 14px; border-radius:10px; color:#aa476f; background:#fff0f5; font-size:15px; line-height:1.8; }
.quote-side { position:sticky; top:91px; display:flex; flex-direction:column; gap:18px; }
.quote-summary { overflow:hidden; border:1px solid #e3daf4; border-radius:23px; background:#fff; box-shadow:0 8px 30px rgba(123,92,255,.04); }
.quote-summary-heading { position:relative; padding:23px 21px; border-bottom:1px solid #e9e2f5; background:linear-gradient(120deg,#f5efff,#f0f7ff); }
.quote-summary-heading > span { position:absolute; top:24px; right:19px; color:#a68bcf; animation:quoteStar 6s ease-in-out infinite; }
.quote-summary-heading h2 { margin:0; padding-right:24px; color:#6b5290; font-size:18px; font-weight:800; }
.quote-summary dl { padding:22px 21px 4px; margin:0; }
.quote-summary dl > div { margin-bottom:19px; }
.quote-summary dt { margin-bottom:6px; color:#78688b; font-size:13px; font-weight:600; }
.quote-summary dd { margin:0; color:#58476c; font-size:16px; font-weight:600; line-height:1.8; overflow-wrap:anywhere; }
.quote-summary dd.is-empty { color:#877993; font-weight:500; }
.quote-summary-pair { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.quote-completion { padding:0 21px 23px; }
.quote-completion > span { color:#80708d; font-size:13px; }
.quote-completion > div { height:8px; overflow:hidden; margin-top:11px; border-radius:999px; background:#eee7f5; }
.quote-completion i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#77b5f3,#aa83de); transition:width .5s cubic-bezier(.34,1.56,.64,1); }
.quote-after-card { padding:23px 21px; border:1px solid #e7e2f0; border-radius:22px; background:#fff; }
.quote-after-card h3 { margin:0 0 17px; color:#6b5b7b; font-size:16px; font-weight:700; }
.quote-after-card ol { padding:0; margin:0; list-style:none; }
.quote-after-card li { position:relative; display:flex; margin-bottom:17px; align-items:center; gap:12px; }
.quote-after-card li:last-child { margin-bottom:0; }
.quote-after-card li:not(:last-child)::after { position:absolute; left:14px; top:33px; width:2px; height:14px; content:''; background:#ece4f7; }
.quote-after-card li > span { display:grid; width:30px; height:30px; flex-shrink:0; place-items:center; border-radius:10px; color:#8865b8; background:#f0eafa; font-size:14px; }
.quote-after-card strong { color:#756083; font-size:15px; font-weight:600; }
.quote-free-request { padding:2px 6px; color:#857199; font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.quote-help-button { display:grid; width:27px; height:27px; flex:0 0 27px; padding:0; margin-top:1px; place-items:center; border:1px solid #d6cbe9; border-radius:50%; color:#8a6cb0; background:#faf7ff; font-size:14px !important; font-weight:800; line-height:1; transition:color .2s,background .2s,transform .25s; }
.quote-help-button:hover, .quote-help-button:focus-visible, .quote-help-button[aria-expanded='true'] { color:#fff; border-color:#9676cc; background:#9676cc; transform:scale(1.09); }
.quote-help-tooltip { position:fixed; z-index:100; width:min(320px,calc(100vw - 32px)); padding:15px 18px; border:1px solid #e6ddf6; border-radius:16px; color:#59416f; background:#fff; box-shadow:0 12px 45px rgba(65,44,97,.16); font-size:15px; font-weight:500; line-height:1.85; animation:quoteTooltipIn .18s ease both; }
.quote-help-tooltip::before { position:absolute; left:var(--help-arrow,50%); width:10px; height:10px; content:''; background:#fff; transform:translateX(-50%) rotate(45deg); }
.quote-help-tooltip[data-side='below']::before { top:-6px; border-top:1px solid #e6ddf6; border-left:1px solid #e6ddf6; }
.quote-help-tooltip[data-side='above']::before { bottom:-6px; border-bottom:1px solid #e6ddf6; border-right:1px solid #e6ddf6; }
.quote-footer { padding:29px 0; border-top:1px solid #e9e3f2; background:#fff; }
.quote-footer > div { display:flex; align-items:center; justify-content:space-between; gap:22px; }
.quote-footer img { width:175px; height:auto; }
.quote-footer a { color:#856a9a; font-size:14px; }
.quote-toast { position:fixed; z-index:110; bottom:25px; left:50%; width:max-content; max-width:calc(100% - 32px); padding:14px 21px; border-radius:15px; color:#fff; background:#75578e; box-shadow:0 12px 30px rgba(93,72,113,.2); font-size:15px; line-height:1.8; opacity:0; transform:translate(-50%,12px); transition:opacity .2s,transform .2s; pointer-events:none; }
.quote-toast.is-visible { opacity:1; transform:translate(-50%,0); }
.quote-page dialog { max-height:calc(100dvh - 40px); overflow:auto; border:1px solid #fff; border-radius:25px; background:#fff; box-shadow:0 24px 100px rgba(58,46,80,.17); }
.quote-page dialog::backdrop { background:rgba(57,45,80,.3); backdrop-filter:blur(7px); }
.quote-page dialog[open] { animation:quoteDialogIn .35s cubic-bezier(.22,.8,.25,1) both; }
.quote-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:20px; }
.quote-dialog-head h2 { margin:0; color:#634d7b; font-size:25px; font-weight:800; }
.quote-dialog-head > button { display:grid; width:38px; height:38px; padding:0; flex-shrink:0; place-items:center; border:0; border-radius:50%; color:#8f70a9; background:#f1eafa; font-size:27px; line-height:1; }
.quote-demo-dialog { width:min(1250px,calc(100% - 30px)); padding:20px; }
.quote-demo-dialog .quote-demo-stage { border-radius:14px; }
.quote-review-dialog { width:min(860px,calc(100% - 32px)); padding:29px; }
.quote-review-block { padding:20px; margin:14px 0; border:1px solid #e5dcef; border-radius:16px; background:#fdfbff; }
.quote-review-block h3 { margin:0 0 16px; color:#825fa0; font-size:18px; font-weight:800; }
.quote-review-block dl { margin:0; }
.quote-review-block dl > div { display:grid; grid-template-columns:146px minmax(0,1fr); gap:18px; margin-bottom:14px; }
.quote-review-block dl > div:last-child { margin-bottom:0; }
.quote-review-block dt { color:#836991; font-size:15px; }
.quote-review-block dd { margin:0; color:#624b75; font-size:17px; font-weight:600; line-height:1.9; overflow-wrap:anywhere; white-space:pre-wrap; }
.quote-review-images { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.quote-review-images figure { margin:0; }
.quote-review-images img { width:100%; height:110px; padding:4px; border:1px solid #e5dcee; border-radius:10px; background:#fff; object-fit:contain; }
.quote-review-images figcaption { margin-top:8px; color:#80648f; font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.quote-review-preview { margin:18px 0 0; padding:13px 15px; border-radius:11px; color:#7b608e; background:#f2edf8; font-size:14px; }
.quote-review-actions { display:flex; padding-top:23px; justify-content:space-between; gap:12px; }
.quote-done-dialog { position:fixed; width:min(600px,calc(100% - 32px)); padding:43px 29px; text-align:center; }
.quote-done-icon { display:grid; width:78px; height:78px; margin:0 auto 23px; place-items:center; border-radius:26px; color:#49a689; background:#e9f9f2; }
.quote-done-dialog[open] .quote-done-icon { animation:quoteStepPop .65s cubic-bezier(.34,1.56,.64,1) both; }
.quote-done-icon svg { width:38px; height:38px; }
.quote-done-dialog h2 { margin:0 0 17px; color:#825b9d; font-size:27px; font-weight:900; }
.quote-done-dialog > p:not(.quote-eyebrow) { color:#82658f; font-size:16px; }
.quote-help { color:#807089; font-size:14px; line-height:1.8; }
#quoteDoneEmail { margin:18px auto 20px; padding:13px; border-radius:13px; color:#8866a2; background:#f7f0fc; font-size:18px; overflow-wrap:anywhere; }
.quote-done-dialog .quote-primary-button { margin:20px 0 0; }
.quote-confetti { position:absolute; top:35px; opacity:0; color:#a185d8; font-size:25px; pointer-events:none; }
.quote-done-dialog[open] .quote-confetti { animation:quoteConfetti 1.7s ease-out both; }
.confetti-one { left:18%; --confetti-x:-30px; --confetti-y:115px; }
.confetti-two { right:18%; color:#dc8abd; --confetti-x:30px; --confetti-y:140px; animation-delay:.1s !important; }
.confetti-three { left:29%; top:28px; color:#70bfda; font-size:13px; --confetti-x:-60px; --confetti-y:180px; animation-delay:.15s !important; }
.confetti-four { right:26%; top:26px; color:#9bcfaf; font-size:18px; --confetti-x:50px; --confetti-y:200px; animation-delay:.23s !important; }
@media (hover:hover) { .quote-mode-card:hover { transform:translateY(-4px); border-color:#baa0e4; } .quote-feature:hover { transform:translateY(-2px); border-color:#bfa6e1; } .quote-progress button:not(:disabled):hover { transform:translateY(-2px); } }
@keyframes quoteArtFloat { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-9px) rotate(-1.5deg); } }
@keyframes quoteStar { 0%,100% { opacity:.65; transform:rotate(-12deg) scale(.9); } 50% { opacity:1; transform:rotate(12deg) scale(1.12); } }
@keyframes quoteRowIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes quoteStepPop { from { transform:scale(.72) rotate(-10deg); } to { transform:scale(1) rotate(0); } }
@keyframes quoteCheckIn { from { transform:scale(.6); opacity:.2; } to { transform:scale(1); opacity:1; } }
@keyframes quoteChoicePop { 0% { transform:scale(.97); } 65% { transform:scale(1.02); } 100% { transform:scale(1); } }
@keyframes quoteIconWiggle { 0%,100% { transform:rotate(0); } 35% { transform:rotate(-8deg); } 70% { transform:rotate(6deg); } }
@keyframes quoteEmptyFloat { 0%,100% { transform:translateY(0) rotate(-5deg); } 50% { transform:translateY(-5px) rotate(3deg); } }
@keyframes quoteDemoPulse { 0%,100% { box-shadow:0 0 0 3px #e5f8f3; } 50% { box-shadow:0 0 0 5px #e5f8f3; } }
@keyframes quoteButtonShine { 0%,65% { transform:translateX(-120%); } 82%,100% { transform:translateX(120%); } }
@keyframes quoteTooltipIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@keyframes quoteDialogIn { from { opacity:0; transform:translateY(15px) scale(.98); } to { opacity:1; transform:none; } }
@keyframes quoteConfetti { 0% { opacity:0; transform:translate(0,-10px) rotate(0) scale(.5); } 20% { opacity:1; } 100% { opacity:0; transform:translate(var(--confetti-x),var(--confetti-y)) rotate(110deg) scale(1); } }
@media (max-width:1150px) { .quote-question-title-row h3, .quote-question-title { font-size:17px; } .quote-layout { grid-template-columns:minmax(0,1fr) 274px; gap:21px; } .quote-question { grid-template-columns:142px minmax(0,1fr); padding:20px; gap:17px; } .quote-step-symbol { display:none; } .quote-progress button { padding:10px; gap:8px; font-size:15px; } .quote-mode-card { padding:18px 13px; } .quote-mode-card strong { font-size:18px; } .quote-search-row { grid-template-columns:1fr; } .quote-hero h1 { font-size:46px; } }
@media (max-width:1000px) { .quote-layout { grid-template-columns:1fr; } .quote-side { display:none; } .quote-question { grid-template-columns:145px minmax(0,1fr); padding:24px; gap:23px; } .quote-search-row { grid-template-columns:minmax(0,1fr) 180px; } .quote-mode-card strong { font-size:20px; } .quote-step-symbol { display:block; } .quote-progress button { font-size:16px; padding:12px; } .quote-nav { display:none; } .quote-header .nav { justify-content:space-between; } .quote-hero { gap:30px; } .quote-hero h1 { font-size:40px; } .quote-lead { font-size:18px; } .quote-hero-caption { font-size:14px; } .quote-art-tag { font-size:12px; padding:8px 11px; } }
@media (max-width:700px) {
  .quote-page .container { width:calc(100% - 28px); }
  .quote-header .nav { min-height:66px; padding:12px 0; gap:12px; }
  .quote-header #toplogo { width:162px; }
  .quote-back { padding:8px 10px; font-size:12px; }
  .quote-preview-note { padding:9px 10px; font-size:12px; }
  .quote-preview-note span { margin-right:5px; font-size:10px; }
  .quote-hero { grid-template-columns:1fr; gap:5px; padding-top:28px; padding-bottom:30px; }
  .quote-eyebrow { font-size:11px; }
  .quote-hero h1 { font-size:39px; margin-bottom:12px; line-height:1.38; }
  .quote-lead { font-size:17px; margin-bottom:13px; }
  .quote-hero-caption { font-size:14px; gap:6px; }
  .quote-hero-caption > span { gap:6px; }
  .quote-hero-caption svg { width:16px; height:16px; }
  .quote-hero-art { width:88%; max-width:410px; margin:0 auto; padding-top:27px; padding-bottom:30px; }
  .quote-hero-art > img { padding:7px; border-radius:18px; }
  .quote-art-orbit { inset:-15px; }
  .quote-art-tag { right:-12px; bottom:6px; font-size:12px; }
  .quote-layout { padding-bottom:44px; }
  .quote-main { scroll-margin-top:76px; }
  .quote-progress { top:75px; padding:7px; gap:5px; margin-bottom:23px; border-radius:18px; scroll-margin-top:76px; }
  .quote-progress button { min-height:80px; padding:9px 4px; gap:7px; flex-direction:column; justify-content:center; border-radius:12px; font-size:13px; }
  .quote-step-number { width:30px; height:30px; border-radius:10px; font-size:15px; }
  .quote-step-symbol { display:none; }
  .quote-progress i { width:6px; }
  .quote-section-heading { margin:0 4px 17px; align-items:flex-end; gap:12px; }
  .quote-section-heading h2 { font-size:24px; }
  .quote-section-heading .quote-eyebrow { font-size:11px; }
  .quote-step-hint { max-width:120px; font-size:12px; text-align:right; }
  .quote-question { grid-template-columns:1fr; gap:17px; padding:19px 16px; margin-bottom:16px; border-radius:20px; }
  .quote-question-heading { flex-direction:row; align-items:center; gap:10px; flex-wrap:wrap; }
  .quote-question-number { width:31px; height:31px; border-radius:10px; font-size:17px; }
  .quote-question-title-row { width:auto; flex:1; align-items:center; gap:7px; }
  .quote-question-title-row h3, .quote-question-title { font-size:17px; }
  .quote-desktop-break { display:none; }
  .quote-required, .quote-optional { font-size:11px; }
  .quote-mode-picker { gap:10px; }
  .quote-mode-card { min-height:199px; padding:15px 12px; border-radius:15px; }
  .quote-mode-card strong { font-size:17px; }
  .quote-mode-icon { width:35px; height:35px; margin-bottom:12px; border-radius:10px; }
  .quote-mode-icon svg { width:23px; height:23px; }
  .quote-mode-description { font-size:13px; padding-top:11px; }
  .quote-choice-check { top:13px; right:10px; width:22px; height:22px; border-radius:7px; }
  .quote-choice-check svg { width:15px; height:15px; }
  .quote-search-row { grid-template-columns:1fr; gap:9px; }
  .quote-input { font-size:16px !important; min-height:51px; padding:11px 12px; }
  .quote-demo-top { padding:12px; gap:8px; font-size:14px; }
  .quote-demo-top strong { max-width:180px; }
  .quote-demo-top .quote-text-button { font-size:13px !important; }
  .quote-demo-top .quote-text-button svg { width:15px; height:15px; }
  .quote-demo-empty { min-height:205px; }
  .quote-demo-empty strong { font-size:15px; }
  .quote-feature-grid { gap:9px; }
  .quote-feature { min-height:55px; padding:11px 9px; gap:8px; font-size:15px; }
  .quote-feature input { width:18px; height:18px; }
  .quote-label { font-size:16px; }
  .quote-two-columns { grid-template-columns:1fr; gap:17px; }
  .quote-textarea { min-height:176px; }
  .quote-upload { padding:20px 10px; }
  .quote-upload strong { font-size:16px; }
  .quote-file { grid-template-columns:57px minmax(0,1fr) 25px; padding:9px; gap:9px; }
  .quote-file img { width:57px; height:62px; }
  .quote-input-footer { font-size:12px; }
  .quote-input-footer .quote-text-button { font-size:13px !important; }
  .quote-primary-button, .quote-secondary-button { padding:13px 18px; min-height:53px; font-size:16px !important; }
  .quote-help-button { width:26px; height:26px; flex-basis:26px; }
  .quote-help-tooltip { font-size:15px; }
  .quote-footer img { width:145px; }
  .quote-footer a { font-size:12px; }
  .quote-page dialog { max-height:calc(100dvh - 26px); border-radius:21px; }
  .quote-review-dialog { padding:21px 16px; }
  .quote-dialog-head h2 { font-size:22px; }
  .quote-review-block { padding:17px 14px; }
  .quote-review-block h3 { font-size:17px; }
  .quote-review-block dl > div { grid-template-columns:1fr; gap:4px; margin-bottom:16px; }
  .quote-review-block dt { font-size:14px; }
  .quote-review-block dd { font-size:16px; }
  .quote-review-images { grid-template-columns:1fr 1fr; }
  .quote-review-actions { flex-direction:column-reverse; }
  .quote-review-actions button { width:100%; }
  .quote-done-dialog { padding:34px 19px; }
  .quote-done-dialog h2 { font-size:23px; }
  .quote-done-dialog > p:not(.quote-eyebrow) { font-size:15px; }
  #quoteDoneEmail { font-size:17px; }
}
@media (max-width:360px) { .quote-header #toplogo { width:145px; } .quote-hero h1 { font-size:35px; } .quote-step-name { font-size:12px; } .quote-mode-card { padding:14px 10px; } .quote-mode-card strong { font-size:16px; } .quote-feature-grid { grid-template-columns:1fr; } .quote-demo-top strong { max-width:138px; } }
@media (prefers-reduced-motion:reduce) { .quote-page *, .quote-page *::before, .quote-page *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } .quote-confetti { display:none; } }

