@import url('https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Noto+Serif+KR:wght@500;700;900&display=swap');

:root {
  --ink:#171512;
  --paper:#f7f0e3;
  --paper-deep:#ece0cd;
  --white:#fffdf8;
  --red:#8e2b24;
  --gold:#a68856;
  --gray:#5c554d;
  --line:rgba(23,21,18,.13);
  --success:#316a46;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
  background:var(--paper);
  color:var(--ink);
  font-family:"Gowun Batang","Malgun Gothic",serif;
  font-size:19px;
  line-height:1.8;
  word-break:keep-all;
}

button,input,select,textarea { font:inherit; }
input,select,textarea { color:var(--ink); }

.site-header {
  position:sticky;
  top:0;
  z-index:50;
  min-height:78px;
  padding:15px 7%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:rgba(247,240,227,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}

.brand {
  color:var(--ink);
  text-decoration:none;
  font-family:"Noto Serif KR",serif;
  font-size:32px;
  font-weight:900;
  letter-spacing:-2px;
}

.main-nav a {
  color:var(--ink);
  text-decoration:none;
  margin-left:22px;
  font-size:17px;
  font-weight:700;
}

.main-nav a:hover { color:var(--red); }

.hero {
  min-height:820px;
  position:relative;
  display:flex;
  align-items:center;
  padding:110px 8%;
  overflow:hidden;
  background-image:url("images/marriage.jpg");
  background-size:cover;
  background-position:center;
}

.hero-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(247,240,227,.98) 0%,
    rgba(247,240,227,.91) 43%,
    rgba(247,240,227,.54) 74%,
    rgba(247,240,227,.20) 100%
  );
}

.hero-content { position:relative; z-index:2; max-width:820px; }

.eyebrow {
  color:var(--red);
  font-size:17px;
  font-weight:900;
  letter-spacing:1px;
  margin-bottom:12px;
}

.hero h1 {
  font-family:"Noto Serif KR",serif;
  font-size:clamp(58px,7vw,100px);
  line-height:1.14;
  letter-spacing:-5px;
  margin-bottom:28px;
}

.hero-message {
  font-size:clamp(25px,2.3vw,33px);
  line-height:1.65;
  font-weight:700;
  margin-bottom:18px;
}

.hero-sub {
  color:#514a42;
  font-size:clamp(20px,1.7vw,25px);
  margin-bottom:34px;
}

.hero-actions,.form-actions {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.button {
  display:inline-block;
  padding:14px 28px;
  border:1px solid var(--ink);
  border-radius:999px;
  text-decoration:none;
  font-weight:900;
  cursor:pointer;
}

.button-dark { background:var(--ink); color:white; }
.button-light { background:rgba(255,255,255,.88); color:var(--ink); }
.button-outline { background:transparent; color:var(--ink); }

.section { padding:108px 8%; }

.section-heading {
  max-width:940px;
  margin-bottom:44px;
}

.section-heading.centered {
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.section h2 {
  font-family:"Noto Serif KR",serif;
  font-size:clamp(40px,5vw,66px);
  line-height:1.25;
  letter-spacing:-3px;
  margin-bottom:15px;
}

.section-description { color:var(--gray); font-size:21px; }

.story-section { background:var(--ink); color:var(--paper); }

.story-wrap {
  max-width:920px;
  margin:0 auto;
  text-align:center;
}

.story-wrap h2 { color:var(--paper); }

.story-wrap p {
  color:#ded4c4;
  font-size:21px;
  margin-top:18px;
}

.story-lead {
  color:var(--paper)!important;
  font-size:clamp(28px,3.3vw,44px)!important;
  font-weight:700;
  line-height:1.55;
  margin:28px 0!important;
}

.story-quote {
  margin-top:38px!important;
  padding:30px;
  border-top:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.18);
  color:#fff7e9!important;
  font-size:24px!important;
}

.meaning-section { background:var(--white); }

.meaning-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.meaning-card {
  padding:38px 30px;
  text-align:center;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:22px;
}

.meaning-card span {
  display:inline-flex;
  width:78px;
  height:78px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--white);
  color:var(--red);
  font-family:"Noto Serif KR",serif;
  font-size:36px;
  font-weight:900;
}

.meaning-card h3 { font-size:27px; margin:18px 0 8px; }
.meaning-card p { color:var(--gray); }

.featured-section { background:var(--paper); }

.featured-card {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:46px;
  align-items:center;
  padding:30px;
  background:var(--white);
  border-radius:26px;
  box-shadow:0 22px 64px rgba(23,21,18,.13);
}

.image-button {
  width:100%;
  border:none;
  background:#f5eee2;
  cursor:zoom-in;
  overflow:hidden;
}

.image-button img {
  display:block;
  width:100%;
  object-fit:contain;
  transition:transform .35s ease;
}

.image-button:hover img { transform:scale(1.025); }
.featured-image img { max-height:620px; padding:16px; }
.featured-label { color:var(--red); font-size:19px; font-weight:900; }

.featured-text h3 {
  font-family:"Noto Serif KR",serif;
  font-size:42px;
  margin:8px 0 18px;
}

.featured-text p { color:var(--gray); font-size:20px; margin-bottom:14px; }

.works-section { background:var(--paper-deep); }

.works-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}

.work-card {
  overflow:hidden;
  background:var(--white);
  border-radius:22px;
  box-shadow:0 14px 40px rgba(23,21,18,.08);
}

.work-card img { height:390px; padding:15px; }
.work-text { padding:25px; }
.work-text h3 { color:var(--red); font-size:29px; margin-bottom:10px; }
.work-text p { color:var(--gray); font-size:19px; }

.process-section { background:var(--white); }

.process-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}

.process-grid article {
  padding:32px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:21px;
}

.process-grid span { color:var(--gold); font-weight:900; }
.process-grid h3 { font-size:25px; line-height:1.4; margin:12px 0 10px; }
.process-grid p { color:var(--gray); font-size:18px; }

.price-section {
  background:linear-gradient(135deg,#302d28,#171512);
  color:var(--paper);
}

.price-card {
  max-width:900px;
  margin:0 auto;
  text-align:center;
}

.price-card h2 { color:var(--paper); }

.price-card > p {
  color:#e0d6c6;
  font-size:21px;
  margin-top:18px;
}

.price-number {
  margin:32px auto;
  padding:28px 20px;
  max-width:440px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:20px;
}

.price-number span { display:block; color:#d8c9b5; }
.price-number strong { display:block; font-size:48px; color:#fff; }

.price-note {
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.16);
  color:#fff4df!important;
  font-weight:700;
}

.request-section { background:var(--paper-deep); }

.kakao-consult {
  max-width:1120px;
  margin:0 auto 22px;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:#fff7cc;
  border:1px solid #ead66a;
  border-radius:20px;
  box-shadow:0 10px 30px rgba(23,21,18,.06);
}

.kakao-consult-text {
  display:flex;
  flex-direction:column;
  gap:4px;
  color:#3b3028;
}

.kakao-consult-text strong { font-size:18px; }
.kakao-consult-text span { color:var(--gray); }

.kakao-consult-button {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:48px;
  padding:0 20px;
  border-radius:999px;
  background:#fee500;
  color:#191919;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(25,25,25,.10);
  transition:transform .18s ease, box-shadow .18s ease;
}

.kakao-consult-button:hover {
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(25,25,25,.14);
}

.kakao-bubble {
  width:24px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#191919;
  color:#191919;
  font-size:0;
  position:relative;
}

.kakao-bubble::after {
  content:"";
  position:absolute;
  left:4px;
  bottom:-4px;
  width:7px;
  height:7px;
  background:#191919;
  transform:rotate(35deg);
  border-radius:1px;
}

.request-form,.request-preview,.saved-requests {
  max-width:1120px;
  margin:0 auto;
  padding:40px;
  background:var(--white);
  border-radius:26px;
  box-shadow:0 18px 55px rgba(23,21,18,.09);
}

.form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.request-form label span {
  display:block;
  font-weight:700;
  margin-bottom:7px;
}

.request-form input,
.request-form select,
.request-form textarea {
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:15px 17px;
  font-size:18px;
}

.request-form textarea { min-height:145px; resize:vertical; }
.full-field { display:block; margin-top:20px; }

.preferred-sentence {
  padding:22px;
  background:#fffaf0;
  border:1px solid rgba(166,136,86,.35);
  border-radius:18px;
}

.preferred-sentence small {
  display:block;
  margin-top:8px;
  color:var(--gray);
}

.ai-option-box {
  margin-top:24px;
  padding:24px;
  background:var(--paper);
  border-radius:18px;
}

.ai-toggle {
  display:flex!important;
  align-items:flex-start;
  gap:10px;
}

.ai-toggle input { width:auto!important; margin-top:8px; }

.ai-toggle span {
  font-size:20px;
  color:var(--red);
}

.ai-recommendation-panel {
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--line);
}

.recommend-head,.preview-head,.saved-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}

.recommend-head h3,.preview-head h3,.saved-head h3 { font-size:27px; }
.recommend-head p { color:var(--gray); }

.ai-suggestion {
  min-height:100px;
  padding:20px;
  background:white;
  border:1px solid var(--line);
  border-radius:14px;
  font-size:20px;
}

.use-suggestion-button {
  margin-top:14px;
  border:none;
  background:transparent;
  color:var(--red);
  font-weight:900;
  cursor:pointer;
}

.consent {
  display:flex!important;
  align-items:flex-start;
  gap:10px;
  margin:22px 0;
}

.consent input { width:auto!important; margin-top:8px; }
.consent span { font-weight:400!important; }

.form-message { margin-top:18px; font-size:19px; font-weight:700; }
.form-message.success { color:var(--success); }
.form-message.error { color:var(--red); }

.request-preview,.saved-requests { margin-top:32px; }

.preview-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 28px;
}

.preview-item {
  padding:12px 0;
  border-bottom:1px solid var(--line);
}

.preview-item strong { display:block; color:var(--red); }
.preview-item.full { grid-column:1/-1; }

.text-button {
  border:none;
  background:transparent;
  color:var(--red);
  font-weight:700;
  cursor:pointer;
}

.saved-list { display:grid; gap:14px; }

.saved-item {
  padding:18px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--paper);
}

.saved-item h4 { font-size:20px; }
.saved-item p { color:var(--gray); }

.first-order-section { background:var(--white); }

.first-order-card {
  max-width:900px;
  margin:0 auto;
  padding:58px;
  text-align:center;
  background:var(--paper);
  border-radius:26px;
}

.first-order-card p {
  color:var(--gray);
  font-size:21px;
  margin-top:14px;
}

footer {
  padding:42px 20px;
  background:var(--ink);
  color:#eee4d4;
  text-align:center;
}

footer p { font-size:20px; margin-bottom:6px; }
footer strong { font-size:28px; }

.modal {
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  padding:30px;
  background:rgba(0,0,0,.92);
}

.modal.open { display:flex; }
.modal img { max-width:94vw; max-height:84vh; object-fit:contain; }
.modal p { color:white; font-size:22px; margin-top:14px; }

.modal-close {
  position:absolute;
  top:15px;
  right:27px;
  border:none;
  background:transparent;
  color:white;
  font-size:48px;
  cursor:pointer;
}

.reveal {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s ease,transform .8s ease;
}

.reveal.show { opacity:1; transform:translateY(0); }


.print-sheet {
  display:block;
}

.print-title {
  text-align:center;
  margin-bottom:22px;
}

.print-title h2 {
  font-size:32px;
  margin-bottom:4px;
}

.print-title p {
  color:var(--gray);
  font-size:16px;
}

.print-info-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.print-info-item {
  display:grid;
  grid-template-columns:130px 1fr;
  min-height:52px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.print-info-item strong,
.print-info-item span {
  padding:10px 12px;
}

.print-info-item strong {
  background:var(--paper);
  color:var(--red);
}

.print-section {
  margin-top:18px;
  border:1px solid var(--line);
}

.print-section h4 {
  padding:8px 12px;
  background:var(--paper);
  color:var(--red);
  font-size:18px;
}

.print-section p {
  min-height:90px;
  padding:13px;
  white-space:pre-wrap;
}

.print-section .final-sentence {
  min-height:70px;
  font-size:21px;
  font-weight:700;
}

.compact-section p {
  min-height:55px;
}

.print-footer-row {
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:18px;
  padding-top:12px;
  border-top:1px solid var(--line);
}

.print-sign {
  text-align:right;
  white-space:nowrap;
}


.reference-upload-box {
  margin-top:24px;
  padding:24px;
  background:#fffaf0;
  border:1px solid rgba(166,136,86,.35);
  border-radius:18px;
}

.reference-upload-head {
  margin-bottom:18px;
}

.reference-upload-head h3 {
  font-size:26px;
  margin-bottom:4px;
}

.reference-upload-head p {
  color:var(--gray);
}

.reference-upload-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.reference-file input[type="file"] {
  margin-bottom:10px;
  padding:11px;
  background:#fff;
}

.reference-preview {
  min-height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  border:1px dashed rgba(23,21,18,.28);
  border-radius:14px;
  background:#fff;
  color:var(--gray);
}

.reference-preview img {
  width:100%;
  height:180px;
  object-fit:contain;
  background:#fff;
}

.reference-preview button {
  position:absolute;
  top:8px;
  right:8px;
  padding:6px 10px;
  border:none;
  border-radius:999px;
  background:rgba(23,21,18,.82);
  color:#fff;
  cursor:pointer;
}

.reference-note {
  display:block;
  margin-top:10px;
  color:var(--gray);
}

.print-reference-section {
  margin-top:18px;
  border:1px solid var(--line);
}

.print-reference-section h4 {
  padding:8px 12px;
  background:var(--paper);
  color:var(--red);
  font-size:18px;
}

.print-reference-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding:12px;
}

.print-reference-image,
.print-reference-placeholder {
  min-height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  background:#fff;
  color:var(--gray);
}

.print-reference-image img {
  width:100%;
  height:150px;
  object-fit:contain;
}

.print-reference-empty {
  padding:18px;
  color:var(--gray);
}


/* 입력 내용 길이에 따른 자동 인쇄 조정 */
#requestPreview.print-density-relaxed .print-reference-image,
#requestPreview.print-density-relaxed .print-reference-placeholder {
  min-height: 210px;
}

#requestPreview.print-density-relaxed .print-reference-image img {
  height: 210px;
}

#requestPreview.print-density-normal .print-reference-image,
#requestPreview.print-density-normal .print-reference-placeholder {
  min-height: 175px;
}

#requestPreview.print-density-normal .print-reference-image img {
  height: 175px;
}

#requestPreview.print-density-compact .print-reference-image,
#requestPreview.print-density-compact .print-reference-placeholder {
  min-height: 135px;
}

#requestPreview.print-density-compact .print-reference-image img {
  height: 135px;
}

#requestPreview.print-density-tight .print-reference-image,
#requestPreview.print-density-tight .print-reference-placeholder {
  min-height: 95px;
}

#requestPreview.print-density-tight .print-reference-image img {
  height: 95px;
}

#requestPreview.print-density-tight .print-section p {
  font-size: 17px;
  line-height: 1.45;
}

#requestPreview.print-density-tight .print-title {
  margin-bottom: 14px;
}


@media (max-width:700px) {
  .kakao-consult {
    flex-direction:column;
    align-items:stretch;
    text-align:center;
    padding:18px;
  }
  .kakao-consult-button { width:100%; }
}

@media print {
  @page {
    size:A4 portrait;
    margin:8mm;
  }

  html,
  body {
    width:210mm;
    min-height:297mm;
    margin:0;
    padding:0;
    background:#fff;
    font-size:10pt;
    line-height:1.35;
  }

  body * {
    visibility:hidden !important;
  }

  #requestPreview,
  #requestPreview * {
    visibility:visible !important;
  }

  #requestPreview {
    position:absolute;
    left:0;
    top:0;
    width:194mm;
    margin:0;
    padding:0;
    background:#fff;
    box-shadow:none;
    border-radius:0;
    page-break-inside:avoid;
  }

  .preview-head {
    display:none !important;
  }

  .print-sheet {
    width:100%;
    page-break-inside:avoid;
    break-inside:avoid;
  }

  .print-title {
    margin:0 0 6mm;
    padding:2mm 0 3mm;
    border-bottom:1.5px solid #222;
  }

  .print-title h2 {
    margin:0;
    font-size:20pt;
    line-height:1.2;
    letter-spacing:-1px;
  }

  .print-title p {
    margin-top:1mm;
    font-size:8.5pt;
    color:#444;
  }

  .print-info-grid {
    grid-template-columns:repeat(2,1fr);
    border-color:#555;
  }

  .print-info-item {
    grid-template-columns:26mm 1fr;
    min-height:10mm;
    border-color:#777;
  }

  .print-info-item strong,
  .print-info-item span {
    padding:1.7mm 2mm;
    font-size:9.5pt;
    line-height:1.25;
  }

  .print-info-item strong {
    background:#f1ece3 !important;
    color:#111 !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  .print-section {
    margin-top:4mm;
    border-color:#666;
    page-break-inside:avoid;
    break-inside:avoid;
  }

  .print-section h4 {
    padding:1.5mm 2mm;
    background:#f1ece3 !important;
    color:#111 !important;
    font-size:10.5pt;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  .print-section p {
    min-height:18mm;
    max-height:31mm;
    overflow:hidden;
    padding:2mm 2.5mm;
    font-size:9.5pt;
    line-height:1.4;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
  }

  .print-section .final-sentence {
    min-height:14mm;
    max-height:24mm;
    font-size:11.5pt;
    line-height:1.45;
  }

  .compact-section p {
    min-height:11mm;
    max-height:19mm;
  }


  .print-reference-section {
    margin-top:4mm;
    border:1px solid #666;
    page-break-inside:avoid;
    break-inside:avoid;
  }

  .print-reference-section h4 {
    padding:1.5mm 2mm;
    background:#f1ece3 !important;
    color:#111 !important;
    font-size:10.5pt;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  .print-reference-grid {
    grid-template-columns:repeat(2,1fr);
    gap:3mm;
    padding:2.5mm;
  }

  .print-reference-image,
  .print-reference-placeholder {
    min-height:42mm;
    max-height:48mm;
    border:1px solid #777;
  }

  .print-reference-image img {
    width:100%;
    height:42mm;
    max-height:42mm;
    object-fit:contain;
  }

  .print-reference-empty {
    padding:3mm;
    font-size:9pt;
  }

  .print-footer-row {
    margin-top:3mm;
    padding-top:2mm;
    gap:4mm;
    font-size:8.8pt;
    border-color:#777;
    page-break-inside:avoid;
    break-inside:avoid;
  }

  .print-sign {
    min-width:42mm;
    align-self:flex-end;
  }


  #requestPreview.print-density-relaxed .print-reference-image,
  #requestPreview.print-density-relaxed .print-reference-placeholder {
    min-height:56mm;
    max-height:56mm;
  }

  #requestPreview.print-density-relaxed .print-reference-image img {
    height:56mm;
    max-height:56mm;
  }

  #requestPreview.print-density-normal .print-reference-image,
  #requestPreview.print-density-normal .print-reference-placeholder {
    min-height:46mm;
    max-height:46mm;
  }

  #requestPreview.print-density-normal .print-reference-image img {
    height:46mm;
    max-height:46mm;
  }

  #requestPreview.print-density-compact .print-reference-image,
  #requestPreview.print-density-compact .print-reference-placeholder {
    min-height:34mm;
    max-height:34mm;
  }

  #requestPreview.print-density-compact .print-reference-image img {
    height:34mm;
    max-height:34mm;
  }

  #requestPreview.print-density-tight .print-reference-image,
  #requestPreview.print-density-tight .print-reference-placeholder {
    min-height:22mm;
    max-height:22mm;
  }

  #requestPreview.print-density-tight .print-reference-image img {
    height:22mm;
    max-height:22mm;
  }

  #requestPreview.print-density-compact .print-section p {
    max-height:26mm;
    font-size:9.1pt;
  }

  #requestPreview.print-density-tight .print-section {
    margin-top:2.5mm;
  }

  #requestPreview.print-density-tight .print-section p {
    min-height:10mm;
    max-height:20mm;
    padding:1.4mm 2mm;
    font-size:8.5pt;
    line-height:1.3;
  }

  #requestPreview.print-density-tight .print-section .final-sentence {
    min-height:10mm;
    max-height:17mm;
    font-size:9.5pt;
  }

  #requestPreview.print-density-tight .compact-section p {
    min-height:8mm;
    max-height:13mm;
  }

  #requestPreview.print-density-tight .print-title {
    margin-bottom:3mm;
  }

  #requestPreview.print-density-tight .print-info-item {
    min-height:8.5mm;
  }

  #requestPreview.print-density-tight .print-info-item strong,
  #requestPreview.print-density-tight .print-info-item span {
    padding:1.2mm 1.7mm;
    font-size:8.6pt;
  }
}

@media (max-width:1180px) {
  .process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:930px) {
  .site-header { position:static; display:block; text-align:center; }
  .main-nav { margin-top:11px; }
  .main-nav a { display:inline-block; margin:7px 8px; }
  .hero { min-height:680px; padding:82px 24px; }
  .hero-overlay { background:rgba(247,240,227,.88); }
  .section { padding:78px 24px; }

  .meaning-grid,
  .reference-upload-grid,
  .featured-card,
  .works-grid,
  .process-grid,
  .form-grid,
  .preview-grid {
    grid-template-columns:1fr;
  }

  .work-card img { height:320px; }

  .request-form,
  .request-preview,
  .saved-requests {
    padding:25px 20px;
  }

  .recommend-head,
  .preview-head,
  .saved-head {
    align-items:flex-start;
    flex-direction:column;
  }

  .preview-item.full { grid-column:auto; }
  .first-order-card { padding:38px 24px; }
}


/* Ver.6 소개글과 가격표 */
.story-body {
  margin-top:30px;
}
.story-body p {
  color:#ded4c4;
  font-size:21px;
  line-height:2;
  margin:0 0 34px;
}
.story-body p:last-child { margin-bottom:0; }

.price-table {
  max-width:720px;
  margin:34px auto;
  border-top:1px solid rgba(255,255,255,.22);
}
.price-row {
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:20px 8px;
  border-bottom:1px solid rgba(255,255,255,.22);
}
.price-row span { color:#e0d6c6; }
.price-row strong { color:#fff7e9; font-size:24px; white-space:nowrap; }
@media (max-width:640px) {
  .story-body p { font-size:18px; line-height:1.9; text-align:left; }
  .price-row { align-items:flex-start; }
  .price-row strong { font-size:20px; }
}


/* Ver.6.1 문구 및 크기 조정 */
.story-body p {
  font-size:23px;
  line-height:2.05;
}

.story-core-message {
  margin-top:48px !important;
  padding:34px 24px;
  text-align:center;
  font-size:clamp(27px, 2.6vw, 37px) !important;
  line-height:1.85 !important;
  font-weight:700;
  color:#fff7e9 !important;
  border-top:1px solid rgba(255,255,255,.22);
  border-bottom:1px solid rgba(255,255,255,.22);
}

.closing-message {
  padding:54px 34px;
}

.closing-message p {
  margin:5px 0;
  color:var(--ink);
  font-size:clamp(20px, 2vw, 27px);
  line-height:1.75;
}

.closing-message strong {
  display:block;
  margin:8px 0 14px;
  color:var(--red);
  font-size:clamp(30px, 3.3vw, 44px);
  line-height:1.35;
  font-weight:700;
}

@media (max-width:640px) {
  .story-body p {
    font-size:19px;
  }

  .story-core-message {
    padding:26px 10px;
    font-size:23px !important;
    text-align:left;
  }

  .closing-message {
    padding:38px 20px;
  }
}


/* Ver.6.2 하단 문구와 새 작품 카드 */
.closing-footer {
  padding:42px 20px 46px;
  background:#1d1814;
  color:#fff;
  text-align:center;
}

.closing-footer p {
  margin:3px 0;
  color:#fff;
  font-size:clamp(18px, 1.8vw, 24px);
  line-height:1.75;
}

.closing-footer strong {
  display:inline-block;
  margin-left:8px;
  color:#fff;
  font-size:clamp(25px, 2.8vw, 38px);
  line-height:1;
  font-weight:700;
}

@media (max-width:640px) {
  .closing-footer {
    padding:34px 18px 38px;
  }

  .closing-footer p {
    font-size:18px;
  }

  .closing-footer strong {
    display:block;
    margin:8px 0 6px;
    font-size:29px;
  }
}


/* Ver.6.3 저장 의뢰 다시 열기 */
.saved-item-button {
  width:100%;
  display:block;
  text-align:left;
  border:1px solid var(--line);
  background:#fff;
  color:inherit;
  cursor:pointer;
  font:inherit;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.saved-item-button:hover,
.saved-item-button:focus-visible {
  transform:translateY(-2px);
  border-color:rgba(139,47,39,.45);
  box-shadow:0 10px 24px rgba(31,28,24,.10);
  outline:none;
}

.saved-reprint-guide {
  display:block;
  margin-top:9px;
  color:var(--red);
  font-size:14px;
  font-weight:700;
}

/* 작업 의뢰서 인쇄 글씨 약 1.5배 확대 */
@media print {
  @page {
    size:A4 portrait;
    margin:6mm;
  }

  html,
  body {
    font-size:15pt;
    line-height:1.2;
  }

  #requestPreview {
    width:198mm;
  }

  .print-title {
    margin-bottom:3mm;
    padding:1mm 0 2mm;
  }

  .print-title h2 {
    font-size:30pt;
    line-height:1.05;
  }

  .print-title p {
    margin-top:.5mm;
    font-size:12.75pt;
    line-height:1.15;
  }

  .print-info-item {
    grid-template-columns:28mm 1fr;
    min-height:9mm;
  }

  .print-info-item strong,
  .print-info-item span {
    padding:1.1mm 1.5mm;
    font-size:14.25pt;
    line-height:1.12;
  }

  .print-section {
    margin-top:2.2mm;
  }

  .print-section h4,
  .print-reference-section h4 {
    padding:1mm 1.5mm;
    font-size:15.75pt;
    line-height:1.1;
  }

  .print-section p {
    min-height:14mm;
    max-height:25mm;
    padding:1.2mm 1.8mm;
    font-size:14.25pt;
    line-height:1.18;
  }

  .print-section .final-sentence {
    min-height:11mm;
    max-height:20mm;
    font-size:17.25pt;
    line-height:1.18;
  }

  .compact-section p {
    min-height:8mm;
    max-height:14mm;
  }

  .print-reference-section {
    margin-top:2.2mm;
  }

  .print-reference-grid {
    gap:2mm;
    padding:1.5mm;
  }

  .print-reference-image,
  .print-reference-placeholder {
    min-height:25mm !important;
    max-height:25mm !important;
  }

  .print-reference-image img {
    height:25mm !important;
    max-height:25mm !important;
  }

  .print-reference-empty {
    padding:1.5mm;
    font-size:13.5pt;
  }

  .print-footer-row {
    margin-top:2mm;
    padding-top:1.5mm;
    gap:3mm;
    font-size:13.2pt;
    line-height:1.2;
  }

  #requestPreview.print-density-tight .print-section p {
    font-size:13.5pt;
    line-height:1.12;
  }

  #requestPreview.print-density-tight .print-reference-image,
  #requestPreview.print-density-tight .print-reference-placeholder,
  #requestPreview.print-density-compact .print-reference-image,
  #requestPreview.print-density-compact .print-reference-placeholder {
    min-height:18mm !important;
    max-height:18mm !important;
  }

  #requestPreview.print-density-tight .print-reference-image img,
  #requestPreview.print-density-compact .print-reference-image img {
    height:18mm !important;
    max-height:18mm !important;
  }
}


/* Ver.6.4 최종 인쇄 조정
   - 글씨는 원래 크기의 약 1.2배
   - 내용이 짧을수록 참고 이미지를 크게 표시
   - A4 한 장의 아래쪽 빈 공간을 최대한 활용
*/
@media print {
  @page {
    size:A4 portrait;
    margin:6mm;
  }

  html,
  body {
    font-size:12pt;
    line-height:1.22;
  }

  #requestPreview {
    width:198mm;
    min-height:285mm;
  }

  .print-sheet {
    min-height:285mm;
    display:flex;
    flex-direction:column;
  }

  .print-title {
    margin-bottom:2.5mm;
    padding:.5mm 0 1.5mm;
  }

  .print-title h2 {
    font-size:24pt;
    line-height:1.08;
  }

  .print-title p {
    margin-top:.5mm;
    font-size:10.8pt;
    line-height:1.2;
  }

  .print-info-item {
    grid-template-columns:27mm 1fr;
    min-height:7.2mm;
  }

  .print-info-item strong,
  .print-info-item span {
    padding:.9mm 1.4mm;
    font-size:11.4pt;
    line-height:1.18;
  }

  .print-section {
    margin-top:2mm;
  }

  .print-section h4,
  .print-reference-section h4 {
    padding:.9mm 1.5mm;
    font-size:12.6pt;
    line-height:1.12;
  }

  .print-section p {
    min-height:12mm;
    max-height:24mm;
    padding:1.2mm 1.8mm;
    font-size:11.4pt;
    line-height:1.25;
  }

  .print-section .final-sentence {
    min-height:10mm;
    max-height:20mm;
    font-size:13.8pt;
    line-height:1.25;
  }

  .compact-section p {
    min-height:7mm;
    max-height:13mm;
  }

  .print-reference-section {
    margin-top:2mm;
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:44mm;
  }

  .print-reference-grid {
    flex:1 1 auto;
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    align-items:stretch;
    gap:2.5mm;
    padding:2mm;
  }

  .print-reference-image,
  .print-reference-placeholder {
    width:100%;
    height:100% !important;
    min-height:44mm !important;
    max-height:none !important;
    border:1px solid #777;
  }

  .print-reference-image img {
    width:100%;
    height:100% !important;
    max-height:none !important;
    object-fit:contain;
  }

  .print-reference-empty {
    padding:2mm;
    font-size:10.8pt;
  }

  .print-footer-row {
    margin-top:2mm;
    padding-top:1.5mm;
    gap:3mm;
    font-size:10.6pt;
    line-height:1.2;
  }

  /* 내용이 짧을 때: 사진을 가장 크게 */
  #requestPreview.print-density-relaxed .print-reference-section {
    min-height:88mm;
  }

  #requestPreview.print-density-relaxed .print-reference-image,
  #requestPreview.print-density-relaxed .print-reference-placeholder {
    min-height:88mm !important;
  }

  /* 보통 길이 */
  #requestPreview.print-density-normal .print-reference-section {
    min-height:72mm;
  }

  #requestPreview.print-density-normal .print-reference-image,
  #requestPreview.print-density-normal .print-reference-placeholder {
    min-height:72mm !important;
  }

  /* 내용이 조금 많을 때 */
  #requestPreview.print-density-compact .print-reference-section {
    min-height:54mm;
  }

  #requestPreview.print-density-compact .print-reference-image,
  #requestPreview.print-density-compact .print-reference-placeholder {
    min-height:54mm !important;
    max-height:none !important;
  }

  /* 내용이 매우 많을 때 */
  #requestPreview.print-density-tight .print-reference-section {
    min-height:38mm;
  }

  #requestPreview.print-density-tight .print-reference-image,
  #requestPreview.print-density-tight .print-reference-placeholder {
    min-height:38mm !important;
    max-height:none !important;
  }

  #requestPreview.print-density-tight .print-section p {
    font-size:10.8pt;
    line-height:1.18;
  }

  /* 사진이 한 장만 있어도 빈 칸을 포함한 두 칸 구성을 유지하여
     사진이 찌그러지지 않고 크게 보이도록 함 */
  .print-reference-grid:has(.print-reference-image:only-child) {
    grid-template-columns:1fr;
  }
}

/* Ver6.5 인쇄 여백 조정 */
@media print{
 @page{size:A4 portrait; margin:12mm;}
 #requestPreview{width:186mm; margin:0 auto;}
 .print-sheet{padding:0;}
 .print-title{
   margin-top:6mm;
   margin-bottom:8mm;
   padding-bottom:4mm;
 }
 .print-title h2{
   margin-bottom:2.5mm;
 }
 .print-info-grid{
   margin-top:4mm;
 }
}


/* Ver.6.6 : 노트북이 있는 제목 이미지와 새 기본비용 안내 */
body {
  position:relative;
  background:#f7f0e3;
}
body::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background:url("images/writing-with-laptop.png") center/cover no-repeat;
  filter:blur(16px);
  transform:scale(1.05);
  opacity:.045;
}
body::after {
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  background:rgba(247,240,227,.92);
}
.hero {
  min-height:720px;
  padding:70px 5%;
  background:linear-gradient(135deg,#f7f0e3 0%,#efe2cf 100%);
}
.hero-overlay {
  background:radial-gradient(circle at 78% 44%,rgba(255,255,255,.08),rgba(247,240,227,.34) 58%,rgba(247,240,227,.82) 100%);
}
.hero-inner {
  position:relative;
  z-index:2;
  width:min(1440px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(420px,.88fr) minmax(520px,1.12fr);
  align-items:center;
  gap:42px;
}
.hero-content { max-width:720px; }
.hero-visual {
  min-width:0;
  overflow:hidden;
  border-radius:34px 8px 34px 8px;
  box-shadow:0 24px 65px rgba(42,31,20,.18);
}
.hero-visual img {
  display:block;
  width:100%;
  height:590px;
  object-fit:cover;
  object-position:58% center;
  filter:saturate(.86) contrast(.94) brightness(1.04);
}
.price-card { max-width:1160px; }
.price-included { margin:8px 0 28px!important; color:#fff4df!important; font-weight:800; }
.pricing-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; text-align:left; margin-top:30px; }
.pricing-box { padding:26px; border:1px solid rgba(255,255,255,.18); border-radius:20px; background:rgba(255,255,255,.035); }
.pricing-box h3 { margin:0 0 16px; text-align:center; font-size:24px; color:#fff7e9; }
.price-guide { margin-top:28px; padding:22px 26px; border:1px solid rgba(255,255,255,.18); border-radius:18px; text-align:left; background:rgba(255,255,255,.05); }
.price-guide p { margin:8px 0; color:#eee3d2; font-size:18px; line-height:1.7; }
.price-guide strong { color:#fff; }
@media (max-width:980px) {
  .hero-inner { grid-template-columns:1fr; }
  .hero-visual { order:-1; max-width:760px; width:100%; margin:0 auto; }
  .hero-visual img { height:440px; }
  .pricing-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .hero { padding:36px 20px 60px; }
  .hero-visual img { height:330px; }
  .pricing-box { padding:16px; }
}
@media print {
  body::before, body::after, .hero-visual { display:none!important; }
}


/* 바로 실행용 보완 */
.missing-work-image {
  min-height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(rgba(249,245,237,.94), rgba(249,245,237,.94)),
    url("images/writing-with-laptop.png") center/cover no-repeat;
  border: 1px solid rgba(91,70,49,.16);
}
.missing-work-image::after {
  content: "기존 작품 사진을 이 폴더의 images 폴더에 넣으면 자동으로 표시됩니다";
  max-width: 220px;
  padding: 18px;
  color: #6c5a49;
  font-size: 14px;
  line-height: 1.7;
  text-align: center;
}


/* =========================================================
   Ver.6.7 최종 화면 조정
   1) 첫 화면 이미지를 별도 사진 카드가 아닌 자연스러운 배경으로 사용
   2) 첫 화면에 홈페이지 문구가 들어간 시안 이미지는 사용하지 않음
   3) 첫 화면 아래 전체 영역에 청첩장 이미지를 은은하게 표시
   ========================================================= */

html {
  background:#f6eee1;
}

body {
  position:relative;
  isolation:isolate;
  background:transparent;
}

/* 홈페이지 전체에 깔리는 청첩장 배경 */
body::before {
  content:"";
  position:fixed;
  inset:-26px;
  z-index:-3;
  background-image:url("images/wedding-invitation.jpg");
  background-repeat:no-repeat;
  background-position:center 28%;
  background-size:cover;
  filter:blur(8px) saturate(.55) contrast(.82) brightness(1.08);
  transform:scale(1.045);
  opacity:.26;
  pointer-events:none;
}

body::after {
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background:rgba(247,240,227,.70);
  pointer-events:none;
}

/* 상단 메뉴는 배경과 자연스럽게 연결 */
.site-header {
  background:rgba(250,246,238,.90);
  backdrop-filter:blur(13px);
}

/* 첫 화면: 사진을 붙여 놓은 카드가 아니라 화면 전체 배경으로 사용 */
.hero {
  position:relative;
  min-height:760px;
  padding:90px 7%;
  overflow:hidden;
  background-image:
    linear-gradient(
      90deg,
      rgba(248,242,232,.98) 0%,
      rgba(248,242,232,.95) 30%,
      rgba(248,242,232,.77) 48%,
      rgba(248,242,232,.35) 67%,
      rgba(248,242,232,.08) 100%
    ),
    linear-gradient(
      180deg,
      rgba(255,255,255,.10) 0%,
      rgba(247,240,227,.04) 69%,
      rgba(247,240,227,.55) 100%
    ),
    url("images/writing-with-laptop.png");
  background-repeat:no-repeat;
  background-position:center, center, 72% 49%;
  background-size:cover, cover, cover;
}

.hero-overlay {
  background:
    radial-gradient(
      ellipse at 76% 47%,
      rgba(255,255,255,0) 0%,
      rgba(247,240,227,.02) 38%,
      rgba(247,240,227,.20) 66%,
      rgba(247,240,227,.52) 100%
    );
}

.hero-inner {
  position:relative;
  z-index:2;
  width:min(1480px,100%);
  margin:0 auto;
  display:block;
}

.hero-content {
  max-width:760px;
  padding:34px 38px;
  background:rgba(250,246,238,.13);
  border-radius:10px;
  backdrop-filter:blur(.6px);
}

/* 기존에 오른쪽에 붙어 있던 별도 이미지 상자 제거 */
.hero-visual {
  display:none !important;
}

/* 청첩장 배경이 아래 전체 화면에서 은은하게 보이도록
   각 영역의 단색 배경을 반투명하게 변경 */
.meaning-section {
  background:rgba(255,253,248,.82);
}

.featured-section {
  background:rgba(247,240,227,.80);
}

.works-section {
  background:rgba(236,224,205,.79);
}

.process-section {
  background:rgba(255,253,248,.83);
}

.request-section {
  background:rgba(236,224,205,.81);
}

.first-order-section {
  background:rgba(255,253,248,.83);
}

/* 카드들은 읽기 편하도록 종이처럼 유지 */
.meaning-card,
.featured-card,
.work-card,
.request-wrap,
.first-order-card {
  backdrop-filter:blur(3px);
}

/* 짙은 소개 영역에서도 배경 느낌이 아주 약하게 남도록 */
.story-section {
  position:relative;
  background:rgba(23,21,18,.965);
}

.story-section::before {
  content:"";
  position:absolute;
  inset:0;
  background:url("images/wedding-invitation.jpg") center/cover no-repeat;
  opacity:.035;
  filter:grayscale(1);
  pointer-events:none;
}

.story-section > * {
  position:relative;
  z-index:1;
}

/* 작은 화면에서는 인물과 노트북이 잘리지 않도록 위치 조정 */
@media (max-width:980px) {
  .hero {
    min-height:690px;
    padding:72px 5%;
    background-position:center, center, 65% 48%;
  }

  .hero-content {
    max-width:650px;
    background:rgba(250,246,238,.48);
  }
}

@media (max-width:640px) {
  .hero {
    min-height:720px;
    padding:54px 20px 70px;
    align-items:flex-end;
    background-image:
      linear-gradient(
        180deg,
        rgba(247,240,227,.18) 0%,
        rgba(247,240,227,.40) 43%,
        rgba(247,240,227,.96) 73%,
        rgba(247,240,227,.99) 100%
      ),
      url("images/writing-with-laptop.png");
    background-position:center, 56% 22%;
    background-size:cover, auto 75%;
  }

  .hero-content {
    padding:25px 20px;
    background:rgba(250,246,238,.70);
  }

  body::before {
    opacity:.20;
  }
}

@media print {
  body::before,
  body::after,
  .story-section::before {
    display:none !important;
  }
}


/* =========================================================
   Ver.6.8 최종 배경 수정
   - 첫 화면: 얼굴과 노트북이 모두 보이도록 배치
   - 이미지 안에 남아 있던 홈페이지 문구는 왼쪽 페이드로 완전히 가림
   - 청첩장 이미지를 첫 화면 아래 모든 구역의 공통 배경으로 사용
   ========================================================= */

/* 청첩장 이미지를 전체 홈페이지 공통 배경으로 사용 */
html,
body {
  min-height:100%;
  background-color:#f5ecde !important;
}

body {
  background-image:
    linear-gradient(rgba(248,242,232,.76), rgba(248,242,232,.76)),
    url("images/wedding-invitation.jpg") !important;
  background-repeat:repeat-y, repeat-y !important;
  background-position:center top, center top !important;
  background-size:100% auto, 100% auto !important;
  background-attachment:fixed, fixed !important;
}

/* 이전 버전의 별도 고정 배경 제거 */
body::before,
body::after {
  display:none !important;
}

/* 첫 화면은 홈페이지 문구가 남아 있던 왼쪽 부분을 페이드로 덮고
   사람 얼굴과 노트북이 자연스럽게 보이도록 오른쪽 중심 배치 */
.hero {
  min-height:760px !important;
  background-image:
    linear-gradient(
      90deg,
      rgba(248,242,232,1) 0%,
      rgba(248,242,232,.99) 25%,
      rgba(248,242,232,.93) 39%,
      rgba(248,242,232,.60) 52%,
      rgba(248,242,232,.18) 70%,
      rgba(248,242,232,.04) 100%
    ),
    linear-gradient(
      180deg,
      rgba(255,255,255,.08) 0%,
      rgba(247,240,227,.03) 72%,
      rgba(247,240,227,.42) 100%
    ),
    url("images/writing-with-laptop.png") !important;
  background-repeat:no-repeat !important;
  background-position:center, center, 72% 46% !important;
  background-size:cover, cover, cover !important;
}

/* 왼쪽 문구 영역에 별도 밝은 종이층을 두어
   원본 이미지 속 잘린 홈페이지 글씨가 전혀 보이지 않도록 함 */
.hero::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:52%;
  z-index:0;
  background:
    linear-gradient(
      90deg,
      rgba(248,242,232,1) 0%,
      rgba(248,242,232,.995) 58%,
      rgba(248,242,232,.90) 78%,
      rgba(248,242,232,0) 100%
    );
  pointer-events:none;
}

.hero-overlay {
  background:none !important;
}

.hero-inner,
.hero-content {
  position:relative;
  z-index:2;
}

.hero-content {
  max-width:680px !important;
  padding:30px 34px !important;
  background:transparent !important;
  backdrop-filter:none !important;
}

/* 첫 화면 아래 모든 주요 구역에서 살구색 단색을 제거하고
   청첩장 배경이 실제로 보이도록 반투명 종이층만 유지 */
.meaning-section,
.featured-section,
.works-section,
.process-section,
.request-section,
.first-order-section,
.price-section,
.service-section,
.closing-section,
.story-section {
  background:rgba(248,242,232,.68) !important;
}

/* 글결 이야기의 기존 검은 화면도 청첩장 배경이 보이도록
   짙은 먹빛 반투명층으로 변경 */
.story-section {
  color:#f7f1e8;
  background:rgba(24,22,19,.84) !important;
}

.story-section::before {
  display:none !important;
}

/* 카드와 표는 내용 가독성을 위해 조금 밝게 */
.meaning-card,
.featured-card,
.work-card,
.request-wrap,
.first-order-card,
.price-card,
.service-card,
.process-card {
  background:rgba(255,252,246,.86) !important;
  backdrop-filter:blur(2px);
}

/* 섹션 사이에도 청첩장 이미지가 끊기지 않게 */
main,
.page-content,
section {
  background-image:none !important;
}

/* 태블릿 */
@media (max-width:980px) {
  .hero {
    min-height:700px !important;
    background-position:center, center, 68% 45% !important;
  }

  .hero::before {
    width:58%;
  }
}

/* 모바일에서는 얼굴과 노트북이 위쪽에 모두 보이도록 */
@media (max-width:640px) {
  body {
    background-attachment:scroll, scroll !important;
  }

  .hero {
    min-height:760px !important;
    padding:52px 20px 64px !important;
    background-image:
      linear-gradient(
        180deg,
        rgba(248,242,232,.10) 0%,
        rgba(248,242,232,.22) 40%,
        rgba(248,242,232,.94) 69%,
        rgba(248,242,232,1) 100%
      ),
      url("images/writing-with-laptop.png") !important;
    background-position:center, 62% 15% !important;
    background-size:cover, auto 68% !important;
  }

  .hero::before {
    display:none;
  }

  .hero-content {
    margin-top:390px;
    padding:22px 18px !important;
    background:rgba(248,242,232,.88) !important;
  }
}

@media print {
  body {
    background:none !important;
  }
}

/* Ver.6.19 AI 문구 길이 선택 및 추천 카드 */
.ai-length-fieldset {
  margin: 18px 0;
  padding: 0;
  border: 0;
}
.ai-length-fieldset legend {
  margin-bottom: 12px;
  font-size: 19px;
  font-weight: 900;
  color: var(--ink);
}
.ai-length-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.ai-length-option {
  display: block !important;
  position: relative;
  cursor: pointer;
}
.ai-length-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ai-length-option span {
  display: flex;
  min-height: 86px;
  padding: 14px 10px;
  border: 2px solid var(--line);
  border-radius: 14px;
  background: #fff;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  transition: .2s ease;
}
.ai-length-option strong { font-size: 19px; }
.ai-length-option small { margin-top: 6px; color: var(--gray); font-size: 14px; }
.ai-length-option input:checked + span {
  border-color: var(--red);
  background: #fff8f4;
  box-shadow: 0 0 0 3px rgba(135, 46, 31, .08);
}
.ai-length-notice {
  margin-top: 12px;
  color: var(--gray);
  font-size: 15px;
  line-height: 1.6;
}
.ai-generate-button { margin-bottom: 14px; }
.ai-suggestion {
  display: grid;
  gap: 12px;
}
.ai-suggestion-card {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.ai-suggestion-number {
  display: flex;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  background: var(--paper);
  font-weight: 900;
}
.ai-suggestion-content p { margin: 0 0 7px; line-height: 1.7; }
.ai-suggestion-content small { font-size: 14px; }
.range-ok { color: #387043; }
.range-note { color: #9a5b24; }
.ai-suggestion-card button {
  padding: 10px 12px;
  border: 1px solid var(--red);
  border-radius: 9px;
  background: transparent;
  color: var(--red);
  font-weight: 900;
  cursor: pointer;
}
.ai-suggestion-card button:hover { background: var(--red); color: #fff; }
@media (max-width: 820px) {
  .ai-length-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-suggestion-card { grid-template-columns: 30px minmax(0, 1fr); }
  .ai-suggestion-card button { grid-column: 2; justify-self: start; }
}
@media (max-width: 480px) {
  .ai-length-options { grid-template-columns: 1fr; }
}

/* Ver7.09 AI 맞춤 문구 */
.story-help {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  color: #7b6a5b;
  line-height: 1.5;
}
.story-help strong { white-space: nowrap; color: #8b4d34; }
.ai-privacy-notice {
  margin: 10px 0 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: #7b6a5b;
}
.ai-purpose-summary {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f5eee3;
  color: #4b3b30;
}
.ai-suggestion-label {
  display: inline-block;
  margin-bottom: 4px;
  font-size: 0.86rem;
  color: #8b4d34;
}
.ai-loading, .ai-error {
  padding: 18px;
  border-radius: 12px;
  text-align: center;
  background: #f7f1e8;
}
.ai-error { color: #9b2f25; }
.ai-generate-button:disabled { opacity: .65; cursor: wait; }
@media (max-width: 700px) {
  .story-help { display: block; }
  .story-help strong { display: block; margin-top: 4px; }
}


/* Ver7.10B 모바일 작업 의뢰서 최적화 */
@media screen and (max-width: 700px) {
  #requestPreview,
  #requestPreview .print-sheet {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  #requestPreview {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  #requestPreview .print-sheet {
    padding: 18px 14px !important;
  }
  #requestPreview .print-title h2 {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }
  #requestPreview .print-title p {
    font-size: 14px !important;
    line-height: 1.65 !important;
  }
  #requestPreview .print-info-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    border: 0 !important;
    gap: 9px !important;
  }
  #requestPreview .print-info-item {
    display: grid !important;
    grid-template-columns: 112px minmax(0,1fr) !important;
    min-height: 0 !important;
    border: 1px solid var(--line) !important;
    border-radius: 10px !important;
    overflow: hidden !important;
  }
  #requestPreview .print-info-item strong,
  #requestPreview .print-info-item span {
    padding: 10px 11px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    overflow-wrap: anywhere !important;
    word-break: keep-all !important;
  }
  #requestPreview .print-section,
  #requestPreview .print-reference-section {
    margin-top: 12px !important;
  }
  #requestPreview .print-section p {
    min-height: 0 !important;
    max-height: none !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
  }
  #requestPreview .print-section .final-sentence {
    font-size: 17px !important;
  }
  #requestPreview .print-footer-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  #requestPreview .print-sign { text-align: left !important; }
}

.ai-source-notice {
  margin: 12px 0 0;
  padding: 11px 13px;
  border-left: 3px solid var(--red);
  border-radius: 8px;
  background: #fbf5eb;
  color: #5f4938;
  font-size: .86rem;
  line-height: 1.6;
}
.ai-source-notice strong { color: var(--red); }
