/**
 * Lapal Article Page Styles
 *
 * Reference: /example/styles.css (Wirecutter article page structure)
 * Wirecutter 스타일을 기반으로 한 lapal.ai article 스타일
 * Design Tokens: /docs/design-system/design-tokens.json
 */

/* lapal-product-card.css는 LapalArticleLayout.astro에서 직접 로드 */

/* ============================================
   CSS CUSTOM PROPERTIES (Design Tokens)
   ============================================ */

:root {
  /* Colors - Text */
  --color-text-primary: #333333;
  --color-text-secondary: #666666;
  --color-text-heading: #000000;

  /* Colors - Link */
  --color-link-primary: #00A5CF;
  --color-link-hover: #0091B8;
  --color-link-underline: #333333;

  /* Colors - Border */
  --color-border-default: #e5e5e5;
  --color-border-dark: #cccccc;
  --color-border-accent: #000000;

  /* Colors - Background */
  --color-bg-page: #F9F9F9;
  --color-bg-white: #ffffff;
  --color-bg-hover: #f5f5f5;

  /* Colors - Accent */
  --color-accent-blue: #007799;
  --color-accent-promo: linear-gradient(135deg, #5bc2e7 0%, #4aa5c7 100%);

  /* Typography - Font Family */
  --font-family-primary: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-family-secondary:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-family-mono: "Pretendard Variable", Pretendard, "SF Mono", Monaco, Consolas, monospace;

  /* Typography - Font Size (한글 최적화, 황금비율 1.618) */
  --font-size-h1: 48px;              /* 메인 제목 (가독성 개선) */
  --font-size-h1-mobile: 36px;
  --font-size-h2: 32px;              /* 섹션 제목 (계층 구분 강화) */
  --font-size-h2-mobile: 28px;
  --font-size-h3: 24px;              /* 서브섹션 (명확한 차이) */
  --font-size-h3-mobile: 22px;
  --font-size-h4: 20px;              /* 제품명 (가독성 향상) */
  --font-size-h4-mobile: 18px;
  --font-size-h5: 18px;              /* 소제목 */
  --font-size-h5-mobile: 16px;
  --font-size-body: 17px;            /* 본문 (한글 최적) */
  --font-size-body-mobile: 16px;
  --font-size-small: 14px;
  --font-size-small-mobile: 12px;

  /* Typography - Font Weight */
  --font-weight-light: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-black: 800;

  /* Typography - Line Height (한글 최적화) */
  --line-height-tight: 1.3;          /* H1 (한글용 증가) */
  --line-height-snug: 1.4;           /* H2 */
  --line-height-normal: 1.5;         /* H3, H4 */
  --line-height-relaxed: 1.75;       /* 본문 (한글 가독성) */

  /* Typography - Letter Spacing (한글 최적화, em 단위) */
  --letter-spacing-h1: -0.02em;      /* H1 (한글은 약간만) */
  --letter-spacing-h2: -0.01em;      /* H2 */
  --letter-spacing-h3: 0;            /* H3 (한글 기본값) */
  --letter-spacing-h4: 0.02em;       /* H4 (약간 넓게) */
  --letter-spacing-body: 0.01em;     /* 본문 (가독성) */

  /* Spacing - Scale */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 12px;
  --spacing-lg: 16px;
  --spacing-xl: 24px;
  --spacing-2xl: 32px;
  --spacing-3xl: 40px;
  --spacing-4xl: 48px;
  --spacing-5xl: 64px;
  --spacing-6xl: 96px;

  /* Spacing - Component */
  --spacing-section-margin: 48px;
  --spacing-paragraph-margin: 24px;
  --spacing-list-gap: 16px;
  --spacing-table-cell: 8px 12px;
  --spacing-button-padding: 12px 24px;

  /* Layout - Max Width (3단계 시스템) */
  --max-width-narrow: 640px;         /* 텍스트 중심 (최적 가독성) */
  --max-width-medium: 768px;         /* 혼합 콘텐츠 (텍스트+이미지) */
  --max-width-wide: 960px;           /* 이미지/표 (시각 자료) */
  --max-width-hero: 1024px;          /* Hero image, full width content */
  --max-width-header: 763px;         /* Title, author card - 기준점 */
  --max-width-lede: var(--max-width-narrow);   /* Intro paragraph */
  --max-width-body: var(--max-width-medium);   /* Main content */
  --max-width-callout: var(--max-width-narrow); /* Product cards */

  /* 정렬 기준점 (H1 제목과 동일) */
  --align-left-base: 24px; /* article 컨테이너 내부에서 왼쪽 여백 */

  /* Layout - Breakpoints */
  --breakpoint-mobile: 768px;
  --breakpoint-tablet: 1024px;
  --breakpoint-desktop: 1440px;

  /* Border Radius */
  --border-radius-sm: 4px;
  --border-radius-md: 8px;
  --border-radius-full: 50%;

  /* Shadow */
  --shadow-none: none;
  --shadow-subtle: 0 1px 3px rgba(0, 0, 0, 0.1);

  /* Transition */
  --transition-fast: 0.15s ease;
  --transition-normal: 0.2s ease;
  --transition-slow: 0.3s ease;
}

/* ============================================
   PAGE SPECIFIC: Main Layout
   ============================================ */

.pm-lapal-article-main {
  /* Display */
  display: block;

  /* Layout (max-width 제거, 해상도 자동 조정) */
  margin: 0 auto;
  padding: var(--spacing-3xl) var(--spacing-xl);

  /* Background */
  background-color: var(--color-bg-page);

  /* Typography */
  font-family: var(--font-family-primary);
  font-size: 16px;
  font-weight: var(--font-weight-light);
  line-height: var(--spacing-xl);

  /* Text Rendering */
  text-rendering: optimizelegibility;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);

  /* Interaction */
  touch-action: manipulation;

  /* Unicode */
  unicode-bidi: isolate;
}

/* ============================================
   COMP: Article Container (Wirecutter Structure: Full-Width)
   ============================================ */

.pm-lapal-article-article {
  /* 전체 컨테이너는 중앙 정렬 */
  max-width: 1024px; /* 최대 너비 제한 */
  margin: 0 auto; /* 중앙 정렬 */
  padding: 0; /* 패딩은 내부 요소에서 처리 */
  position: relative;
}

/* Mobile: Full width */
@media (max-width: 768px) {
  .pm-lapal-article-article {
    max-width: 100%;
  }
}

/* 내부 요소들(header, body)이 각자 max-width를 가지고 H1 기준점으로 왼쪽 정렬 */

/* ============================================
   COMP: Breadcrumb
   ============================================ */

.pm-lapal-article-breadcrumb {
  margin-bottom: 12px;
}

.pm-lapal-article-breadcrumb__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pm-lapal-article-breadcrumb__item {
  font-size: 14px;
}

.pm-lapal-article-breadcrumb__link {
  color: var(--color-text-secondary);
  text-decoration: none;
}

.pm-lapal-article-breadcrumb__link:hover {
  color: var(--color-link-primary);
  text-decoration: underline;
}

.pm-lapal-article-breadcrumb__item:not(:last-child)::after {
  content: '›';
  color: var(--color-border-dark);
  margin: 0 var(--spacing-xs);
}

/* ============================================
   COMP: Article Header (Wirecutter: 763px)
   ============================================ */

.pm-lapal-article-header {
  max-width: var(--max-width-header);
  margin: 0 0 var(--spacing-2xl) 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
}

/* H1 Title - Mobile First (한글 최적화) */
.pm-lapal-article-title {
  border-top: 5px solid var(--color-border-accent);
  padding-top: 5px;
  font-family: var(--font-family-primary);
  font-size: var(--font-size-h1-mobile); /* 36px */
  font-weight: 800;
  line-height: var(--line-height-tight); /* 1.3 */
  letter-spacing: var(--letter-spacing-h1); /* -0.02em */
  color: var(--color-text-heading);
  margin: 0 0 8px 0;
}

/* H1 Title - Desktop (768px+) */
@media (min-width: 48em) {
  .pm-lapal-article-title {
    border-top: 8.5px solid var(--color-border-accent);
    padding-top: 4px;
    font-size: var(--font-size-h1); /* 48px */
    line-height: var(--line-height-tight); /* 1.3 */
    letter-spacing: var(--letter-spacing-h1); /* -0.02em */
    margin-bottom: 16px;
  }
}

/* Date Row (첫 번째 줄) */
.pm-lapal-article-date-row {
  margin-bottom: 12px;
}

.pm-lapal-article-date {
  font-size: 14px;
  font-weight: 400;
  color: #666666;
  line-height: 1.5;
}

/* Social Group (두 번째 줄) */
.pm-lapal-article-social-group {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Copy Link Button Wrapper */
.pm-lapal-article-copy-wrapper {
  position: relative;
  display: inline-flex;
}

.pm-lapal-article-share-btn {
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #666666;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: all 0.2s ease;
}

.pm-lapal-article-share-btn:hover {
  color: #000000;
  background-color: #f5f5f5;
}

.pm-lapal-article-copy-input {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

/* Social Share Links (X, Facebook, Email) */
.pm-lapal-article-share-link {
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #666666;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-radius: 4px;
  transition: all 0.2s ease;
}

.pm-lapal-article-share-link:hover {
  color: #000000;
  background-color: #f5f5f5;
}

/* Save Button Wrapper */
.pm-lapal-article-save-wrapper {
  display: inline-flex;
  /* margin-left: auto; */
}

.pm-lapal-article-save-btn {
  background: none;
  border: 1px solid #cccccc;
  padding: 8px 16px;
  border-radius: 4px;
  cursor: pointer;
  color: #333333;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.pm-lapal-article-save-btn:hover {
  border-color: #333333;
  background-color: #f9f9f9;
}

.pm-lapal-article-save-btn svg {
  flex-shrink: 0;
}

/* ============================================
   COMP: Lede Section (Wirecutter-Style: 763px)
   ============================================ */

.pm-lapal-article-lede {
  max-width: var(--max-width-header); /* H1과 동일한 763px */
  margin: 32px 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
}

.pm-lapal-article-lede__paragraph {
  font-size: 18px;
  line-height: 1.7;
  color: #333333;
  margin: 0 0 24px 0;
}

.pm-lapal-article-lede__paragraph:last-child {
  margin-bottom: 0;
}

/* ============================================
   COMP: Hero Image (Full Width Expansion)
   ============================================ */

/* Hero Section Container (used by HeroImage component) */
.pm-lapal-hero-section {
  width: 100%;
  max-width: var(--max-width-hero);  /* 고정 1024px */
  margin: 0 0 2rem 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
  padding-right: var(--spacing-xl);    /* 오른쪽 여백만 */
}

/* Mobile: Reset to container width */
@media (max-width: 768px) {
  .pm-lapal-hero-section {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 1.5rem;
    padding: 0;  /* 모바일에서는 패딩 제거 */
  }
}

/* Hero Image Caption (Wirecutter-Style) */
.pm-lapal-image-caption {
  padding: 8px 0 0 0;
  background: transparent;
  color: #666666;
  font-size: 20px;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 0.96;
  text-align: right;
  font-style: normal;
  font-weight: 400;
}

.pm-lapal-image-caption-text {
  display: inline;
  box-sizing: border-box;
  color: rgb(102, 102, 102);
  font-family: var(--font-family-primary);
  font-feature-settings: "liga" 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-align: right;
  text-rendering: optimizelegibility;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
  cursor: default;
}

.pm-lapal-article-hero {
  margin: 0 0 32px 0;
}

.pm-lapal-article-hero__image-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  overflow: hidden;
}

.pm-lapal-article-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pm-lapal-article-hero__badge {
  position: absolute;
  bottom: 16px;
  right: 16px;
  background: rgba(0, 0, 0, 0.7);
  color: #ffffff;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* ============================================
   COMP: Author Card (Wirecutter: 763px)
   ============================================ */

.pm-lapal-article-author {
  max-width: var(--max-width-header); /* H1과 동일한 763px */
  margin: 16px 0 32px 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
}

.pm-lapal-article-author__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pm-lapal-article-author__name {
  font-size: 14px;
  margin: 0;
  color: #666666;
  font-weight: 400;
}

.pm-lapal-article-author__link {
  color: #333333;
  text-decoration: underline;
  font-weight: 500;
}

.pm-lapal-article-author__link:hover {
  color: #00A5CF;
}

.pm-lapal-article-author__bio {
  font-size: 14px;
  line-height: 1.5;
  color: #666666;
  margin: 0;
}

/* ============================================
   COMP: Promo Box (Wirecutter: 763px)
   ============================================ */

.pm-lapal-article-promo {
  max-width: 763px;
  margin: 0 auto 64px auto;
  background: linear-gradient(135deg, #5bc2e7 0%, #4aa5c7 100%);
  padding: 48px;
  border-radius: 8px;
}

.pm-lapal-article-promo__title {
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 24px 0;
}

.pm-lapal-article-promo__content {
  color: #ffffff;
}

.pm-lapal-article-promo__content p {
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 24px 0;
}

.pm-lapal-article-promo__content p:last-child {
  margin-bottom: 0;
}

.pm-lapal-article-promo__link {
  color: #ffffff;
  text-decoration: underline;
  font-weight: 600;
}

.pm-lapal-article-promo__link:hover {
  text-decoration: none;
}

/* ============================================
   COMP: Article Body (Wirecutter: 763px)
   ============================================ */

.pm-lapal-article-body {
  width: var(--max-width-header); /* H1과 동일한 763px */
  max-width: 100%;
  margin: 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
  font-family: var(--font-family-primary);
  font-size: var(--font-size-body); /* 17px */
  font-weight: 400;
  line-height: var(--line-height-relaxed); /* 1.75 */
  letter-spacing: var(--letter-spacing-body); /* 0.01em */
  color: rgb(34, 34, 34);

  /* 한글 텍스트 렌더링 최적화 */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1; /* 커닝 활성화 */
  word-spacing: 0.05em; /* 한글 단어 간격 */
}

.pm-lapal-article-body ol,
.pm-lapal-article-body ul {
  margin: 0 0 1em 1.2em;
  padding: 0;
}

.pm-lapal-article-body ol li,
.pm-lapal-article-body ul li {
  margin-bottom: 1em;
}

.pm-lapal-article-body p {
  margin: 0 0 1em 0;
}

.pm-lapal-article-body a {
  color: var(--color-link-primary);
  text-decoration: underline;
}

.pm-lapal-article-body a:hover {
  color: var(--color-link-hover);
}

/* ============================================
   TYPOGRAPHY: Headings (Wirecutter-Based, Semantic HTML)
   ============================================ */

/* H2: Section Title (한글 최적화 + Visual Hierarchy) */
.pm-lapal-article-body h2 {
  font-family: var(--font-family-primary);
  font-size: var(--font-size-h2); /* 32px */
  font-weight: 800;
  line-height: var(--line-height-snug); /* 1.4 */
  letter-spacing: var(--letter-spacing-h2); /* -0.01em */
  color: var(--color-text-heading);
  margin: 48px 0 24px 0;

  /* Visual Hierarchy 강화 */
  background: linear-gradient(to right, #f8f9fa 0%, transparent 100%);
  padding-left: 16px;
  margin-left: -16px;
  border-left: 4px solid #000;
  position: relative;
}

.pm-lapal-article-body h2:first-child {
  margin-top: 0;
}

/* H3: Product Label/Description (한글 최적화 + Visual Hierarchy) */
.pm-lapal-article-body h3 {
  font-family: var(--font-family-primary);
  font-size: var(--font-size-h3); /* 24px */
  font-weight: 700;
  line-height: var(--line-height-normal); /* 1.5 */
  letter-spacing: var(--letter-spacing-h3); /* 0 */
  color: rgb(34, 34, 34);
  margin: 32px 0 16px 0;

  /* Visual Hierarchy 강화 */
  border-bottom: 1px solid #e5e5e5;
  padding-bottom: 8px;
}

/* H3 변형: 라벨 스타일 (Top pick, Budget pick) */
.pm-lapal-article-body h3.product-label {
  font-weight: 800;
  letter-spacing: var(--letter-spacing-h3);
  color: var(--color-text-heading);
  margin: 24px 0 8px 0;

  /* 라벨은 하단 보더 제거 */
  border-bottom: none;
  padding-bottom: 0;
}

/* H4: Product Name (한글 최적화 + Visual Hierarchy) */
.pm-lapal-article-body h4 {
  font-family: var(--font-family-primary);
  font-size: var(--font-size-h4); /* 20px */
  font-weight: 600; /* 500 → 600 */
  line-height: var(--line-height-normal); /* 1.5 */
  letter-spacing: var(--letter-spacing-h4); /* 0.02em */
  color: #0066cc; /* 파란색으로 구분 */
  margin: 24px 0 12px 0;

  /* Visual Hierarchy 강화 */
  transition: color 0.2s ease;
}

.pm-lapal-article-body h4:hover {
  color: #0052a3; /* 호버 시 더 진한 파란색 */
}

/* H5: Sub-section (한글 최적화 + Visual Hierarchy) */
.pm-lapal-article-body h5 {
  font-family: var(--font-family-primary);
  font-size: var(--font-size-h5); /* 18px */
  font-weight: 700; /* 800 → 700 */
  line-height: var(--line-height-normal); /* 1.5 */
  letter-spacing: 0;
  color: #666666; /* 회색으로 보조 정보임을 표시 */
  margin: 32px 0 16px 0;

  /* Visual Hierarchy 강화 */
  padding-left: 12px;
  border-left: 2px solid #cccccc;
  background: rgba(0, 0, 0, 0.02); /* 매우 연한 배경 */
  padding: 4px 12px;
}

.pm-lapal-article-body figure {
  margin: 64px 0;
}

.pm-lapal-article-body figure img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}

.pm-lapal-article-body figcaption {
  font-size: 14px;
  color: #666666;
  margin-top: 24px;
  font-style: italic;
}

/* ============================================
   COMP: Author Bio (bottom) (Wirecutter: 763px)
   ============================================ */

.pm-lapal-article-author-bio {
  max-width: var(--max-width-header); /* H1과 동일한 763px */
  margin: 96px 0 0 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
  padding-top: 64px;
  border-top: 2px solid #e5e5e5;
}

.pm-lapal-article-author-bio__title {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 32px 0;
  color: #333333;
}

.pm-lapal-article-author-bio__name {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 24px 0;
  color: #333333;
}

.pm-lapal-article-author-bio__description {
  font-size: 16px;
  line-height: 1.6;
  color: #666666;
  margin: 0;
}

/* ============================================
   COMP: Price Info List (Wirecutter Style)
   ============================================ */
.ba4a5829 + ul {
  list-style: disc;
  margin: 0 0 24px 24px;
  padding: 0;
  max-width: 763px;
}

.ba4a5829 + ul li {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 26px;
  color: rgb(34, 34, 34);
}

.ba4a5829 + ul li strong {
  font-weight: 700;
  color: rgb(0, 0, 0);
}

/* ============================================
   COMP: Specs Table (Wirecutter Style - Recommended Configuration)
   ============================================ */
.ba4a5829 {
  margin: 0 0 20px;
  padding: 0;
  overflow-x: auto;
  background-color: rgb(255, 255, 255);
  max-width: 763px;
}

.d3e6af1a {
  width: 100%;
  max-width: 763px;
}

.d3e6af1a table {
  width: 763px;
  border-collapse: collapse;
  font-family: nyt-franklin, 'Franklin Fallback Helvetica', 'Franklin Fallback Arial', helvetica, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  color: rgb(34, 34, 34);
  text-rendering: optimizelegibility;
  -webkit-font-smoothing: antialiased;
}

.d3e6af1a table thead {
  border-bottom: 2px solid rgb(0, 0, 0);
}

.d3e6af1a table thead th {
  padding: 9px 10px;
  text-align: left;
  font-weight: 700;
  color: rgb(0, 0, 0);
  background-color: rgb(255, 255, 255);
}

.d3e6af1a table tbody {
  vertical-align: middle;
}

.d3e6af1a table tbody tr {
  border-bottom: 1px solid rgb(230, 230, 230);
}

.d3e6af1a table td {
  padding: 9px 10px;
  vertical-align: top;
  border-bottom: 0;
  background-color: rgb(255, 255, 255);
}

/* tbody의 모든 셀에 회색 배경 적용 (쿠팡, 네이버쇼핑, 가격, 배송) */
.d3e6af1a table tbody td {
  background-color: rgb(245, 245, 245);
}

/* 스펙 테이블: 홀수 td (라벨) 고정 너비 */
.specs-table-4col .d3e6af1a table tbody td:nth-child(odd) {
  width: 140px;
  min-width: 140px;
  max-width: 140px;
}

/* 스펙 테이블: 짝수 td (값) 고정 너비 + 흰색 배경 */
.specs-table-4col .d3e6af1a table tbody td:nth-child(even) {
  width: 198px;
  min-width: 198px;
  max-width: 198px;
  background-color: rgb(255, 255, 255);
}

/* 첫 번째 열의 텍스트는 볼드 */
.d3e6af1a table td:first-child {
  font-weight: 700;
}

.d3e6af1a table td strong {
  font-weight: 700;
  color: rgb(0, 0, 0);
}

/* Mobile: 세로 스택 (3열 테이블) */
@media (max-width: 767px) {
  /* 헤더 숨기기 */
  .d3e6af1a table thead {
    display: none;
  }

  .d3e6af1a table {
    font-size: 12px;
    line-height: 16px;
    width: 100%;
  }

  /* tbody tr을 카드처럼 표시 */
  .d3e6af1a table tbody tr {
    display: block;
    margin-bottom: 16px;
    border-bottom: 1px solid rgb(230, 230, 230);
    padding-bottom: 16px;
  }

  .d3e6af1a table tbody tr:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  /* td를 block으로 표시 */
  .d3e6af1a table td {
    display: block;
    width: 100% !important;
    padding: 4px 0 4px 4px;
    border: none;
    background-color: transparent !important;
  }

  /* 첫 번째 td (쇼핑몰): 볼드, 큰 폰트 */
  .d3e6af1a table td:nth-child(1) {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
    color: rgb(0, 0, 0);
  }

  /* 두 번째, 세 번째 td (가격, 배송): 작은 폰트 */
  .d3e6af1a table td:nth-child(2),
  .d3e6af1a table td:nth-child(3) {
    font-size: 12px;
    padding: 2px 0 2px 4px;
  }

  /* 가격 앞에 라벨 추가 */
  .d3e6af1a table td:nth-child(2)::before {
    content: "가격: ";
    font-weight: 700;
    color: rgb(0, 0, 0);
  }

  /* 배송 앞에 라벨 추가 */
  .d3e6af1a table td:nth-child(3)::before {
    content: "배송: ";
    font-weight: 700;
    color: rgb(0, 0, 0);
  }

  /* 4열 스펙 테이블 (Label | Value | Label | Value) - 모바일 */
  .specs-table-4col .d3e6af1a table {
    font-size: 12px !important;
    line-height: 16px !important;
    width: 100% !important;
  }

  .specs-table-4col .d3e6af1a table tbody tr {
    display: block !important;
    margin-bottom: 12px !important;
    border-bottom: 1px solid rgb(230, 230, 230) !important;
    padding-bottom: 12px !important;
  }

  .specs-table-4col .d3e6af1a table tbody tr:last-child {
    border-bottom: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  /* td를 block으로 표시 */
  .specs-table-4col .d3e6af1a table td {
    display: block !important;
    width: 100% !important;
    padding: 3px 0 3px 4px !important;
    border: none !important;
    background-color: transparent !important;
  }

  /* 홀수 td (라벨): 볼드 */
  .specs-table-4col .d3e6af1a table td:nth-child(odd) {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: rgb(0, 0, 0) !important;
    margin-top: 6px !important;
  }

  .specs-table-4col .d3e6af1a table td:nth-child(odd):first-child {
    margin-top: 0 !important;
  }

  /* 짝수 td (값): 일반 */
  .specs-table-4col .d3e6af1a table td:nth-child(even) {
    font-size: 12px !important;
    font-weight: 400 !important;
    color: rgb(34, 34, 34) !important;
    margin-bottom: 4px !important;
  }
}

/* ============================================
   RESPONSIVE: Tablet & Mobile
   ============================================ */

@media (max-width: 768px) {
  .pm-lapal-article-main {
    padding: var(--spacing-3xl) var(--spacing-xl);
  }

  /* SNS 버튼 모바일 레이아웃 */
  .pm-lapal-article-social-group {
    gap: 8px;
  }

  .pm-lapal-article-share-btn,
  .pm-lapal-article-share-link {
    padding: 6px;
  }

  .pm-lapal-article-save-btn {
    padding: 6px 12px;
    font-size: 13px;
    gap: 6px;
  }

  .pm-lapal-article-body {
    font-size: var(--font-size-body-mobile);
  }

  /* H2: Section Title - Mobile */
  .pm-lapal-article-body h2 {
    font-size: var(--font-size-h2-mobile); /* 28px */
    line-height: var(--line-height-snug);
    margin: 32px 0 16px 0;
    /* Visual hierarchy 모바일 조정 */
    padding-left: 12px;
    margin-left: -12px;
  }

  /* H3: Product Label/Description - Mobile */
  .pm-lapal-article-body h3 {
    font-size: var(--font-size-h3-mobile); /* 22px */
    line-height: var(--line-height-normal);
    margin: 20px 0 12px 0;
  }

  /* H4: Product Name - Mobile */
  .pm-lapal-article-body h4 {
    font-size: var(--font-size-h4-mobile); /* 18px */
    line-height: var(--line-height-normal);
    margin: 16px 0 8px 0;
  }

  /* H5: Sub-section - Mobile */
  .pm-lapal-article-body h5 {
    font-size: var(--font-size-h5-mobile); /* 16px */
    line-height: var(--line-height-normal);
    margin: 24px 0 12px 0;
    padding: 4px 8px;
  }

  .pm-lapal-article-author {
    max-width: 100%;        /* Wirecutter 패턴: 데스크톱 763px 리셋 */
    margin-left: 0;         /* Wirecutter 패턴: 음수 마진 제거 */
    margin-right: 0;        /* Wirecutter 패턴: 일관성 */
    margin-top: 16px;
    margin-bottom: 24px;
  }

  /* Hero Image Caption - Mobile */
  .pm-lapal-image-caption-text {
    font-size: 12px;
    line-height: 18px;
    margin-right: 20px;
  }
}

/* ============================================
   COMP: Article Sections (Wirecutter-Style Width Strategy)
   ============================================ */

/* Default: H1과 같은 너비 */
.pm-lapal-article-section {
  width: var(--max-width-header); /* H1과 동일한 763px */
  max-width: 100%;
  margin: 0 0 64px 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
  scroll-margin-top: 80px; /* Offset for sticky header */
  transition: width 0.3s ease; /* 부드러운 전환 효과 */
}

.pm-lapal-article-section:first-child {
  margin-top: 0;
}

/* Medium sections: 768px for mixed content */
.pm-lapal-article-section--medium {
  width: var(--max-width-medium);
  max-width: 100%;
}

/* Wide sections: 960px for visual content (images, comparisons) */
.pm-lapal-article-section--wide {
  width: var(--max-width-wide);
  max-width: 100%;
}

/* Mobile: Reset to full width */
@media (max-width: 768px) {
  .pm-lapal-article-section,
  .pm-lapal-article-section--medium,
  .pm-lapal-article-section--wide {
    width: calc(100% - 48px); /* 양옆 24px 여백 */
    margin-left: 24px; /* 고정 왼쪽 여백 */
    margin-bottom: 48px;
  }
}

/* ============================================
   COMP: Product Callouts Section (Wirecutter: 763px)
   ============================================ */

.pm-lapal-product-callouts-section {
  max-width: var(--max-width-header); /* H1과 동일한 763px */
  margin: 48px 0;
  margin-left: var(--align-left-base); /* H1 기준점 */
}

.pm-lapal-section-title {
  margin: 0 0 32px 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
  color: #333333;
}

/* ============================================
   COMP: Product Callout Card (Wirecutter-Style)
   ============================================ */

.pm-lapal-product-callout {
  position: relative;
  max-width: var(--max-width-callout);
  margin: var(--spacing-2xl) 0;
  padding: var(--spacing-xl);
  background-color: var(--color-bg-white);
  border: 1px solid var(--color-border-default);
  border-radius: var(--border-radius-md);
}

.pm-lapal-product-callout__content {
  position: relative;
}

/* Save Button */
.pm-lapal-product-callout__save-wrapper {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
}

.pm-lapal-product-callout__save-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.2s ease;
}

.pm-lapal-product-callout__save-btn:hover {
  background-color: #f5f5f5;
  border-color: #999999;
}

.pm-lapal-product-callout__save-btn svg {
  width: 16px;
  height: 20px;
  color: #333333;
}

/* Main Content */
.pm-lapal-product-callout__main {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Product Image */
.pm-lapal-product-callout__image-wrapper {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 4px;
}

.pm-lapal-product-callout__image-wrapper a {
  display: block;
  width: 100%;
  height: 100%;
}

.pm-lapal-product-callout__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.pm-lapal-product-callout__image-wrapper a:hover .pm-lapal-product-callout__image {
  transform: scale(1.05);
}

/* Product Info */
.pm-lapal-product-callout__info {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Badge */
.pm-lapal-product-callout__badge {
  display: inline-block;
  padding: 4px 12px;
  background-color: #007799;
  color: #ffffff;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-radius: 4px;
  width: fit-content;
}

/* Product Name */
.pm-lapal-product-callout__name {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: #333333;
}

.pm-lapal-product-callout__name a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.pm-lapal-product-callout__name a:hover {
  color: #007799;
}

/* Product Description */
.pm-lapal-product-callout__description {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #666666;
}

/* Buy Button */
.pm-lapal-product-callout__buy-wrapper {
  margin-top: 8px;
}

.pm-lapal-product-callout__buy-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 12px 24px;
  background-color: #007799;
  color: #ffffff;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 4px;
  transition: background-color 0.2s ease;
}

.pm-lapal-product-callout__buy-btn:hover {
  background-color: #008ca3;
}

.pm-lapal-product-callout__price {
  font-weight: 700;
}

.pm-lapal-product-callout__separator {
  font-weight: 400;
}

.pm-lapal-product-callout__store {
  font-weight: 600;
}

/* Tablet & Desktop: Horizontal Layout */
@media (min-width: 768px) {
  .pm-lapal-product-callout__main {
    flex-direction: row;
    gap: 24px;
  }

  .pm-lapal-product-callout__image-wrapper {
    flex: 0 0 280px;
    width: 280px;
  }

  .pm-lapal-product-callout__info {
    flex: 1;
  }
}

/* ============================================
   PRODUCT LINKS (Internal Links to Review Pages)
   Wirecutter-style product name links
   ============================================ */

/* 본문 내 상품명 링크 (Wirecutter 스타일) */
.pm-lapal-article-body a[data-product-link="true"] {
  color: #dd1d33; /* Wirecutter 빨강 */
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}

.pm-lapal-article-body a[data-product-link="true"]:hover {
  color: #b01729; /* 더 어두운 빨강 */
  text-decoration: underline;
}

.pm-lapal-article-body a[data-product-link="true"]:visited {
  color: #a01525;
}

/* 레드 섹션 내 링크 스타일 조정 */
.pm-lapal-article-lede a[data-product-link="true"] {
  color: #dd1d33;
  font-weight: 700;
}
