:root {
  --preview-navy: #0f172a;
  --preview-blue: #0369a1;
  --preview-sky: #e0f2fe;
  --preview-ink: #020617;
  --preview-muted: #475569;
  --preview-border: #cbd5e1;
  --preview-surface: #f8fafc;
  --preview-warning: #fef3c7;
  --preview-warning-border: #f59e0b;
}

.p-hero > picture.d-hero-image,
.p-hero > picture.d-hero-image > img,
.v-facility-photo picture,
.v-process-photo-grid picture,
.v-location-brief picture,
.q-product-slide picture {
  display: block;
  width: 100%;
  height: 100%;
}

.p-hero > picture.d-hero-image > img {
  object-fit: cover;
  object-position: 68% center;
}

.skip-link {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 10000;
  padding: 0.8rem 1rem;
  color: #fff;
  background: var(--preview-navy);
  transform: translateY(-120%);
}

.skip-link:focus {
  transform: translateY(0);
}

.preview-bar,
.preview-banner {
  position: relative;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  width: 100%;
  min-height: 44px;
  padding: 0.65rem clamp(1rem, 4vw, 3rem);
  color: var(--preview-ink);
  font-size: 0.86rem;
  line-height: 1.45;
  text-align: center;
  background: var(--preview-warning);
  border-bottom: 2px solid var(--preview-warning-border);
}

html[data-visual-style] .concept-q .p-header {
  top: 0;
}

html:has(.concept-q) {
  scroll-padding-top: 90px;
}

.preview-banner strong {
  flex: 0 0 auto;
}

.preview-breadcrumb,
.service-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: 1rem clamp(1rem, 4vw, 3rem) 0;
  color: var(--preview-muted);
  font-size: 0.88rem;
  line-height: 1.5;
}

.preview-breadcrumb a,
.service-breadcrumb a {
  color: var(--preview-blue);
  text-underline-offset: 0.2em;
}

.preview-breadcrumb [aria-current="page"],
.service-breadcrumb [aria-current="page"] {
  color: var(--preview-ink);
  font-weight: 700;
}

.preview-breadcrumb span[aria-hidden="true"],
.service-breadcrumb span[aria-hidden="true"] {
  color: #94a3b8;
}

.scope-note,
.preview-disclaimer,
.media-caption {
  padding: 0.85rem 1rem;
  color: var(--preview-muted);
  font-size: 0.9rem;
  line-height: 1.65;
  background: var(--preview-surface);
  border: 1px solid var(--preview-border);
  border-left: 4px solid var(--preview-blue);
  border-radius: 0.35rem;
}

.media-caption {
  margin-top: 0.6rem;
  border-left-color: var(--preview-warning-border);
}

.preview-link-grid,
.seo-evidence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.preview-link-grid > a,
.seo-evidence-grid > article {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  padding: 1.15rem;
  color: var(--preview-ink);
  background: #fff;
  border: 1px solid var(--preview-border);
  border-radius: 0.6rem;
}

.preview-link-grid > a {
  text-decoration: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.preview-link-grid > a:hover {
  border-color: var(--preview-blue);
  box-shadow: 0 10px 25px rgb(15 23 42 / 9%);
  transform: translateY(-2px);
}

.preview-link-grid small {
  color: var(--preview-muted);
  line-height: 1.5;
}

.preview-form-status,
[data-preview-form-status] {
  padding: 0.9rem 1rem;
  color: #0c4a6e;
  font-weight: 700;
  line-height: 1.55;
  background: #e0f2fe;
  border: 1px solid #7dd3fc;
  border-radius: 0.4rem;
}

.preview-form-status:empty,
[data-preview-form-status]:empty {
  display: none;
}

.preview-disabled,
[data-preview-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.72;
}

picture {
  display: contents;
}

picture img {
  max-width: 100%;
}

/* Existing service pages place the menu below the preview notice and header. */
body > .service-mobile-menu {
  top: 82px;
  max-height: calc(100svh - 82px);
}

:where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--preview-blue);
  outline-offset: 3px;
}

:where(button, .service-actions a, .service-links a) {
  min-height: 44px;
}

.q-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.q-hero-actions a {
  min-height: 44px;
  min-width: 150px;
  padding: 0.75rem 0.9rem;
  align-items: center;
  border: 1px solid rgb(255 255 255 / 45%);
}

.q-hero-actions a:first-child {
  color: #fff;
  background: #b33642;
  border-color: #b33642;
}

.q-hero-actions a:last-child {
  color: #fff;
  background: #3c1e1e;
  border-color: #3c1e1e;
}

.service-case {
  padding: 100px clamp(20px, 8vw, 120px);
  color: #fff;
  background: #172025;
}

.service-case-grid {
  display: grid;
  grid-template-columns: minmax(230px, 0.72fr) minmax(0, 1.6fr);
  gap: 8vw;
}

.service-case-title p {
  margin: 0;
  color: #e19aa1;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.service-case-title h2 {
  margin: 18px 0 0;
  font-size: clamp(2rem, 4vw, 3.7rem);
  line-height: 1.13;
  letter-spacing: -0.06em;
}

.service-case-card {
  display: grid;
  gap: 1rem;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  background: #fff;
  color: #171d20;
}

.service-case-card b {
  color: #b33642;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
}

.service-case-card h3,
.service-case-card p {
  margin: 0;
}

.service-case-card h3 {
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  line-height: 1.35;
}

.service-case-card p {
  color: #596164;
  font-size: 0.95rem;
  line-height: 1.8;
}

.service-case-card a {
  width: fit-content;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: #9c2f39;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

@media (max-width: 720px) {
  .preview-bar,
  .preview-banner {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.15rem;
    min-height: 85px;
    justify-content: center;
    text-align: left;
  }

  html[data-visual-style] .concept-q .p-header {
    top: 0;
  }

  html:has(.concept-q) {
    scroll-padding-top: 90px;
  }

  .preview-link-grid,
  .seo-evidence-grid {
    grid-template-columns: 1fr;
  }

  .preview-breadcrumb,
  .service-breadcrumb {
    padding-top: 0.75rem;
  }

  .q-hero-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .q-hero-actions a {
    min-width: 0;
  }

  .q-hero-actions a:last-child {
    grid-column: 1 / -1;
  }

  .service-case-grid {
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }
}

@media (max-width: 980px) {
  .concept-q .p-mobile-menu {
    padding-top: 24px;
  }
}

@media (max-width: 520px) {
  .concept-q .p-mobile-menu {
    padding-top: 24px;
  }

  body > .service-mobile-menu {
    top: 68px;
    max-height: calc(100svh - 68px);
  }
}

/* Shared company identity; detail pages keep the same paper/red palette. */
.service-header { background: #f7f4ee; color: #171d20; border-bottom: 1px solid #d5d0c7; }
.service-brand > strong { color: #b33642; }
.service-brand small { color: #596164; }
.service-menu-button { color: #171d20; }
.service-hero { background: #f7f4ee; color: #171d20; border-bottom: 1px solid #d5d0c7; }
.service-eyebrow { color: #9c2f39; }
.service-hero .lead { color: #50585a; }
.service-actions a { border-color: #9b9b94; }
.service-actions a:first-child { color: #fff; }

@media (max-width: 720px) {
  .service-header { height: 68px; }
  .service-hero { min-height: 0; padding: 40px 24px 44px; }
  .service-hero h1 { font-size: clamp(2rem, 8vw, 2.7rem); line-height: 1.2; letter-spacing: -.04em; }
  .service-hero .lead { margin-top: 24px; font-size: 1rem; line-height: 1.75; }
  .service-section { padding-top: 52px; padding-bottom: 52px; }
  .service-actions a { font-size: .875rem; min-height: 48px; }
  .service-mobile-menu { top: 68px; max-height: calc(100svh - 68px); }
  .service-mobile-menu section a,
  .concept-q .p-mobile-menu section a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1rem; line-height: 1.5; }
  .service-mobile-menu section div,
  .concept-q .p-mobile-menu section div { gap: 8px 16px; }
  .concept-q .p-mobile-menu section { padding: 16px 0; }
  .concept-q .p-mobile-menu section h2 { margin-bottom: 8px; font-size: 1.375rem; }
  .section-content > p, .service-list span, .request-card p,
  .question-list p { font-size: 1rem; line-height: 1.75; }
  .service-list li { grid-template-columns: 28px minmax(0, 1fr); }
  .service-list span { grid-column: 2; }
  .request-card { grid-template-columns: 28px minmax(0, 1fr); }
  .request-card p { grid-column: 2; }
  .question-list article { display: block; }
  .question-list p { margin-top: 12px; }
  .service-links a { font-size: .875rem; min-height: 44px; display: inline-flex; align-items: center; }
}

@media (max-width: 640px) {
  html[data-visual-style="refined"] .concept-q main > section:not(.p-hero):not(.p-summary) {
    padding-top: 52px; padding-bottom: 56px; row-gap: 28px;
  }
  html[data-visual-style="refined"] .concept-q .p-hero {
    height: auto; min-height: 0; padding: 270px 20px 44px;
  }
  html[data-visual-style="refined"] .concept-q .p-hero > .d-hero-image { height: 290px; }
  html[data-visual-style="refined"] .concept-q .p-hero-copy { position: relative; inset: auto; width: 100%; }
  html[data-visual-style="refined"] .concept-q .p-hero-shade {
    background: linear-gradient(180deg, transparent 170px, #f7f4ee 300px);
  }
  html[data-visual-style="refined"] .concept-q :is(.p-hero-bottom p, .p-company-copy p, .q-faq-list details > p,
    .q-faq-head > p:last-child, .q-process-head > p:last-child, .q-process-list p,
    .q-prepare-head > p:last-child, .q-prepare-columns li, .q-fit-head > p:last-child,
    .q-product-gallery-head > p:last-child, .q-inquiry-head > p:last-child, .q-visit p) {
    font-size: 1rem; line-height: 1.75;
  }
  html[data-visual-style="refined"] .concept-q .q-hero-actions { gap: 10px; }
  html[data-visual-style="refined"] .concept-q .q-hero-actions a { min-height: 48px; padding: 12px; font-size: .875rem; }
  html[data-visual-style="refined"] .concept-q .q-faq-list details > p { margin-left: 0; margin-right: 0; }
  html[data-visual-style="refined"] .concept-q .reveal { opacity: 1; transform: none; transition: none; }
}

/* Keep content visible immediately on every screen size. */
html[data-visual-style="refined"] .concept-q .reveal {
  opacity: 1; transform: none; transition: none;
}

@media (min-width: 721px) {
  html[data-visual-style="refined"] .concept-q .p-hero {
    height: auto; min-height: 0; padding: 116px var(--pad) 40px;
  }
  html[data-visual-style="refined"] .concept-q .p-hero-copy {
    position: relative; inset: auto; width: 100%;
  }
  html[data-visual-style="refined"] .concept-q .p-hero h1 {
    font-size: clamp(2.5rem, 4.2vw, 4.5rem); line-height: 1.15;
  }
  html[data-visual-style="refined"] .concept-q .p-hero-copy > p { margin-bottom: 18px; }
  html[data-visual-style="refined"] .concept-q .p-hero-bottom {
    grid-template-columns: 1fr; gap: 20px; margin-top: 24px; padding-top: 18px;
  }
  html[data-visual-style="refined"] .concept-q .p-hero-bottom p {
    max-width: 760px; font-size: 1rem; line-height: 1.65;
  }
  html[data-visual-style="refined"] .concept-q .q-hero-actions {
    display: flex; flex-wrap: wrap; gap: 12px;
  }
  html[data-visual-style="refined"] .concept-q .q-hero-actions a {
    min-height: 48px; min-width: 180px; padding: 14px 20px; font-size: .875rem;
  }
  html[data-visual-style="refined"] .concept-q .q-faq {
    grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
    gap: 48px; padding-top: 64px; padding-bottom: 64px; align-items: start;
  }
  html[data-visual-style="refined"] .concept-q .q-faq-head h2 {
    font-size: clamp(1.8rem, 2.8vw, 2.8rem); line-height: 1.25;
  }
  html[data-visual-style="refined"] .concept-q .q-faq-head > p { margin-bottom: 20px; }
  html[data-visual-style="refined"] .concept-q .q-faq-head > p:last-child { margin-top: 24px; font-size: 1rem; }
  .concept-q .q-faq-list summary { min-height: 72px; padding: 20px 0; grid-template-columns: 28px 1fr 20px; gap: 12px; }
  .concept-q .q-faq-list summary strong { font-size: 1rem; }
  .concept-q .q-faq-list details > p { margin: 0; font-size: 1rem; }
  .service-hero { min-height: 0; padding-top: 48px; padding-bottom: 48px; }
  .service-hero h1 { font-size: clamp(2.5rem, 4.2vw, 4.5rem); line-height: 1.15; }
  .service-section { padding-top: 72px; padding-bottom: 72px; }
  /* Both menus use a scrollable panel below their existing header. */
  .concept-q .p-mobile-menu, body > .service-mobile-menu {
    position: fixed; inset: 82px 0 auto auto;
    width: min(760px, 100%); height: auto; max-height: calc(100dvh - 82px);
    padding: 24px 32px; overflow-y: auto; overscroll-behavior: contain;
    background: #fbfbf8; color: #171d20; border: 1px solid #d5d0c7;
    box-shadow: 0 18px 40px #171d2026; grid-template-columns: 1fr;
    align-content: start; gap: 0;
  }
  .concept-q .p-mobile-menu section, .service-mobile-menu section { padding: 18px 0; margin: 0; }
  html[data-visual-style="refined"] .concept-q .p-mobile-menu { top: 76px; max-height: calc(100dvh - 76px); }
  .concept-q .p-mobile-menu section h2, .service-mobile-menu section h2 { margin: 0 0 12px; font-size: 1.4rem; }
  .concept-q .p-mobile-menu section div, .service-mobile-menu section div { display: flex; flex-wrap: wrap; gap: 8px 20px; }
  .concept-q .p-mobile-menu section a, .service-mobile-menu section a { font-size: 1rem; min-height: 36px; display: inline-flex; align-items: center; }
}

.concept-q .q-field input,
.concept-q .q-field textarea {
  font-size: 16px;
}

.concept-q .p-contact-info .kakao-contact {
  display: grid; gap: 10px; min-width: 0;
}
.concept-q .kakao-contact strong { font-size: 1.125rem; }
.concept-q .kakao-contact > span { font-size: .875rem; line-height: 1.6; color: #d5dada; }
.concept-q .kakao-contact > a {
  display: inline-flex; align-items: center; justify-self: start;
  min-height: 44px; font-size: 1rem; line-height: 1.5;
  text-decoration: underline; text-underline-offset: 5px;
}
@media (min-width: 641px) {
  .concept-q .p-work-list article { align-items: start; }
  .concept-q .p-work-list article > span {
    justify-self: stretch; text-align: left; line-height: 1.4; padding-top: 6px;
  }
  .concept-q .p-work-list article:hover { padding-left: 0; padding-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .preview-link-grid > a {
    transition: none;
  }

  .preview-link-grid > a:hover {
    transform: none;
  }
}
