:root {
   --lh-bg-base: #fafaf7;
   --lh-bg-paper: #ffffff;
   --lh-bg-soft: #f5ecdb;
   --lh-bg-wash: #f0e8d8;
   --lh-bg-dark: #1a1614;
   --lh-bg-dark-soft: #2a2420;

   --lh-text-primary: #1a1614;
   --lh-text-secondary: #5a4f48;
   --lh-text-muted: #8a7d72;
   --lh-text-light: #b5a89d;
   --lh-text-on-dark: #f5ecdb;

   --lh-accent-wine: #722f37;
   --lh-accent-wine-hover: #5e2530;
   --lh-accent-gold: #b8924c;
   --lh-accent-gold-soft: #d4b67a;
   --lh-accent-gold-wash: rgba(184, 146, 76, 0.08);

   --lh-border: #e8e0d0;
   --lh-border-soft: #f0e8d8;
   --lh-border-strong: #c9b896;

   --lh-max-main: 1220px;
   --lh-max-content: 980px;
   --lh-max-narrow: 760px;

   --lh-pad-h: 36px;
   --lh-pad-h-mobile: 22px;

   --lh-header-h: 88px;
   --lh-header-h-compact: 64px;

   --lh-radius: 3px;
   --lh-radius-card: 4px;

   --lh-trans: 280ms cubic-bezier(0.4, 0, 0.2, 1);

   --lh-font-serif: 'Playfair Display', 'Noto Serif KR', Georgia, 'Times New Roman', serif;
   --lh-font-body: 'Noto Serif KR', Georgia, 'Times New Roman', serif;
   --lh-font-sans: 'Pretendard Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
   --lh-font-mono: 'JetBrains Mono', Menlo, Consolas, monospace;
}

body.lh-body {
   background: var(--lh-bg-base);
   color: var(--lh-text-primary);
   font-family: var(--lh-font-body);
   font-weight: 400;
   line-height: 1.78;
   word-break: keep-all;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
}

body.lh-nav-locked {
   overflow: hidden;
}

.lh-body h1,
.lh-body h2,
.lh-body h3,
.lh-body h4,
.lh-body h5,
.lh-body h6 {
   font-family: var(--lh-font-serif);
   color: var(--lh-text-primary);
   font-weight: 600;
   letter-spacing: -0.012em;
   line-height: 1.32;
}

.lh-body a {
   color: var(--lh-accent-wine);
   text-decoration: none;
   transition: color var(--lh-trans);
}

.lh-body a:hover,
.lh-body a:focus {
   color: var(--lh-accent-wine-hover);
}

.lh-sr {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

.lh-skip {
   position: absolute;
   left: -9999px;
   z-index: 100;
   padding: 12px 18px;
   background: var(--lh-text-primary);
   color: var(--lh-bg-base);
   text-decoration: none;
}

.lh-skip:focus {
   left: 12px;
   top: 12px;
}

.lh-eyebrow {
   display: inline-block;
   font-family: var(--lh-font-sans);
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.18em;
   text-transform: uppercase;
   color: var(--lh-accent-gold);
   margin-bottom: 14px;
}

a.lh-eyebrow:hover {
   color: var(--lh-accent-wine);
}

.lh-header {
   position: sticky;
   top: 0;
   z-index: 50;
   background: rgba(250, 250, 247, 0.94);
   backdrop-filter: blur(12px);
   -webkit-backdrop-filter: blur(12px);
   border-bottom: 1px solid var(--lh-border);
   transition: padding var(--lh-trans), background var(--lh-trans);
}

.lh-header-inner {
   max-width: var(--lh-max-main);
   margin: 0 auto;
   padding: 0 var(--lh-pad-h);
   height: var(--lh-header-h);
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   transition: height var(--lh-trans);
}

.lh-header-compact .lh-header-inner {
   height: var(--lh-header-h-compact);
}

.lh-brand {
   display: flex;
   align-items: center;
   gap: 14px;
   color: var(--lh-text-primary);
   text-decoration: none;
}

.lh-brand:hover {
   color: var(--lh-text-primary);
}

.lh-brand-mark {
   width: 40px;
   height: 40px;
   color: var(--lh-text-primary);
   display: inline-flex;
   align-items: center;
   justify-content: center;
   transition: transform var(--lh-trans);
}

.lh-header-compact .lh-brand-mark {
   transform: scale(0.86);
}

.lh-brand-text {
   display: flex;
   flex-direction: column;
   line-height: 1.1;
}

.lh-brand-name {
   font-family: var(--lh-font-serif);
   font-size: 22px;
   font-weight: 700;
   letter-spacing: 0.18em;
   color: var(--lh-text-primary);
}

.lh-brand-tagline {
   font-family: var(--lh-font-sans);
   font-size: 10.5px;
   font-weight: 500;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--lh-text-muted);
   margin-top: 3px;
}

.lh-nav {
   display: flex;
   align-items: center;
   gap: 30px;
}

.lh-nav-list {
   display: flex;
   align-items: center;
   gap: 26px;
   list-style: none;
   margin: 0;
   padding: 0;
}

.lh-nav-item a,
.lh-nav-list > .menu-item > a {
   font-family: var(--lh-font-sans);
   font-size: 13px;
   font-weight: 500;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--lh-text-primary);
   padding: 4px 0;
   border-bottom: 1px solid transparent;
   transition: color var(--lh-trans), border-color var(--lh-trans);
}

.lh-nav-item a:hover,
.lh-nav-list > .menu-item > a:hover {
   color: var(--lh-accent-wine);
   border-bottom-color: var(--lh-accent-gold);
}

.lh-nav-item-soft a {
   color: var(--lh-text-muted);
   text-transform: none;
   font-weight: 400;
   letter-spacing: 0.02em;
   font-size: 13.5px;
   font-style: italic;
   font-family: var(--lh-font-body);
}

.lh-nav-cta {
   display: inline-flex;
   align-items: center;
   padding: 9px 22px;
   font-family: var(--lh-font-sans);
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   color: var(--lh-text-on-dark);
   background: var(--lh-text-primary);
   border: 1px solid var(--lh-text-primary);
   transition: background var(--lh-trans), color var(--lh-trans), border-color var(--lh-trans);
}

.lh-nav-cta:hover {
   background: var(--lh-accent-wine);
   border-color: var(--lh-accent-wine);
   color: #fff;
}

.lh-menu-toggle {
   display: none;
   background: transparent;
   border: 1px solid var(--lh-border);
   width: 42px;
   height: 42px;
   padding: 0;
   cursor: pointer;
   color: var(--lh-text-primary);
}

.lh-menu-icon {
   display: inline-flex;
   flex-direction: column;
   gap: 5px;
   width: 18px;
   margin: 0 auto;
}

.lh-menu-icon span {
   display: block;
   width: 18px;
   height: 1.5px;
   background: currentColor;
   transition: transform var(--lh-trans), opacity var(--lh-trans);
}

.lh-menu-toggle-open .lh-menu-icon span:first-child {
   transform: translateY(3px) rotate(45deg);
}

.lh-menu-toggle-open .lh-menu-icon span:last-child {
   transform: translateY(-4px) rotate(-45deg);
}

.lh-main {
   min-height: 50vh;
}

.lh-shell {
   max-width: var(--lh-max-main);
   margin: 0 auto;
   padding: 60px var(--lh-pad-h) 80px;
}

.lh-shell-with-sidebar {
   display: grid;
   grid-template-columns: minmax(0, 1fr) 280px;
   gap: 56px;
   align-items: start;
}

.lh-shell-full {
   max-width: 100%;
   padding: 0;
}

.lh-content-area-full {
   width: 100%;
}

.lh-footer {
   background: var(--lh-bg-dark);
   color: var(--lh-text-on-dark);
   border-top: 4px solid var(--lh-accent-gold);
   padding: 72px 0 30px;
}

.lh-footer-inner {
   max-width: var(--lh-max-main);
   margin: 0 auto;
   padding: 0 var(--lh-pad-h);
}

.lh-footer-cols {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 44px;
   margin-bottom: 56px;
}

.lh-footer-col,
.lh-footer-widget {
   color: var(--lh-text-on-dark);
}

.lh-footer-widget-title,
.lh-footer-col h4 {
   font-family: var(--lh-font-sans);
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.18em;
   text-transform: uppercase;
   color: var(--lh-accent-gold);
   margin: 0 0 22px;
}

.lh-footer-list {
   list-style: none;
   margin: 0;
   padding: 0;
   font-family: var(--lh-font-body);
   font-size: 14.5px;
}

.lh-footer-list li {
   margin-bottom: 11px;
   line-height: 1.5;
}

.lh-footer-list a {
   color: #c9beb0;
   text-decoration: none;
   transition: color var(--lh-trans);
}

.lh-footer-list a:hover {
   color: var(--lh-accent-gold-soft);
}

.lh-footer-note {
   font-family: var(--lh-font-body);
   font-size: 14px;
   line-height: 1.7;
   color: #b5a89d;
   margin: 0 0 14px;
}

.lh-footer-note-soft {
   font-size: 13px;
   color: #8a7d72;
   font-style: italic;
}

.lh-footer-bottom {
   border-top: 1px solid #3a3128;
   padding-top: 28px;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   flex-wrap: wrap;
}

.lh-footer-brand {
   display: flex;
   align-items: center;
   gap: 12px;
   color: var(--lh-accent-gold);
}

.lh-footer-copy {
   font-family: var(--lh-font-sans);
   font-size: 12px;
   color: var(--lh-text-light);
   letter-spacing: 0.04em;
}

.lh-footer-nav {
   display: flex;
}

.lh-footer-menu {
   display: flex;
   list-style: none;
   margin: 0;
   padding: 0;
   gap: 22px;
   flex-wrap: wrap;
}

.lh-footer-menu a {
   font-family: var(--lh-font-sans);
   font-size: 12px;
   font-weight: 500;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--lh-text-light);
   text-decoration: none;
   transition: color var(--lh-trans);
}

.lh-footer-menu a:hover {
   color: var(--lh-accent-gold);
}

.lh-sidebar {
   position: sticky;
   top: calc(var(--lh-header-h) + 28px);
   align-self: start;
   display: flex;
   flex-direction: column;
   gap: 36px;
}

.lh-widget {
   padding: 0;
}

.lh-widget-title {
   font-family: var(--lh-font-sans);
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.18em;
   text-transform: uppercase;
   color: var(--lh-accent-gold);
   margin: 0 0 18px;
   padding-bottom: 12px;
   border-bottom: 1px solid var(--lh-border);
}

.lh-widget-list {
   list-style: none;
   margin: 0;
   padding: 0;
   font-family: var(--lh-font-body);
   font-size: 14.5px;
}

.lh-widget-list li {
   margin-bottom: 12px;
   line-height: 1.55;
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   gap: 10px;
}

.lh-widget-list a {
   color: var(--lh-text-primary);
   text-decoration: none;
   border-bottom: 1px solid transparent;
   transition: color var(--lh-trans), border-color var(--lh-trans);
}

.lh-widget-list a:hover {
   color: var(--lh-accent-wine);
   border-bottom-color: var(--lh-accent-gold);
}

.lh-widget-list-count {
   font-family: var(--lh-font-sans);
   font-size: 11px;
   color: var(--lh-text-muted);
   letter-spacing: 0.04em;
}

.lh-widget-note-body {
   font-family: var(--lh-font-body);
   font-size: 14px;
   line-height: 1.75;
   color: var(--lh-text-secondary);
   margin: 0 0 12px;
}

.lh-widget-note-soft {
   font-style: italic;
   color: var(--lh-text-muted);
   font-size: 13.5px;
}

.lh-widget-cta {
   display: inline-block;
   width: 100%;
   padding: 12px 18px;
   font-family: var(--lh-font-sans);
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.12em;
   text-transform: uppercase;
   text-align: center;
   color: var(--lh-text-on-dark);
   background: var(--lh-text-primary);
   border: 1px solid var(--lh-text-primary);
   text-decoration: none;
   transition: background var(--lh-trans), border-color var(--lh-trans);
}

.lh-widget-cta:hover {
   background: var(--lh-accent-wine);
   border-color: var(--lh-accent-wine);
   color: #fff;
}

.lh-widget .search-form {
   display: flex;
   gap: 8px;
}

.lh-widget .search-form .search-field {
   flex: 1;
   padding: 9px 12px;
   font-family: var(--lh-font-body);
   font-size: 14px;
   background: var(--lh-bg-paper);
   border: 1px solid var(--lh-border);
   color: var(--lh-text-primary);
}

.lh-widget .search-form .search-field:focus {
   outline: none;
   border-color: var(--lh-accent-gold);
}

.lh-widget .search-form .search-submit {
   padding: 9px 14px;
   font-family: var(--lh-font-sans);
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--lh-bg-base);
   background: var(--lh-text-primary);
   border: 1px solid var(--lh-text-primary);
   cursor: pointer;
}

.lh-pagination {
   margin-top: 48px;
   padding-top: 32px;
   border-top: 1px solid var(--lh-border);
}

.lh-pagination .nav-links {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 14px;
   flex-wrap: wrap;
}

.lh-pagination .page-numbers {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-width: 38px;
   height: 38px;
   padding: 0 12px;
   font-family: var(--lh-font-sans);
   font-size: 13px;
   font-weight: 500;
   color: var(--lh-text-primary);
   background: var(--lh-bg-paper);
   border: 1px solid var(--lh-border);
   text-decoration: none;
   transition: all var(--lh-trans);
}

.lh-pagination .page-numbers:hover,
.lh-pagination .page-numbers.current {
   background: var(--lh-text-primary);
   color: var(--lh-bg-base);
   border-color: var(--lh-text-primary);
}

@media (max-width: 1023px) {
   .lh-shell-with-sidebar {
      grid-template-columns: 1fr;
      gap: 56px;
   }

   .lh-sidebar {
      position: static;
   }

   .lh-footer-cols {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 36px;
   }
}

@media (max-width: 767px) {
   .lh-header-inner {
      padding: 0 var(--lh-pad-h-mobile);
   }

   .lh-shell {
      padding: 44px var(--lh-pad-h-mobile) 60px;
   }

   .lh-menu-toggle {
      display: inline-flex;
      align-items: center;
      justify-content: center;
   }

   .lh-nav {
      position: fixed;
      top: 0;
      right: 0;
      width: 100%;
      max-width: 360px;
      height: 100vh;
      padding: 84px 36px 36px;
      background: var(--lh-bg-base);
      border-left: 1px solid var(--lh-border);
      flex-direction: column;
      align-items: flex-start;
      gap: 28px;
      transform: translateX(100%);
      transition: transform var(--lh-trans);
      overflow-y: auto;
      z-index: 49;
   }

   .lh-nav-open {
      transform: translateX(0);
   }

   .lh-nav-list {
      flex-direction: column;
      gap: 22px;
      align-items: flex-start;
      width: 100%;
   }

   .lh-nav-item a,
   .lh-nav-list > .menu-item > a {
      font-size: 16px;
      letter-spacing: 0.08em;
   }

   .lh-nav-cta {
      width: 100%;
      justify-content: center;
      padding: 14px 22px;
      font-size: 13px;
   }

   .lh-footer {
      padding: 56px 0 24px;
   }

   .lh-footer-inner {
      padding: 0 var(--lh-pad-h-mobile);
   }

   .lh-footer-cols {
      grid-template-columns: 1fr;
      gap: 36px;
      margin-bottom: 40px;
   }

   .lh-footer-bottom {
      flex-direction: column;
      align-items: flex-start;
      gap: 18px;
   }

   .lh-footer-menu {
      gap: 14px 18px;
   }
}
