/* v3: shared light image surface, hero gallery and reserved product video. */
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body.dk-page { --accent: #7c4ddb; --accent-grad: var(--grape-grad); --accent-soft: #f1ecff; }
.hero-gallery { grid-column: 2; grid-row: 1 / 5; min-width: 0; }
body.dk-page #dk-hero .p-hero-cta a[href="#specs"] { display: inline-flex !important; }
body.dk-page .lang-menu.is-open { display: block !important; }
body.dk-page .header .nav.is-open { display: flex !important; }
body.dk-page .buyer-document { margin-block: 20px; }
body.dk-page .buyer-document > p { margin: 0 16px 16px; line-height: 1.7; }
body.dk-page .faq-a[hidden] { display: none !important; }
body.dk-page .faq-item.open .faq-a { height: auto !important; max-height: none !important; opacity: 1; }
@media (min-width: 761px) and (max-width: 1599px) {
  body.dk-page .fab { width: 52px; height: 52px; padding: 0; justify-content: center; }
  body.dk-page .fab span { display: none; }
}
body.dk-page #related .rel-media img { width: 100% !important; max-width: 100% !important; margin-inline: 0 !important; object-fit: contain !important; }
body.dk-page :focus-visible { outline: 3px solid #387fc6; outline-offset: 4px; }
body.dk-page h1, body.dk-page .btn, body.dk-page .gallery-thumbs button { overflow-wrap: anywhere; }
body.dk-page .lang-menu { max-height: min(70vh,520px); overflow-y: auto; }
body.dk-page .buyer-section-nav { flex-wrap: wrap; }
body.dk-page .quote-fields label { min-width: 0; }
html[dir="rtl"] body.dk-page { font-family: Tahoma,Arial,sans-serif; }
html[dir="rtl"] body.dk-page .header .brand { direction: ltr; }
html[dir="rtl"] body.dk-page .header .lang-menu a { text-align: start; }
html[dir="rtl"] body.dk-page .header .lang-menu { left: 0; right: auto; }
html[dir="rtl"] body.dk-page .p-hero-inner, html[dir="rtl"] body.dk-page .procurement-grid { direction: rtl; }
html[dir="rtl"] body.dk-page .buyer-price-line strong, html[dir="rtl"] body.dk-page .ice-card .feat,
html[dir="rtl"] body.dk-page input[type="email"], html[dir="rtl"] body.dk-page input[type="number"],
html[dir="rtl"] body.dk-page input[name="model"] { direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] body.dk-page .lang-menu .flag { unicode-bidi: isolate; }
body.dk-page bdi[dir="ltr"] { unicode-bidi: isolate; }
html[lang="ko"] body.dk-page,
html[lang="ko"] body.dk-page :is(h1,h2,h3,p,dt,dd,li,a,summary,label,button) { word-break: keep-all; }
body.dk-page .buyer-price-line strong, body.dk-page .ice-card .feat { white-space: nowrap; }
body.dk-page footer .footer-grid > div { min-width: 0; }
body.dk-page footer :is(p,a) { overflow-wrap: anywhere; hyphens: auto; }
.keepsake-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 48px; align-items: center; }
.keepsake-copy { min-width: 0; }
.keepsake-options-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
.keepsake-option { min-width: 0; border: 1px solid #e3e7eb; border-radius: 8px; background: #f7f8fa; padding: 24px; }
.keepsake-option h3 { margin: 0 0 12px; font-size: 22px; line-height: 1.4; }
.keepsake-option p { margin: 0; color: #50545c; font-size: 16px; line-height: 1.75; }
.keepsake-options :is(h2,h3,p) { overflow-wrap: break-word; hyphens: auto; }
.keepsake-custom-note { margin: 20px 0 0; color: #50545c; font-size: 15px; line-height: 1.7; }
.keepsake-bag { min-width: 0; margin: 0; }
.keepsake-bag picture { display: block; width: min(100%,360px); margin-inline: auto; }
.keepsake-bag img { display: block; width: 100%; height: auto; border-radius: 8px; }
.keepsake-bag figcaption { margin: 12px 0 0; color: #50545c; font-size: 14px; line-height: 1.65; text-align: center; overflow-wrap: break-word; }
.consumable-prices { margin-top: 32px; padding-top: 24px; border-top: 1px solid #e3e7eb; }
.consumable-prices h3 { margin: 0 0 16px; color: #242529; font-size: 22px; line-height: 1.4; }
.consumable-price-list { margin: 0; display: grid; gap: 0; }
.consumable-price-list > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 24px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid #edf0f3; }
.consumable-price-list dt { min-width: 0; margin: 0; font-size: 16px; line-height: 1.6; color: #50545c; overflow-wrap: break-word; hyphens: auto; }
.consumable-price-list dd { min-width: 0; margin: 0; color: #183652; font-size: 18px; line-height: 1.5; font-weight: 700; text-align: end; overflow-wrap: break-word; }
.consumable-price-list bdi { white-space: nowrap; }
.consumable-prices .consumable-fx-note { margin: 16px 0 0; color: #50545c; font-size: 14px; line-height: 1.7; }
@media (max-width: 480px) {
  .consumable-price-list > div { grid-template-columns: minmax(0,1fr); gap: 4px; padding: 12px 0; }
  .consumable-price-list dd { text-align: start; }
}
.dk-page #videos .dk-product-video { width: min(100%,340px); margin: 0 auto; }
.dk-page #videos .dk-video-frame { width: 100%; aspect-ratio: 9 / 16; overflow: hidden; border: 1px solid #dfe3e7; border-radius: 8px; background: #f6f7f9; }
.dk-page #videos .dk-video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.dk-page #videos .dk-product-video figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 12px; margin-top: 12px; color: #50545c; font-size: 14px; line-height: 1.6; }
.dk-page #videos .dk-product-video figcaption a { color: #b62722; text-decoration: underline; text-underline-offset: 3px; }
.gallery-thumbs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 14px; }
.gallery-thumbs button { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 4px 12px 4px 5px; border: 1px solid #d4d8de; border-radius: 6px; background: #fff; color: #343941; font: inherit; font-size: 14px; cursor: pointer; }
.gallery-thumbs button[aria-pressed="true"] { border-color: #b92c26; color: #a92722; }
.gallery-thumbs img { width: 30px; height: 38px; object-fit: contain; }
@media (min-width: 981px) {
  body.dk-page .rr-contact-band__details { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1.8fr); }
  body.dk-page .rr-contact-band__item:first-child strong { font-size: 14px; }
}
dialog { border: 0; padding: 0; border-radius: 10px; max-width: calc(100vw - 28px); max-height: calc(100dvh - 28px); color: #242529; }
dialog::backdrop { background: #0b1626c9; }
.dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 24px; border-bottom: 1px solid #e3e7eb; }
.dialog-head h2 { font-size: 21px; margin: 0; min-width: 0; flex: 1; overflow-wrap: anywhere; }
.close-dialog { min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid #d8dfe4; border-radius: 6px; background: #fff; font: inherit; cursor: pointer; color: #35414b; flex-shrink: 0; white-space: nowrap; }
#image-dialog { width: min(860px, calc(100vw - 28px)); background: #f6f7f9; }
#image-dialog .dialog-head { border-color: #dfe3e7; color: #242529; }
#image-dialog .close-dialog { background: #fff; color: #343941; border-color: #d4d8de; }
#image-dialog img { display: block; width: 100%; height: min(72dvh, 780px); object-fit: contain; padding: 18px; }
.zoom-controls { display: flex; gap: 12px; justify-content: center; align-items: center; padding: 0 20px 20px; color: #343941; }
.zoom-controls button { padding: 10px 18px; min-height: 44px; border-radius: 6px; background: #fff; border: 1px solid #d4d8de; color: #343941; font: inherit; cursor: pointer; }
#quote-dialog { width: 680px; }
.quote-body { padding: 24px; }
.quote-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.quote-fields label { display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: #454d56; }
.quote-fields .wide { grid-column: 1 / -1; }
.quote-fields input, .quote-fields textarea { width: 100%; border: 1px solid #cdd4db; border-radius: 6px; padding: 12px; color: #242529; background: #fff; font: inherit; font-size: 16px; min-height: 46px; }
.quote-fields input[readonly] { background: #f3f5f7; }
.quote-fields textarea { resize: vertical; min-height: 100px; }
.quote-note { font-size: 13px; color: #656d76; line-height: 1.7; margin: 18px 0; }
.quote-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
#inquiry-draft { white-space: pre-wrap; overflow-wrap: anywhere; background: #f5f7f9; padding: 16px; border-radius: 6px; font-family: inherit; font-size: 14px; line-height: 1.8; }
#quote-result[hidden], #quote-form[hidden] { display: none; }

@media (max-width: 760px) {
  body.dk-page #apps { padding-block: 24px !important; }
  body.dk-page #apps .section-head { margin-bottom: 16px; }
  body.dk-page #apps .app-chips { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0; }
  body.dk-page #apps .app-chips > span { display: grid; grid-template-columns: 22px minmax(0,1fr); align-items: center; justify-content: start; gap: 8px; min-width: 0; min-height: 64px; margin: 0; padding: 12px 10px; border: 1px solid #e3e7eb !important; border-radius: 8px !important; background: #f7f8fa !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; text-align: start; font-size: 14px; line-height: 1.45; }
  body.dk-page #apps .app-chips > span > span { display: block; min-width: 0; min-height: 0 !important; margin: 0; padding: 0; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; font: inherit; overflow-wrap: break-word; hyphens: auto; }
  body.dk-page #apps .app-chips span::before, body.dk-page #apps .app-chips span::after { content: none !important; }
  body.dk-page #apps .app-chips i { font-size: 18px; line-height: 1; text-align: center; }
  .hero-gallery { grid-column: 1; grid-row: auto; }
  .gallery-thumbs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .gallery-thumbs button { flex-direction: column; justify-content: center; padding: 7px 6px; gap: 5px; font-size: 13px; line-height: 1.4; }
  body.dk-page .buyer-hero .p-hero-cta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.dk-page .buyer-hero .p-hero-cta .btn { min-width: 0; min-height: 48px; text-align: center; justify-content: center; }
  body.dk-page .buyer-hero .p-hero-cta .btn:last-child { grid-column: 1 / -1; }
  body.dk-page .buyer-section-nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; }
  body.dk-page .buyer-section-nav a { min-width: 0; text-align: center; overflow-wrap: anywhere; display: grid; place-items: center; }
  body.dk-page footer .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .keepsake-options-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .keepsake-layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .keepsake-option { padding: 20px; }
  .keepsake-option h3 { font-size: 20px; }
  .quote-fields { grid-template-columns: 1fr; }
  .quote-fields .wide { grid-column: auto; }
  .quote-body, .dialog-head { padding: 18px; }
}
@media (max-width: 390px) {
  .gallery-thumbs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .gallery-thumbs button { flex-direction: column; padding: 6px; gap: 4px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
