/* Third pass: money-led scenes, open service composition, explicit input amount. */
.services .section-heading{align-items:center}
.rate-cards{gap:28px}
.rate-card,.rate-card+.rate-card,.rate-card:nth-child(n+3){background:none;border:0;border-radius:0;box-shadow:none;padding:10px 8px 24px;overflow:visible}
.rate-card:hover,.rate-card:focus-within{box-shadow:none;transform:translateY(-5px)}
.rate-card-top{position:relative;isolation:isolate;height:190px;margin:0 -5px 14px}
.rate-card-top:before{content:"";position:absolute;inset:24% 0 0;z-index:-1;background:radial-gradient(ellipse,#d7e6ff 0,transparent 68%);transform:scaleX(1.1)}
.service-art{width:218px;height:218px}
.rate-figure strong{font-size:78px;letter-spacing:-.07em;white-space:nowrap}
.rate-number{font:inherit;display:inline-block;min-width:1.2em;font-variant-numeric:tabular-nums}
.rate-figure strong span{font-size:30px}
.rate-figure small{font-size:13px;margin-bottom:8px}
.rate-card li{font-size:13px}
.rate-card .text-link{font-size:13px;gap:8px}
.rates-caption{margin-top:4px}
/* The hero number is the amount supplied by the visitor, never an implied quote. */
.estimate-section{background:#edf3ff;padding:86px 0 90px;overflow:hidden}
.condition-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:70px;align-items:center}
.condition-story{position:relative;min-width:0;padding:15px 0 45px}
.estimate-section .condition-story h2{font-size:clamp(36px,3.8vw,49px);line-height:1.27;letter-spacing:-.065em}
.condition-story h2 span{color:var(--blue)}
.condition-intro{font-size:14px;line-height:1.85;margin-top:22px;color:#5a7096}
.request-display{position:relative;z-index:2;margin-top:46px}
.request-label{display:block;font-size:13px;color:#536c94;margin-bottom:12px}
#request-amount{display:flex;align-items:baseline;gap:8px;white-space:nowrap;font-size:clamp(40px,5.2vw,70px);font-weight:700;letter-spacing:-.06em;color:#1c54ed;font-variant-numeric:tabular-nums;line-height:1.15;min-height:1.15em}
.request-digits{display:inline-flex;align-items:baseline;line-height:1.15}
.request-unit{font-size:24px;letter-spacing:-.03em}
.number-reel{position:relative;display:inline-block;width:.63em;height:1.15em;overflow:hidden;vertical-align:bottom;letter-spacing:0}
.number-reel-track{display:flex;flex-direction:column;will-change:transform}
.number-reel-track>span{display:block;height:1.15em;line-height:1.15;flex-shrink:0;text-align:center}
.number-comma{display:inline-block;width:.27em;text-align:center}
.condition-note{position:relative;z-index:1;font-size:13px;line-height:1.85;color:#596e93;margin-top:43px;max-width:235px}
.condition-art{position:absolute;right:-9px;bottom:-33px;width:210px;pointer-events:none;filter:drop-shadow(0 18px 18px #2b54aa24)}
.condition-art img{width:100%;height:auto;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.condition-form{min-width:0;background:white;padding:34px 32px 24px;border-radius:22px;box-shadow:0 26px 65px #21457d0b;position:relative;z-index:2}
.condition-form h3{font-size:22px;margin-bottom:22px}
.condition-form .estimate-controls label{font-size:13px;color:#4d6489}
.condition-form .estimate-controls select{height:49px;border-color:#dfe6f2;border-radius:7px}
.condition-form .amount-input{border-color:#dfe6f2;border-radius:7px}
.condition-form .amount-input input{font-size:24px;padding:12px 14px}
.condition-form .amount-presets button{border-radius:5px;padding:10px 2px;transition:background .2s,color .2s,transform .2s}
.condition-form .amount-presets button[aria-pressed=true]{color:white;background:#245cf6}
.condition-form .amount-presets button:active{transform:scale(.96)}
.condition-selected{font-size:13px;line-height:1.9;margin-top:26px;color:#6a7f9d}
.condition-selected strong{color:#173768}
.condition-selected span{font-size:13px}
.condition-form>.button{width:100%;margin-top:22px;justify-content:space-between;font-size:14px;padding:18px 20px}
.condition-form .estimate-disclaimer{font-size:12px;line-height:1.8;margin-top:14px;color:#7486a2}
.estimate-example{margin-top:21px}
.estimate-example>summary{font-size:13px;color:#537094;display:flex;align-items:center;justify-content:space-between;padding:9px 0}
.estimate-example>summary svg{width:15px;height:15px}
.estimate-example .estimate-result{margin-top:12px;padding:18px;background:#f4f7fc;border-radius:8px}
.example-heading{font-size:13px;color:#49638a;font-weight:700;margin-bottom:17px}
.estimate-example .estimate-total{flex-direction:row;align-items:baseline;gap:10px}
.estimate-example .estimate-total output{font-size:23px;line-height:1.4}
.estimate-example .estimate-total>span{font-size:13px}
.example-caption{font-size:12px;color:#7a8ca8;margin-top:12px;line-height:1.7}
/* No selected strip, pill, or large white service box. */
.service-detail{padding:87px 0 60px;background:radial-gradient(ellipse at 19% 68%,#124abc 0,transparent 45%),#071c47;overflow:hidden}
.service-detail .section-heading{margin-bottom:35px}
.service-layout{display:block}
.method-selector{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-bottom:26px}
.method-tab{min-height:74px;padding:12px 0;border:0;border-radius:0;background:none;box-shadow:none;color:#819dc9;transform:none;gap:8px;transition:color .25s}
.method-tab[aria-selected=true]{border:0;background:none;box-shadow:none;transform:none;color:#fff}
.method-tab:hover{color:#cfe0ff}
.method-tab strong{font-size:21px}
.method-tab small{font-size:13px;color:#7f99c0}
.method-tab[aria-selected=true] small{color:#bed2f0}
.method-tab>svg{width:21px;flex-shrink:0;transform:translateX(-8px);transition:opacity .25s,transform .25s}
.method-tab[aria-selected=true]>svg{opacity:1;transform:translateX(0);color:#a9d3ff}
.service-panels{background:none;border-radius:0;box-shadow:none;color:white}
.guide-type{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:60px;align-items:center;min-height:440px;padding:20px 0 26px}
.guide-type:not([hidden]){animation:none}
.service-visual{position:relative;isolation:isolate;min-width:0;display:grid;place-items:center}
.service-visual:before{content:"";position:absolute;inset:50% 6% 0;z-index:-1;background:radial-gradient(ellipse,#061331a6,transparent 65%);transform:scaleY(.35)}
.service-visual :is(.detail-art,.relay-object){width:100%;max-width:425px;height:auto;aspect-ratio:1;object-fit:contain;margin:0;filter:drop-shadow(0 25px 22px #020f3e66)}
.service-copy{min-width:0;padding:10px 0}
.service-name{font-size:13px;font-weight:700;color:#9dbfff;margin-bottom:17px}
.service-copy h3{font-size:clamp(30px,3vw,39px);line-height:1.33;letter-spacing:-.06em;color:white;margin-bottom:22px}
.service-copy h3 em{font-style:normal;color:#b4d4ff}
.service-copy>p:not(.service-name){color:#bacbec;font-size:13px;line-height:1.95;max-width:470px;margin-bottom:24px}
.service-copy dl{display:grid;gap:12px;margin:0 0 27px}
.service-copy dl>div{display:grid;grid-template-columns:65px 1fr;gap:16px;border:0;padding:0;font-size:13px;line-height:1.8}
.service-copy dt{color:#7f9bc8}
.service-copy dd{margin:0;color:#c6d7f1}
.service-copy>.button{font-size:13px;padding:15px 19px;gap:30px}
.service-detail .detail-note{margin-top:12px;color:#92add5;font-size:13px;text-align:center}
/* Make the actual sequence, not decorative labels, carry the emphasis. */
.steps{gap:48px;margin-top:12px}
.steps article{display:grid;grid-template-columns:78px 1fr;gap:14px 20px;align-items:center;opacity:1}
.steps article>img{grid-column:1;grid-row:1;width:78px}
.steps article>span{grid-column:2;grid-row:1;justify-self:end;font-size:58px;line-height:1;color:#bbcae3;font-weight:700;letter-spacing:-.06em;padding:0;transition:color .5s,transform .5s}
.steps article>div{grid-column:1/-1;grid-row:2}
.steps article.step-visible>span{color:#245cf6}
.steps h3{font-size:23px;margin-bottom:12px}
.steps p{font-size:13px}
.guide-details{background:none;border-radius:0;padding:0}
.guide-details>summary{font-size:13px;padding-block:17px}
.guide-details>summary:after{content:none}
.prepare-strip{background:none;border-radius:0;border:0;padding:0;gap:25px;align-items:baseline;margin-top:42px}
.ledger-toolbar{background:none;border:0;border-radius:0;padding:0 0 20px}
.transaction-table th{background:#f4f7fc}
.transaction-status{background:none;padding:0;border-radius:0}
.transaction-table tr.row-changed{animation:row-arrive .55s cubic-bezier(.2,.8,.2,1) both}
.film-label{background:none;border-radius:0;padding:0}
/* One dominant voice and lighter supporting excerpts. */
.review-editorial{grid-template-columns:1.3fr 1fr;gap:55px;align-items:center}
.featured-story{padding:42px;min-height:495px;border-radius:26px}
.featured-story blockquote{font-size:41px;line-height:1.42;max-width:100%;min-height:180px;margin:23px 0 20px;letter-spacing:-.055em}
.featured-story>p{font-size:13px;max-width:74%}
.featured-story>.review-art{width:175px;height:auto;right:-10px;bottom:-9px;rotate:-9deg;opacity:1}
.story-type{background:none;border:0;padding:0;border-radius:0;color:#c4daff;font-size:13px}
.story-list figure,.story-list figure:first-child{background:none;padding:20px 0;border:0;border-radius:0;margin:0}
.story-list figure+figure{margin-top:12px}
.story-list blockquote{font-size:20px;line-height:1.6;letter-spacing:-.025em}
.review-controls>span{font-size:15px;display:inline-block;min-width:63px}
.situation-item[open]>summary,.faq-list details[open]>summary{color:#245cf6}
/* Strong entry motion belongs to separate foreground objects. */
.hero .campaign-float{animation:prop-reveal 1.35s cubic-bezier(.16,1,.3,1) both}
.hero .coin-one{animation-delay:.12s}
.hero .coin-two{animation-delay:.4s}
.hero .floating-note{animation-delay:.28s}
.final-section.scene-entered .final-backdrop img{animation:scene-arrive 1.3s cubic-bezier(.16,1,.3,1) both}
.final-section.scene-entered .campaign-float{animation:prop-reveal 1.1s .18s cubic-bezier(.16,1,.3,1) both}
@keyframes prop-reveal{from{opacity:0;translate:65px 70px;scale:.62}to{opacity:1;translate:0 0;scale:1}}
@media(max-width:1100px){
 .condition-layout{gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .condition-form{padding:28px 25px 22px}
 .condition-art{width:155px;right:-5px;bottom:-5px}
 .condition-note{max-width:min(200px,calc(100% - 165px));font-size:13px}
 .rate-cards{gap:20px}.rate-card h3{font-size:19px}.rate-figure strong{font-size:68px}
 .service-art{width:195px;height:195px}.rate-card-top{height:170px}
 .method-tab strong{font-size:18px}.method-selector{gap:20px}
 .guide-type{gap:35px}.service-copy h3{font-size:32px}
 .review-editorial{gap:35px}.featured-story{padding:32px;min-height:460px}.featured-story blockquote{font-size:34px;min-height:165px}
 .steps{gap:32px}.steps h3{font-size:21px}
}
@media(max-width:760px){
 .rate-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}
 .rate-card,.rate-card+.rate-card,.rate-card:nth-child(n+3){padding:4px 4px 18px}
 .rate-card-top{height:176px}.service-art{width:200px;height:200px}
 .rate-card h3{font-size:22px}.rate-figure strong{font-size:74px}.rate-card li{font-size:13px}
 .estimate-section{padding:65px 0}
 .condition-layout{grid-template-columns:1fr;gap:30px}
 .condition-story{padding:0 0 20px}.estimate-section .condition-story h2{font-size:39px}
 .condition-intro{font-size:13px;margin-top:18px}.request-display{margin-top:29px;max-width:100%}
 #request-amount{font-size:60px}.request-unit{font-size:23px}
 .condition-art{width:165px;right:0;bottom:-23px}.condition-note{font-size:13px;margin-top:25px;max-width:65%}
 .condition-form{padding:28px;border-radius:20px}
 .service-detail{padding:65px 0 40px}.service-detail .section-heading{margin-bottom:23px}
 .method-selector{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}
 .method-tab{min-height:68px;padding:12px 0;gap:5px;flex-direction:row;justify-content:flex-start;text-align:left}.method-tab>svg{display:block}.method-tab small{display:block}.method-tab strong{font-size:18px}.method-tab small{font-size:12px}.method-tab>svg{width:18px}
 .guide-type{grid-template-columns:1fr;gap:2px;padding:0;min-height:0}
 .service-visual :is(.detail-art,.relay-object){max-width:330px;width:80%}.service-visual{min-height:235px}
 .service-copy{padding:0}.service-name{font-size:13px;margin-bottom:12px}.service-copy h3{font-size:34px;margin-bottom:20px}
 .service-copy>p:not(.service-name){max-width:100%;font-size:13px}.service-copy dl>div{font-size:13px}
 .service-detail .detail-note{text-align:left;margin-top:30px;font-size:12px}
 .steps{grid-template-columns:1fr;gap:32px}.steps article{grid-template-columns:64px 1fr;gap:12px 20px}
 .steps article>img{width:64px;grid-row:1/3}.steps article>span{justify-self:start;grid-row:1;grid-column:2;font-size:32px}
 .steps article>div{grid-column:2;grid-row:2}.steps h3{font-size:21px}.steps p{font-size:13px}
 .prepare-strip{flex-direction:column;gap:7px;margin-top:30px}.prepare-strip p{font-size:13px}
 .ledger-toolbar{padding:0 0 15px}.ledger-toolbar>p{flex-direction:column;gap:4px}
 .review-editorial{grid-template-columns:1fr;gap:25px}.featured-story{padding:32px;min-height:430px}
 .featured-story blockquote{font-size:36px;min-height:150px;max-width:100%}.featured-story>p{max-width:75%}
 .featured-story>.review-art{width:145px;bottom:-10px}.story-list figure,.story-list figure:first-child{padding:17px 0}.story-list figure+figure{margin-top:0}
 .story-list blockquote{font-size:18px}.review-controls{margin:0 0 20px}
}
@media(max-width:520px){
 .rate-cards{gap:20px 16px}.rate-card-top{height:135px}.service-art{width:165px;height:165px}
 .rate-card h3{font-size:18px}.rate-figure strong{font-size:65px}.rate-figure strong span{font-size:25px}
 .rate-card li{font-size:13px}.rate-card .text-link{font-size:13px;gap:5px}.rate-figure small{font-size:12px}.rate-card ul{min-height:88px}
 .condition-form{padding:25px 20px}.condition-form h3{font-size:21px}.condition-form .amount-presets button{font-size:13px}
 .estimate-section .condition-story h2{font-size:32px}.condition-intro{font-size:13px}
 #request-amount{font-size:47px}.request-unit{font-size:21px}.request-label{font-size:13px}
 .condition-art{width:127px;right:-3px;bottom:-16px}.condition-note{max-width:66%;font-size:13px;margin-top:25px}
 .condition-form>.button{font-size:13px;padding:17px 16px}
 .estimate-example .estimate-total output{font-size:21px}
 .method-tab strong{font-size:16px}.method-tab small{font-size:12px}.method-selector{gap:6px 16px}
 .service-visual :is(.detail-art,.relay-object){width:87%;max-width:305px}.service-copy h3{font-size:30px}
 .service-copy>p:not(.service-name){font-size:13px}.service-copy dl>div{font-size:13px;gap:12px;grid-template-columns:57px 1fr}
 .service-copy>.button{width:100%;justify-content:space-between}.service-name{font-size:13px}
 .featured-story{padding:27px;min-height:430px}.featured-story blockquote{font-size:31px;min-height:150px}
 .featured-story>p{max-width:78%;font-size:13px}.featured-story>.review-art{width:130px;right:-17px;bottom:-12px}
}
@media(max-width:360px){
 .estimate-section .condition-story h2{font-size:28px}.condition-form{padding:23px 17px}#request-amount{font-size:39px}
 .condition-art{width:101px}.condition-note{font-size:12px;max-width:calc(100% - 112px)}.condition-selected span{font-size:13px}
 .rate-cards{gap:20px 12px}.rate-card h3{font-size:16px}.rate-figure strong{font-size:57px}.service-art{width:140px;height:140px}.rate-card-top{height:115px}
 .rate-card li{font-size:12px}.rate-card .text-link{font-size:12px}.method-tab strong{font-size:14px}.method-tab small{font-size:11px}
 .service-copy h3{font-size:26px}.featured-story{padding:24px;min-height:445px}.featured-story blockquote{font-size:28px}
}
.effects-paused .hero .campaign-float,.effects-paused .final-section .campaign-float{opacity:1;translate:none;scale:1;animation:none}
.effects-paused .steps article{opacity:1;transform:none}.effects-paused .steps article>span{color:#245cf6}
@media(prefers-reduced-motion:reduce){
 .hero .campaign-float,.final-section.scene-entered .campaign-float{animation:none;opacity:1;translate:none;scale:1}
 .number-reel-track{will-change:auto}.steps article>span,.condition-art img,.method-tab>svg{transition:none}
 .final-section.scene-entered .final-backdrop img{animation:none}
}
/* Pausing an entry effect must not strand content in its first frame. */
.effects-paused .hero-services,.effects-paused .hero h1,.effects-paused .hero-description,.effects-paused .hero-actions,.effects-paused .campaign-backdrop img,.effects-paused .final-backdrop img,.effects-paused .row-changed{animation:none!important;opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 .hero-services,.hero h1,.hero-description,.hero-actions,.campaign-backdrop img,.final-backdrop img,.row-changed{animation:none!important;opacity:1;transform:none}
}
/* Persistent direct-contact actions: one pair, on desktop and mobile. */
.floating-contact{position:fixed;z-index:25;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));width:min(500px,calc(100% - 32px));display:grid;grid-template-columns:1.12fr 1fr;gap:10px;transform:translateX(-50%);animation:contact-arrive .65s .3s cubic-bezier(.16,1,.3,1) backwards}
.floating-contact-link{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;height:68px;padding:0 20px;border-radius:18px;font-size:17px;font-weight:700;line-height:1.2;letter-spacing:-.025em;overflow:hidden;transition:translate .25s,box-shadow .25s,scale .15s;box-shadow:0 5px 0 var(--contact-base),0 12px 32px var(--contact-shadow)}
.floating-kakao{--contact-base:#d9b900;--contact-shadow:#4c39042b;background:#fee500;color:#251d08}
.floating-phone{--contact-base:#1742b9;--contact-shadow:#163ba945;background:#245cf6;color:#fff}
.floating-contact-link:after{content:"";position:absolute;z-index:-1;top:-70%;bottom:-70%;left:-90%;width:40%;background:linear-gradient(90deg,transparent,#ffffff75,transparent);transform:skewX(-24deg);animation:contact-shine 6s ease-in-out infinite;pointer-events:none}
.floating-phone:after{animation-delay:3s}
.floating-contact-icon{width:29px;height:29px;flex-shrink:0;transition:transform .3s;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.kakao-icon{fill:currentColor;stroke:none}.kakao-dots{stroke:#fee500;stroke-width:3;stroke-linecap:round}
.phone-icon{fill:none}.phone-signal{opacity:.7}
.floating-contact-arrow{width:18px;height:18px;margin-left:auto;transition:translate .25s}
.floating-contact-link>span{white-space:nowrap}
.floating-contact-link:hover{translate:0 -5px;box-shadow:0 7px 0 var(--contact-base),0 18px 38px var(--contact-shadow)}
.floating-contact-link:hover .floating-contact-arrow{translate:3px 0}
.floating-kakao:hover .floating-contact-icon{transform:rotate(-8deg) scale(1.08)}
.floating-phone:hover .floating-contact-icon{animation:contact-ring .6s ease-in-out}
.floating-contact-link:active{translate:0 2px;scale:.98;box-shadow:0 2px 0 var(--contact-base),0 6px 18px var(--contact-shadow)}
.floating-contact-link:focus-visible{outline:3px solid #102954;outline-offset:7px}
.footer{padding-bottom:130px}
html{scroll-padding-bottom:115px}
.contact-channel.is-requested{outline:2px solid #245cf6;outline-offset:2px}
@keyframes contact-arrive{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes contact-shine{0%,60%{left:-90%}85%,100%{left:150%}}
@keyframes contact-ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg)}45%{transform:rotate(9deg)}70%{transform:rotate(-5deg)}}
@media(max-width:760px){
 .floating-contact{width:calc(100% - 24px);max-width:480px;bottom:calc(14px + env(safe-area-inset-bottom));gap:9px;grid-template-columns:1.12fr 1fr}
 .floating-contact-link{height:60px;border-radius:15px;padding:0 14px;gap:9px;font-size:15px}
 .floating-contact-icon{width:25px;height:25px}.floating-contact-arrow{width:16px;height:16px}
 .footer{padding-bottom:calc(124px + env(safe-area-inset-bottom))}
 html{scroll-padding-bottom:100px}
}
@media(max-width:360px){
 .floating-contact-link{height:56px;font-size:14px;gap:8px;padding:0 12px;border-radius:13px}
 .floating-contact-icon{width:23px;height:23px}.floating-contact-arrow{display:none}
}
@media(hover:none){.floating-contact-link:hover{translate:none;box-shadow:0 5px 0 var(--contact-base),0 12px 32px var(--contact-shadow)}.floating-contact-link:hover .floating-contact-icon{transform:none;animation:none}}
.effects-paused .floating-contact{animation:none;opacity:1;translate:none}
.effects-paused .floating-contact-link:after{animation:none;opacity:0}
.effects-paused .floating-contact-link .floating-contact-icon{animation:none}
@media(prefers-reduced-motion:reduce){
 .floating-contact,.floating-contact-link:after,.floating-contact-link:hover .floating-contact-icon{animation:none}
 .floating-contact-link:after{opacity:0}
 .floating-contact-link,.floating-contact-icon,.floating-contact-arrow{transition:none}
}
