/* Shared editorial styles for the five language editions. */
:root {
  --color-primary: #202829;
  --color-primary-light: #364041;
  --color-primary-dark: #131b1c;
  --color-accent: #28613b;
  --color-accent-dark: #184c29;
  --color-steel-50: #f5f6f4;
  --color-steel-100: #eceeeb;
  --color-steel-200: #d9ddda;
  --color-steel-400: #b3bcb8;
  --color-steel-500: #66706c;
  --color-steel-600: #535d59;
  --color-steel-700: #39423e;
  --color-steel-800: #28312d;
  --color-steel-900: #202829;
  --container-max: 1440px;
  --container-padding: clamp(24px, 5vw, 80px);
  --header-height: 88px;
  --radius-md: 0;
  --radius-lg: 0;
  --shadow-sm: none;
  --shadow-md: none;
  --shadow-lg: none;
  --shadow-xl: none;
}
html { scroll-padding-top: calc(var(--header-height) + 24px); }
body { background: #fff; color: #202829; line-height: 1.65; }
h1,h2,h3,h4 { font-weight: 400; letter-spacing: -.035em; text-wrap: balance; }
p { text-wrap: pretty; }
:lang(ko) h1,:lang(ko) h2,:lang(ko) h3,:lang(ko) p,
:lang(ja) h1,:lang(ja) h2 { word-break: keep-all; }
a:focus-visible,button:focus-visible { outline: 2px solid #28613b; outline-offset: 5px; }
.section { padding: clamp(64px, 8vw, 120px) 0; }
.header,.header.scrolled { background: #fff; border-bottom: 1px solid #e5e7e4; box-shadow: none; }
.header-inner { gap: 32px; }
.logo { gap: 16px; flex-shrink: 0; }
.logo img { height: 36px; }
.logo-text,.header.scrolled .logo-text { font-size: 17px; font-weight: 500; color: #202829; letter-spacing: -.025em; }
.nav { gap: 28px; }
.nav-link,.header.scrolled .nav-link { font-size: 14px; font-weight: 400; color: #39423e; text-transform: none; letter-spacing: 0; padding: 14px 0; }
.nav-link::after { height: 1px; background: #202829; bottom: 7px; }
.lang-switch,.header.scrolled .lang-switch { margin-left: 8px; padding-left: 24px; gap: 4px; border-color: #d9ddda; }
.lang-switch a,.header.scrolled .lang-switch a { font-size: 11px; font-weight: 400; color: #66706c; min-width: 28px; min-height: 40px; display: grid; place-items: center; padding: 4px; }
.lang-switch a.active,.header.scrolled .lang-switch a.active { color: #202829; background: transparent; border-radius: 0; text-decoration: underline; text-underline-offset: 5px; }
.menu-toggle { min-width: 44px; min-height: 44px; }
.menu-toggle span,.header.scrolled .menu-toggle span { background: #202829; }
/* One image, one statement, one next step. */
.hero { display: block; min-height: 0; padding: var(--header-height) 0 0; background: #202829; background-attachment: scroll; }
.hero::before { display: none; }
.hero-layout { display: grid; grid-template-columns: 43% 57%; align-items: stretch; width: 100%; }
.hero-content { padding: 80px clamp(32px,4.2vw,72px) 88px max(var(--container-padding),calc((100vw - 1440px) / 2 + var(--container-padding))); max-width: none; text-align: left; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.hero-subtitle { color: #d8deda; font-size: 14px; font-weight: 400; text-transform: none; letter-spacing: 0; margin: 0 0 40px; }
.hero-title { color: #fff; font-size: clamp(48px,5.2vw,82px); font-weight: 400; line-height: 1.12; letter-spacing: -.05em; margin: 0 0 32px; }
.hero .hero-title-process { font-size: clamp(32px,3.1vw,52px); line-height: 1.3; letter-spacing: -.04em; word-break: keep-all; overflow-wrap: normal; }
.hero-description { color: #d8deda; font-size: 16px; line-height: 1.85; max-width: 380px; margin: 0 0 40px; }
.hero-image { min-width: 0; margin: 0; }
.hero-image img { height: 100%; min-height: 570px; max-height: 720px; width: 100%; object-fit: cover; object-position: 52% center; }
.btn { font-size: 14px; font-weight: 500; text-transform: none; letter-spacing: 0; min-height: 48px; padding: 14px 28px; border-width: 1px; border-radius: 999px; transition: color .18s, background .18s, border-color .18s; }
.btn-lg { padding: 16px 28px; font-size: 14px; }
.btn-primary { background: #202829; border-color: #202829; color: #fff; }
.btn-primary:hover { background: #3b4441; border-color: #3b4441; }
.hero .btn-primary { background: #fff; border-color: #fff; color: #202829; gap: 48px; }
.hero .btn-primary:hover { background: #e9ede8; border-color: #e9ede8; }
.btn-outline-dark { border-color: #202829; }
.editorial-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 48px; margin-bottom: 56px; }
.editorial-heading h2 { font-size: clamp(32px,3.3vw,48px); line-height: 1.25; }
.editorial-heading p { max-width: 440px; font-size: 16px; }
.range-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 72px 48px; }
.range-item { min-width: 0; }
.range-image { display: block; background: #f4f5f2; overflow: hidden; }
.range-image img { width: 100%; height: clamp(240px,26vw,360px); padding: 32px; object-fit: contain; mix-blend-mode: multiply; }
.range-copy { padding-top: 28px; }
.range-copy h3 { font-size: clamp(24px,2.2vw,32px); line-height: 1.35; margin-bottom: 12px; }
.range-copy h3 a { color: #202829; }
.range-copy p { font-size: 15px; margin-bottom: 20px; max-width: 480px; }
.editorial-link { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; font-size: 14px; font-weight: 500; color: #202829; border-bottom: 1px solid #8b9490; text-decoration: none; }
.editorial-link:hover { color: #28613b; border-color: #28613b; }
.editorial-link span { font-size: 20px; font-weight: 400; }
.editorial-split { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; }
.editorial-split h2 { font-size: 20px; letter-spacing: -.02em; line-height: 1.6; }
.company-summary { background: #f0f2ee; }
.company-statement { color: #202829; font-size: clamp(25px,2.9vw,40px); font-weight: 400; line-height: 1.55; letter-spacing: -.035em; margin-bottom: 32px; max-width: 800px; }
.inquiry-section { border-bottom: 1px solid #d9ddda; }
.inquiry-section p { max-width: 580px; font-size: 17px; }
.inquiry-links { display: flex; flex-wrap: wrap; gap: 32px; margin-top: 24px; }
/* Interior pages: title, description and content without a repeated banner. */
.page-hero { min-height: 0; padding: calc(var(--header-height) + 56px) 0 64px; background: #fff; border-bottom: 1px solid #e5e7e4; }
.page-hero::before { display: none; }
.page-hero-title { font-size: clamp(36px,4.5vw,64px); line-height: 1.2; font-weight: 400; color: #202829; margin-bottom: 24px; }
.page-hero-description { color: #535d59; font-size: 17px; max-width: 700px; line-height: 1.8; }
.breadcrumb { font-size: 12px; gap: 12px; margin-bottom: 40px; }
.breadcrumb a,.breadcrumb span { color: #66706c; }
.breadcrumb a:hover { color: #202829; }
.breadcrumb .breadcrumb-current { color: #39423e; }
.section-header { text-align: left; max-width: none; margin: 0 0 48px; }
.section-header::after { display: none; }
.section-title { font-size: clamp(28px,3vw,42px); font-weight: 400; line-height: 1.3; margin-bottom: 20px; }
.section-description { font-size: 16px; max-width: 680px; }
.grid { gap: 32px; }
.product-card,.catalog-card { border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.product-card:hover,.catalog-card:hover { transform: none; box-shadow: none; }
.product-card-body { padding: 24px 0; }
.product-card-title { font-size: 24px; font-weight: 400; line-height: 1.4; }
.product-card-description { font-size: 14px; line-height: 1.8; }
.product-card-link { font-size: 14px; color: #202829; text-transform: none; letter-spacing: 0; min-height: 44px; }
.product-card-link::after { margin-left: 12px; }
.home-category-thumbs { background: #f4f5f2; padding: 24px; min-height: 240px; }
.home-category-thumb { background: transparent; padding: 4px; border-radius: 0; box-shadow: none; }
.home-category-thumb img { mix-blend-mode: multiply; }
.category-card { border-top: 1px solid #d9ddda; padding-top: 28px; }
.category-card-header { padding: 0 0 20px; }
.category-product-grid { grid-template-columns: repeat(auto-fill,minmax(145px,1fr)); gap: 16px; padding: 0 0 24px; }
.category-product-item { border: 0; border-radius: 0; background: #f5f6f4; padding: 20px 12px; gap: 16px; }
.category-product-item:hover { transform: none; background: #ecefeb; }
.category-product-img { height: 120px; width: 110px; }
.category-product-img img { mix-blend-mode: multiply; }
.category-product-name { font-size: 12px; line-height: 1.6; word-break: keep-all; overflow-wrap: anywhere; }
.category-card-footer { padding: 0; border: 0; }
.product-list { gap: 64px; }
.product-item { grid-template-columns: minmax(240px,35%) minmax(0,1fr); border: 0; border-top: 1px solid #d9ddda; border-radius: 0; box-shadow: none; padding-top: 32px; gap: 48px; }
.product-item-image { background: #f4f5f2; border: 0; }
.product-item-image img { padding: 24px; mix-blend-mode: multiply; }
.product-item-content { min-width: 0; padding: 0; justify-content: flex-start; }
.product-item-content > .btn { align-self: flex-start; width: auto; }
.product-item-title { font-size: 28px; font-weight: 400; line-height: 1.4; margin: 12px 0 20px; }
.product-item-content > p { font-size: 15px; }
.product-item-model { background: transparent; color: #535d59; padding: 0; border-radius: 0; font-size: 12px; letter-spacing: 0; align-self: flex-start; }
.spec-section-title { font-size: 14px; font-weight: 500; text-transform: none; letter-spacing: 0; margin-top: 32px; margin-bottom: 12px; }
.spec-table { font-size: 13px; line-height: 1.6; }
.spec-table th,.spec-table td { padding: 12px; border-width: 0 0 1px; }
.spec-table th { background: #f5f6f4; font-weight: 500; width: 140px; }
.about-content { grid-template-columns: 1fr 1fr; gap: 80px; }
.about-image { border-radius: 0; box-shadow: none; background: #f4f5f2; }
.about-image img { width: 100%; height: 460px; padding: 32px; object-fit: contain; mix-blend-mode: multiply; }
.about-text h2 { font-size: 36px; margin-bottom: 28px; }
.about-text p { font-size: 17px; line-height: 1.9; margin-bottom: 24px; }
.catalog-download-hero { border-radius: 0; box-shadow: none; padding: 0; gap: 64px; }
.catalog-download-info h2 { font-size: 36px; font-weight: 400; }
.catalog-download-preview,.catalog-preview-thumb { border-radius: 0; box-shadow: none; }
.catalog-preview-thumb { background: transparent; }
.catalog-preview-thumb img { mix-blend-mode: multiply; }
.catalog-contents-list li::before { display: none; }
.contact-section { background: #fff; }
.contact-info-centered { max-width: 1000px; text-align: left; }
.contact-info-centered > p { margin-left: 0; }
.contact-info-title { font-size: 28px; font-weight: 400; }
.contact-email-cta { text-align: left; margin: 32px 0 56px; }
.contact-details-grid { grid-template-columns: 1fr 1fr; gap: 0 48px; }
.contact-info-item { padding: 28px 0; border-top: 1px solid #d9ddda; margin: 0; gap: 20px; }
.contact-info-icon { background: transparent; border-radius: 0; width: 28px; height: 32px; }
.contact-info-icon svg { stroke: #535d59; width: 22px; height: 22px; stroke-width: 1.4; }
.contact-info-label { font-size: 12px; margin-bottom: 12px; }
.contact-info-value { font-size: 15px; line-height: 1.8; font-weight: 400; overflow-wrap: anywhere; }
.section.bg-primary { background: #f0f2ee; }
.section.bg-primary .container { text-align: left; }
.section.bg-primary .section-title,.section.bg-primary p { color: #202829; }
.section.bg-primary .container > p { margin-left: 0 !important; }
.section.bg-primary .btn-outline { color: #202829; border-color: #202829; }
.section.bg-primary .btn-outline:hover { background: #202829; color: #fff; }
/* Footer details stay readable without competing with the page. */
.footer { background: #202829; padding: 72px 0 32px; }
.footer-grid { grid-template-columns: 1.5fr .7fr 1fr 1.2fr; gap: 48px; margin-bottom: 56px; }
.footer-brand { max-width: 320px; }
.footer-logo-text { font-size: 16px; font-weight: 400; letter-spacing: 0; }
.footer-description,.footer-links a,.footer-contact-item,.footer-contact-item a { color: #c8d0cc; font-size: 12px; line-height: 1.8; }
.footer-heading { color: #fff; font-size: 13px; font-weight: 400; text-transform: none; letter-spacing: 0; }
.footer-contact-item svg { stroke: #c8d0cc; width: 16px; height: 16px; stroke-width: 1.4; }
.footer-links a:hover,.footer-contact-item a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { border-color: #48534e; padding-top: 24px; }
.footer-copyright,.footer-registration { color: #b3bcb8; font-size: 11px; }
@media (max-width: 1180px) {
  .nav { display: none; position: fixed; top: var(--header-height); left: 0; right: 0; background: #fff; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; flex-direction: column; align-items: stretch; gap: 0; padding: 16px var(--container-padding) 24px; border-bottom: 1px solid #d9ddda; box-shadow: none; }
  .nav.active { display: flex; }
  .nav-link { width: 100%; padding: 16px 0; border-bottom: 1px solid #e5e7e4; }
  .nav-link::after { display: none; }
  .lang-switch { margin: 16px 0 0; padding: 0; border: 0; gap: 8px; }
  .lang-switch a { min-width: 44px; min-height: 44px; }
  .menu-toggle { display: block; }
  .grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 32px; }
  .footer-brand { grid-column: 1 / -1; max-width: 600px; }
  .hero-content { padding-top: 64px; padding-bottom: 64px; }
  .hero-title { font-size: 52px; }
  .hero-image img { min-height: 540px; }
}
@media (max-width: 800px) {
  :root { --header-height: 72px; }
  .hero-layout { grid-template-columns: 1fr; }
  .hero-content { padding: 48px var(--container-padding) 56px; }
  .hero-subtitle { margin-bottom: 28px; }
  .hero-title { font-size: clamp(44px,7vw,60px); }
  .hero-description { max-width: 520px; }
  .hero-image img { min-height: 0; height: 340px; max-height: none; object-position: center 60%; }
  .editorial-heading { grid-template-columns: 1fr; gap: 20px; margin-bottom: 40px; }
  .range-grid { gap: 48px 24px; }
  .range-image img { height: 240px; padding: 24px; }
  .range-copy h3 { font-size: 23px; }
  .editorial-split { grid-template-columns: 1fr; gap: 28px; }
  .company-statement { font-size: 28px; }
  .page-hero { padding-top: calc(var(--header-height) + 40px); padding-bottom: 48px; }
  .page-hero-description { font-size: 16px; }
  .product-item { grid-template-columns: 1fr; gap: 32px; }
  .product-item-image img { position: static; max-height: 400px; }
  .spec-table { display: table; }
  .spec-table tbody { display: table-row-group; }
  .spec-table tr { display: table-row; }
  .spec-table th,.spec-table td { display: table-cell; width: auto; border-bottom: 1px solid #d9ddda; }
  .spec-table th { width: 35%; white-space: normal; }
  .about-content,.catalog-download-hero { grid-template-columns: 1fr; gap: 40px; }
  .contact-details-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-contact { grid-column: 1 / -1; }
  .grid-2,.grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .about-image img { height: 340px; padding: 24px; }
  .logo-text { font-size: 14px; }
  .logo img { height: 30px; }
  .logo { gap: 12px; }
  .hero .btn { width: auto; }
  .hero-title { font-size: 44px; }
  .hero-description { font-size: 15px; }
  .hero-image img { height: 260px; }
  .range-grid,.grid-4 { grid-template-columns: 1fr; }
  .range-image img { height: 280px; }
  .range-copy { padding-top: 20px; }
  .range-copy h3 { font-size: 26px; }
  .company-statement { font-size: 26px; }
  .editorial-split h2 { font-size: 17px; }
  .spec-table { font-size: 12px; }
  .spec-table th,.spec-table td { padding: 10px 8px; overflow-wrap: anywhere; }
  .product-item-title { font-size: 25px; }
  .catalog-preview-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .footer-bottom { text-align: left; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none !important; transition: none !important; }
}

@media (max-width: 800px) { .hero .hero-title-process { font-size: clamp(28px,7.5vw,48px); } }

.hero .hero-title-slogan { font-size: clamp(28px,2.4vw,36px); line-height: 1.4; }
