/* Shared graphite, yellow and outline icons from the approved business card. */
.icon-library{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{display:block;width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hero-shell{background:var(--ink);color:#fff;border-bottom:4px solid var(--yellow)}
.hero-shell .hero{gap:clamp(32px,5vw,76px);padding-block:64px}
.hero-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.hero-shell .eyebrow{font-family:inherit;font-size:.875rem;letter-spacing:.025em;color:#e3e6e9}
.hero-shell h1{font-size:clamp(2.9rem,4.6vw,4.25rem);line-height:1.25;letter-spacing:-.045em;margin-top:25px}
.hero-shell .highlight-word{background:none;color:var(--yellow);padding:0}
.hero-shell .hero-description{font-size:1rem;line-height:1.9;color:#d3d7dd;margin-top:26px}
.hero-shell .hero-actions{gap:18px 25px;margin-top:30px}
.button-yellow{background:var(--yellow);color:var(--ink);justify-content:center;gap:12px}
.button-yellow:hover{background:#ffd04c;transform:translateY(-2px)}
.hero-shell .text-link{color:#fff}
.hero-shell .hero-location{color:#b9c0c9;flex-wrap:wrap;gap:12px;margin-top:40px;line-height:1.6}
.hero-shell .hero-location>span+span{border-color:#545b66;padding-left:12px}
.hero-shell :is(a,button):focus-visible{outline-color:var(--yellow)}
.hero-shell .hero-carousel{min-height:462px;background:#fff;color:var(--ink)}
.hero-shell .hero-window{min-height:462px}
.primary-nav .nav-contact{gap:12px}
.primary-nav .nav-contact .ui-icon{width:18px;height:18px;color:var(--yellow)}
.service-strip{background:var(--paper);border-top:0}
.section-heading h2{letter-spacing:-.04em}
.contact-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.contact-call{min-width:0;padding-right:42px}
.representative{display:inline-block;border-left:1px solid var(--line);padding-left:14px;margin-left:14px;font-weight:400;color:var(--muted)}
.contact-call .phone-number{gap:16px;margin-top:26px;font-size:clamp(1.75rem,3.1vw,2.65rem);letter-spacing:-.03em;overflow-wrap:anywhere}
.phone-number .ui-icon{width:27px;height:27px;color:var(--ink)}
.contact-channels{display:grid;margin-top:28px;border-top:1px solid var(--line)}
.contact-channel{display:flex;align-items:center;gap:18px;padding-block:18px;min-height:72px;border-bottom:1px solid var(--line)}
.contact-channel>span{min-width:0}
.contact-channel:hover .channel-value{text-decoration:underline;text-underline-offset:4px}
.channel-label{display:block;font-size:.875rem;color:var(--muted);line-height:1.5;margin-bottom:3px}
.channel-value{display:block;font-size:1.0625rem;line-height:1.6;overflow-wrap:anywhere}
.contact-call>.place-phone{display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;font-size:.875rem;line-height:1.6;margin-top:16px}
.place-phone a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink)}
.place-phone a:hover{text-decoration:underline;text-underline-offset:4px}
.contact-location{display:flex;flex-direction:column;align-items:flex-start;border-left:4px solid var(--yellow);padding:40px 34px}
.contact-location .location-heading{width:100%}
.contact-location>.text-link{margin-top:auto;padding-top:24px}
.site-footer{background:var(--ink);color:#fff;border-top:4px solid var(--yellow)}
.site-footer .footer-top{border-color:#49505b}
.site-footer .footer-top>p{color:#d3d7dd}
.site-footer .footer-bottom{font-size:.8125rem;color:#c0c6ce}
.site-footer .footer-bottom>p>span{display:block;margin:4px 0 0}
.site-footer :is(a,button):focus-visible{outline-color:var(--yellow)}
.site-footer .footer-bottom a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){
  html{scroll-padding-top:95px}
  .site-header{height:80px;gap:18px}
  .menu-toggle{display:flex;align-items:center;gap:13px;background:none;border:0;padding:12px 0 12px 12px;min-height:44px;cursor:pointer;font-size:.875rem}
  .menu-lines{position:relative;display:block;width:21px;height:14px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
  .menu-lines:after{content:"";position:absolute;width:21px;height:2px;background:var(--ink);left:0;top:4px}
  .menu-toggle[aria-expanded=true] .menu-lines{border-bottom:0;transform:translateY(5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-lines:after{top:-2px;transform:rotate(90deg)}
  .primary-nav{display:none;position:absolute;left:0;right:0;top:80px;background:#fff;box-shadow:0 14px 15px #20242b10;border-top:1px solid var(--line);padding:18px var(--gutter) 25px;flex-direction:column;align-items:stretch;gap:3px;font-size:1rem}
  .primary-nav.is-open{display:flex}
  .primary-nav>a{padding:12px 0}
  .primary-nav .nav-contact{margin-top:8px;padding:13px 17px;justify-content:flex-start}
}
@media(max-width:1000px){
  .hero-shell .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;padding-block:44px}
  .hero-shell h1{font-size:clamp(2.6rem,4.7vw,3.5rem)}
  .hero-shell .hero-location{flex-direction:column;align-items:flex-start;gap:3px;margin-top:28px}
  .hero-shell .hero-location>span+span{border:0;padding:0}
  .contact-call{padding-right:28px}
  .contact-location{padding-inline:26px}
  .channel-value{font-size:1rem}
}
@media(max-width:800px){
  .hero-shell h1{font-size:clamp(2.35rem,4.9vw,2.8rem)}
  .hero-shell .hero-description{font-size:1rem}
  .desktop-break{display:none}
  .hero-shell .hero-carousel{min-height:432px}
  .hero-shell .hero-window{min-height:432px}
  .contact-call .phone-number{font-size:1.875rem;gap:12px}
  .phone-number .ui-icon{width:23px;height:23px}
  .contact-channel{gap:12px}
}
@media(max-width:640px){
  .hero-shell .hero{grid-template-columns:minmax(0,1fr);gap:32px;padding-block:35px 30px}
  .hero-shell .eyebrow{font-size:.875rem}
  .hero-shell h1{font-size:clamp(2.6rem,9.1vw,3.6rem);margin-top:22px;line-height:1.24}
  .hero-shell .hero-description{margin-top:22px;line-height:1.85}
  .hero-shell .hero-actions{gap:12px 20px;margin-top:24px}
  .hero-shell .hero-actions .button{padding:14px 17px;gap:10px;font-size:.9375rem}
  .hero-shell .hero-actions .text-link{font-size:.875rem}
  .hero-shell .hero-location{display:none}
  .hero-shell .hero-carousel{min-height:0}
  .hero-shell .hero-window{min-height:0;aspect-ratio:1.04}
  .hero-shell .hero-carousel>.hero-slide{min-height:0;aspect-ratio:1.04}
  .project figcaption span{font-size:.875rem}
  .section-heading>div>p,.service-detail p,.approach-steps p,.approach-intro>p:not(.eyebrow){font-size:1rem}
  .contact-grid{grid-template-columns:minmax(0,1fr)}
  .contact-call{padding:30px 0}
  .contact-call .phone-number{font-size:clamp(1.625rem,7.4vw,2.5rem);gap:12px}
  .contact-channels{margin-top:24px}
  .contact-channel{padding-block:16px;gap:16px}
  .contact-channel .ui-icon{width:21px;height:21px}
  .channel-value{font-size:1rem}
  .contact-location{padding:28px 24px}
  .contact-location>.text-link{margin-top:8px;padding-top:8px}
  .footer-top>p{font-size:.9375rem}
}
@media(prefers-reduced-motion:reduce){.button-yellow:hover{transform:none}}

/* Kakao consultation remains within reach while browsing the portfolio. */
.kakao-chat-icon{display:block;width:28px;height:28px;flex:none;fill:currentColor}
.kakao-banner-copy{display:flex;flex-direction:column;min-width:0;gap:4px}
.kakao-banner-copy strong{font-size:1rem;font-weight:700;line-height:1.5}
.kakao-banner-copy>span{font-size:.875rem;font-weight:400;line-height:1.5}
.kakao-banner-arrow{margin-left:auto;flex:none;font-family:Arial,sans-serif;font-size:1.375rem;line-height:1}
.kakao-contact-banner,.kakao-floating-banner{display:flex;align-items:center;gap:16px;background:#fee500;color:#191919;border:1px solid #1919190d;transition:background-color .18s,box-shadow .18s}
.kakao-contact-banner:hover,.kakao-floating-banner:hover{background:#ffec45}
.kakao-contact-banner:focus-visible,.kakao-floating-banner:focus-visible{outline:3px solid #20242b;outline-offset:4px}
.kakao-contact-banner{padding:24px 28px;margin-bottom:28px;border-radius:8px}
.kakao-floating-banner{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));z-index:25;max-width:calc(100% - 48px);padding:16px 20px;border-radius:14px;box-shadow:0 6px 24px #0003}
.site-footer{padding-bottom:124px}
@media(max-width:640px){
  .kakao-contact-banner{padding:20px;gap:14px}
  .kakao-contact-banner .kakao-chat-icon{width:25px;height:25px}
  .kakao-floating-banner{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));max-width:none;min-height:56px;padding:14px 20px;gap:12px;border-radius:10px}
  .kakao-floating-banner .kakao-banner-copy>span{display:none}
  .kakao-floating-banner .kakao-chat-icon{width:24px;height:24px}
  .site-footer{padding-bottom:calc(112px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){.kakao-contact-banner,.kakao-floating-banner{transition:none}}
