/* Translation length must not change the boundaries of adjacent content.
   Load after the page styles. Locale-specific adjustments retain the Korean
   reference composition while allowing every translated label to remain visible. */

/* Explicitly allow text-bearing flex/grid children to shrink to their tracks. */
:is(.fc-main-nav,.fc-nav-item,.fc-header-actions,.fc-account-menu,
.fcn-notice-layout,.fcn-notice-sidebar,.fcn-sidebar-panel,.fcn-notice-row-copy,
.fcn-notice-feature>div,.fcn-section-heading>div,.fcn-category-list button>span,
.fce-services-heading>div,.fce-services-heading>p,.fcl-service-copy,
.fsp-hero>div,.fsp-contact-layout>div,.fsp-account-panel,.fsp-account-layout>div,
.fsp-form label,.fsp-volume-form label,.fci-header>div,.fckc-header>div,
.fse-stage>span:nth-child(2),.fsg-checklist>li>div,.fgu-ready-copy,
.ffr-form label,.ffr-service-summary>div,.ffr-detail-grid>div){min-width:0}

/* A notice category belongs inside its own fixed grid cell, even in French. */
.fcn-tag{max-width:100%;width:fit-content;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
.fcn-notice-row>.fcn-tag{justify-self:start}
.fcn-category-list button>span:first-child{overflow-wrap:anywhere}
.fcn-filters button{max-width:100%;white-space:normal;line-height:1.5;overflow-wrap:anywhere}

/* Translated hero copy determines the section height; the photograph and curved
   transition continue to cover the complete section. Bottom padding reserves
   room for the scroll link, slideshow controls and the decorative wave. */
html[lang]:not([lang="ko"]) :is(.fsh-hero,.fse-hero){height:auto;min-height:650px}
html[lang]:not([lang="ko"]) :is(.fsh-hero-inner,.fse-hero-inner){height:auto;min-height:650px;padding-top:calc(var(--fc-header-height) + 64px);padding-bottom:160px}
html[lang]:not([lang="ko"]) :is(.fsh-hero h1,.fse-hero h1){font-size:clamp(38px,3.8vw,58px);white-space:normal;overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) :is(.fsh-hero-inner>p,.fse-hero-copy>p){overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) .fc-hero{height:auto;min-height:700px}
html[lang]:not([lang="ko"]) .fc-hero .fc-copy-column{padding-top:calc(var(--fc-header-height) + 64px);padding-bottom:72px}
html[lang]:not([lang="ko"]) .fc-hero .fc-heading{min-height:0;font-size:clamp(38px,3.8vw,64px)}
html[lang]:not([lang="ko"]) .fc-heading :is(span,em){white-space:normal;overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) .fc-hero .fc-description{min-height:0;overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) .fc-hero .fc-actions{flex-wrap:wrap;max-width:100%}
html[lang]:not([lang="ko"]) .fc-hero .fc-process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
html[lang]:not([lang="ko"]) .fc-hero .fc-process li{min-width:0}
html[lang]:not([lang="ko"]) .fc-process-label{white-space:normal;overflow-wrap:anywhere;line-height:1.6}
html[lang]:not([lang="ko"]) .fc-experience-card small{white-space:normal;line-height:1.7;overflow-wrap:anywhere}

/* Keep actionable labels complete, letting the existing padding and hit targets
   grow vertically instead of clipping a translated word or pushing a sibling. */
html[lang]:not([lang="ko"]) :is(.fsp-button,.fsp-text-link,.fcl-dark-button,
.fce-service-more,.fce-services-heading>a,.fcn-button,.fcn-text-button,
.fcn-drawer-navigation>button,.fckc-consult,.fgu-category-links>a,
.fgu-ready .fsp-button,.fsg-outline-button,.fc-primary,.fc-secondary,
.ffr-expand,.ffr-intro>a,.fcf-primary-button){min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
html[lang]:not([lang="ko"]) :is(.fsp-button,.fc-primary,.fc-secondary,.fcl-dark-button,.fce-services-heading>a,.fcn-button)>span[aria-hidden="true"]{flex-shrink:0}
html[lang]:not([lang="ko"]) :is(.fce-services-heading,.fsp-heading-row,.fcn-section-heading,.fcn-review-actions,.fcn-review-toolbar,.fcmi-footer,.ffr-section-heading){flex-wrap:wrap}
html[lang]:not([lang="ko"]) :is(.fce-services-heading>div,.fcn-review-actions){flex-shrink:1}
html[lang]:not([lang="ko"]) :is(.fcn-count-pill,.fcn-detail-badge){max-width:100%;white-space:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) .fcn-notice-row p{white-space:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) .fcn-story-footer{flex-wrap:wrap}
html[lang]:not([lang="ko"]) .fcn-drawer-navigation{grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr) minmax(0,1.25fr)}

/* Service cards retain their photographs and proportions as minimums, while the
   copy can add lines. The image is absolute, so it follows the taller card. */
html[lang]:not([lang="ko"]) .fce-services .fc-services-grid button.fc-service-card{height:auto;min-height:210px;aspect-ratio:auto}
html[lang]:not([lang="ko"]) .fce-services .fc-card-copy{height:auto;min-height:210px}
html[lang]:not([lang="ko"]) .fce-services .fc-card-copy>strong{overflow-wrap:anywhere;line-height:1.4}
html[lang]:not([lang="ko"]) .fce-services .fc-card-description{overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) .fce-service-intro .fcl-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
html[lang]:not([lang="ko"]) .fce-service-intro .fcl-tabs button{min-width:0;white-space:normal;overflow-wrap:anywhere;min-height:48px;line-height:1.6}
html[lang]:not([lang="ko"]) :is(.fce-service-benefits strong,.fce-service-benefits small,.fce-service-flow strong,.fce-service-flow small){white-space:normal;overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) .fce-service-intro .fce-service-flow li{max-width:47%;min-width:0}
html[lang]:not([lang="ko"]) :is(.fcl-service-copy h3,.fss-prep-copy h2,.fsg-choice h3,.fsg-choice p){white-space:normal;overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) .fcmi-filters{flex-wrap:wrap;overflow-x:visible}
html[lang]:not([lang="ko"]) .fcmi-filters>button{flex:1 1 auto;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) :is(.fcmi-service,.fcmi-status,.fcmi-board .fcm-inquiry-write){max-width:100%;white-space:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) .fcmi-row-meta{flex-wrap:wrap}

/* Guide tabs remain shaped tabs, with complete titles and enough height for two
   lines. They may scroll as a group on narrow screens, never across a neighbour. */
html[lang]:not([lang="ko"]) .fgu-tabs{align-items:stretch}
html[lang]:not([lang="ko"]) .fgu-tabs>a{height:auto;min-height:76px;padding-block:13px;align-items:center}
html[lang]:not([lang="ko"]) .fgu-tabs>a[aria-selected="true"]{height:auto;min-height:80px}
html[lang]:not([lang="ko"]) .fgu-tab-title strong{white-space:normal;overflow-wrap:anywhere;line-height:1.4;letter-spacing:-.02em}
html[lang]:not([lang="ko"]) .fgu-tab-title small{overflow-wrap:anywhere;line-height:1.5}
html[lang]:not([lang="ko"]) .fckc-tabs button{white-space:normal;overflow-wrap:anywhere;min-width:0}
html[lang]:not([lang="ko"]) .fckc-process{grid-template-columns:repeat(4,minmax(0,1fr))}
html[lang]:not([lang="ko"]) .fckc-process li{min-width:0;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) .fsp-breadcrumb{flex-wrap:wrap;line-height:1.7}
html[lang]:not([lang="ko"]) .fsp-service-nav a{min-width:0;align-items:center;overflow-wrap:anywhere;line-height:1.6}
html[lang]:not([lang="ko"]) .fsp-service-nav a>span{flex-shrink:0}

/* Forms should shrink their controls with their columns rather than inherit a
   browser input/select intrinsic width. Long field names can add a line. */
:is(.fsp-form,.fsp-volume-form,.fci-form,#fcn-review-form,.ffr-form) :is(input,select,textarea){min-width:0;max-width:100%}
html[lang]:not([lang="ko"]) :is(.fca-outline,.fca-divider,.ffr-section-heading h2,.ffr-flags label,.ffr-results-heading>span,.ffr-box-breakdown th){white-space:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) .fca-outline{max-width:45%;line-height:1.6}
html[lang]:not([lang="ko"]) .fca-divider:before,
html[lang]:not([lang="ko"]) .fca-divider:after{min-width:20px}
html[lang]:not([lang="ko"]) .ffr-section-heading h2>span{flex-shrink:0}
html[lang]:not([lang="ko"]) .ffr-box-breakdown{table-layout:fixed}
html[lang]:not([lang="ko"]) .ffr-box-breakdown :is(th,td){overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) :is(.fcf-footer h3,.fcf-bottom small){white-space:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) .fcf-consult-actions{min-width:0;max-width:100%}

/* Desktop navigation can spend its free space on translated labels. At laptop
   widths the existing mega menu is the complete, accessible navigation. */
@media(min-width:1101px){
 html[lang]:not([lang="ko"]) .fc-site-header .fc-brand-row{padding-inline:clamp(24px,3vw,56px);gap:22px}
 html[lang]:not([lang="ko"]) .fc-site-header .fc-brand svg{width:180px}
 html[lang]:not([lang="ko"]) .fc-site-header .fc-main-nav{gap:clamp(14px,1.4vw,24px)}
 html[lang]:not([lang="ko"]) .fc-site-header .fc-main-nav .fc-nav-link{font-size:13px}
 html[lang]:not([lang="ko"]) .fc-header-actions{gap:12px}
 html[lang]:not([lang="ko"]) .fc-header-actions .fc-quote-link{min-width:0;padding-inline:15px;font-size:12px}
}
@media(min-width:961px) and (max-width:1280px){
 html[lang]:not([lang="ko"]) .fc-site-header .fc-main-nav{display:none!important}
 html[lang]:not([lang="ko"]) .fc-menu-toggle{display:block;margin-left:0}
 html[lang]:not([lang="ko"]) .fc-header-actions{order:2;margin-left:auto}
 html[lang]:not([lang="ko"]) .fc-menu-toggle{order:3}
}
@media(max-width:800px){
 html[lang]:not([lang="ko"]) :is(.fsh-hero,.fse-hero){min-height:640px}
 html[lang]:not([lang="ko"]) :is(.fsh-hero-inner,.fse-hero-inner){min-height:640px;padding-top:calc(var(--fc-header-height) + 48px);padding-bottom:145px}
 html[lang]:not([lang="ko"]) .fc-hero .fc-copy-column{padding-top:calc(var(--fc-header-height) + 220px);padding-bottom:72px}
 html[lang]:not([lang="ko"]) .fc-hero .fc-heading{font-size:clamp(32px,6.5vw,48px)}
 html[lang]:not([lang="ko"]) .fce-services .fc-services-grid button.fc-service-card,
 html[lang]:not([lang="ko"]) .fce-services .fc-card-copy{min-height:178px}
 html[lang]:not([lang="ko"]) .fce-service-intro .fce-service-flow li{max-width:none}
 html[lang]:not([lang="ko"]) .fgu-tabs>a{flex-basis:190px;width:190px;min-width:190px;min-height:76px}
 html[lang]:not([lang="ko"]) .fgu-tabs>a[aria-selected="true"]{min-height:80px}
}
@media(max-width:700px){
 html[lang]:not([lang="ko"]) .fc-brand-row{gap:8px;padding-inline:16px}
 html[lang]:not([lang="ko"]) .fc-brand svg{width:clamp(96px,28vw,145px)}
 html[lang]:not([lang="ko"]) .fc-header-actions{flex:1;justify-content:flex-end;gap:8px}
 html[lang]:not([lang="ko"]) .fc-header-actions .fc-quote-link{min-width:0;max-width:124px;white-space:normal;line-height:1.4;padding:9px 10px;font-size:10px}
 html[lang]:not([lang="ko"]) .fc-account-menu .fc-login-link{display:inline-flex;max-width:none;overflow:visible;text-overflow:clip;white-space:normal;line-height:1.4;font-size:10px}
 html[lang]:not([lang="ko"]) .fc-menu-toggle{width:40px;min-height:44px;flex-shrink:0}
 html[lang]:not([lang="ko"]) .fc-site-header .fc-mega-group a{min-width:0;white-space:normal;overflow-wrap:anywhere}
 html[lang]:not([lang="ko"]) .fc-mega-group a>span{flex-shrink:0}
}
@media(max-width:600px){
 html[lang]:not([lang="ko"]) :is(.fsh-hero-inner,.fse-hero-inner){padding-top:calc(var(--fc-header-height) + 40px);padding-bottom:132px}
 html[lang]:not([lang="ko"]) :is(.fsh-hero h1,.fse-hero h1){font-size:clamp(31px,8vw,42px);line-height:1.35}
 html[lang]:not([lang="ko"]) .fc-hero .fc-actions{align-items:stretch}
 html[lang]:not([lang="ko"]) .fc-hero :is(.fc-primary,.fc-secondary){flex:1 1 145px;min-width:0;justify-content:space-between}
 html[lang]:not([lang="ko"]) .fcn-review-actions{width:100%;margin-left:0}
 html[lang]:not([lang="ko"]) .fcn-review-actions .fcn-button{flex:1}
 html[lang]:not([lang="ko"]) .fce-service-intro .fcl-tabs{gap:12px}
 html[lang]:not([lang="ko"]) .fce-service-intro .fce-service-benefits{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 html[lang]:not([lang="ko"]) .fckc-tabs{align-items:stretch}
 html[lang]:not([lang="ko"]) .fckc-tabs button{flex:1 0 110px;min-height:60px;line-height:1.5}
 .fci-fields{grid-template-columns:minmax(0,1fr)}
 html[lang]:not([lang="ko"]) .fci-header h2{overflow-wrap:anywhere}
}
@media(max-width:360px){
 html[lang]:not([lang="ko"]) .fc-header-actions{gap:6px}
 html[lang]:not([lang="ko"]) .fc-header-actions .fc-quote-link{max-width:78px;padding-inline:7px;font-size:9px;gap:5px}
 html[lang]:not([lang="ko"]) .fc-account-menu .fc-login-link{font-size:9px}
 html[lang]:not([lang="ko"]) .fc-menu-toggle{width:36px}
}

/* Mobile navigation always keeps its menu control. The quote action is already
   available inside that menu and should not compete with the logo and login. */
@media(max-width:1100px){
 .fc-site-header .fc-menu-toggle{display:block;order:3;flex:0 0 44px;width:44px;min-height:44px;margin-left:0}
}
@media(max-width:800px){
 html,body{width:100%;max-width:100%;overflow-x:clip}
 body{touch-action:pan-y}
 .fc-header-actions .fc-quote-link{display:none}
 .fc-brand-row{max-width:100%;flex-wrap:nowrap}
 .fc-header-actions{min-width:0}
 .fc-account-menu .fc-login-link{display:inline-flex;max-width:96px;min-height:44px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip}
 .fc-site-header .fc-menu-toggle{min-height:44px}
 .fgu-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:8px;overflow:visible;--fgu-overlap:0px}
 .fgu-tabs>a,
 html[lang]:not([lang="ko"]) .fgu-tabs>a{width:auto;min-width:0;max-width:100%;height:auto;min-height:72px;margin-left:0;padding:12px;gap:8px;flex-basis:auto}
 .fgu-tabs>a[aria-selected="true"],
 html[lang]:not([lang="ko"]) .fgu-tabs>a[aria-selected="true"]{height:auto;min-height:72px}
 .fgu-tab-art{flex-basis:30px;width:30px;height:30px}
 .fgu-tab-title strong{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
 .fgu-tab-title small{line-height:1.5;overflow-wrap:anywhere}
 .fckc-tabs{flex-wrap:wrap;overflow-x:visible}
 .fckc-tabs button,
 html[lang]:not([lang="ko"]) .fckc-tabs button{flex:1 1 30%;max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;min-height:56px}
 .fcmi-filters{flex-wrap:wrap;overflow-x:visible}
 .fcmi-filters>button{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:600px){
 .fgu-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fgu-tabs>a,
 html[lang]:not([lang="ko"]) .fgu-tabs>a{padding-inline:11px;min-height:70px}
 .fgu-tabs>a[aria-selected="true"],
 html[lang]:not([lang="ko"]) .fgu-tabs>a[aria-selected="true"]{min-height:70px}
}

/* Below the desktop breakpoint, the shared mega menu is a left-hand drawer.
   JavaScript owns hidden/aria/focus and supplies these mobile-only controls. */
.fc-mobile-nav-toolbar,.fc-mobile-nav-backdrop,.fc-mobile-nav-actions{display:none}
@media(max-width:1100px){
 html,body{max-width:100%;overflow-x:clip}
 body{touch-action:pan-y}
 body.fc-mobile-nav-open{overflow:hidden}
 .fc-header-actions .fc-quote-link{display:none}
 .fc-mobile-nav-backdrop{position:fixed;inset:0;display:block;z-index:1;margin:0;padding:0;border:0;background:#062b327a;backdrop-filter:blur(3px);touch-action:none}
 .fc-mobile-nav-backdrop[hidden]{display:none!important}
 .fc-site-header #fc-mega-menu{position:fixed;inset:0 auto 0 0;z-index:2;width:min(380px,calc(100vw - 36px));max-width:100%;height:100vh;height:100dvh;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border:0;border-right:1px solid #dfe6e2;box-shadow:16px 0 55px #082d3233;background:#fcfdfc;animation:fc-mobile-nav-enter .23s cubic-bezier(.22,.7,.25,1);scrollbar-width:thin;touch-action:pan-y}
 .fc-mobile-nav-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:16px 22px;background:#fcfdfc;border-bottom:1px solid #e2e9e3;font-size:17px;font-weight:700;color:#123c35}
 .fc-mobile-nav-toolbar>span{min-width:0;overflow-wrap:anywhere}
 .fc-mobile-nav-close{display:grid;place-items:center;flex:0 0 44px;width:44px;min-height:44px;padding:0;border:1px solid #dfe6e2;border-radius:50%;background:#fff;color:#365d52;font:28px/1 Arial,sans-serif;cursor:pointer}
 .fc-site-header .fc-mega-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:6px 22px 0;max-width:100%}
 .fc-site-header .fc-mega-group,
 .fc-site-header .fc-mega-group:first-child,
 .fc-site-header .fc-mega-group:last-child,
 .fc-site-header .fc-mega-group:nth-child(odd){min-width:0;padding:22px 0;border:0;border-bottom:1px solid #e2e9e3}
 .fc-site-header .fc-mega-group h2{margin:6px 0 5px}
 .fc-site-header .fc-mega-group .fc-mega-heading-link{min-height:44px;font-size:17px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
 .fc-site-header .fc-mega-group>p{font-size:11px;line-height:1.7;margin-bottom:12px;overflow-wrap:anywhere}
 .fc-site-header .fc-mega-group a{min-height:44px;padding:10px 0;gap:14px;font-size:13px;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
 .fc-site-header .fc-mega-group a>span{flex-shrink:0;opacity:1}
 .fc-mobile-nav-actions{display:block;padding:23px 22px}
 .fc-site-header .fc-mobile-nav-actions .fc-quote-link{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-width:0;min-height:48px;margin:0;padding:13px 17px;border:1px solid #ff5714;border-radius:5px;background:#ff5714;color:#fff;font-size:13px;font-weight:600;line-height:1.6;white-space:normal;overflow-wrap:anywhere;text-decoration:none}
 .fc-site-header .fc-mega-footer{display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:100%;margin:0 22px;padding:20px 0 28px;font-size:10px;line-height:1.8;overflow-wrap:anywhere}
 .fc-site-header .fc-mega-footer a{min-height:44px;align-items:center;white-space:normal;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
}
@keyframes fc-mobile-nav-enter{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.fc-site-header #fc-mega-menu{animation:none}}

/* All mobile drawers cover the visible viewport completely. Their fixed close
   controls and scrolling content stay clear of display cutouts and home bars. */
.fc-mobile-nav-toolbar[hidden],.fc-mobile-nav-actions[hidden]{display:none!important}
@media(max-width:1100px){
 .fc-mobile-nav-backdrop{inset:auto;top:var(--fc-nav-viewport-top,0px);left:var(--fc-nav-viewport-left,0px);width:var(--fc-nav-viewport-width,100vw);height:var(--fc-nav-viewport-height,100dvh)}
 .fc-site-header #fc-mega-menu{inset:auto;top:var(--fc-nav-viewport-top,0px);left:var(--fc-nav-viewport-left,0px);width:var(--fc-nav-viewport-width,100vw);max-width:none;height:var(--fc-nav-viewport-height,100dvh);max-height:var(--fc-nav-viewport-height,100dvh)}
 .fc-mobile-nav-toolbar{padding-top:calc(16px + env(safe-area-inset-top,0px));padding-left:calc(22px + env(safe-area-inset-left,0px));padding-right:calc(22px + env(safe-area-inset-right,0px))}
 .fc-site-header .fc-mega-footer{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
 :is(.fcn-dialog.fcn-drawer,.fci-drawer,.fckc-drawer){inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
 html:has(:is(.fcn-drawer,.fci-drawer,.fckc-drawer)[open]),
 body:has(:is(.fcn-drawer,.fci-drawer,.fckc-drawer)[open]){overflow:hidden}
 .fcn-drawer .fcn-drawer-bar{padding-top:calc(22px + env(safe-area-inset-top,0px));padding-left:calc(21px + env(safe-area-inset-left,0px));padding-right:calc(21px + env(safe-area-inset-right,0px));flex-shrink:0}
 .fcn-drawer .fcn-drawer-content{padding-left:calc(22px + env(safe-area-inset-left,0px));padding-right:calc(22px + env(safe-area-inset-right,0px));min-height:0;min-width:0}
 .fcn-drawer-navigation{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));flex-shrink:0}
 .fci-header,.fckc-header{padding-top:calc(24px + env(safe-area-inset-top,0px));padding-left:calc(21px + env(safe-area-inset-left,0px));padding-right:calc(21px + env(safe-area-inset-right,0px));flex-shrink:0}
 .fci-scroll{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));padding-left:calc(21px + env(safe-area-inset-left,0px));padding-right:calc(21px + env(safe-area-inset-right,0px));min-width:0}
 .fckc-panel{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));min-height:0;min-width:0}
}

@media(max-width:1100px){
 .fcn-drawer-navigation,
 html[lang]:not([lang="ko"]) .fcn-drawer-navigation{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-inline:calc(16px + env(safe-area-inset-left,0px)) calc(16px + env(safe-area-inset-right,0px))}
 .fcn-drawer-navigation>span{display:none}
 .fcn-drawer-navigation>button,
 html[lang]:not([lang="ko"]) .fcn-drawer-navigation>button{min-width:0;max-width:100%;min-height:56px;padding:11px 8px;gap:6px;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.5}
 .fcn-drawer-navigation svg{flex:0 0 16px;width:16px;height:16px}
 :is(.fsp-form,.fsp-volume-form,.fci-form,#fcn-review-form,.ffr-form) :is(input,select,textarea){font-size:16px}
 .fcn-drawer .fcn-dialog-close,.fci-close,.fckc-close{flex-shrink:0;min-width:44px;min-height:44px}
}
@media(max-width:420px){
 .fcn-drawer-navigation>button,
 html[lang]:not([lang="ko"]) .fcn-drawer-navigation>button{flex-direction:column;gap:5px;min-height:68px;font-size:12px;padding:10px 7px}
}

/* Flow labels sit below their own icon rather than using an unconstrained
   centred flex child. Two rows make long mobile labels legible. */
html[lang]:not([lang="ko"]) .fce-service-flow li>div{min-width:0;max-width:100%}
html[lang]:not([lang="ko"]) .fce-service-flow :is(strong,small){display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.6}
html[lang]:not([lang="ko"]) .fc-process-label{width:100%;min-width:0;max-width:100%;text-align:center}
html[lang]:not([lang="ko"]) .fgu-steps :is(strong,p){overflow-wrap:anywhere;word-break:normal}
@media(max-width:800px){
 html[lang]:not([lang="ko"]) .fce-service-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;left:22px;right:22px;bottom:24px;width:auto;padding:18px 14px}
 html[lang]:not([lang="ko"]) .fce-service-flow li{position:relative;min-width:0;max-width:none;text-align:center}
 html[lang]:not([lang="ko"]) .fce-service-flow li>div{width:100%}
 html[lang]:not([lang="ko"]) .fce-service-flow li:before,
 html[lang]:not([lang="ko"]) .fce-service-flow li:after{display:none}
 html[lang]:not([lang="ko"]) .immersive-page .fsg-hero-inner{padding-bottom:190px}
}

:is(.fcf-main>*,.fca-company>div,.fca-branch-grid>article,.fss-prep-copy,.fss-prep-list,.fss-next>div,.fsv-note>div){min-width:0}
html[lang]:not([lang="ko"]) :is(.fco-polaroid>span,.fco-actions a,.fop-more,.fop-bottom>a){max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
html[lang]:not([lang="ko"]) :is(.fsv-card h2,.fsv-card>p,.fsv-card ol li,.fsv-card>div>a,.fca-branch-grid p,.fca-branch-grid a,.fse-stage strong,.fse-stage small){overflow-wrap:anywhere;word-break:normal}
html[lang]:not([lang="ko"]) .fsv-card>div{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:801px){
 html[lang]:not([lang="ko"]) .fce-service-flow{top:auto;right:24px;bottom:82px;width:48%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 html[lang]:not([lang="ko"]) .fce-service-flow li:nth-child(n){position:relative;inset:auto;min-width:0;max-width:none}
}
@media(max-width:800px){
 .fse-stage-pagination{overflow-x:visible}
 .fse-stage-pagination .fse-stages{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;min-width:0}
 .fse-stage-pagination .fse-stages>li{width:auto;min-width:0}
 .fse-stage-pagination .fse-stage{min-width:0;min-height:0;padding-top:18px}
 .fse-stage-pagination .fse-stage-number{margin-bottom:14px}
 .fop-filters{flex-wrap:wrap;overflow-x:visible}
 .fop-filters button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:600px){
 .fse-stage-pagination .fse-stages{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Japanese sentences need their normal character break opportunities. Korean
   keep-all rules on these shared sections otherwise turn a whole sentence into
   a single unshrinkable line, clipping the CTA or its FAQ toggle. */
html[lang]:not([lang="ko"]) :is(.fss-next h2,.fss-next p,
.fss-question strong,.fss-question>p,.fss-prep-item strong,.fss-prep-item small,
.fss-prep-item>p,.fss-prep-copy>p,.fss-faq-heading h2,.fss-faq-heading>div>p,
.fsg-hero-copy h1,.fsg-hero-copy>p,.fsg-next h2,.fsg-next .fsg-section-lead,
.fsp-contact-intro h2,.fsp-contact-intro .fsp-lead){white-space:normal;word-break:normal;overflow-wrap:anywhere}
.fss-question summary>strong{min-width:0}

/* A native select cannot wrap its selected option. Give translated shipment
   choices full field width instead of retaining six narrow desktop columns. */
html[lang]:not([lang="ko"]) .ffr-shipment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:800px){
 html[lang]:not([lang="ko"]) .ffr-shipment-grid{grid-template-columns:minmax(0,1fr)}
}

/* Apply the same natural wrapping to every guide topic's lead heading. */
html[lang]:not([lang="ko"]) .fgu-intro h3{white-space:normal;word-break:normal;overflow-wrap:anywhere}

/* Drawer prose must wrap inside its reading column too. In particular, Japanese
   quotes otherwise keep a whole sentence as a flex item's automatic minimum. */
html[lang]:not([lang="ko"]) :is(.fcn-drawer,.fckc-drawer,.fci-drawer) :is(p,li,figcaption,blockquote,h1,h2,h3,h4,h5,h6,strong,small,dd,dt,label,legend){word-break:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) :is(.fcn-drawer,.fckc-drawer,.fci-drawer) :is(figcaption,blockquote,h1,h2,h3,h4,h5,h6){white-space:normal}
html[lang]:not([lang="ko"]) #fcn-detail-quote{min-width:0;max-width:100%;flex:1;white-space:normal;word-break:normal;overflow-wrap:anywhere}
html[lang]:not([lang="ko"]) .fckc-methods{grid-template-columns:minmax(0,1fr)}
html[lang]:not([lang="ko"]) .fckc-method{min-width:0;max-width:100%}

/* The active flow layout must never override a tab panel's hidden state. */
.fce-service-flow[hidden]{display:none!important}
