
      @font-face {
        font-family: 'Pretendard';
        src: url('fonts/PretendardVariable.woff2') format('woff2');
        font-weight: 100 900;
        font-style: normal;
        font-display: swap;
      }
      :root {
        --font-korean: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
        --blush: #f4dfda;
        --rose: #d5aba2;
        --surface: #fffdf9;
        --background: #fcf9f5;
        --brand-hover: #7e3d43;
        --ink: #493b37;
        --brand: #995159;
        --ivory: #f6ede7;
        --line: #e8d9d1;
        --muted: #77645d;
      }
      * {
        box-sizing: border-box;
      }
      html {
        scroll-behavior: smooth;
        scroll-padding-top: 90px;
      }
      body {
        margin: 0;
        color: var(--ink);
        background: var(--background);
        font-family: var(--font-korean);
        font-size: 16px;
        font-weight: 400;
        letter-spacing: -0.015em;
        line-height: 1.8;
      }
      a {
        color: inherit;
        text-decoration: none;
      }
      header {
        position: sticky;
        top: 0;
        background: var(--surface)f5;
        z-index: 5;
        border-bottom: 1px solid var(--line);
      }
      nav {
        max-width: 1200px;
        margin: auto;
        padding: 17px 28px;
        display: flex;
        align-items: center;
        justify-content: space-between;
      }
      .brand {
        font-family: var(--font-korean);
        font-size: 25px;
        letter-spacing: 3px;
      }
      .brand small {
        font: 10px sans-serif;
        display: block;
        letter-spacing: 3px;
      }
      nav .links {
        display: flex;
        align-items: center;
        gap: 28px;
        font-size: 13px;
      }
      .button {
        display: inline-block;
        padding: 13px 24px;
        background: var(--brand);
        color: white;
        border: 1px solid var(--brand);
        font: inherit;
        font-size: 14px;
        cursor: pointer;
      }
      .button.outline {
        background: transparent;
        color: var(--brand);
      }
      main section {
        max-width: 1160px;
        margin: auto;
        padding: 90px 28px;
      }
      .hero {
        display: grid;
        grid-template-columns: 1.15fr 1fr;
        align-items: center;
        min-height: 640px;
        gap: 70px;
      }
      .eyebrow {
        font-size: 11px;
        letter-spacing: 3px;
        color: var(--brand);
        font-weight: bold;
      }
      .hero h1 {
        font-family: var(--font-korean);
        font-weight: 400;
        font-size: clamp(36px, 4.1vw, 57px);
        line-height: 1.45;
        letter-spacing: -2px;
        margin: 24px 0;
      }
      .hero p {
        color: var(--muted);
        font-size: 15px;
      }
      .hero h1.hero-message {
        font-family: 'Noto Serif KR', 'Batang', 'AppleMyungjo', serif;
        font-weight: 500;
        letter-spacing: -0.03em;
        font-size: clamp(32px, 3.5vw, 48px);
        line-height: 1.5;
        word-break: keep-all;
      }
      .hero-message em {
        color: var(--brand);
        font-style: normal;
      }
      .hero p.hero-promise {
        color: var(--ink);
        font-size: 18px;
        line-height: 1.9;
        word-break: keep-all;
      }
      .hero-promise strong {
        color: var(--brand);
        font-size: inherit;
      }
      .hero p.hero-detail {
        border-left: none;
        padding-left: 0;
        margin-top: 24px;
        word-break: keep-all;
      }
      .actions {
        display: flex;
        gap: 12px;
        margin-top: 30px;
      }
      .art {
        height: 430px;
        border-radius: 180px 180px 0 0;
        background: var(--blush);
        position: relative;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .art svg {
        width: 100%;
        height: 100%;
      }
      .art-label {
        position: absolute;
        bottom: 25px;
        font-family: var(--font-korean);
        letter-spacing: 4px;
        font-size: 12px;
      }
      .strip {
        background: var(--brand);
        color: #fff;
        display: flex;
        justify-content: center;
        gap: 65px;
        padding: 23px 28px;
        font-size: 13px;
      }
      .intro {
        text-align: center;
        max-width: 790px;
      }
      h2 {
        font-family: var(--font-korean);
        font-size: 34px;
        font-weight: 400;
        line-height: 1.5;
        letter-spacing: -1px;
        margin: 12px 0 24px;
      }
      p {
        margin: 12px 0;
      }
      .muted {
        color: var(--muted);
      }
      .section-head {
        display: flex;
        justify-content: space-between;
        align-items: end;
        gap: 25px;
        margin-bottom: 32px;
      }
      .grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 26px;
      }
      .service {
        border-top: 1px solid var(--brand);
        padding: 22px 0;
      }
      .num {
        font-family: var(--font-korean);
        color: var(--brand);
        font-size: 28px;
      }
      .service h3 {
        font-size: 19px;
        margin: 12px 0;
      }
      .service p {
        font-size: 14px;
        color: var(--muted);
      }
      .tint {
        background: var(--ivory);
      }
      .split {
        display: grid;
        grid-template-columns: 1fr 1.3fr;
        gap: 70px;
      }
      .checks {
        padding: 0;
        list-style: none;
      }
      .checks li {
        border-bottom: 1px solid var(--line);
        padding: 16px 0;
      }
      .checks strong {
        display: block;
        font-size: 16px;
      }
      .checks span {
        font-size: 14px;
        color: var(--muted);
      }
      .steps {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 22px;
      }
      .step {
        border-left: 1px solid var(--rose);
        padding-left: 22px;
      }
      .step b {
        display: block;
        font-size: 16px;
        margin: 10px 0;
      }
      .step p {
        font-size: 13px;
        color: var(--muted);
      }
      .prices {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 24px;
      }
      .price {
        background: var(--surface);
        border: 1px solid var(--line);
        padding: 30px;
      }
      .price h3 {
        font-size: 22px;
        margin: 0;
      }
      .price .amount {
        font-family: var(--font-korean);
        font-size: 28px;
        margin: 20px 0;
      }
      .tag {
        display: inline-block;
        font-size: 12px;
        padding: 4px 12px;
        background: var(--blush);
        color: var(--brand);
      }
      .todo {
        color: var(--brand);
        font-weight: 600;
      }
      .note {
        font-size: 12px;
        color: var(--muted);
      }
      details {
        border-bottom: 1px solid var(--line);
        padding: 20px 0;
      }
      summary {
        cursor: pointer;
        font-size: 16px;
        font-weight: bold;
      }
      details p {
        font-size: 14px;
        color: var(--muted);
        max-width: 850px;
      }
      .contact {
        background: var(--ivory);
        padding: 35px;
      }
      .contact label {
        display: block;
        font-size: 13px;
        margin-bottom: 15px;
      }
      input,
      textarea,
      select {
        display: block;
        width: 100%;
        padding: 12px;
        margin-top: 6px;
        background: var(--surface);
        border: 1px solid var(--line);
        font: inherit;
        font-size: 14px;
        color: var(--ink);
      }
      textarea {
        resize: vertical;
      }
      .two {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 15px;
      }
      .draft {
        background: var(--ivory);
        color: var(--muted);
        font-size: 12px;
        padding: 8px 20px;
        text-align: center;
      }
      .contact input[type="checkbox"] {
        display: inline;
        width: auto;
        margin-right: 8px;
      }
      footer {
        border-top: 1px solid var(--line);
        padding: 36px 28px;
        max-width: 1160px;
        margin: auto;
        font-size: 12px;
        color: var(--muted);
      }
      .footer-brand {
        font-size: 20px;
        color: var(--ink);
        font-family: var(--font-korean);
      }
      .contact .button {
        width: 100%;
      }
      #form-status {
        font-size: 13px;
      }
      @media (max-width: 750px) {
        nav {
          padding: 13px 20px;
        }
        .brand {
          font-size: 20px;
        }
        nav .links {
          gap: 14px;
        }
        nav .links a:not(:last-child) {
          display: none;
        }
        main section {
          padding: 58px 22px;
        }
        .hero {
          grid-template-columns: 1fr;
          gap: 32px;
          min-height: auto;
        }
        .hero h1 {
          font-size: 39px;
        }
        .art {
          height: 310px;
          max-width: 420px;
          width: 100%;
          margin: auto;
        }
        .strip {
          gap: 15px;
          flex-wrap: wrap;
          font-size: 11px;
        }
        .grid,
        .split,
        .prices {
          grid-template-columns: 1fr;
          gap: 25px;
        }
        .steps {
          grid-template-columns: 1fr 1fr;
          gap: 30px;
        }
        .section-head {
          display: block;
        }
        h2 {
          font-size: 29px;
        }
        .contact {
          padding: 23px;
        }
        .two {
          grid-template-columns: 1fr;
          gap: 0;
        }
        .actions .button {
          padding: 12px 18px;
        }
      }
    
      /* Project logo/logo.png */
      .brand { display:flex; align-items:center; gap:10px; letter-spacing:1px; }
      .brand-logo { display:block; width:72px; height:72px; object-fit:contain; flex-shrink:0; }
      .hero .art { height:auto; aspect-ratio:1; border-radius:24px; background:var(--blush); }
      .hero-logo { display:block; width:100%; height:auto; object-fit:contain; }
      .footer-brand { display:flex; align-items:center; gap:12px; }
      .footer-logo { display:block; width:80px; height:80px; object-fit:contain; }
      @media(max-width:750px) {
        .brand { font-size:17px; gap:5px; }
        .brand small { font-size:8px; letter-spacing:2px; }
        .brand-logo { width:48px; height:48px; }
        nav .links .button { font-size:12px; padding:10px 12px; }
        .hero .art { height:auto; }
      }

      /* Warm cream and dusty rose palette from the supplied reference. */
      header { backdrop-filter: blur(12px); }
      .brand, .footer-brand { color: var(--brand); }
      nav .links > a:not(.button):hover { color: var(--brand); }
      .button { transition: background-color .18s, border-color .18s, color .18s; }
      .button:hover { background: var(--brand-hover); border-color: var(--brand-hover); }
      .button.outline:hover { color: var(--brand); background: var(--blush); border-color: var(--brand); }
      .price .amount, summary::marker { color: var(--brand); }
      input, textarea, select { accent-color: var(--brand); }
      input::placeholder, textarea::placeholder { color: #80716a; opacity: 1; }
      a:focus-visible, button:focus-visible, summary:focus-visible,
      input:focus-visible, textarea:focus-visible, select:focus-visible {
        outline: 2px solid var(--brand); outline-offset: 4px;
      }
      ::selection { background: #efd3cd; color: var(--ink); }

/* Review benefits directly below the service plans. */
.review-event { margin-top:28px; padding:36px; border:1px solid var(--rose); background:linear-gradient(120deg, #f8e9e3, #fbf5ed); border-radius:16px; display:grid; grid-template-columns:1.15fr 1fr; gap:28px 36px; word-break:keep-all; }
.review-event-heading h3 { font-size:clamp(24px,3vw,32px); line-height:1.5; letter-spacing:-1px; margin:16px 0 10px; }
.review-event-heading p { font-size:14px; color:var(--muted); margin-bottom:0; }
.review-price { align-self:center; padding:24px; border-left:1px solid var(--line); }
.review-price > span { font-size:12px; color:var(--muted); }
.review-price-line { display:flex; align-items:center; gap:14px; color:var(--muted); margin-top:10px; }
.review-original { text-decoration:line-through; font-size:16px; }
.review-price > strong { display:block; color:var(--brand); font-size:clamp(36px,5vw,52px); line-height:1.3; letter-spacing:-2px; font-variant-numeric:tabular-nums; }
.review-price > strong span:first-child { display:block; font-size:14px; letter-spacing:0; margin:8px 0; }
.review-price > strong span:last-child { font-size:22px; letter-spacing:0; margin-left:4px; }
.review-price .review-saving { display:inline-block; margin-top:12px; color:var(--brand); }
.review-benefits { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; gap:16px; list-style:none; margin:0; padding:0; }
.review-benefits li { padding:24px; background:#ffffffb8; border:1px solid var(--line); border-radius:10px; }
.review-step { color:var(--muted); font-size:12px; }
.review-benefits h4 { font-size:16px; margin:8px 0 16px; }
.review-benefits p { margin:0; }
.review-benefits strong { display:block; color:var(--brand); font-size:23px; }
.review-benefits p span { font-size:13px; color:var(--muted); }
.review-event-footer { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.review-event-footer p { font-size:13px; margin:0; }
.review-event-footer p span { display:inline-block; max-width:620px; font-size:12px; color:var(--muted); margin-top:5px; }
.review-event-footer .button { flex-shrink:0; border-radius:6px; }
@media(max-width:750px) {
  .review-event { padding:24px 20px; grid-template-columns:minmax(0,1fr); gap:24px; }
  .review-price { border-left:0; border-top:1px solid var(--line); padding:22px 0 0; }
  .review-benefits { grid-template-columns:minmax(0,1fr); gap:12px; }
  .review-benefits li { padding:20px; }
  .review-event-footer { align-items:stretch; flex-direction:column; gap:18px; }
  .review-event-footer .button { text-align:center; }
}

/* Consistent Korean typography across all pages. */
.brand, .footer-brand, .hero h1, h2, .num, .art-label,
.price .amount, .page-heading h1 { font-family:var(--font-korean); }
.brand, .footer-brand { font-weight:600; letter-spacing:-.025em; }
.hero h1, .page-heading h1, h2 { font-weight:600; letter-spacing:-.035em; }
.price .amount { font-weight:700; letter-spacing:-.025em; font-variant-numeric:lining-nums tabular-nums; }
.hero p, .service p, .checks span, .step p, details p { font-size:16px; line-height:1.85; }
.note, .tag, .contact label, #form-status { font-size:14px; line-height:1.75; }
.review-event-heading p, .review-benefits p span, .review-event-footer p { font-size:15px; }
.review-step, .review-price > span, .review-event-footer p span { font-size:13px; line-height:1.8; }
.review-event h3, .review-benefits h4 { letter-spacing:-.025em; }
.review-price > strong { letter-spacing:-.035em; }
@media(max-width:750px) {
  .hero h1.hero-message { font-size:clamp(30px,7vw,38px); }
  .hero p.hero-promise { font-size:18px; }
}

/* Soft stationery-inspired surfaces; original logo assets stay intact. */
body { background:var(--background); }
header { background:#fcf9f5f2; border-bottom-color:var(--line); }
.hero { gap:60px; }
.hero h1 { color:var(--ink); }
.hero h1 em { color:var(--brand); }
.hero p.hero-detail { border-left-color:var(--rose); }
.hero .art { background:var(--blush); box-shadow:0 18px 55px #80594c12; border:1px solid var(--line); }
.button { border-radius:12px; font-weight:600; box-shadow:0 5px 15px #99515910; }
.button.outline { background:var(--surface); }
.button.outline:hover { background:var(--blush); }
.strip { background:var(--blush); color:#70474a; border-block:1px solid #ead0c8; }
.tint { background:var(--ivory); }
.price { background:var(--surface); border-radius:20px; box-shadow:0 8px 30px #80594c08; }
.tag { background:var(--blush); border-radius:999px; padding:5px 14px; font-weight:600; }
.service { border-top-color:var(--rose); }
.step { border-left-color:var(--rose); }
.contact { background:var(--ivory); border:1px solid var(--line); border-radius:24px; }
input, textarea, select { background:var(--surface); border-color:#d9c7bf; border-radius:10px; }
.review-event { border-color:#e5c8be; border-radius:24px; background:linear-gradient(120deg,#f8e9e3,#fbf5ed); box-shadow:0 10px 35px #80594c08; }
.review-benefits li { border-radius:16px; background:#fffdf9d9; }
.review-event-footer .button { border-radius:12px; }
.home-menu a { transition:background-color .2s, border-color .2s; border-radius:18px; box-shadow:0 6px 24px #80594c06; }
.home-menu a:hover { background:var(--blush); border-color:var(--rose); }
.page-heading h1 { font-weight:600; }
footer { border-top-color:var(--line); }
@media(max-width:750px) {
  .hero { gap:32px; }
  .price { padding:25px; }
  .contact { border-radius:18px; }
  .review-event { border-radius:20px; }
}

/* Service comparison and selectable event benefits. */
.plan-intro { font-size:20px; line-height:1.7; margin:0 0 36px; word-break:keep-all; }
.plan-layout { display:grid; grid-template-columns:.95fr 1fr 1fr; gap:24px; align-items:start; }
.plan-events { padding-top:85px; }
.plan-events h2 { font-size:17px; font-weight:700; margin:0 0 12px; }
.plan-events > div { padding:18px 0; border-top:1px solid var(--line); }
.plan-events > div:first-of-type { border-top:2px solid var(--rose); }
.plan-events h3 { font-size:15px; margin:0 0 8px; }
.plan-events small { font-size:12px; color:var(--muted); font-weight:400; }
.plan-events p { font-size:13px; color:var(--muted); line-height:1.8; }
.plan-events em { color:var(--brand); font-style:normal; }
.plan-card { border-top:2px solid var(--rose); min-width:0; padding-top:18px; }
.plan-card:last-child { border-top-color:var(--brand); }
.plan-title { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.plan-title h2 { font-size:23px; font-weight:700; margin:0; }
.plan-title small { font-size:12px; font-weight:400; color:var(--muted); margin-left:8px; white-space:nowrap; }
.plan-recommend { color:var(--brand); font-size:12px; }
.plan-base { margin:12px 0 22px; font-size:14px; }
.plan-base strong { font-size:64px; line-height:1.2; font-weight:500; letter-spacing:-3px; margin-right:6px; }
.plan-option { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:13px 0; border-top:1px solid var(--line); font-size:13px; cursor:pointer; }
.plan-option > span { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
.plan-option input { display:inline-block; width:17px; height:17px; padding:0; margin:0 4px 0 0; flex-shrink:0; cursor:pointer; }
.plan-option small { font-size:11px; color:var(--muted); }
.plan-option b { color:var(--brand); white-space:nowrap; }
.plan-total, .plan-final { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:15px 0; border-top:1px solid var(--line); font-size:13px; }
.plan-total strong { font-size:22px; }
.plan-final { color:var(--brand); background:var(--ivory); padding:14px 12px; border-radius:10px; }
.plan-final strong { font-size:27px; }
.plan-footnote { color:var(--muted); font-size:11px; }
.plan-apply { display:block; text-align:center; padding:12px 8px; font-size:13px; margin-top:14px; }
.plan-table-wrap { margin-top:36px; overflow-x:auto; }
.plan-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:14px; line-height:1.9; }
.plan-table caption { text-align:left; font-size:20px; font-weight:600; padding:0 0 16px; }
.plan-table th, .plan-table td { width:33.333%; text-align:left; vertical-align:top; padding:18px 14px; border-bottom:1px solid var(--line); overflow-wrap:break-word; }
.plan-table thead { background:var(--ivory); }
.plan-table tbody th { font-weight:600; }
@media(max-width:950px) {
  .plan-layout { grid-template-columns:1fr 1fr; }
  .plan-events { grid-column:1 / -1; padding-top:0; }
  .plan-events > div { display:inline-block; width:49%; vertical-align:top; padding-right:18px; }
}
@media(max-width:600px) {
  .plan-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
  .plan-events > div { display:block; width:100%; }
  .plan-card { padding:22px; background:var(--surface); border-radius:16px; border:1px solid var(--line); border-top:2px solid var(--rose); }
  .plan-table { min-width:620px; }
  .plan-intro { font-size:18px; }
}

/* Complimentary signature services. */
.signature-benefits { margin:0 0 48px; padding:32px; background:linear-gradient(125deg,#f6e4de,#fbf4ed); border:1px solid #dfbbb0; border-radius:24px; box-shadow:0 10px 32px #80594c0a; word-break:keep-all; }
.signature-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
.signature-label { color:var(--brand); font-size:13px; font-weight:600; }
.signature-heading h2 { font-size:clamp(23px,3vw,30px); font-weight:700; margin:8px 0; letter-spacing:-.035em; }
.signature-heading p { font-size:14px; margin:0; color:var(--muted); }
.signature-free { flex-shrink:0; border:1px solid #d9b3aa; border-radius:16px; background:#fffdf9bf; color:var(--brand); text-align:center; padding:16px 24px; font-size:12px; }
.signature-free strong { display:block; font-size:27px; font-weight:700; line-height:1.5; }
.signature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.signature-grid article { padding:24px 20px; border:1px solid #ead8cf; background:#fffdf9d9; border-radius:16px; }
.signature-icon { display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:14px; background:var(--blush); color:var(--brand); margin-bottom:18px; }
.signature-icon svg { display:block; width:28px; height:28px; }
.signature-grid h3 { font-size:18px; letter-spacing:-.025em; margin:0 0 10px; }
.signature-grid p { font-size:14px; color:var(--muted); line-height:1.85; margin:0; }
@media(max-width:750px) {
  .signature-benefits { padding:24px 20px; margin-bottom:36px; }
  .signature-heading { align-items:flex-start; flex-direction:column; gap:16px; margin-bottom:20px; }
  .signature-free { display:flex; align-items:center; gap:12px; padding:8px 16px; border-radius:999px; }
  .signature-free strong { font-size:20px; }
  .signature-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .signature-grid article { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:16px; padding:20px 16px; }
  .signature-icon { grid-row:1 / 3; margin:0; width:44px; height:44px; }
  .signature-grid h3 { font-size:17px; margin-bottom:6px; }
  .signature-grid p br { display:none; }
}

.signature-grid .signature-kit { border-color:#d9ada1; background:#fffaf5; }
.signature-grid .kit-value { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 16px; color:var(--brand); }
.kit-value strong { font-size:20px; font-weight:700; letter-spacing:-.025em; }
.kit-value span { font-size:12px; font-weight:700; color:white; background:var(--brand); border-radius:999px; padding:3px 10px; }
.kit-photo { display:flex; align-items:center; justify-content:center; padding:18px; margin-bottom:16px; border-radius:14px; background:radial-gradient(ellipse at center,#f3ddd1,#faf3eb 75%); }
.kit-photo img { display:block; width:100%; max-width:190px; height:180px; object-fit:contain; filter:drop-shadow(0 8px 10px #80594c16); }
.signature-table-heading th { background:var(--blush); color:var(--brand); font-size:18px; padding:18px 14px; }
.signature-table-heading span { display:inline-block; margin-left:12px; font-size:13px; font-weight:500; }
.signature-table-row { background:#fbf2ed; }
.table-kit-value { display:inline-block; color:var(--brand); font-size:15px; font-weight:700; margin-top:4px; }
.table-free { display:inline-block; background:var(--blush); color:var(--brand); border-radius:999px; padding:3px 14px; font-weight:700; font-size:13px; }
.signature-table-row small { font-weight:400; color:var(--muted); font-size:12px; }
@media(max-width:750px) {
  .signature-kit .kit-value, .signature-kit .kit-photo, .signature-kit > p:last-child { grid-column:2; }
  .signature-kit .signature-icon { grid-row:1 / 3; }
  .kit-photo img { height:165px; }
}

/* Bespoke operating standards. */
.custom-service { padding-top:20px; word-break:keep-all; }
.custom-intro { max-width:760px; margin-bottom:38px; }
.custom-intro h2 { margin:18px 0; }
.custom-block { border:1px solid var(--line); border-radius:22px; background:var(--surface); padding:32px; margin-top:24px; }
.custom-block-heading { display:flex; gap:18px; align-items:flex-start; margin-bottom:22px; }
.custom-number { background:var(--blush); color:var(--brand); font-size:16px; font-weight:700; border-radius:14px; padding:9px 13px; }
.custom-block-heading h3 { font-size:23px; margin:0 0 6px; letter-spacing:-.025em; }
.custom-block-heading p { font-size:15px; margin:0; color:var(--muted); }
.custom-options { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.custom-option { padding:24px; background:var(--ivory); border-radius:16px; }
.custom-option h4 { margin:0 0 14px; font-size:21px; color:var(--brand); }
.custom-option p, .custom-description { font-size:15px; line-height:1.9; }
.custom-option ul { padding-left:20px; font-size:14px; color:var(--muted); }
.custom-option li { margin:9px 0; }
.custom-option-caption { display:block; padding-top:16px; margin-top:20px; border-top:1px solid var(--line); font-size:13px; color:var(--brand); font-weight:600; }
.transfer-options { list-style:none; counter-reset:transfer; padding:0; margin:22px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.transfer-options li { counter-increment:transfer; background:var(--ivory); padding:22px; border-radius:14px; }
.transfer-options strong { font-size:16px; }
.transfer-options strong::before { content:counter(transfer,decimal-leading-zero) '  '; color:var(--brand); }
.transfer-options p { font-size:14px; color:var(--muted); line-height:1.85; margin-bottom:0; }
.custom-example { margin:22px 0; padding:22px; background:var(--ivory); border-left:3px solid var(--rose); border-radius:0 14px 14px 0; font-size:17px; }
.custom-example span { display:block; font-size:12px; color:var(--brand); margin-bottom:8px; font-weight:600; }
.custom-agree { border-top:1px solid var(--line); padding-top:18px; }
.custom-agree strong { font-size:14px; color:var(--brand); }
.custom-agree p { font-size:14px; color:var(--muted); }
.custom-service-footer { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:28px; }
.custom-service-footer p { font-size:15px; color:var(--muted); }
.custom-service-footer .button { flex-shrink:0; }
@media(max-width:750px) {
 .custom-block { padding:24px 20px; border-radius:18px; }
 .custom-block-heading { gap:12px; }
 .custom-block-heading h3 { font-size:20px; }
 .custom-options, .transfer-options { grid-template-columns:minmax(0,1fr); }
 .custom-option { padding:20px; }
 .custom-service-footer { flex-direction:column; align-items:stretch; gap:12px; }
 .custom-service-footer .button { text-align:center; }
}

/* Availability calendar and copyable inquiry. */
.schedule-layout { display:grid; grid-template-columns:minmax(0,2.1fr) minmax(260px,1fr); gap:30px; align-items:start; padding-top:32px; }
.calendar-panel { background:var(--surface); border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.schedule-date-label { padding:20px 24px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:18px; font-size:14px; font-weight:600; }
.schedule-date-label input { width:auto; max-width:100%; margin:0; }
.calendar-toolbar { padding:22px 20px 12px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.calendar-toolbar h2 { font-size:23px; font-weight:700; margin:0; }
.calendar-toolbar > div { display:flex; gap:6px; }
.calendar-toolbar button { font:inherit; color:var(--ink); border:1px solid var(--line); background:var(--surface); border-radius:8px; padding:7px 12px; cursor:pointer; }
.calendar-toolbar button:hover { background:var(--blush); }
.calendar-legend { display:flex; gap:16px; flex-wrap:wrap; padding:0 20px 18px; font-size:11px; color:var(--muted); }
.calendar-legend span::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:5px; background:#627e64; }
.calendar-legend .legend-conditional::before { background:#ab7734; }
.calendar-legend .legend-closed::before { background:#978e88; }
.calendar-weekdays, .calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays { border-top:1px solid var(--line); background:var(--ivory); text-align:center; font-size:12px; padding:9px 0; }
.calendar-weekdays span:first-child { color:var(--brand); }
.calendar-day { appearance:none; border:0; border-top:1px solid var(--line); border-right:1px solid var(--line); background:var(--surface); color:var(--ink); min-width:0; min-height:91px; padding:10px 7px; font:inherit; font-size:15px; display:flex; flex-direction:column; gap:14px; align-items:flex-start; cursor:pointer; text-align:left; }
.calendar-day:nth-child(7n) { border-right:0; }
.calendar-day small { font-size:10px; line-height:1.4; color:#526e54; word-break:keep-all; }
.calendar-day.status-conditional { background:#fbf4e6; }
.calendar-day.status-conditional small { color:#8d632b; }
.calendar-day.status-closed, .calendar-day.status-past, .calendar-day.outside-month { background:#f3f0ec; color:#a3978e; }
.calendar-day.status-closed small, .calendar-day.status-past small { color:#8a7b73; }
.calendar-day.today-day > span { font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.calendar-day:hover:not(:disabled) { background:var(--blush); }
.calendar-day:disabled { cursor:default; background:#f3f0ec; color:#a3978e; opacity:1; }
.calendar-day.selected-day { background:#f6e2db; box-shadow:inset 0 0 0 2px var(--brand); }
.calendar-disclaimer { font-size:12px; color:var(--muted); line-height:1.8; padding:15px 20px; margin:0; border-top:1px solid var(--line); }
.schedule-sidebar { min-width:0; }
.schedule-sidebar h2 { font-size:23px; margin:0 0 20px; font-weight:600; }
.schedule-state { padding:0 0 0 16px; border-left:2px solid var(--rose); margin-bottom:25px; }
.schedule-state strong { font-size:17px; color:var(--brand); }
.schedule-state p { font-size:13px; color:var(--muted); }
.schedule-sidebar h3 { border-top:1px solid var(--line); padding-top:22px; font-size:17px; margin-bottom:8px; }
#schedule-inquiry label { display:block; font-size:13px; font-weight:600; margin:16px 0; }
#schedule-inquiry input, #schedule-inquiry select, #schedule-inquiry textarea { font-weight:400; }
#schedule-inquiry .button { width:100%; }
#schedule-inquiry .button:disabled { opacity:.5; cursor:not-allowed; }
#inquiry-copy-text { font-size:12px; }
[hidden] { display:none !important; }
@media(max-width:850px) {
 .schedule-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
 .calendar-day { min-height:83px; }
 .schedule-sidebar { padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
}
@media(max-width:450px) {
 .calendar-toolbar { padding-inline:12px; }
 .calendar-toolbar h2 { font-size:19px; }
 .calendar-toolbar button { padding:6px 10px; }
 .calendar-day { padding:8px 4px; min-height:78px; }
 .calendar-day small { font-size:9px; }
 .schedule-date-label { padding:16px 12px; gap:10px; }
 .calendar-legend { padding-inline:12px; gap:10px; }
}

.contact-copy-panel { padding:28px; border:1px solid var(--line); border-radius:22px; background:var(--surface); }
.contact-copy-panel .schedule-date-label { padding:0 0 20px; margin-bottom:22px; }
@media(max-width:750px) { .contact-copy-panel { padding:22px 20px; } }

.settlement-options { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.settlement-options .custom-option { display:flex; flex-direction:column; min-width:0; padding:22px; }
.settlement-fee { display:inline-block; align-self:flex-start; background:var(--surface); color:var(--brand); border:1px solid var(--line); border-radius:999px; padding:4px 12px; font-size:12px; font-weight:600; margin-bottom:16px; }
.settlement-extra { background:var(--brand); color:white; border-color:var(--brand); }
.settlement-options .custom-option-caption { margin-top:auto; }
.settlement-options .custom-option ul { margin-bottom:24px; }
@media(max-width:950px) { .settlement-options { grid-template-columns:minmax(0,1fr); } }

/* On-site operation, verified handover and delivery. */
.operation-flow { list-style:none; padding:0; margin:38px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; word-break:keep-all; }
.operation-card { min-width:0; padding:22px 0 0; border:0; border-top:2px solid var(--rose); border-radius:0; background:transparent; }
.operation-card:last-child { border-top-color:var(--brand); }
.operation-heading { display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-bottom:26px; min-height:118px; }
.operation-number { color:var(--brand); font-size:14px; font-weight:700; line-height:1.4; }
.operation-timing { font-size:13px; color:var(--brand); font-weight:600; }
.operation-heading h3 { margin:8px 0 0; font-size:22px; line-height:1.5; letter-spacing:-.025em; }
.operation-details { display:grid; grid-template-columns:minmax(0,1fr); gap:22px; border-top:1px solid var(--line); padding-top:22px; }
.operation-details > div { border:0; padding:0; }
.operation-details h4 { margin:0 0 10px; font-size:17px; letter-spacing:-.02em; }
.operation-details p { margin:0; font-size:15px; line-height:1.9; color:var(--muted); }
.operation-details strong { color:var(--ink); font-weight:600; }
.operation-recording { margin:24px 0 0; padding:14px 18px; font-size:14px; font-weight:600; border-radius:12px; background:var(--ivory); color:var(--brand); }
.operation-card:last-child .operation-details { grid-template-columns:minmax(0,1fr); }
@media(max-width:750px) {
 .operation-flow { grid-template-columns:minmax(0,1fr); gap:32px; }
 .operation-card { padding:20px 0 0; border-radius:0; }
 .operation-heading { gap:10px; min-height:0; margin-bottom:20px; }
 .operation-heading h3 { font-size:21px; }
 .operation-number { font-size:14px; }
 .operation-details, .operation-card:last-child .operation-details { grid-template-columns:minmax(0,1fr); gap:20px; }
}

.operation-list { list-style:none; padding:0; margin:0; font-size:14px; line-height:1.8; color:var(--muted); }
.operation-list li { position:relative; padding-left:14px; margin:8px 0; }
.operation-list li::before { content:'–'; position:absolute; left:0; color:var(--rose); font-weight:700; }
.operation-details { gap:26px; }
.operation-details > div + div { border-top:1px solid var(--line); padding-top:20px; }
.operation-details h4 { margin-bottom:12px; }

.usage-steps { margin-top:28px; gap:26px; word-break:keep-all; }
.usage-steps .step { padding-left:20px; }
.usage-steps .step b { margin:12px 0 16px; font-size:17px; }
.usage-list { list-style:none; padding:0; margin:0; color:var(--muted); font-size:14px; line-height:1.8; }
.usage-list li { position:relative; padding-left:13px; margin:8px 0; }
.usage-list li::before { content:'–'; position:absolute; left:0; color:var(--rose); }
.usage-timing { display:inline-block; background:var(--ivory); color:var(--brand); border-radius:6px; padding:3px 8px; font-size:12px; font-weight:600; margin:0 0 8px; }
@media(max-width:500px) { .usage-steps { grid-template-columns:minmax(0,1fr); } }

.trust-section { gap:54px; word-break:keep-all; }
.trust-message h2 { margin-top:22px; font-size:clamp(28px,3.2vw,38px); line-height:1.55; }
.trust-message h2 em { color:var(--brand); font-style:normal; }
.trust-lead { font-size:21px; font-weight:600; line-height:1.75; margin:24px 0 18px; }
.trust-message > .muted { font-size:15px; line-height:1.9; }
.trust-kit-message { margin-top:26px; padding-top:20px; border-top:1px solid var(--line); font-size:15px; color:var(--brand); font-weight:600; }
.trust-checks { margin:0; }
.trust-checks li { padding:20px 0; }
.trust-checks li:first-child { padding-top:0; }
.trust-checks strong { font-size:17px; margin-bottom:8px; }
.trust-checks span { display:block; font-size:14px; line-height:1.9; }
@media(max-width:750px) { .trust-section { gap:28px; } }

/* Candid wedding photograph for the home hero. */
.hero .art.wedding-hero { aspect-ratio:4 / 5; border-radius:20px; background:var(--ivory); max-width:480px; width:100%; justify-self:end; }
.hero .wedding-hero-photo { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
@media(max-width:750px) { .hero .art.wedding-hero { max-width:420px; justify-self:center; } }

/* Persistent Kakao consultation button. */
.kakao-floating { position:fixed; right:28px; bottom:28px; z-index:20; display:flex; align-items:center; justify-content:center; gap:12px; min-height:58px; padding:13px 19px; background:#fee500; color:#191919; border:1px solid #e8d200; border-radius:999px; box-shadow:0 6px 24px #3c1e1e24; font-size:14px; font-weight:700; transition:transform .18s,box-shadow .18s; }
.kakao-floating img { display:block; width:30px; height:30px; object-fit:contain; }
.kakao-floating:hover { transform:translateY(-3px); box-shadow:0 9px 28px #3c1e1e30; }
footer { padding-bottom:110px; }
@media(max-width:750px) { .kakao-floating { right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); min-height:54px; padding:11px 16px; gap:9px; font-size:13px; } }
@media(prefers-reduced-motion:reduce) { .kakao-floating { transition:none; } .kakao-floating:hover { transform:none; } }

/* Visually separated service composition blocks. */
.plan-section { padding-bottom:64px; }
.plan-section .signature-benefits { margin-bottom:48px; padding:36px; background:linear-gradient(125deg,#f2dcd5,#faf0e8); border-color:#ddbeb2; }
.composition-panel { margin:0 0 48px; padding:36px; border-radius:24px; border:1px solid var(--line); }
.selection-panel { background:#f5eee7; }
.details-panel { background:#fffdf9; box-shadow:0 8px 32px #80594c06; margin-bottom:0; }
.composition-heading { margin-bottom:30px; }
.composition-label { font-size:12px; font-weight:700; color:var(--brand); }
.composition-heading h2 { font-size:clamp(24px,3vw,30px); margin:8px 0; font-weight:650; }
.composition-heading p { font-size:14px; color:var(--muted); margin:0; }
.selection-panel .plan-layout { grid-template-columns:.95fr 1fr 1fr; gap:18px; align-items:stretch; }
.selection-panel .plan-events { padding-top:18px; padding-right:8px; }
.selection-panel .plan-events h2 { font-size:17px; }
.selection-panel .plan-card { background:var(--surface); padding:24px 20px; border:1px solid var(--line); border-top:3px solid var(--rose); border-radius:16px; }
.selection-panel .plan-card:last-child { border-top-color:var(--brand); }
.selection-panel > .note { padding-left:14px; border-left:2px solid var(--rose); margin:20px 0 0; font-size:12px; }
.selection-panel > .note + .note { margin-top:8px; }
.selection-panel .plan-title h2 { font-size:21px; }
.selection-panel .plan-title small { display:block; margin:4px 0 0; }
.selection-panel .plan-final { padding:12px 10px; }
.selection-panel .plan-final strong { font-size:24px; white-space:nowrap; }
.details-panel .plan-table-wrap { margin-top:0; border:1px solid var(--line); border-radius:14px; }
.details-panel .plan-table th, .details-panel .plan-table td { padding:20px 16px; }
.details-panel .plan-table tbody tr:nth-child(even):not(.signature-table-row) { background:#faf6f1; }
.details-panel .plan-table small { display:inline-block; line-height:1.75; color:var(--muted); margin-top:6px; }
.composition-sr-only { position:absolute; width:1px; height:1px; padding:0 !important; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:1050px) { .selection-panel .plan-layout { grid-template-columns:1fr 1fr; } .selection-panel .plan-events { grid-column:1 / -1; padding:0; } }
@media(max-width:750px) { .composition-panel, .plan-section .signature-benefits { padding:24px 20px; border-radius:20px; margin-bottom:32px; } .details-panel { margin-bottom:0; } .composition-heading { margin-bottom:24px; } }
@media(max-width:600px) { .selection-panel .plan-layout { grid-template-columns:minmax(0,1fr); } .selection-panel .plan-card { padding:24px 20px; } }

/* Multi-page navigation */
nav .links a { white-space:nowrap; }
nav .links a[aria-current="page"]:not(.button) { color:var(--brand); box-shadow:0 2px var(--brand); }
nav .links .button[aria-current="page"] { background:var(--brand-hover); }
main { min-height:55vh; }
.page-heading { padding-bottom:0; }
.page-heading h1 { font-family:var(--font-korean); font-size:clamp(30px,4vw,44px); font-weight:400; margin:12px 0; }
.page-heading + section { padding-top:45px; }
.home-menu { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-top:0; }
.home-menu a { display:block; padding:26px; border:1px solid var(--line); background:var(--ivory); }
.home-menu strong { display:block; color:var(--brand); font-size:20px; }
.home-menu span { display:block; font-size:14px; margin-top:8px; }
@media(max-width:750px) {
  header nav { flex-wrap:wrap; gap:12px; }
  nav .links { width:100%; overflow-x:auto; padding:4px 1px 10px; gap:22px; }
  nav .links a:not(:last-child) { display:inline-block; }
  nav .links a { flex-shrink:0; font-size:13px; }
  .home-menu { grid-template-columns:1fr; gap:14px; }
  html { scroll-padding-top:160px; }
}

/* Benefit cards without decorative icons. */
@media(max-width:750px) {
  .signature-grid article { display:block; }
}

/* Kit headline badge. */
.kit-first-badge { display:inline-block; margin:0 0 12px; padding:4px 12px; border-radius:999px; background:var(--brand); color:white; font-size:12px; font-weight:700; line-height:1.7; }

/* Marker-style emphasis for direct operation by the owner. */
.text-highlight { color:var(--ink); font-weight:700; padding:0 .12em; background:linear-gradient(transparent 43%, #f3dfa0 43%, #f3dfa0 90%, transparent 90%); -webkit-box-decoration-break:clone; box-decoration-break:clone; }

/* Readable service areas grouped by region. */
.service-area-list { margin:0 0 20px; }
.service-area-list > div { display:grid; grid-template-columns:48px minmax(0,1fr); gap:18px; padding:13px 0; border-bottom:1px solid var(--line); font-size:16px; word-break:keep-all; }
.service-area-list dt { font-weight:700; color:var(--brand); }
.service-area-list dd { margin:0; }

/* Shared recording notice under operating stages 01 and 02. */
#service > .operation-recording { width:calc(66.666667% - 9.333333px); margin-top:24px; }
@media(max-width:750px) { #service > .operation-recording { width:100%; } }

/* Benefit card photographs. */
.benefit-photo { margin-top:18px; border-radius:14px; overflow:hidden; background:var(--ivory); }
.benefit-photo img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; }

/* Serif Korean brand names in the shared header and footer. */
.brand > span, .footer-brand-name {
  font-family: 'Noto Serif KR', 'Batang', 'AppleMyungjo', serif;
  font-weight: 500;
}

/* Footer policies and accessible document dialogs. */
.footer-policy-links { display:flex; flex-wrap:wrap; gap:10px 22px; margin:12px 0; }
.footer-policy-links button { appearance:none; border:0; padding:0; background:none; color:var(--muted); font:inherit; cursor:pointer; text-underline-offset:4px; }
.footer-policy-links button:first-child { font-weight:700; color:var(--ink); }
.footer-policy-links button:hover { color:var(--brand); text-decoration:underline; }
.footer-policy-links button:focus-visible, .legal-close:focus-visible { outline:2px solid var(--brand); outline-offset:5px; }
html.legal-open { overflow:hidden; }
.legal-dialog { width:min(720px,calc(100% - 32px)); max-height:85vh; max-height:85dvh; padding:0; border:1px solid var(--line); border-radius:20px; background:var(--surface); color:var(--ink); box-shadow:0 24px 80px #493b3733; }
.legal-dialog::backdrop { background:#34292780; backdrop-filter:blur(3px); }
.legal-dialog-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 30px 18px; border-bottom:1px solid var(--line); }
.legal-eyebrow { font-size:10px; letter-spacing:2px; color:var(--brand); }
.legal-dialog h2 { font-family:'Noto Serif KR','Batang','AppleMyungjo',serif; font-size:26px; margin:5px 0 0; letter-spacing:-.03em; }
.legal-close { flex-shrink:0; display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:var(--background); color:var(--brand); font-size:28px; cursor:pointer; }
.legal-dialog-body { padding:22px 30px 30px; overflow-y:auto; max-height:calc(85vh - 128px); max-height:calc(85dvh - 128px); overscroll-behavior:contain; }
.legal-draft { background:var(--ivory); border-left:3px solid var(--rose); padding:12px 15px; margin:0 0 24px; font-size:12px; line-height:1.8; color:var(--muted); }
.legal-sections section { margin:0 0 24px; }
.legal-sections h3 { font-size:15px; margin:0 0 8px; color:var(--brand); }
.legal-sections p { font-size:14px; line-height:1.95; word-break:keep-all; overflow-wrap:anywhere; margin:0; }
@media(max-width:600px) { .legal-dialog-header { padding:18px 20px; } .legal-dialog-body { padding:18px 20px 24px; } .legal-dialog h2 { font-size:23px; } }
