/* v21 · Presentation only. Existing routes, actions, data and checkout stay intact. */
:root {
  --field-green:#244e3b; --store-green:#244e3b; --wood-brown:#433c32;
  --shop-ink:#222b25; --shop-muted:#69746d; --shop-line:#e6eae4;
  --shop-paper:#f5f7f3; --shop-ease:cubic-bezier(.22,1,.36,1);
  --contact-height:40px; --page-gutter:96px;
}
html { scroll-padding-top:112px; }
body { color:var(--shop-ink); background:#fff; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font-family:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:2px solid #477a5c; outline-offset:4px;
}
.wrap { width:calc(100% - var(--page-gutter)*2); max-width:1320px; }
.utility-bar { background:#244e3b; }
.utility-inner { height:40px; min-height:40px; }
.utility-inner>span { font-size:11px; color:#e0e9e2; }
.contact-actions>a { min-height:40px; }
.contact-actions>a strong { font-size:16px; letter-spacing:.3px; }
.contact-actions .contact-list { min-height:32px; font-size:11px; }
[data-quote-count] { border-radius:50%; min-width:19px; height:19px; font-size:10px; }
.site-header { background:#fff; }
.header-main { grid-template-columns:230px minmax(240px,1fr) auto; gap:38px; padding-block:26px; }
.header-main .brand { gap:10px; }
.header-main .brand-title { font-size:30px; letter-spacing:-1.4px; color:var(--wood-brown); }
.header-main .brand-symbol { width:47px; height:54px; }
.header-main .brand-title small { font-size:7px; letter-spacing:1.1px; color:#7b8176; margin-top:8px; }
.header-search form { height:52px; border:1px solid #dce3d9; border-radius:8px; background:#f7f9f5; padding-inline:10px; box-shadow:none; }
.header-search input { font-size:15px; padding-inline:12px; }
.header-search input::placeholder { color:#8a9389; }
.header-search form:focus-within { background:#fff; border-color:#56785f; box-shadow:0 0 0 3px #244e3b0a; }
.header-actions { gap:20px; }
.header-actions>button { min-width:42px; font-size:10px; color:#647064; gap:6px; }
.header-actions .icon { width:24px; height:24px; stroke-width:1.5; }
.main-nav { border-top:1px solid #f0f2ee; border-bottom:1px solid var(--shop-line); box-shadow:0 3px 10px #233c2d03; background:#fffffff5; }
.nav-inner { height:56px; gap:28px; }
.nav-inner>a,.nav-inner>button { min-height:56px; font-size:14px; font-weight:550; color:#323b32; position:relative; }
.nav-inner>.all-menu { border-radius:6px; min-height:38px; padding-inline:14px; margin-right:4px; background:#eff4ed; color:var(--field-green); }
.nav-inner>.nav-popular { color:#244e3b; }
.nav-inner>.nav-consult { font-size:12px; color:#647064; gap:16px; }
.main-nav a.selected { box-shadow:inset 0 -2px #244e3b; color:#244e3b; background:none; }
.nav-inner>a:after { content:''; position:absolute; bottom:9px; left:0; right:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; }
/* Framed landscape, with a quiet reading area and consistent banner controls. */
.main-promotion { width:calc(100% - var(--page-gutter)*2); max-width:1320px; margin:24px auto 0; padding:0; }
.shop-banner { width:100%; height:450px; max-width:none; margin:0; border-radius:16px; overflow:hidden; isolation:isolate; background:#eff3e9; }
.banner-inner { width:100%; max-width:none; padding:0 48px; }
.banner-copy,.marine-slide .banner-copy,.kitchen-slide .banner-copy { max-width:80%; padding-top:48px; position:relative; z-index:2; }
.workshop-slide:before,.marine-slide:before,.kitchen-slide:before { inset:-2px; opacity:1; filter:none; background-position:65% center; }
.workshop-slide:after,.marine-slide:after,.kitchen-slide:after {
  background:linear-gradient(90deg,#f8faf4fc 0%,#f8faf4f5 26%,#f8faf4c7 43%,#f8faf428 70%,#f8faf400 100%);
}
.banner-tag { background:none; border:0; border-radius:0; padding:0; color:#60775d; font-size:12px; font-weight:550; gap:8px; letter-spacing:.3px; margin-bottom:19px; }
.field-dot { width:5px; height:5px; background:#4d6d45; box-shadow:none; }
.shop-banner h1,.shop-banner h2,.marine-slide h2,.kitchen-slide h2 { font-size:clamp(38px,3.5vw,52px); font-weight:700; line-height:1.27; letter-spacing:-2px; color:#433d32; text-wrap:balance; }
.shop-banner h1 em { color:#244e3b; font-style:normal; }
.shop-banner p,.marine-slide p,.kitchen-slide p { font-size:15px; line-height:1.9; color:#687365; margin:19px 0 25px; }
.hero-actions { gap:10px; flex-wrap:wrap; }
.hero-button,.marine-slide .hero-button,.kitchen-slide .hero-button { min-height:48px; padding:12px 20px; min-width:190px; font-size:13px; border-radius:6px; border:1px solid #244e3b; background:#244e3b; box-shadow:none; gap:24px; font-weight:600; }
.hero-catalog-link { min-height:48px; padding:12px 16px; font-size:12px; color:#4f5f4d; background:#ffffffa6; border:1px solid #d3dece; border-radius:6px; }
.hero-button:after { display:none; }
.landscape-caption { right:30px; bottom:30px; padding:14px 17px; background:#ffffffe6; border:1px solid #ffffffa6; border-radius:8px; text-align:left; }
.landscape-caption>p { font-size:12px; line-height:1.7; margin:0; color:#6f7867; }
.landscape-caption .field-line { color:#3d573b; font-weight:600; }
.banner-controls { width:auto; max-width:none; left:48px; right:48px; transform:none; padding:0; bottom:22px; gap:22px; color:#52664f; }
.banner-dots { gap:14px; }
.banner-dots>button { width:64px; height:38px; min-height:38px; padding:12px 0 0; font-size:10px; color:#6b7864; opacity:1; }
.banner-dots>button:after { height:2px; background:#cad4c3; border-radius:2px; transform-origin:left; }
.banner-dots>button.active { color:#244e3b; }
.banner-dots>button.active:after { background:#244e3b; }
.banner-navigation { gap:2px; }
.banner-counter { font-size:10px; margin-right:8px; color:#7c8575; }
.banner-counter b { color:#36513a; font-weight:600; }
.banner-navigation>button,.banner-navigation>.banner-pause { width:32px; min-width:32px; height:36px; min-height:36px; border-radius:50%; }
/* Category navigation and shelves share a single horizontal rhythm. */
.quick-categories { display:grid; grid-template-columns:230px 1fr; align-items:center; gap:36px; padding:40px 0; margin-bottom:14px; border-bottom:1px solid var(--shop-line); }
.quick-title { display:block; margin:0; }
.quick-title>span { display:block; font-size:11px; color:#788775; letter-spacing:.2px; margin-bottom:10px; }
.quick-title h2 { font-size:22px; font-weight:650; line-height:1.45; letter-spacing:-.8px; color:#323e30; margin:0; }
.shortcut-grid { width:100%; max-width:none; gap:16px; grid-template-columns:repeat(6,minmax(0,1fr)); }
.shortcut-grid>button { gap:10px; }
.shortcut-grid img,.shortcut-grid>button:nth-child(2n) img,.shortcut-grid>button:nth-child(6) img { width:76px; height:76px; padding:12px; border-radius:22px; background:#f5f7f1; border:1px solid #e9ede3; }
.shortcut-grid>button:nth-child(2n) img { background:#f9f6ef; border-color:#eeebe3; }
.shortcut-grid strong { font-size:12px; font-weight:550; color:#56614f; }
.featured-section,.new-arrivals { padding-block:36px 44px; }
.shelf-heading { display:grid; grid-template-columns:1fr auto; gap:7px 20px; align-items:center; margin-bottom:26px; padding:0; border:0; }
.shelf-heading>.section-eyebrow { display:block; grid-column:1; font-size:11px; letter-spacing:.3px; color:#83907b; }
.shelf-heading h2 { grid-column:1; display:flex; align-items:center; font-size:28px; font-weight:700; color:#28372a; letter-spacing:-1px; gap:10px; }
.shelf-heading p { display:none; }
.shelf-heading .text-button { grid-column:2; grid-row:1/3; align-self:end; font-size:12px; min-height:36px; color:#6c7866; margin:0; gap:10px; }
.best-indicator,.new-indicator { font-size:9px; letter-spacing:.4px; padding:5px 7px; border:0; border-radius:4px; background:#edf2e8; color:#57734a; font-weight:600; }
.best-indicator { background:#f8f0e6; color:#966e43; }
.shelf-grid { gap:26px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.product-grid { --catalog-columns:5; grid-template-columns:repeat(var(--catalog-columns),minmax(0,1fr)); gap:40px 22px; }
.popular-grid,.recent-grid { --catalog-columns:4; }
.product-card,.shelf-grid .product-card:nth-child(n) { display:flex; flex-direction:column; min-width:0; background:transparent; }
.product-visual { aspect-ratio:1.04; border:1px solid #e9ede6; border-radius:10px; box-shadow:none; background:#f6f8f3; isolation:isolate; }
.product-open { display:block; background:#f6f8f3; }
.product-open .catalog-photo,.product-open .uploaded-photo { padding:24px; background:white; mix-blend-mode:multiply; object-fit:contain; }
.product-card .wish-button { width:34px; height:34px; right:10px; top:10px; border:1px solid #e6ebe2; color:#7d8977; background:#ffffffed; box-shadow:none; }
.product-card .wish-button.selected { color:#244e3b; border-color:#bbcfbb; background:#f1f7ee; }
.product-card .wish-button .icon { width:18px; height:18px; }
.product-caption { padding:15px 1px 0; flex:1; }
.product-caption>.product-badges { min-height:21px; margin-bottom:8px; }
.promo-badge { font-size:10px; line-height:14px; padding:2px 6px; border-radius:3px; font-weight:600; background:#faf2ea; border-color:#efe3d6; color:#956c46; }
.new-badge { background:#edf4e9; border-color:#dfeada; color:#547947; }
.soldout-badge { background:#f0f1ee; border-color:#e4e7df; color:#80867b; }
.product-meta { font-size:11px; color:#8a9284; min-height:18px; margin-bottom:5px; }
.product-name,.product-card .product-name { font-size:16px; font-weight:600; line-height:1.55; height:3.1em; min-height:3.1em; max-height:3.1em; letter-spacing:-.4px; color:#2b3228; }
.product-spec { font-size:12px; line-height:1.6; height:3.2em; min-height:3.2em; max-height:3.2em; margin-top:5px; color:#7d8676; }
.product-price,.product-grid .product-price { font-size:24px; line-height:1.3; font-weight:700; letter-spacing:-.6px; margin-top:12px; min-height:49px; align-items:flex-end; font-variant-numeric:tabular-nums; }
.product-price small { font-size:12px; font-weight:500; }
.product-price .retail-label { font-size:10px; line-height:1.8; color:#909887; }
.product-price .stock { font-size:10px; padding-bottom:3px; color:#87917f; }
.product-card-buttons,.shelf-grid .product-card-buttons { margin-top:13px; padding-top:10px; border-top:1px solid var(--shop-line); gap:8px; }
.product-card-buttons>button { min-height:36px; font-size:11px; color:#7c8872; }
.product-card-buttons>button:last-child { padding-inline:9px; border-radius:5px; background:#f0f5eb; color:#45623a; font-weight:600; }
.restock-link { min-height:34px; font-size:11px; background:#f0f3ebe8; }
/* Full-width service strip provides a natural pause between product shelves. */
.wide-service { width:calc(100% - var(--page-gutter)*2); max-width:1320px; margin:12px auto 10px; background:#edf3e8; border:1px solid #e4ebdd; border-radius:10px; }
.wide-service>.wrap { width:100%; padding:30px 36px; min-height:160px; gap:28px; }
.wide-service span:not(.button span) { font-size:11px; letter-spacing:.3px; color:#819173; }
.wide-service h2 { font-size:24px; font-weight:650; line-height:1.5; letter-spacing:-.8px; color:#355132; margin-top:8px; }
.wide-service p { font-size:12px; color:#7d8c70; margin-top:7px; }
.wide-service .button { min-height:46px; min-width:188px; background:#244e3b; color:#fff; border:1px solid #244e3b; border-radius:6px; font-size:12px; padding:12px 18px; box-shadow:none; }
/* Catalog, content pages, shopping lists and dialogs. */
.catalog { padding-block:42px 44px; }
.section-heading { margin-bottom:24px; gap:18px; }
.section-heading h2 { font-size:28px; font-weight:700; letter-spacing:-1px; color:#28372a; }
.section-heading h2 #product-count { font-size:13px; color:#85927b; }
.section-heading .outline-link { min-height:40px; padding:9px 12px; border:1px solid #dce5d6; color:#547246; border-radius:6px; }
.tabs { background:#f3f6ef; border:1px solid #e8ede3; border-radius:8px; gap:4px; padding:5px; }
.tabs button { min-height:42px; padding:10px 24px; border-radius:5px; color:#7d8874; font-size:13px; }
.tabs button.active { border-radius:5px; background:#fff; color:#244e3b; box-shadow:0 1px 4px #2c42200c; font-weight:650; }
.catalog-subrow { padding:18px 0; gap:18px; }
.subcategories { gap:5px; }
.subcategories button { min-height:36px; padding:7px 11px; font-size:12px; border-radius:5px; }
.subcategories button.active { background:#eef4e8; color:#49673c; }
.sort-label select { min-height:36px; font-size:12px; border:1px solid #e0e7d9; border-radius:5px; background:#fff; }
.catalog-tools { padding:16px 0 24px; gap:20px; }
.catalog-tools>p { font-size:12px; line-height:1.8; color:#839075; }
.catalog-tools>p strong { color:#5a7050; }
.catalog-views { padding:3px; border-radius:6px; background:#f5f7f1; gap:2px; }
.catalog-views button { border:1px solid transparent; min-height:36px; padding:6px 10px; font-size:11px; border-radius:4px; }
.catalog-views button[aria-pressed="true"] { background:#fff; border-color:#dfe8d6; color:#44653a; }
.catalog-pager { padding-block:32px 10px; }
.pagination { gap:6px; }
.pagination button { min-width:40px; min-height:40px; border-radius:6px; border-color:#e5ebde; }
.pagination button.active { background:#244e3b; border-color:#244e3b; }
.catalog-note { margin-top:24px; line-height:1.9; color:#849076; }
body[data-view="catalog"] #products>.section-heading { border-radius:10px; min-height:132px; padding:26px 30px; }
.content-page-heading { align-items:center; padding-bottom:22px; border-bottom:1px solid var(--shop-line); margin-bottom:30px; }
.content-page-heading h1 { font-size:28px; color:#2d3e2a; font-weight:650; }
.page-back { font-size:12px; border-radius:5px; min-height:38px; border-color:#dfe6d8; }
#page-content .product-detail { gap:48px; align-items:start; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.detail-image { max-width:none; width:100%; border-radius:12px; overflow:hidden; background:#f6f8f3; border:1px solid #e5ebde; }
.detail-image>.catalog-photo,.detail-image>.uploaded-photo { padding:36px; background:#fff; mix-blend-mode:multiply; }
#page-content .detail-info h3 { font-size:26px; line-height:1.5; letter-spacing:-.8px; color:#2d3628; }
#page-content .detail-info>p { font-size:14px; color:#7c8970; }
#page-content .detail-info .price { font-size:32px; color:#244e3b; font-variant-numeric:tabular-nums; }
#page-content .detail-info dl { font-size:13px; padding-block:20px; row-gap:12px; }
.detail-info select { border-radius:6px; min-height:48px; font-size:16px; }
.detail-buttons .button,.button.primary,.button.secondary { border-radius:6px; }
.detail-wholesale { border-radius:8px; padding:20px; background:#f4f7ee; }
.detail-total { padding-block:18px; }
.quantity { margin-top:18px; }
.qty-controls { border-radius:6px; overflow:hidden; }
.list-row { border-color:#e7ecdf; padding-block:24px; gap:20px; }
.list-row>div { min-width:0; }
.list-row .catalog-photo,.list-row .uploaded-photo { border-radius:8px; border:1px solid #e5ebde; }
.cart-total { border-radius:8px; padding:24px; margin-top:24px; background:#f4f7ee; }
.catalog-item { border-radius:0; padding:24px 12px; border-color:#e7ecdf; }
.catalog-thumb,.quote-thumb { border-radius:8px; background:#f6f8f3; border-color:#e7ecdf; }
.catalog-thumb img,.quote-thumb img { mix-blend-mode:multiply; }
.catalog-choose select,.catalog-choose input,.quote-item input { border-radius:6px; border-color:#dfe7d6; }
.catalog-choose>div>button { border-radius:6px; background:#edf4e5; border-color:#dce7cf; }
.wholesale-intro,.quote-contact { border-radius:10px; border-color:#e1ead8; }
.account-dialog { border-radius:14px; background:#fff; box-shadow:0 24px 80px #142a2530; }
.account-head { background:#fff; padding:16px 22px; border-color:#e9ede5; }
.account-body { padding:28px; }
.account-body input { border-radius:6px; min-height:48px; background:#fafbf8; }
.social-login,.account-submit { border-radius:6px; min-height:48px; }
.account-status,.notice,.empty-state { border-radius:8px; }
.service-banners { gap:22px; margin-top:18px; margin-bottom:34px; }
.service-banner,.service-banner:first-child,.service-banner:last-child { border-radius:10px; padding:28px; border:1px solid #e7ecdf; background:#f6f8f2; }
.service-banner:last-child { background:#f9f6ef; border-color:#eee8db; }
.service-banner strong { font-size:20px; color:#435637; }
.service-banner small { font-size:12px; line-height:1.8; color:#829173; }
.phone-help { border-color:#e6eddd; padding-block:25px 30px; }
.phone-help p { font-size:13px; color:#7e8e70; }
.phone-help>a { color:#355a36; font-size:26px; letter-spacing:-.5px; }
/* Peripheral controls use the outer gutter, never the product columns. */
.side-menu-trigger,.side-best-trigger { left:max(16px,calc((100vw - 1500px)/2)); width:58px; min-height:68px; border-radius:8px; box-shadow:0 2px 8px #23452006; }
.side-menu-trigger { top:42%; background:#244e3b; }
.side-best-trigger { top:calc(42% + 79px); background:#fff; border-color:#e1e8d8; color:#54713f; }
.side-best-trigger .best-spark { display:none; }
.shopping-rail { right:max(16px,calc((100vw - 1500px)/2)); bottom:188px; width:62px; border-radius:9px; border-color:#e1e8d9; box-shadow:0 3px 14px #294c1f06; }
.shopping-rail>button { min-height:66px; font-size:9px; }
.font-float { right:max(16px,calc((100vw - 1500px)/2)); bottom:125px; min-height:42px; min-width:62px; border-radius:7px; }
.kakao-float { right:max(22px,calc((100vw - 1488px)/2)); bottom:56px; width:50px; height:50px; min-height:50px; box-shadow:0 4px 12px #695e1d16; }
.category-menu { border-right:1px solid #e6ebdf; box-shadow:12px 0 45px #23351e14; }
.category-menu>.wrap { width:100%; padding:26px; }
.category-menu-top>a { font-size:20px; font-weight:650; color:#244e3b; }
.drawer-popular { border-radius:6px; background:#eff4e9; }
.toast { border-radius:8px; background:#284b35; color:#fff; box-shadow:0 8px 28px #1835201f; font-size:13px; max-width:calc(100vw - 32px); }
/* Business information remains compact and readable, including narrow phones. */
.site-footer { background:#f7f8f3; color:#76836a; border-top:1px solid #e6ebdf; margin-top:20px; }
.site-footer .footer-nav>.wrap { padding-block:13px; }
.site-footer .footer-main { grid-template-columns:minmax(230px,1fr) minmax(490px,1.25fr); gap:36px; padding-block:32px; }
.site-footer .footer-company { line-height:1.9; color:#87917c; }
.site-footer .footer-wholesale { border-radius:10px; border-color:#e0e8d5; grid-template-columns:1fr 1.08fr; }
.site-footer .footer-contact,.site-footer .footer-bank { padding:22px; }
.site-footer .footer-contact { background:#edf3e5; }
.site-footer .footer-contact>a:not(.footer-phone-link),.site-footer .footer-bank .bank-number { font-size:23px; letter-spacing:-.7px; color:#3e5632; }
.site-footer .bank-name { font-size:12px; background:none; padding:0; color:#5e7650; font-weight:650; }
.site-footer .bank-copy { min-height:32px; background:#f5f8ef; border-radius:5px; font-size:11px; }
.site-footer .bank-copy span { font-size:11px; }
.footer-bottom { padding-block:15px; border-color:#e5ebdd; }
/* Motion: no infinite flashing, scaling text, shimmer, or looping attention cues. */
.popular-pulse,.best-spark,.field-dot,.badge-dot,.best-indicator,.new-indicator,
[data-motion-scope] .popular-pulse,[data-motion-scope] .best-spark,
[data-motion-scope] .best-indicator>span,[data-motion-scope] .new-indicator>span,
.wide-service[data-motion-scope] .button>span { animation:none!important; }
.banner-slide.active .banner-copy { animation:none!important; }
@media(prefers-reduced-motion:no-preference) {
  button,a,.header-search form { transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .25s ease,transform .25s var(--shop-ease); }
  .product-card { transition:transform .35s var(--shop-ease); }
  .product-visual { transition:border-color .3s ease,box-shadow .35s ease; }
  .product-open .catalog-photo,.product-open .uploaded-photo { transition:transform .65s var(--shop-ease); }
  .shortcut-grid img { transition:transform .4s var(--shop-ease),border-color .3s ease,box-shadow .3s ease; }
  .nav-inner>a:after,.hero-button>span,.text-button>span,.wide-service .button>span { transition:transform .3s var(--shop-ease); }
  .banner-slide.active { animation:jh-banner-in .65s ease both; }
  .banner-slide.active:before { animation:jh-landscape 8s cubic-bezier(.2,.55,.35,1) both; }
  .banner-slide.active .banner-tag { animation:jh-copy-in .65s var(--shop-ease) both; }
  .banner-slide.active h1,.banner-slide.active h2 { animation:jh-copy-in .75s .06s var(--shop-ease) both; }
  .banner-slide.active .banner-copy>p { animation:jh-copy-in .75s .13s var(--shop-ease) both; }
  .banner-slide.active .hero-actions,.banner-slide.active .banner-copy>.hero-button { animation:jh-copy-in .75s .19s var(--shop-ease) both; }
  .category-menu:not([hidden]) { animation:jh-drawer-in .32s var(--shop-ease) both; }
  .menu-shade:not([hidden]) { animation:jh-fade-in .25s ease both; }
  .account-dialog[open] { animation:jh-dialog-in .26s var(--shop-ease) both; }
  .account-dialog[open]::backdrop { animation:jh-fade-in .25s ease both; }
  .content-page:not([hidden]) { animation:jh-copy-in .4s var(--shop-ease) both; }
  .banner-slide.active:before { animation-play-state:running; }
  .shop-banner:hover .banner-slide:before,.shop-banner:focus-within .banner-slide:before { animation-play-state:paused; }
  @keyframes jh-banner-in { from{opacity:.65} to{opacity:1} }
  @keyframes jh-landscape { from{transform:scale(1.035)} to{transform:scale(1)} }
  @keyframes jh-copy-in { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
  @keyframes jh-drawer-in { from{opacity:.6;transform:translateX(-24px)} to{opacity:1;transform:translateX(0)} }
  @keyframes jh-dialog-in { from{opacity:0;transform:translateY(12px) scale(.985)} to{opacity:1;transform:translateY(0) scale(1)} }
  @keyframes jh-fade-in { from{opacity:0} to{opacity:1} }
}
@media(hover:hover) and (pointer:fine) {
  .nav-inner>a:hover { color:#244e3b; }
  .nav-inner>a:hover:after { transform:scaleX(1); }
  .header-actions>button:hover { color:#244e3b; }
  .product-card:hover { transform:none; }
  .product-card:hover .product-visual { border-color:#cfddc4; box-shadow:0 6px 18px #26451e06; }
  .product-card:hover .product-open img { transform:scale(1.045); }
  .product-card-buttons>button:last-child:hover { background:#e3edd9; }
  .shortcut-grid>button:hover img { transform:translateY(-4px); border-color:#cfddc5; box-shadow:0 6px 12px #26451e08; }
  .hero-button:hover,.wide-service .button:hover { transform:translateY(-1px); background:#193c2b; }
  .hero-button:hover>span,.wide-service .button:hover>span,.text-button:hover>span { transform:translateX(3px); }
  .hero-catalog-link:hover { background:#fff; border-color:#aabd9b; }
  .banner-navigation>button:hover { background:#ffffffa6; }
  .wish-button:hover { transform:scale(1.06); }
  .catalog-item:hover { background:#fafcf7; }
}
@media(prefers-reduced-motion:no-preference) {
  button:active,.button:active { transform:translateY(1px); }
  .wish-button:active { transform:scale(.94); }
}
@media(min-width:1600px) {
  .header-main { grid-template-columns:260px minmax(280px,1fr) auto; gap:54px; padding-block:30px; }
  .shop-banner { height:478px; }
  .banner-copy,.marine-slide .banner-copy,.kitchen-slide .banner-copy { padding-top:54px; }
  .banner-inner { padding-inline:56px; }
  .banner-controls { left:56px; right:56px; }
}
@media(max-width:1199px) {
  :root { --page-gutter:36px; }
  .header-main { grid-template-columns:210px minmax(210px,1fr) auto; gap:24px; }
  .header-main .brand-title { font-size:27px; }
  .header-actions { gap:15px; }
  .nav-inner { gap:23px; }
  .nav-inner>.desktop-only { display:none; }
  .side-menu-trigger,.side-best-trigger,.shopping-rail { display:none; }
  .font-float { right:20px; bottom:108px; background:#fffffff5; }
  .kakao-float { right:26px; bottom:42px; }
  .product-grid { --catalog-columns:4; }
  .quick-categories { grid-template-columns:190px 1fr; gap:24px; }
  .shortcut-grid { gap:10px; }
  .quick-title h2 { font-size:21px; }
  .shortcut-grid img,.shortcut-grid>button:nth-child(n) img { width:70px; height:70px; border-radius:20px; }
  .site-footer .footer-main { gap:26px; grid-template-columns:minmax(220px,1fr) minmax(460px,1.25fr); }
  .site-footer .footer-contact,.site-footer .footer-bank { padding:20px; }
  .site-footer .footer-contact>a:not(.footer-phone-link),.site-footer .footer-bank .bank-number { font-size:21px; }
}
@media(max-width:999px) {
  :root { --page-gutter:28px; }
  .header-main { grid-template-columns:180px minmax(170px,1fr) auto; gap:20px; }
  .header-main .brand-title { font-size:24px; }
  .header-main .brand-symbol { width:39px; height:46px; }
  .header-actions { gap:12px; }
  .header-actions>button { min-width:32px; font-size:9px; }
  .nav-inner { gap:22px; overflow-x:auto; scrollbar-width:none; }
  .nav-inner>a,.nav-inner>button { flex-shrink:0; white-space:nowrap; font-size:13px; }
  .nav-inner>.nav-consult { display:none; }
  .quick-categories { grid-template-columns:1fr; gap:24px; }
  .quick-title { display:flex; align-items:baseline; gap:14px; }
  .quick-title>span { margin:0; }
  .shortcut-grid { max-width:760px; }
  .shelf-grid { gap:18px; }
  .product-grid { --catalog-columns:3; gap:32px 18px; }
  .popular-grid,.recent-grid { --catalog-columns:3; }
  .product-open .catalog-photo,.product-open .uploaded-photo { padding:18px; }
  .product-card-buttons>button { font-size:10px; }
  .site-footer .footer-main { grid-template-columns:1fr; }
  .site-footer .footer-wholesale { width:100%; grid-template-columns:1fr 1fr; }
  .site-footer .footer-contact,.site-footer .footer-bank { padding:24px; }
  .site-footer .footer-contact>a:not(.footer-phone-link),.site-footer .footer-bank .bank-number { font-size:26px; }
}
@media(max-width:800px) {
  :root { --page-gutter:24px; --contact-height:40px; }
  .utility-inner { width:calc(100% - 32px); height:40px; min-height:40px; }
  .header-main { grid-template-columns:1fr auto; gap:18px; padding-block:22px 18px; }
  .header-main .brand-title { font-size:28px; }
  .header-main .brand-symbol { width:42px; height:49px; }
  .header-search { grid-row:2; grid-column:1/-1; }
  .header-search form { height:48px; }
  .header-actions { gap:20px; }
  .header-actions>button { font-size:10px; }
  .nav-inner { height:51px; gap:22px; }
  .nav-inner>a,.nav-inner>button { min-height:51px; }
  .nav-inner>.all-menu { min-height:35px; }
  .main-promotion { margin-top:18px; }
  .shop-banner { height:428px; border-radius:12px; }
  .banner-inner { padding-inline:32px; }
  .banner-copy,.marine-slide .banner-copy,.kitchen-slide .banner-copy { max-width:100%; padding-top:38px; }
  .shop-banner h1,.shop-banner h2,.marine-slide h2,.kitchen-slide h2 { font-size:40px; letter-spacing:-1.5px; }
  .shop-banner p,.marine-slide p,.kitchen-slide p { font-size:14px; margin-block:18px 24px; }
  .banner-controls { left:32px; right:32px; bottom:20px; gap:18px; }
  .banner-dots>button { width:58px; }
  .landscape-caption { display:none; }
  .quick-categories { padding-block:30px; margin-bottom:0; }
  .shelf-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 20px; }
  .product-grid { gap:30px 20px; }
  .shelf-heading h2,.section-heading h2 { font-size:25px; }
  .featured-section,.new-arrivals { padding-block:32px; }
  .product-name,.product-card .product-name { font-size:16px; }
  .wide-service>.wrap { padding:27px; min-height:146px; }
  .wide-service h2 { font-size:22px; }
  .wide-service .button { min-width:168px; }
  .catalog-subrow { flex-wrap:wrap; gap:12px; }
  .sort-label { margin-left:auto; }
  #page-content .product-detail { gap:28px; grid-template-columns:1fr 1fr; }
  #page-content .detail-info h3 { font-size:23px; }
  .phone-help>a { font-size:24px; }
  .catalog-tools { align-items:flex-start; }
}
@media(max-width:560px) {
  :root { --page-gutter:18px; }
  html { scroll-padding-top:104px; }
  body { padding-bottom:calc(72px + env(safe-area-inset-bottom,0px)); }
  .utility-inner { width:calc(100% - 32px); }
  .contact-actions>a { min-height:40px; font-size:10px; gap:6px; }
  .contact-actions>a strong { font-size:14px; letter-spacing:.2px; }
  .contact-actions .contact-list { min-height:36px; font-size:10px; padding-left:12px; gap:6px; }
  .header-main { padding-block:17px 15px; gap:16px; }
  .header-main .brand { gap:8px; }
  .header-main .brand-title { font-size:25px; letter-spacing:-1.2px; }
  .header-main .brand-title small { font-size:6px; letter-spacing:.8px; margin-top:6px; }
  .header-main .brand-symbol { width:35px; height:41px; }
  .header-actions { gap:11px; }
  .header-actions>button { font-size:9px; min-width:30px; gap:5px; }
  .header-actions .icon { width:21px; height:21px; }
  .header-actions>button:nth-child(3) { display:none; }
  .header-search form { height:46px; padding-inline:5px 8px; }
  .header-search input { font-size:16px; padding-inline:9px; }
  .header-search input::placeholder { font-size:13px; }
  .nav-inner { width:calc(100% - 36px); height:48px; gap:21px; }
  .nav-inner>a,.nav-inner>button { min-height:48px; font-size:12px; }
  .nav-inner>.all-menu { min-height:32px; padding-inline:9px; font-size:11px; gap:5px; margin:0; border-radius:5px; }
  .nav-inner>.all-menu .icon { width:14px; height:14px; }
  .main-promotion { margin-top:14px; }
  .shop-banner { height:412px; border-radius:10px; }
  .banner-inner { padding-inline:23px; }
  .banner-copy,.marine-slide .banner-copy,.kitchen-slide .banner-copy { padding-top:31px; max-width:100%; }
  .banner-tag { font-size:10px; letter-spacing:0; margin-bottom:18px; gap:7px; }
  .shop-banner h1,.shop-banner h2,.marine-slide h2,.kitchen-slide h2 { font-size:32px; line-height:1.32; letter-spacing:-1.25px; }
  .shop-banner p,.marine-slide p,.kitchen-slide p { font-size:12px; line-height:1.85; margin:17px 0 21px; }
  .workshop-slide:before,.marine-slide:before,.kitchen-slide:before { background-position:68% center; opacity:1; filter:none; }
  .workshop-slide:after,.marine-slide:after,.kitchen-slide:after { background:linear-gradient(90deg,#f8faf4f7,#f8faf4ce 54%,#f8faf478),linear-gradient(0deg,#f8faf4e6,transparent 45%); }
  .hero-actions { gap:8px; flex-wrap:wrap; }
  .hero-button,.marine-slide .hero-button,.kitchen-slide .hero-button { min-height:44px; min-width:0; padding:10px 13px; gap:17px; font-size:11px; border-radius:5px; }
  .hero-catalog-link { min-height:44px; padding:10px; font-size:10px; border-radius:5px; }
  .banner-controls { left:23px; right:23px; bottom:20px; justify-content:space-between; gap:10px; }
  .banner-dots { gap:8px; }
  .banner-dots>button { width:40px; min-height:34px; height:34px; font-size:9px; }
  .banner-navigation { gap:0; }
  .banner-navigation>button,.banner-navigation>.banner-pause { width:28px; min-width:28px; height:34px; min-height:34px; font-size:19px; }
  .banner-navigation>.banner-pause { font-size:11px; }
  .banner-counter { font-size:9px; margin-right:4px; }
  .quick-categories { display:block; padding-block:28px; margin-bottom:4px; }
  .quick-title { display:block; text-align:left; margin-bottom:20px; }
  .quick-title>span { font-size:10px; margin-bottom:6px; }
  .quick-title h2 { font-size:20px; }
  .shortcut-grid { max-width:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 12px; }
  .shortcut-grid>button { gap:8px; }
  .shortcut-grid img,.shortcut-grid>button:nth-child(n) img { width:65px; height:65px; padding:11px; border-radius:19px; }
  .shortcut-grid strong { font-size:11px; }
  .featured-section,.new-arrivals { padding-block:26px 30px; }
  .shelf-heading { gap:6px 10px; margin-bottom:20px; }
  .shelf-heading>.section-eyebrow { font-size:10px; }
  .shelf-heading h2 { font-size:23px; gap:8px; }
  .shelf-heading .text-button { font-size:10px; gap:6px; min-height:32px; }
  .best-indicator,.new-indicator { font-size:8px; padding:4px 5px; }
  .shelf-grid { gap:26px 14px; }
  .product-grid,.popular-grid,.recent-grid { --catalog-columns:2; gap:28px 14px; }
  .product-visual { border-radius:8px; aspect-ratio:1; }
  .product-open .catalog-photo,.product-open .uploaded-photo { padding:14px; }
  .product-card .wish-button { width:29px; height:29px; top:7px; right:7px; }
  .product-card .wish-button .icon { width:16px; height:16px; }
  .product-caption { padding:12px 0 0; }
  .product-caption>.product-badges { min-height:19px; margin-bottom:6px; }
  .promo-badge { font-size:9px; padding:1px 5px; line-height:14px; gap:4px; }
  .product-meta { font-size:9px; min-height:15px; margin-bottom:5px; }
  .product-name,.product-card .product-name { font-size:14px; letter-spacing:-.4px; line-height:1.55; height:3.1em; min-height:3.1em; max-height:3.1em; }
  .product-spec { font-size:10px; line-height:1.6; height:3.2em; min-height:3.2em; max-height:3.2em; margin-top:5px; }
  .product-price,.product-grid .product-price { font-size:21px; min-height:44px; margin-top:9px; letter-spacing:-.6px; gap:3px; }
  .product-price small { font-size:10px; margin-left:2px; }
  .product-price .retail-label { font-size:9px; }
  .product-price .stock { font-size:8px; padding-bottom:2px; }
  .product-card-buttons,.shelf-grid .product-card-buttons { gap:4px; margin-top:10px; padding-top:7px; }
  .product-card-buttons>button { font-size:9px; min-height:34px; letter-spacing:-.35px; white-space:nowrap; }
  .product-card-buttons>button:last-child { padding-inline:5px; font-size:9px; }
  .restock-link { min-height:30px; font-size:9px; }
  .wide-service { margin-block:10px 8px; border-radius:9px; }
  .wide-service>.wrap { padding:23px; display:block; }
  .wide-service h2 { font-size:21px; line-height:1.45; margin-top:7px; }
  .wide-service p { font-size:11px; margin-top:10px; }
  .wide-service span:not(.button span) { font-size:10px; }
  .wide-service .button { margin-top:20px; min-height:44px; min-width:0; width:100%; font-size:12px; justify-content:space-between; }
  .catalog { padding-block:30px; }
  .section-heading { gap:10px; align-items:center; margin-bottom:18px; }
  .section-heading h2 { font-size:21px; letter-spacing:-.8px; }
  .section-heading h2 #product-count { font-size:11px; margin-left:5px; }
  .section-heading .outline-link { min-height:38px; }
  .tabs { gap:2px; padding:4px; border-radius:7px; }
  .tabs button { font-size:12px; padding:9px 14px; min-height:40px; flex-shrink:0; }
  .catalog-subrow { display:flex; flex-wrap:wrap; gap:12px; padding:14px 0; }
  .subcategories { width:100%; gap:4px; }
  .subcategories button { font-size:11px; min-height:33px; padding:7px 9px; }
  .sort-label { font-size:10px; }
  .sort-label select { font-size:12px; min-height:36px; }
  .catalog-tools { gap:12px; padding:14px 0 20px; }
  .catalog-tools>p { font-size:11px; line-height:1.8; width:100%; }
  .catalog-views { margin-left:auto; }
  .catalog-views button { min-height:36px; font-size:11px; }
  .catalog-pager { padding-block:26px 10px; }
  .catalog-range { font-size:10px; }
  .pagination { gap:5px; }
  .pagination button { min-width:35px; min-height:38px; }
  .catalog-note { display:block; font-size:10px; line-height:1.9; margin-top:18px; }
  .catalog-note .text-button { font-size:10px; margin-top:10px; }
  body[data-view="catalog"] #products>.section-heading { padding:20px 17px; min-height:114px; gap:8px; }
  body[data-view="catalog"] #products-title { font-size:23px; }
  .content-page { padding-top:18px; }
  .content-page-heading { gap:12px; align-items:flex-start; margin-bottom:22px; padding-bottom:18px; }
  .content-page-heading h1 { font-size:23px; line-height:1.45; overflow-wrap:anywhere; }
  .page-back { font-size:10px; min-height:36px; padding-inline:9px; }
  #page-content .product-detail { grid-template-columns:1fr; gap:25px; }
  .detail-image { width:100%; max-width:420px; margin:auto; }
  .detail-image>.catalog-photo,.detail-image>.uploaded-photo { padding:28px; }
  #page-content .detail-info h3 { font-size:23px; line-height:1.5; }
  #page-content .detail-info>p { font-size:13px; }
  #page-content .detail-info .price { font-size:30px; }
  #page-content .detail-info dl { font-size:13px; row-gap:12px; }
  .detail-wholesale { padding:18px; }
  .phone-order-tools>div { grid-template-columns:1fr; }
  .catalog-item { padding:21px 0; }
  .catalog-item-name { font-size:15px; }
  .catalog-choose select,.catalog-choose input { font-size:16px; min-height:44px; }
  .catalog-choose>div>button { font-size:11px; min-height:44px; }
  .list-row { gap:12px; }
  .cart-total { padding:20px; }
  .account-body { padding:24px 22px; }
  .account-dialog { max-height:calc(100dvh - 24px); border-radius:12px; }
  .service-banners { grid-template-columns:1fr; gap:12px; margin-bottom:26px; }
  .service-banner,.service-banner:first-child,.service-banner:last-child { padding:23px; min-height:126px; }
  .service-banner strong { font-size:19px; }
  .service-banner small { font-size:11px; }
  .phone-help { display:block; padding-block:22px; }
  .phone-help p { font-size:12px; line-height:1.8; }
  .phone-help>a { display:inline-block; font-size:27px; margin-top:12px; }
  .font-float { right:17px; bottom:calc(143px + env(safe-area-inset-bottom,0px)); min-width:48px; min-height:35px; font-size:9px; border-radius:6px; box-shadow:0 2px 8px #253e1408; }
  .kakao-float { right:18px; bottom:calc(87px + env(safe-area-inset-bottom,0px)); width:46px; height:46px; min-height:46px; }
  .mobile-dock { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); min-height:64px; gap:0; background:#fffffffa; border-top:1px solid #e3eadb; box-shadow:0 -4px 18px #2b471b04; padding:6px 7px max(6px,env(safe-area-inset-bottom)); }
  .mobile-dock>a,.mobile-dock>button { display:flex; min-height:52px; font-size:9px; color:#6c7c61; gap:6px; white-space:nowrap; }
  .mobile-dock .icon { width:21px; height:21px; stroke-width:1.5; }
  body[data-view="home"] .mobile-dock>[data-action="home"] { color:#244e3b; font-weight:700; }
  .toast { bottom:calc(84px + env(safe-area-inset-bottom,0px)); font-size:12px; }
  .category-menu { max-width:calc(100vw - 30px); }
  .category-menu>.wrap { padding:24px; }
  .site-footer { margin-top:10px; }
  .site-footer .footer-nav>.wrap { flex-direction:row; align-items:center; gap:12px; padding-block:12px; }
  .footer-links { gap:15px; }
  .site-footer .footer-nav button,.site-footer .footer-nav a { font-size:10px; }
  .site-footer .footer-main { grid-template-columns:1fr; gap:23px; padding-block:26px; }
  .footer-business { display:block; }
  .site-footer .footer-brand { margin-bottom:15px; }
  .site-footer .footer-company { font-size:10px; }
  .site-footer .footer-wholesale { grid-template-columns:1fr; border-radius:9px; }
  .site-footer .footer-contact,.site-footer .footer-bank { padding:21px; }
  .site-footer .footer-contact>a:not(.footer-phone-link),.site-footer .footer-bank .bank-number { font-size:26px; }
  .site-footer .footer-contact p { font-size:11px; }
  .site-footer .footer-bank { border-top:1px solid #e4ebdc; }
  .site-footer .bank-heading { justify-content:space-between; margin-bottom:10px; }
  .site-footer .bank-title { font-size:11px; }
  .site-footer .bank-name { font-size:13px; }
  .site-footer .bank-owner { font-size:11px; margin-top:12px; }
  .footer-bottom { padding-block:15px; gap:12px; font-size:9px; }
  .footer-bottom button { font-size:9px; }
}
@media(max-width:359px) {
  :root { --page-gutter:14px; }
  .header-main .brand-title { font-size:22px; }
  .header-main .brand-symbol { width:30px; height:36px; }
  .header-actions { gap:8px; }
  .header-actions>button { min-width:27px; font-size:8px; }
  .shop-banner { height:408px; }
  .banner-inner { padding-inline:18px; }
  .banner-controls { left:18px; right:18px; }
  .shop-banner h1,.shop-banner h2,.marine-slide h2,.kitchen-slide h2 { font-size:29px; }
  .hero-actions { gap:6px; }
  .hero-button,.marine-slide .hero-button,.kitchen-slide .hero-button { padding-inline:10px; font-size:10px; gap:10px; }
  .hero-catalog-link { padding-inline:8px; font-size:9px; }
  .banner-dots { gap:7px; }
  .banner-dots>button { width:34px; }
  .banner-navigation>button,.banner-navigation>.banner-pause { width:25px; min-width:25px; }
  .product-grid,.shelf-grid { gap:24px 11px; }
  .product-name,.product-card .product-name { font-size:13px; }
  .product-price,.product-grid .product-price { font-size:19px; }
  .product-card-buttons { flex-wrap:wrap; }
  .product-card-buttons>button:last-child { margin-left:auto; }
  .section-heading { flex-wrap:wrap; }
}
/* Keep the pre-existing large-text preference useful without clipping the hero. */
.large-text .shop-banner { height:510px; }
.large-text .banner-copy { max-width:90%; }
.large-text .product-name,.large-text .product-card .product-name { font-size:19px; }
.large-text .product-spec { font-size:14px; }
.large-text .product-grid { --catalog-columns:3; grid-template-columns:repeat(var(--catalog-columns),minmax(0,1fr)); }
@media(max-width:800px) {
  .large-text .product-grid { --catalog-columns:2; }
}
@media(max-width:560px) {
  .large-text .shop-banner { height:455px; }
  .large-text .banner-copy { padding-top:30px; max-width:100%; }
  .large-text .shop-banner h1,.large-text .shop-banner h2 { font-size:31px; }
  .large-text .shop-banner p { font-size:14px; }
  .large-text .hero-actions { flex-wrap:wrap; gap:7px; }
  .large-text .hero-button,.large-text .hero-catalog-link { font-size:11px; }
  .large-text .product-grid { --catalog-columns:1; }
  .large-text .shelf-grid { grid-template-columns:1fr; }
  .large-text .product-name,.large-text .product-card .product-name { font-size:19px; }
  .large-text .product-spec { font-size:14px; }
  .large-text .footer-wholesale { grid-template-columns:1fr; }
  .large-text .footer-bank .bank-number,.large-text .footer-contact>a:not(.footer-phone-link) { font-size:26px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .product-card:hover .product-open img,.shortcut-grid>button:hover img,.hero-button:hover,.wide-service .button:hover { transform:none; }
}
/* Updated banner copy. The supplied workshop photograph is used unaltered;
   only the lower panel is framed by the background layout. */
.marine-slide .banner-copy,.kitchen-slide .banner-copy { max-width:82%; }
.marine-slide h2,.kitchen-slide h2 { font-size:clamp(30px,2.7vw,40px); line-height:1.4; letter-spacing:-1.4px; }
.kitchen-slide:before { left:auto; right:0; top:0; bottom:0; width:58%; background-image:url('assets/forge-workshop-original.jpg'); background-size:194% auto; background-position:center 88%; filter:none; opacity:1; }
.kitchen-slide:after { background:linear-gradient(90deg,#f7f9f2 0%,#f7f9f2 36%,#f7f9f2e6 48%,#f7f9f26b 65%,#f7f9f200 83%); }
@media(max-width:800px) {
 .marine-slide .banner-copy,.kitchen-slide .banner-copy { max-width:100%; }
 .marine-slide h2,.kitchen-slide h2 { font-size:31px; line-height:1.4; letter-spacing:-1px; }
 .kitchen-slide:before { width:70%; background-size:194% auto; background-position:center 94%; }
 .kitchen-slide:after { background:linear-gradient(90deg,#f7f9f2f7 0%,#f7f9f2ed 35%,#f7f9f2b8 62%,#f7f9f230); }
}
@media(max-width:560px) {
 .shop-banner { height:446px; }
 .marine-slide .banner-copy,.kitchen-slide .banner-copy { padding-top:29px; }
 .marine-slide h2,.kitchen-slide h2 { font-size:25px; line-height:1.45; letter-spacing:-.85px; text-wrap:initial; }
 .marine-slide p,.kitchen-slide p { font-size:12px; line-height:1.9; margin-top:17px; margin-bottom:20px; }
 .kitchen-slide:before { top:auto; bottom:0; width:100%; height:72%; background-size:194% auto; background-position:center 92%; }
 .kitchen-slide:after { background:linear-gradient(180deg,#f7f9f2fc 0%,#f7f9f2f2 25%,#f7f9f2ba 56%,#f7f9f278 100%),linear-gradient(90deg,#f7f9f2ab,transparent); }
 .large-text .shop-banner { height:495px; }
 .large-text .marine-slide h2,.large-text .kitchen-slide h2 { font-size:27px; }
 .large-text .marine-slide p,.large-text .kitchen-slide p { font-size:14px; }
}
@media(max-width:359px) {
 .shop-banner { height:450px; }
 .kitchen-slide:before { height:calc(100vw - 32px); background-position:center 96%; }
 .marine-slide h2,.kitchen-slide h2 { font-size:23px; line-height:1.5; }
 .marine-slide p,.kitchen-slide p { font-size:11px; }
 .large-text .marine-slide h2,.large-text .kitchen-slide h2 { font-size:25px; }
}
