/* motteku Theme - Compiled Tailwind CSS */
/* Run `npm run build` to regenerate this file */

*, ::before, ::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #1F2937;
}

/* Sticky footer layout (Block theme wrapper) */
html,
body {
  height: 100%;
}

.wp-site-blocks {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.wp-site-blocks > main {
  flex: 1 0 auto;
}

.wp-site-blocks > footer {
  margin-top: auto;
}

/* モバイル用左右余白（全ページ対応） */
main.wp-block-group {
  padding-left: 1rem;
  padding-right: 1rem;
}

/* ヒーローセクション（カバーブロック）はフル幅に戻す */
main.wp-block-group > .wp-block-cover {
  margin-left: -1rem;
  margin-right: -1rem;
  width: calc(100% + 2rem);
  max-width: none;
}

/* Destination hero title (H1) */
.motteku-destination-hero-title {
  margin: 0;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

@media (min-width: 768px) {
  main.wp-block-group {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  main.wp-block-group > .wp-block-cover {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
    width: calc(100% + 3rem);
  }
}

/* Buttons */
.motteku-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  border-radius: 0.75rem;
  transition: all 300ms;
}

.motteku-btn:focus {
  outline: none;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #10b981;
}

.motteku-btn-primary {
  background-color: #10b981;
  color: white;
}

.motteku-btn-primary:hover {
  background-color: #059669;
}

.motteku-btn-secondary {
  background-color: white;
  color: #10b981;
  border: 2px solid #10b981;
}

.motteku-btn-secondary:hover {
  background-color: #F0FDFA;
}

.motteku-btn-sm {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  border-radius: 0.5rem;
}

.motteku-btn-lg {
  padding: 1rem 2rem;
  font-size: 1.125rem;
  border-radius: 1rem;
}

/* Cards */
.motteku-card {
  background-color: white;
  border-radius: 1rem;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  overflow: hidden;
  transition: box-shadow 300ms;
}

.motteku-card:hover {
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.motteku-card-destination {
  background-color: white;
  border-radius: 1rem;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  overflow: hidden;
  position: relative;
  transition: box-shadow 300ms, transform 300ms;
}

.motteku-card-destination:hover {
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  transform: translateY(-4px);
}

.motteku-card-destination-image {
  width: 100%;
  height: 12rem;
  object-fit: cover;
}

.motteku-card-destination-content {
  padding: 1rem;
}

.motteku-card-destination-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin-bottom: 0.25rem;
}

.motteku-card-destination-country {
  font-size: 0.875rem;
  color: #6B7280;
}

.motteku-card-blog {
  background-color: white;
  border-radius: 1rem;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  overflow: hidden;
  transition: box-shadow 300ms, transform 300ms;
}

.motteku-card-blog:hover {
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  transform: translateY(-4px);
}

.motteku-card-blog-image {
  width: 100%;
  height: 10rem;
  object-fit: cover;
}

.motteku-card-blog-content {
  padding: 1rem;
}

/* Rich Destination Card */
.motteku-card-destination-rich {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  transition: box-shadow 300ms, transform 300ms;
  aspect-ratio: 4/4;
}

.motteku-card-destination-rich:hover {
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  transform: translateY(-4px);
}

/* Background Image */
.motteku-card-destination-rich .motteku-card-rich-bg,
.motteku-card-destination-rich .wp-post-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
}

.motteku-card-destination-rich .motteku-card-rich-bg figure {
  margin: 0;
  height: 100%;
}

.motteku-card-destination-rich .motteku-card-rich-bg figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
}

/* Overlay */
.motteku-card-destination-rich::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.7) 100%);
  pointer-events: none;
}

/* Card Content */
.motteku-card-destination-rich .motteku-card-rich-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.25rem;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Title */
.motteku-card-destination-rich .motteku-card-rich-title,
.motteku-card-destination-rich .wp-block-post-title {
  color: white !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  margin: 0 !important;
  line-height: 1.3;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.motteku-card-destination-rich .wp-block-post-title a {
  color: white !important;
  text-decoration: none;
}

.motteku-card-destination-rich .wp-block-post-title a:hover {
  text-decoration: underline;
}

/* Location */
.motteku-card-rich-location {
  color: rgba(255,255,255,0.9);
  font-size: 0.875rem;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.motteku-card-rich-location::before {
  content: '📍';
}

/* Tags */
.motteku-card-rich-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-top: 0.25rem;
}

.motteku-card-rich-tag {
  display: inline-block;
  padding: 0.25rem 0.625rem;
  background-color: rgba(255,255,255,0.2);
  backdrop-filter: blur(4px);
  border-radius: 9999px;
  font-size: 0.75rem;
  color: white;
  font-weight: 500;
}

/* Button */
.motteku-card-destination-rich .motteku-card-rich-btn {
  margin-top: 0.5rem;
}

.motteku-card-destination-rich .motteku-card-rich-btn .wp-block-button__link {
  width: 100%;
  text-align: center;
}

/* Hide empty location/tags */
.motteku-card-rich-location:empty,
.motteku-card-rich-tags:empty {
  display: none;
}

/* Mobile styles for rich cards */
@media (max-width: 640px) {
  .motteku-card-destination-rich {
    aspect-ratio: 1/1 !important;
  }

  .motteku-card-destination-rich .motteku-card-rich-content {
    padding: 0.875rem;
    gap: 0.375rem;
    min-width: 0;
  }

  .motteku-card-destination-rich .wp-block-post-title {
    font-size: 1.125rem !important;
    line-height: 1.25 !important;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
  }

  .motteku-card-rich-location {
    font-size: 0.75rem;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .motteku-card-rich-tag {
    font-size: 0.625rem;
    padding: 0.2rem 0.5rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .motteku-card-destination-rich .motteku-card-rich-btn .wp-block-button__link {
    padding: 0.625rem 1rem;
    font-size: 0.8125rem !important;
  }
}

/* Very small screens: tighten tag chips so they don't overflow */
@media (max-width: 390px) {
  .motteku-card-rich-tags {
    gap: 0.25rem;
  }

  .motteku-card-rich-tag {
    padding: 0.15rem 0.4rem;
  }
}

/* ============================================
   Destinations grid - Mobile always 2 columns
   (Prevents overlap / overflow when cards have fixed aspect-ratio + long labels)
   ============================================ */
@media (max-width: 639px) {
  .motteku-grid-destinations {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .motteku-grid-destinations > * {
    min-width: 0;
  }
}

/* ============================================
   WordPress Block Editor Grid Fix
   Ensures post-template items expand properly in grid
   ============================================ */

/* Fix WordPress is-layout-grid conflicts */
.motteku-grid-destinations.is-layout-grid {
  display: grid !important;
}

/* Ensure grid items take full cell width */
.motteku-grid-destinations > .motteku-card-destination-rich,
.motteku-grid-destinations > .wp-block-group.motteku-card-destination-rich {
  width: 100% !important;
  max-width: none !important;
}

/* Override WordPress post-template default styles */
.wp-block-post-template.motteku-grid-destinations {
  display: grid !important;
  gap: 1.5rem !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

/* Grid columns - desktop */
.wp-block-post-template.motteku-grid-destinations {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Grid columns - tablet */
@media (max-width: 1279px) {
  .wp-block-post-template.motteku-grid-destinations {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1023px) {
  .wp-block-post-template.motteku-grid-destinations {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Grid columns - mobile */
@media (max-width: 639px) {
  .wp-block-post-template.motteku-grid-destinations {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }
}

/* Ensure card fills grid cell */
.wp-block-post-template.motteku-grid-destinations > li {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wp-block-post-template.motteku-grid-destinations > li > .motteku-card-destination-rich {
  width: 100% !important;
  height: 100% !important;
}

/* Badges */
.motteku-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.625rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
}

.motteku-badge-visa-free {
  background-color: #D1FAE5;
  color: #065F46;
}

.motteku-badge-visa-required {
  background-color: #FEE2E2;
  color: #991B1B;
}

.motteku-badge-region {
  background-color: #F0FDFA;
  color: #059669;
}

/* Region Filter */
.motteku-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.motteku-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 9999px;
  border: 1px solid #E5E7EB;
  color: #6B7280;
  background-color: white;
  transition: all 200ms;
  cursor: pointer;
}

.motteku-filter-btn:hover {
  border-color: #10b981;
  color: #10b981;
}

.motteku-filter-btn.active {
  background-color: #10b981;
  color: white;
  border-color: #10b981;
}

/* ============================================
   Destination SEO Summary (card)
   ============================================ */
.motteku-destination-seo {
  margin: 1.25rem 0 2rem;
  padding: 1.25rem;
}

@media (min-width: 768px) {
  .motteku-destination-seo {
    padding: 1.5rem;
  }
}

.motteku-destination-seo__header {
  padding-bottom: 1rem;
  border-bottom: 1px solid #E5E7EB;
  margin-bottom: 1rem;
}

.motteku-destination-seo__kicker {
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #059669;
}

.motteku-destination-seo__title {
  margin: 0;
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.25;
  color: #111827;
}

@media (min-width: 768px) {
  .motteku-destination-seo__title {
    font-size: 1.5rem;
  }
}

.motteku-destination-seo__lead {
  margin: 0.5rem 0 0;
  color: #374151;
  font-size: 0.9375rem;
  line-height: 1.7;
}

.motteku-destination-seo__facts ul {
  margin: 0 0 0.75rem;
  padding-left: 1.25rem;
  color: #374151;
  font-size: 0.875rem;
}

.motteku-destination-seo__toc {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
  margin: 0.75rem 0 1rem;
}

@media (min-width: 640px) {
  .motteku-destination-seo__toc {
    grid-template-columns: 1fr 1fr;
  }
}

.motteku-destination-seo__toc a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  background: #F9FAFB;
  color: #065F46;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.875rem;
}

.motteku-destination-seo__toc a::before {
  content: "→";
  color: #10b981;
}

.motteku-destination-seo__toc a:hover {
  border-color: #10b981;
  background: #F0FDFA;
  text-decoration: none;
}

.motteku-destination-seo__details {
  border: 1px solid #E5E7EB;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
  margin: 0 0 1rem;
}

.motteku-destination-seo__summary {
  cursor: pointer;
  padding: 0.85rem 1rem;
  background: #F0FDFA;
  font-weight: 700;
  color: #064E3B;
  list-style: none;
}

/* Hide default marker (Chrome/Safari) */
.motteku-destination-seo__summary::-webkit-details-marker {
  display: none;
}

.motteku-destination-seo__summary::after {
  content: "▾";
  float: right;
  color: #10b981;
}

.motteku-destination-seo__details[open] .motteku-destination-seo__summary::after {
  content: "▴";
}

.motteku-destination-seo__details-body {
  padding: 1rem;
}

.motteku-destination-seo__h3 {
  margin: 0.25rem 0 0.5rem;
  font-size: 1rem;
  font-weight: 800;
  color: #111827;
}

.motteku-destination-seo__list {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
  color: #374151;
  font-size: 0.875rem;
}

.motteku-destination-seo__note {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  color: #78350F;
  font-size: 0.875rem;
  line-height: 1.7;
}

.motteku-destination-seo__note a {
  color: #0F766E;
  font-weight: 700;
  text-decoration: underline;
}

/* Checklist */
.motteku-checklist {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.motteku-checklist-category {
  background-color: white;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  overflow: hidden;
}

.motteku-checklist-category-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  background-color: #F0FDFA;
  cursor: pointer;
  transition: background-color 200ms;
}

.motteku-checklist-category-header:hover {
  background-color: rgba(94, 234, 212, 0.1);
}

.motteku-checklist-category-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0;
  font-size: 1rem;
}

h3.motteku-checklist-category-title {
  margin: 0;
  font-size: 1rem;
}

.motteku-checklist-category-count {
  font-size: 0.875rem;
  color: #6B7280;
}

.motteku-checklist-items {
  border-top: 1px solid #E5E7EB;
  overflow: hidden;
  transition: max-height 0.4s ease-in-out, opacity 0.3s ease-in-out;
  opacity: 1;
}

.motteku-checklist-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  transition: background-color 200ms;
  cursor: pointer;
}

.motteku-checklist-item:hover {
  background-color: #F9FAFB;
}

.motteku-checklist-item:not(:last-child) {
  border-bottom: 1px solid #E5E7EB;
}

.motteku-checkbox {
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 0.25rem;
  border: 2px solid #E5E7EB;
  accent-color: #10b981;
  cursor: pointer;
}

.motteku-checklist-item-label-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  flex: 1;
  cursor: pointer;
}

.motteku-checklist-item-label {
  flex: 1;
  color: #1F2937;
  cursor: pointer;
  user-select: none;
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
}

h4.motteku-checklist-item-label {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
}

.motteku-checklist-item-label.checked {
  text-decoration: line-through;
  color: #6B7280;
}

.motteku-checklist-category-description {
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: #6B7280;
  background-color: #F9FAFB;
  border-bottom: 1px solid #E5E7EB;
}

.motteku-checklist-affiliate {
  padding: 0.75rem 1rem;
  background-color: #F0FDFA;
  border-top: 1px solid #E5E7EB;
}

.motteku-checklist-affiliate-buttons {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.motteku-aff-btn {
  flex: 1 1 220px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  font-weight: 800;
  text-decoration: none;
  color: #fff;
  border: 1px solid transparent;
  transition: background-color 200ms, transform 200ms, box-shadow 200ms;
  box-shadow: 0 1px 2px rgba(0,0,0,0.06);
}

.motteku-aff-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.08);
}

.motteku-aff-btn:focus {
  outline: none;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(16, 185, 129, 0.45);
}

.motteku-aff-btn--veltra {
  background-color: #10B981;
}

.motteku-aff-btn--veltra:hover {
  background-color: #059669;
}

.motteku-aff-btn--klook {
  background-color: #EF4444;
}

.motteku-aff-btn--klook:hover {
  background-color: #DC2626;
}

.motteku-aff-btn--skyticket {
  background-color: #EF4444;
}

.motteku-aff-btn--skyticket:hover {
  background-color: #DC2626;
}

.motteku-aff-btn--epos {
  background-color: #E60012;
}

.motteku-aff-btn--epos:hover {
  background-color: #C40010;
}

.motteku-aff-pixel {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  border: 0;
}

/* Checklist: Natural affiliate link style */
.motteku-checklist-affiliate-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  border-top: 1px solid #E5E7EB;
  background-color: transparent;
}

.motteku-checklist-affiliate-link-icon {
  flex-shrink: 0;
}

.motteku-checklist-affiliate-link-text {
  color: #2563EB;
  text-decoration: none;
}

.motteku-checklist-affiliate-link-text:hover {
  text-decoration: underline;
}

.motteku-checklist-affiliate-link-sep {
  color: #D1D5DB;
}

/* Checklist: Affiliate banner */
.motteku-checklist-banner {
  padding: 0.75rem 1rem;
  background-color: #F9FAFB;
  border-top: 1px solid #E5E7EB;
}

.motteku-checklist-banner-link {
  display: block;
  text-decoration: none;
}

.motteku-checklist-banner-img {
  display: block;
  width: 100%;
  max-width: 800px;
  height: auto;
  margin: 0 auto;
  border: 0;
}

/* ===============================================
   CV Card: Epos Card promotion (Accordion UI)
   =============================================== */

.motteku-cv-card {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  margin-bottom: 1.5rem;
}

/* Header / Summary */
.motteku-cv-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  padding-right: 2.5rem;
  background: #FEF2F2;
  cursor: pointer;
  list-style: none;
  position: relative;
}

.motteku-cv-card__header::-webkit-details-marker {
  display: none;
}

.motteku-cv-card__header::after {
  content: "+";
  position: absolute;
  right: 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: #DC2626;
  transition: transform 0.2s ease;
}

.motteku-cv-card[open] .motteku-cv-card__header::after {
  content: "−";
}

.motteku-cv-card__header:hover {
  background: #FEE2E2;
}

.motteku-cv-card__header-label {
  display: flex;
  align-items: center;
  gap: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: #DC2626;
}

.motteku-cv-card__header-label::before {
  content: "\1F6A9";
  font-size: 1rem;
}

/* Body */
.motteku-cv-card__body {
  border-top: 1px solid #FECACA;
}

.motteku-cv-card__header-badge {
  padding: 0.125rem 0.5rem;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #6B7280;
  background: #fff;
  border: 1px solid #D1D5DB;
  border-radius: 0.25rem;
}

/* Card info section */
.motteku-cv-card__info {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid #E5E7EB;
}

.motteku-cv-card__image {
  width: 120px;
  height: auto;
  border-radius: 0.375rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.motteku-cv-card__name {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111827;
  text-decoration: none;
}

.motteku-cv-card__name:hover {
  color: #DC2626;
  text-decoration: underline;
}

.motteku-cv-card__info .motteku-cv-card__header-badge {
  margin-left: auto;
  flex-shrink: 0;
}

/* Appeal section (NEW) */
.motteku-cv-card__appeal {
  padding: 1rem;
  background: #FFFBEB;
  border-bottom: 1px solid #FDE68A;
}

.motteku-cv-card__appeal-title {
  margin: 0 0 0.5rem;
  font-size: 1.0625rem;
  font-weight: 700;
  color: #92400E;
  line-height: 1.5;
}

.motteku-cv-card__appeal-text {
  margin: 0;
  font-size: 0.9375rem;
  color: #78350F;
  line-height: 1.6;
}

.motteku-cv-card__appeal-text strong {
  color: #92400E;
  font-weight: 700;
}

/* Features list */
.motteku-cv-card__features {
  list-style: none;
  margin: 0;
  padding: 0;
}

.motteku-cv-card__features li {
  padding: 0.875rem 1rem 0.875rem 2.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #374151;
  border-bottom: 1px solid #E5E7EB;
  position: relative;
}

.motteku-cv-card__features li::before {
  content: "\2713";
  position: absolute;
  left: 1rem;
  color: #DC2626;
  font-weight: 700;
}

.motteku-cv-card__features li:last-child {
  border-bottom: none;
}

/* CTA button */
.motteku-cv-card__cta {
  padding: 1rem;
  background: #F9FAFB;
}

.motteku-cv-card__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.875rem 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  background: #E60012;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(230, 0, 18, 0.3);
}

.motteku-cv-card__btn:hover {
  background: #CC0010;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(230, 0, 18, 0.4);
}

.motteku-cv-card__btn-arrow {
  font-size: 1.25rem;
  font-weight: 400;
}

/* Mobile adjustments */
@media (max-width: 639px) {
  .motteku-cv-card__info {
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    text-align: center;
  }

  .motteku-cv-card__image {
    width: 100px;
  }

  .motteku-cv-card__name {
    display: inline-block;
    font-size: 1rem;
    text-align: center;
  }

  /* Paragraph blocks inside the info area can add margins */
  .motteku-cv-card__info p {
    margin: 0;
  }

  .motteku-cv-card__appeal-title {
    font-size: 1rem;
  }

  .motteku-cv-card__appeal-text {
    font-size: 0.875rem;
  }

  .motteku-cv-card__features li {
    font-size: 0.8125rem;
    padding: 0.75rem 1rem 0.75rem 2.25rem;
  }
}

.motteku-checklist-category-warning {
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  color: #B45309;
  background-color: #FEF3C7;
  border-bottom: 1px solid #FCD34D;
}

.motteku-checklist-category-link {
  display: block;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: #2563EB;
  text-decoration: none;
  background-color: #EFF6FF;
  border-bottom: 1px solid #BFDBFE;
}

.motteku-checklist-category-link:hover {
  background-color: #DBEAFE;
  text-decoration: underline;
}

.motteku-checklist-item-link {
  display: block;
  font-size: 0.75rem;
  color: #2563EB;
  text-decoration: none;
  margin-top: 0.25rem;
}

.motteku-checklist-item-link:hover {
  text-decoration: underline;
}

.motteku-checklist-item-note {
  font-size: 0.75rem;
  color: #6B7280;
}

/* Progress Bar */
.motteku-progress {
  width: 100%;
  height: 0.5rem;
  background-color: #E5E7EB;
  border-radius: 9999px;
  overflow: hidden;
}

.motteku-progress-bar {
  height: 100%;
  background-color: #10b981;
  border-radius: 9999px;
  transition: width 500ms;
}

/* Country Info Grid */
.motteku-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (min-width: 768px) {
  .motteku-info-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .motteku-info-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.motteku-info-card {
  background-color: white;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  padding: 1rem;
  text-align: center;
}

.motteku-info-icon {
  width: 2rem;
  height: 2rem;
  margin: 0 auto 0.5rem;
  color: #10b981;
}

.motteku-info-label {
  font-size: 0.75rem;
  color: #6B7280;
  margin-bottom: 0.25rem;
}

.motteku-info-value {
  font-weight: 600;
  color: #1F2937;
}

/* Hero Section */
.motteku-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.motteku-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.5) 100%);
}

.motteku-hero-content {
  position: relative;
  z-index: 10;
  text-align: center;
  color: white;
  padding: 0 1rem;
  max-width: 48rem;
  margin: 0 auto;
}

.motteku-hero-title {
  font-size: 1.875rem;
  font-weight: 700;
  margin-bottom: 1rem;
  line-height: 1.3;
}

@media (min-width: 768px) {
  .motteku-hero-title {
    font-size: 3rem;
  }
}

.motteku-hero-subtitle {
  font-size: 1.125rem;
  margin-bottom: 2rem;
  opacity: 0.9;
}

@media (min-width: 768px) {
  .motteku-hero-subtitle {
    font-size: 1.25rem;
  }
}

/* Header Navigation */
.motteku-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: white;
  box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
}

.motteku-header-inner {
  display: flex;
  flex-direction: column;
}

/* 上段: ロゴ + CTA */
.motteku-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 1rem;
}

/* ロゴ */
.motteku-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: inherit;
}

.motteku-logo-img {
  width: 2rem;
  height: 2rem;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.motteku-logo:hover .motteku-logo-img {
  transform: rotate(10deg);
}

.motteku-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.motteku-logo-name {
  font-size: 1.125rem;
  font-weight: 700;
  color: #10b981;
}

.motteku-logo-name-img {
  height: 2rem;
  width: auto;
  object-fit: contain;
}

.motteku-logo-tagline {
  font-size: 0.6875rem;
  color: #6B7280;
}

/* 下段: ナビゲーション */
.motteku-nav {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.5rem 1rem;
  border-top: 1px solid #E5E7EB;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  width: 100%;
}

.motteku-nav::-webkit-scrollbar {
  display: none;
}

.motteku-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.375rem 0.625rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: #6B7280;
  text-decoration: none;
  border-radius: 9999px;
  border: 2px solid transparent;
  transition: all 200ms;
  position: relative;
  white-space: nowrap;
  flex-shrink: 0;
}

.motteku-nav-link:hover {
  color: #10b981;
  background-color: #F0FDFA;
}

.motteku-nav-link.active {
  color: #10b981;
  border-color: #10b981;
  background-color: #F0FDFA;
}

.motteku-nav-icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

.motteku-nav-badge {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.25rem;
  margin-left: 0.125rem;
  font-size: 0.625rem;
  font-weight: 700;
  color: white;
  background-color: #10b981;
  border-radius: 9999px;
}

.motteku-nav-badge:not(:empty) {
  display: inline-flex;
}

.motteku-nav-cta {
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  background-color: #10b981;
  color: white;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background-color 200ms;
  white-space: nowrap;
  flex-shrink: 0;
}

.motteku-nav-cta:hover {
  background-color: #059669;
  color: white;
}

.motteku-nav-cta-icon {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}

/* デフォルト（モバイル）: モバイル用CTA表示 / デスクトップ用CTA非表示 */
.motteku-nav-cta--mobile {
  display: inline-flex !important;
}

.motteku-nav-cta--desktop {
  display: none !important;
}

/* デスクトップ: 1行レイアウト */
@media (min-width: 768px) {
  .motteku-header-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 1.5rem;
  }

  .motteku-header-top {
    padding: 0;
    flex-shrink: 0;
  }

  .motteku-logo-img {
    width: 2.5rem;
    height: 2.5rem;
  }

  .motteku-logo-name {
    font-size: 1.25rem;
  }

  .motteku-logo-tagline {
    font-size: 0.75rem;
  }

  .motteku-nav {
    border-top: none;
    padding: 0;
    margin: 0 2rem;
    overflow-x: visible;
    gap: 0.5rem;
    width: auto;
  }

  .motteku-nav-link {
    padding: 0.5rem 0.875rem;
    font-size: 0.875rem;
    gap: 0.375rem;
  }

  .motteku-nav-badge {
    min-width: 1.125rem;
    height: 1.125rem;
    font-size: 0.6875rem;
    margin-left: 0.25rem;
  }

  .motteku-nav-cta {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    gap: 0.375rem;
  }

  .motteku-nav-cta-icon {
    width: 1rem;
    height: 1rem;
  }

  /* デスクトップ: モバイル用CTA非表示 / デスクトップ用CTA表示 */
  .motteku-nav-cta--mobile {
    display: none !important;
  }

  .motteku-nav-cta--desktop {
    display: inline-flex !important;
    flex-shrink: 0;
  }
}

/* Section Headers */
.motteku-section-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.motteku-section-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1F2937;
  margin-bottom: 0.5rem;
}

@media (min-width: 768px) {
  .motteku-section-title {
    font-size: 1.875rem;
  }
}

.motteku-section-subtitle {
  color: #6B7280;
}

/* Grid Layouts */
.motteku-grid-destinations {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 640px) {
  .motteku-grid-destinations {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .motteku-grid-destinations {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1280px) {
  .motteku-grid-destinations {
    grid-template-columns: repeat(4, 1fr);
  }
}

.motteku-grid-blog {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .motteku-grid-blog {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .motteku-grid-blog {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ========================================
   Footer Styles
   ======================================== */
.motteku-footer {
  background-color: #F9FAFB;
  border-top: 1px solid #E5E7EB;
  padding: 3rem 0 0;
}

.motteku-footer-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.motteku-footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding-bottom: 2rem;
}

@media (min-width: 640px) {
  .motteku-footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .motteku-footer-grid {
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 3rem;
  }
}

/* Footer Brand (Column 1) */
.motteku-footer-brand {
  max-width: 280px;
}

.motteku-footer-logo {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  text-decoration: none;
  margin-bottom: 1rem;
}

.motteku-footer-logo-img {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.motteku-footer-logo:hover .motteku-footer-logo-img {
  transform: rotate(10deg);
}

.motteku-footer-logo-text {
  display: flex;
  flex-direction: column;
}

.motteku-footer-logo-name {
  font-size: 1.25rem;
  font-weight: 700;
  color: #10b981;
  line-height: 1.2;
}

.motteku-footer-logo-name-img {
  height: 2rem;
  width: auto;
  object-fit: contain;
}

.motteku-footer-logo-tagline {
  font-size: 0.75rem;
  color: #6B7280;
  line-height: 1.3;
}

.motteku-footer-description {
  font-size: 0.875rem;
  color: #6B7280;
  line-height: 1.7;
  margin: 0;
}

/* Footer Columns */
.motteku-footer-column {
  min-width: 0;
}

.motteku-footer-heading {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 1rem;
}

.motteku-footer-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.motteku-footer-list li {
  margin-bottom: 0.625rem;
}

.motteku-footer-list a {
  font-size: 0.875rem;
  color: #6B7280;
  text-decoration: none;
  transition: color 200ms;
}

.motteku-footer-list a:hover {
  color: #10b981;
}

/* Destinations list with circle icon */
.motteku-footer-list--destinations a::before {
  content: "\25CE";
  color: #10b981;
  margin-right: 0.5rem;
}

/* Footer Bottom (Copyright) */
.motteku-footer-bottom {
  border-top: 1px solid #E5E7EB;
  padding: 1.5rem 0;
  margin-top: 1rem;
}

.motteku-footer-bottom p {
  text-align: center;
  font-size: 0.875rem;
  color: #6B7280;
  margin: 0;
}

/* Utilities */
.hidden {
  display: none !important;
}

.block {
  display: block;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.grid {
  display: grid;
}

.relative {
  position: relative;
}

.absolute {
  position: absolute;
}

.top-3 {
  top: 0.75rem;
}

.right-3 {
  right: 0.75rem;
}

.items-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-6 {
  gap: 1.5rem;
}

.space-y-2 > * + * {
  margin-top: 0.5rem;
}

.space-y-4 > * + * {
  margin-top: 1rem;
}

.p-4 {
  padding: 1rem;
}

.p-6 {
  padding: 1.5rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mt-8 {
  margin-top: 2rem;
}

.ml-1 {
  margin-left: 0.25rem;
}

.ml-2 {
  margin-left: 0.5rem;
}

.flex-1 {
  flex: 1 1 0%;
}

.flex-wrap {
  flex-wrap: wrap;
}

.w-5 {
  width: 1.25rem;
}

.w-8 {
  width: 2rem;
}

.w-full {
  width: 100%;
}

.h-1\.5 {
  height: 0.375rem;
}

.h-2 {
  height: 0.5rem;
}

.h-5 {
  height: 1.25rem;
}

.h-8 {
  height: 2rem;
}

.h-40 {
  height: 10rem;
}

.h-48 {
  height: 12rem;
}

.max-w-xs {
  max-width: 20rem;
}

.text-center {
  text-align: center;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.font-bold {
  font-weight: 700;
}

.text-white {
  color: white;
}

.text-foreground {
  color: #1F2937;
}

.text-muted {
  color: #6B7280;
}

.text-primary {
  color: #10b981;
}

.text-red-400 {
  color: #F87171;
}

.text-red-500 {
  color: #EF4444;
}

.text-red-600 {
  color: #DC2626;
}

.bg-white {
  background-color: white;
}

.bg-primary {
  background-color: #10b981;
}

.bg-secondary {
  background-color: #F0FDFA;
}

.bg-gray-50 {
  background-color: #F9FAFB;
}

.bg-gray-200 {
  background-color: #E5E7EB;
}

.border {
  border-width: 1px;
}

.border-border {
  border-color: #E5E7EB;
}

.border-red-300 {
  border-color: #FCA5A5;
}

.rounded {
  border-radius: 0.25rem;
}

.rounded-lg {
  border-radius: 0.5rem;
}

.rounded-xl {
  border-radius: 0.75rem;
}

.rounded-2xl {
  border-radius: 1rem;
}

.rounded-full {
  border-radius: 9999px;
}

.object-cover {
  object-fit: cover;
}

.overflow-hidden {
  overflow: hidden;
}

.transition-colors {
  transition-property: color, background-color, border-color;
  transition-duration: 200ms;
}

.transition-all {
  transition-property: all;
  transition-duration: 300ms;
}

.hover\:bg-red-50:hover {
  background-color: #FEF2F2;
}

.hover\:text-red-600:hover {
  color: #DC2626;
}

.line-through {
  text-decoration: line-through;
}

/* Animation */
.motteku-fade-in {
  animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Text truncation */
.motteku-truncate-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.motteku-truncate-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Custom scrollbar */
.motteku-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: #E5E7EB transparent;
}

.motteku-scrollbar::-webkit-scrollbar {
  width: 0.5rem;
}

.motteku-scrollbar::-webkit-scrollbar-track {
  background: transparent;
}

.motteku-scrollbar::-webkit-scrollbar-thumb {
  background: #E5E7EB;
  border-radius: 9999px;
}

.motteku-scrollbar::-webkit-scrollbar-thumb:hover {
  background: #6B7280;
}

/* ===================================
   Checklist Page Styles
   =================================== */

/* Checklist Hero Section */
.motteku-checklist-hero {
  position: relative;
  height: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #0F172A;
}

@media (min-width: 768px) {
  .motteku-checklist-hero {
    height: 320px;
  }
}

.motteku-checklist-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.6) 100%);
}

.motteku-checklist-hero-content {
  position: relative;
  z-index: 10;
  text-align: center;
  color: white;
  padding: 0 1rem;
}

.motteku-checklist-hero-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

@media (min-width: 768px) {
  .motteku-checklist-hero-title {
    font-size: 2.25rem;
  }
}

/* Breadcrumb */
.motteku-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #6B7280;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.motteku-breadcrumb a {
  color: #6B7280;
  text-decoration: none;
  transition: color 200ms;
}

.motteku-breadcrumb a:hover {
  color: #10b981;
}

.motteku-breadcrumb-separator {
  color: #D1D5DB;
}

/* パンくずリストラッパー */
.motteku-breadcrumb-wrapper {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0;
}

.motteku-breadcrumb-wrapper .motteku-breadcrumb {
  margin-bottom: 0;
  display: inline-flex;
  align-items: center;
}

.motteku-breadcrumb-wrapper .wp-block-post-title {
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: inline !important;
  color: #6B7280 !important;
  line-height: 1.4 !important;
}

/* モバイルでパンくずリスト調整 */
@media (max-width: 767px) {
  .motteku-breadcrumb-wrapper {
    margin-top: -2.5rem !important;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }

  .motteku-breadcrumb-wrapper::-webkit-scrollbar {
    display: none;
  }

  .motteku-breadcrumb-wrapper .wp-block-post-title {
    font-size: 0.75rem !important;
    white-space: nowrap;
    flex-shrink: 0;
  }

  .motteku-breadcrumb {
    font-size: 0.75rem;
    flex-wrap: nowrap;
    white-space: nowrap;
  }

  /* 記事タイトル（h1）をモバイルで小さく */
  article .wp-block-post-title,
  main > .wp-block-group h1.wp-block-post-title {
    font-size: 1.375rem !important;
    line-height: 1.4 !important;
  }
}

/* 記事メタ情報の余白調整 */
.motteku-post-meta-label {
  margin-right: -1.25rem !important;
}

.motteku-post-meta {
  flex-wrap: nowrap !important;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .motteku-post-meta,
  .motteku-post-meta p,
  .motteku-post-meta .wp-block-post-date,
  .motteku-post-meta .wp-block-post-author-name {
    font-size: 0.75rem !important;
  }

  .motteku-post-meta {
    gap: 0.25rem !important;
  }

  /* モバイルでネガティブマージンを緩和 */
  .motteku-post-meta-label {
    margin-right: -0.75rem !important;
  }
}

/* ========================================
   PRバッジとツールチップ
   ======================================== */

.motteku-pr-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: #6B7280;
  cursor: pointer;
  padding: 0.125rem 0.5rem;
  border: 1px solid #D1D5DB;
  border-radius: 1rem;
}

.motteku-pr-badge:hover .motteku-pr-tooltip {
  display: block;
}

.motteku-pr-tooltip {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 0.5rem;
  width: 280px;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 0.5rem;
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
  padding: 1rem;
  z-index: 100;
  text-align: left;
}

.motteku-pr-tooltip-title {
  font-weight: 700;
  font-size: 0.875rem;
  color: #1F2937;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.motteku-pr-tooltip-content {
  font-size: 0.8125rem;
  color: #4B5563;
  line-height: 1.6;
  margin-bottom: 0.75rem;
}

.motteku-pr-tooltip-note {
  font-size: 0.75rem;
  color: #9CA3AF;
}

/* Checklist Page Header */
.motteku-checklist-header {
  margin-bottom: 1.5rem;
}

.motteku-checklist-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 0.5rem;
}

@media (min-width: 768px) {
  .motteku-checklist-title {
    font-size: 1.5rem;
  }
}

.motteku-checklist-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  color: #6B7280;
}

.motteku-checklist-meta-separator {
  color: #D1D5DB;
}

/* Progress Section */
.motteku-checklist-progress {
  background-color: white;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  position: sticky;
  top: 1rem;
  z-index: 100;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.motteku-checklist-progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
}

.motteku-checklist-progress-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: #1F2937;
}

.motteku-checklist-progress-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: #10b981;
}

.motteku-checklist-progress-text {
  font-size: 0.75rem;
  color: #6B7280;
  margin-top: 0.5rem;
  text-align: center;
}

/* Progress Label Wrapper */
.motteku-checklist-progress-label-wrapper {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  position: relative;
}

/* Storage Help Button */
.motteku-storage-help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #6B7280;
  background-color: #E5E7EB;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: all 200ms;
}

.motteku-storage-help-btn:hover {
  background-color: #10b981;
  color: white;
}

/* Storage Info Popover */
.motteku-storage-popover {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  width: 400px;
  max-width: calc(100vw - 2rem);
  background: white;
  border-radius: 0.75rem;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  z-index: 200;
  padding: 1.25rem;
  animation: popoverFadeIn 0.2s ease-out;
}

@keyframes popoverFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.motteku-storage-popover-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.motteku-storage-popover-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: #1F2937;
}

.motteku-storage-popover-title-icon {
  font-size: 1.25rem;
}

.motteku-storage-popover-status {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  color: #10B981;
}

.motteku-storage-popover-status-icon {
  width: 0.875rem;
  height: 0.875rem;
}

.motteku-storage-popover-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  background: #F3F4F6;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  color: #6B7280;
  font-size: 1rem;
  line-height: 1;
}

.motteku-storage-popover-close:hover {
  background: #E5E7EB;
  color: #1F2937;
}

.motteku-storage-popover-desc {
  font-size: 0.8125rem;
  color: #4B5563;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.motteku-storage-popover-desc strong {
  color: #DC2626;
  font-weight: 600;
}

/* Warning Section */
.motteku-storage-warning {
  background: #FFFBEB;
  border-radius: 0.5rem;
  padding: 0.875rem;
  margin-bottom: 1rem;
}

.motteku-storage-warning-title {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #D97706;
  margin-bottom: 0.5rem;
}

.motteku-storage-warning-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.75rem;
  color: #92400E;
}

.motteku-storage-warning-list li {
  padding-left: 0.75rem;
  position: relative;
  margin-bottom: 0.25rem;
}

.motteku-storage-warning-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #D97706;
}

/* Recommendation Section */
.motteku-storage-recommend {
  background: #F0FDF4;
  border-radius: 0.5rem;
  padding: 0.875rem;
  margin-bottom: 1rem;
}

.motteku-storage-recommend-title {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #059669;
  margin-bottom: 0.5rem;
}

.motteku-storage-recommend-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.75rem;
  color: #047857;
}

.motteku-storage-recommend-list li {
  padding-left: 0.75rem;
  position: relative;
  margin-bottom: 0.25rem;
}

.motteku-storage-recommend-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #059669;
}

.motteku-storage-recommend-list strong {
  font-weight: 600;
  color: #065F46;
}

/* Footer */
.motteku-storage-popover-footer {
  border-top: 1px solid #E5E7EB;
  padding-top: 0.75rem;
  font-size: 0.75rem;
  color: #6B7280;
}

.motteku-storage-last-saved {
  margin-bottom: 0.375rem;
}

.motteku-storage-current-status {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  color: #10B981;
}

.motteku-storage-current-status svg {
  width: 0.875rem;
  height: 0.875rem;
}

/* Responsive */
@media (max-width: 480px) {
  .motteku-storage-popover {
    max-width: 100%;
    left: 0;
    right: 0;
  }
}

/* Quick Action */
.motteku-checklist-quick-action {
  margin-bottom: 1.5rem;
}

/* Checklist Category - Expanded */
.motteku-checklist-category-toggle {
  width: 1.25rem;
  height: 1.25rem;
  color: #6B7280;
  transition: transform 200ms;
}

.motteku-checklist-category.collapsed .motteku-checklist-category-toggle {
  transform: rotate(-90deg);
}

/* Custom Item Section */
.motteku-checklist-add-item {
  background-color: white;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  padding: 1.25rem;
  margin-top: 1.5rem;
  margin-bottom: 2rem;
}

.motteku-checklist-add-item-title {
  font-size: 1rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 1rem;
}

.motteku-checklist-add-item-form {
  display: flex;
  gap: 0.75rem;
}

.motteku-input {
  flex: 1;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  border: 1px solid #E5E7EB;
  border-radius: 0.5rem;
  background-color: #F9FAFB;
  color: #1F2937;
  transition: border-color 200ms, box-shadow 200ms;
}

.motteku-input:focus {
  outline: none;
  border-color: #10b981;
  box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.1);
  background-color: white;
}

.motteku-input::placeholder {
  color: #9CA3AF;
}

/* Destination Info Section */
.motteku-destination-info-section {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid #E5E7EB;
}

.motteku-destination-info-section .motteku-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.125rem;
  margin-bottom: 1.25rem;
}

.motteku-section-icon {
  font-size: 1.25rem;
}

.motteku-info-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: white;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  padding: 1rem;
  text-align: center;
  transition: border-color 200ms, box-shadow 200ms;
}

.motteku-info-card:hover {
  border-color: #10b981;
  box-shadow: 0 4px 6px -1px rgba(45, 212, 191, 0.1);
}

.motteku-info-card-icon {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}

.motteku-info-card-label {
  font-size: 0.75rem;
  color: #6B7280;
  margin-bottom: 0.25rem;
}

.motteku-info-card-value {
  font-size: 0.875rem;
  font-weight: 600;
  color: #1F2937;
}

/* Embassy Section */
.motteku-embassy-section {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid #E5E7EB;
}

.motteku-embassy-section .motteku-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.125rem;
  margin-bottom: 1.25rem;
}

.motteku-embassy-card {
  background-color: white;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  padding: 1.25rem;
}

.motteku-embassy-name {
  font-size: 1rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 1rem;
}

.motteku-embassy-info {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.motteku-embassy-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.875rem;
}

.motteku-embassy-item-icon {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  color: #6B7280;
}

.motteku-embassy-item-content {
  flex: 1;
}

.motteku-embassy-item-label {
  font-size: 0.75rem;
  color: #6B7280;
  margin-bottom: 0.125rem;
}

.motteku-embassy-item-value {
  color: #1F2937;
}

.motteku-embassy-item a {
  color: #10b981;
  text-decoration: none;
}

.motteku-embassy-item a:hover {
  text-decoration: underline;
}

.motteku-embassy-emergency {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #E5E7EB;
}

.motteku-embassy-emergency-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: #DC2626;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.motteku-embassy-emergency-phone {
  font-size: 1rem;
  font-weight: 600;
  color: #DC2626;
}

/* Checklist Actions */
.motteku-checklist-actions {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid #E5E7EB;
  flex-wrap: wrap;
}

.motteku-btn-icon {
  width: 1.25rem;
  height: 1.25rem;
  margin-right: 0.5rem;
}

.motteku-btn-danger {
  background-color: white;
  color: #DC2626;
  border: 2px solid #DC2626;
}

.motteku-btn-danger:hover {
  background-color: #FEF2F2;
}

/* No List Message */
.motteku-no-list {
  display: none;
  text-align: center;
  padding: 4rem 1rem;
}

.motteku-no-list.visible {
  display: block;
}

.motteku-no-list-icon {
  font-size: 4rem;
  margin-bottom: 1.5rem;
}

.motteku-no-list-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 0.5rem;
}

.motteku-no-list-text {
  color: #6B7280;
  margin-bottom: 1.5rem;
}

/* Loading Spinner */
.motteku-checklist-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  color: #6B7280;
}

.motteku-checklist-loading.hidden {
  display: none;
}

.motteku-loading-spinner {
  width: 2.5rem;
  height: 2.5rem;
  border: 3px solid #E5E7EB;
  border-top-color: #10b981;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 1rem;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* Delete Item Button */
.motteku-checklist-item-delete {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  color: #9CA3AF;
  background: none;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: color 200ms, background-color 200ms;
  flex-shrink: 0;
}

.motteku-checklist-item-delete:hover {
  color: #DC2626;
  background-color: #FEF2F2;
}

.motteku-checklist-item-delete svg {
  width: 1rem;
  height: 1rem;
}

/* Custom Items Category */
.motteku-checklist-category[data-category="custom"] .motteku-checklist-category-header {
  background-color: #FEF3C7;
}

.motteku-checklist-category[data-category="custom"] .motteku-checklist-category-header:hover {
  background-color: #FDE68A;
}

/* Checklist Item - Completed State */
.motteku-checklist-item.completed {
  background-color: #F0FDF4;
}

.motteku-checklist-item.completed .motteku-checklist-item-label {
  text-decoration: line-through;
  color: #6B7280;
}

/* Tooltip */
.motteku-tooltip {
  position: relative;
}

.motteku-tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.5rem 0.75rem;
  background-color: #1F2937;
  color: white;
  font-size: 0.75rem;
  border-radius: 0.375rem;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms, visibility 200ms;
  z-index: 50;
  margin-bottom: 0.5rem;
}

.motteku-tooltip:hover::after {
  opacity: 1;
  visibility: visible;
}

/* Checklist Item Content */
.motteku-checklist-item-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  flex: 1;
}

.motteku-checklist-item-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.motteku-checklist-item-required {
  font-size: 0.625rem;
  font-weight: 600;
  color: #DC2626;
  background-color: #FEE2E2;
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
}

.motteku-checklist-item-note {
  font-size: 0.75rem;
  color: #6B7280;
}

.motteku-checklist-category-icon {
  font-size: 1.125rem;
}

.motteku-checklist-category-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.motteku-checklist-category-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #F3F4F6;
  color: #6B7280;
  transition: transform 0.3s ease, background-color 0.2s ease;
}

.motteku-checklist-category-toggle:hover {
  background-color: #E5E7EB;
}

.motteku-checklist-category-toggle svg {
  width: 16px;
  height: 16px;
}

.motteku-checklist-category.collapsed .motteku-checklist-category-toggle {
  transform: rotate(-90deg);
}

/* Hero Info Wrapper */
.motteku-hero-info-wrapper {
  margin-top: 1.5rem;
}

/* Hero Overlay Style - Info boxes on hero image */
.motteku-destination-meta.motteku-hero-overlay,
.motteku-climate-info.motteku-hero-overlay {
  position: static;
  inset: auto;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 0.75rem;
  padding: 0.875rem 1.25rem;
  max-width: 850px;
  margin: 0.5rem auto;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* Destination Meta Container */
.motteku-destination-meta {
  margin-bottom: 0.5rem;
}

/* Inline Info Bar */
.motteku-info-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
  padding: 0.5rem 0;
}

.motteku-info-inline-item {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
}

.motteku-info-inline-icon {
  font-size: 1rem;
}

.motteku-info-inline-label {
  color: #6B7280;
}

.motteku-info-inline-value {
  font-weight: 600;
  color: #1F2937;
}

/* Climate Section - Season Cards */
.motteku-climate-info.motteku-hero-overlay {
  padding: 0.75rem 1rem;
}

/* Season cards inside hero - remove double background */
.motteku-hero-overlay .motteku-season-card {
  background-color: #F3F4F6;
  border: none;
}

.motteku-climate-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.motteku-climate-header-icon {
  font-size: 1rem;
}

.motteku-climate-header-text {
  font-size: 0.875rem;
  color: #6B7280;
}

.motteku-season-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}

@media (max-width: 768px) {
  .motteku-season-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .motteku-season-grid {
    grid-template-columns: 1fr;
  }
}

.motteku-season-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background-color: #F9FAFB;
  border-radius: 0.5rem;
  border: 1px solid #E5E7EB;
}

.motteku-season-months {
  font-size: 0.8125rem;
  color: #6B7280;
  white-space: nowrap;
}

.motteku-season-info {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  border-left: 1px solid #E5E7EB;
  padding-left: 0.75rem;
}

.motteku-season-temp {
  font-size: 0.875rem;
  font-weight: 600;
  color: #1F2937;
}

.motteku-season-rain {
  font-size: 0.75rem;
  color: #6B7280;
}

/* Embassy styles */
.motteku-embassy-section {
  margin-top: 2rem;
  border-top: 1px solid #E5E7EB;
  padding-top: 2rem;
}

.motteku-embassy-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
}

.motteku-embassy-item-icon {
  flex-shrink: 0;
}

.motteku-embassy-item a {
  color: #10b981;
  text-decoration: none;
}

.motteku-embassy-item a:hover {
  text-decoration: underline;
}

/* Collapsed items - animated */
.motteku-checklist-items.collapsed {
  max-height: 0 !important;
  opacity: 0;
  border-top-color: transparent;
}

/* Responsive adjustments */
@media (max-width: 640px) {
  .motteku-checklist-add-item-form {
    flex-direction: column;
  }

  .motteku-checklist-actions {
    flex-direction: column;
  }

  .motteku-checklist-actions .motteku-btn {
    width: 100%;
    justify-content: center;
  }
}

/* Desktop: Center content sections with max-width */
@media (min-width: 768px) {
  .motteku-checklist,
  .motteku-checklist-progress,
  .motteku-checklist-add-item,
  .motteku-checklist-actions,
  .motteku-embassy-section,
  .motteku-destination-meta,
  .motteku-climate-info,
  .single-destination .wp-block-heading {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ========================================
   My List Page Styles
   ======================================== */

/* Header */
.motteku-mylist-header {
  margin-bottom: 1.5rem;
}

.motteku-mylist-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.75rem;
  font-weight: 700;
  color: #10b981;
  margin: 0 0 0.5rem 0;
}

.motteku-mylist-title-icon {
  font-size: 1.5rem;
}

.motteku-mylist-subtitle {
  font-size: 1rem;
  color: #6B7280;
  margin: 0 0 1rem 0;
}

/* Stats Badges */
.motteku-mylist-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.motteku-mylist-stats-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 9999px;
  background-color: #10b981;
  color: white;
}

.motteku-mylist-stats-badge-secondary {
  background-color: #6B7280;
}

/* Notice Box */
.motteku-mylist-notice {
  display: flex;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background-color: #FFFBEB;
  border-radius: 0.75rem;
  margin-bottom: 1.5rem;
}

.motteku-mylist-notice-icon {
  flex-shrink: 0;
  font-size: 1.25rem;
  color: #D97706;
}

.motteku-mylist-notice-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: #D97706;
  margin-bottom: 0.25rem;
}

.motteku-mylist-notice-text {
  font-size: 0.8125rem;
  color: #92400E;
  margin: 0;
  line-height: 1.5;
}

/* Grid */
.motteku-mylist-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .motteku-mylist-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Loading */
.motteku-mylist-loading {
  grid-column: 1 / -1;
  text-align: center;
  padding: 3rem;
  color: #6B7280;
}

/* Card */
.motteku-mylist-card {
  background: white;
  border-radius: 0.75rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: box-shadow 0.2s, transform 0.2s;
}

.motteku-mylist-card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

/* Card Image */
.motteku-mylist-card-image {
  position: relative;
  height: 180px;
  overflow: hidden;
}

.motteku-mylist-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.motteku-mylist-card-image-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
  color: white;
}

.motteku-mylist-card-destination {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 0.25rem 0;
}

.motteku-mylist-card-country {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  opacity: 0.9;
  margin: 0;
}

/* Card Content */
.motteku-mylist-card-content {
  padding: 1rem;
}

/* Progress */
.motteku-mylist-card-progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.motteku-mylist-card-progress-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: #1F2937;
}

.motteku-mylist-card-progress-value {
  font-size: 1rem;
  font-weight: 700;
  color: #10b981;
}

.motteku-mylist-card-progress-bar {
  height: 6px;
  background-color: #E5E7EB;
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}

.motteku-mylist-card-progress-bar-fill {
  height: 100%;
  background-color: #10b981;
  border-radius: 3px;
  transition: width 0.3s ease;
}

.motteku-mylist-card-stats {
  font-size: 0.8125rem;
  color: #6B7280;
  margin-bottom: 0.25rem;
}

.motteku-mylist-card-updated {
  font-size: 0.75rem;
  color: #9CA3AF;
  margin-bottom: 1rem;
}

/* Card Actions */
.motteku-mylist-card-actions {
  display: flex;
  gap: 0.5rem;
}

.motteku-mylist-card-btn-open {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: white;
  background-color: #10b981;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.2s;
}

.motteku-mylist-card-btn-open:hover {
  background-color: #059669;
  color: white;
}

.motteku-mylist-card-btn-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background-color: #F3F4F6;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  color: #6B7280;
  transition: background-color 0.2s, color 0.2s;
}

.motteku-mylist-card-btn-delete:hover {
  background-color: #FEE2E2;
  color: #DC2626;
}

.motteku-mylist-card-btn-delete svg {
  width: 20px;
  height: 20px;
}

/* Empty State */
.motteku-mylist-empty {
  text-align: center;
  padding: 4rem 2rem;
}

.motteku-mylist-empty-icon {
  font-size: 4rem;
  margin-bottom: 1rem;
}

.motteku-mylist-empty-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 0.5rem 0;
}

.motteku-mylist-empty-text {
  font-size: 0.9375rem;
  color: #6B7280;
  margin: 0 0 1.5rem 0;
}

/* ========================================
   Caption Boxes
   ======================================== */
.motteku-caption-box {
  position: relative;
  margin-bottom: 1.5rem;
}

.motteku-caption-box.wp-block-group {
  gap: 0 !important;
}

.motteku-caption-box > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.motteku-caption-box-header {
  display: inline-block;
  padding: 0.375rem 1rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #fff;
  border-radius: 0.25rem 0.25rem 0 0;
}

.motteku-caption-box-content {
  padding: 1rem;
  border-width: 2px;
  border-style: solid;
  border-radius: 0 0.5rem 0.5rem 0.5rem;
}

.motteku-caption-box-content ul {
  list-style-type: disc;
  padding-left: 1.25rem;
  margin: 0;
}

.motteku-caption-box-content ul > li + li {
  margin-top: 0.5rem;
}

.motteku-caption-box-content li {
  line-height: 1.625;
}

.motteku-caption-box-content a {
  font-weight: 500;
  text-decoration: underline;
  transition: color 0.15s, text-decoration 0.15s;
}

.motteku-caption-box-content a:hover {
  text-decoration: none;
}

/* Info (Blue) */
.motteku-caption-box-info .motteku-caption-box-header {
  background-color: #3B82F6;
}

.motteku-caption-box-info .motteku-caption-box-content {
  background-color: #EFF6FF;
  border-color: #BFDBFE;
}

.motteku-caption-box-info .motteku-caption-box-content a {
  color: #1D4ED8;
}

.motteku-caption-box-info .motteku-caption-box-content a:hover {
  color: #1E40AF;
}

/* Point (Green) */
.motteku-caption-box-point .motteku-caption-box-header {
  background-color: #22C55E;
}

.motteku-caption-box-point .motteku-caption-box-content {
  background-color: #F0FDF4;
  border-color: #BBF7D0;
}

.motteku-caption-box-point .motteku-caption-box-content a {
  color: #15803D;
}

.motteku-caption-box-point .motteku-caption-box-content a:hover {
  color: #166534;
}

/* Caution (Orange/Amber) */
.motteku-caption-box-caution .motteku-caption-box-header {
  background-color: #F59E0B;
}

.motteku-caption-box-caution .motteku-caption-box-content {
  background-color: #FFFBEB;
  border-color: #FDE68A;
}

.motteku-caption-box-caution .motteku-caption-box-content a {
  color: #B45309;
}

.motteku-caption-box-caution .motteku-caption-box-content a:hover {
  color: #92400E;
}

/* Alert (Red) */
.motteku-caption-box-alert .motteku-caption-box-header {
  background-color: #EF4444;
}

.motteku-caption-box-alert .motteku-caption-box-content {
  background-color: #FEF2F2;
  border-color: #FECACA;
}

.motteku-caption-box-alert .motteku-caption-box-content a {
  color: #B91C1C;
}

.motteku-caption-box-alert .motteku-caption-box-content a:hover {
  color: #991B1B;
}

/* ========================================
   CVボタン (CV Button / CTA Button)
   ======================================== */

.motteku-cv-button {
  display: block;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5rem;
}

.motteku-cv-button .wp-block-buttons,
.motteku-cv-button .wp-block-button {
  width: 100%;
}

.motteku-cv-button a,
.motteku-cv-button .wp-block-button__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 1rem 2rem;
  background-color: #EF4444;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 0.75rem;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  transition: all 300ms;
  width: 100%;
}

/* Force 2-line layout in case block/button styles override flex-direction */
.motteku-cv-button .wp-block-button__link {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

.motteku-cv-button .wp-block-button__link > .motteku-cv-button-main,
.motteku-cv-button .wp-block-button__link > .motteku-cv-button-sub {
  display: block !important;
}

.motteku-cv-button a:hover,
.motteku-cv-button .wp-block-button__link:hover {
  background-color: #DC2626;
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  transform: translateY(-2px);
}

.motteku-cv-button .wp-block-button__link::after {
  content: "公式サイトはこちら";
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.2;
  opacity: 0.9;
}

.motteku-cv-button-main {
  display: block;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.4;
}

.motteku-cv-button-main svg {
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.25rem;
  height: 1.25rem;
}

.motteku-cv-button-sub {
  display: block;
  font-size: 0.875rem;
  font-weight: 400;
  margin-top: 0.25rem;
  opacity: 0.9;
}

/* External-link icon for block button version (use background to avoid HTML sanitization issues) */
.motteku-cv-button .wp-block-button__link {
  padding-right: 3.25rem !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.5rem center;
  background-size: 1.25rem 1.25rem;
}

/* ========================================
   目次 (Table of Contents)
   ======================================== */

.motteku-toc {
  position: relative;
  background-color: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 0.5rem;
  margin-bottom: 2rem;
  overflow: hidden;
}

/* Gradient mask when collapsed */
.motteku-toc.is-collapsed::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 96px;
  background: linear-gradient(
    to bottom,
    rgba(249, 250, 251, 0) 0%,
    rgba(249, 250, 251, 0.6) 40%,
    rgba(249, 250, 251, 1) 100%
  );
  pointer-events: none;
  z-index: 1;
  transition: opacity 0.3s ease;
}

.motteku-toc:not(.is-collapsed)::after {
  opacity: 0;
}

.motteku-toc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.875rem 1rem;
  background-color: #F3F4F6;
  cursor: pointer;
  user-select: none;
}

.motteku-toc-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #374151;
}

.motteku-toc-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: background-color 0.2s;
}

.motteku-toc-toggle:hover {
  background-color: #E5E7EB;
}

.motteku-toc-icon {
  width: 1.25rem;
  height: 1.25rem;
  color: #6B7280;
  transition: transform 0.3s ease;
}

.motteku-toc.is-collapsed .motteku-toc-icon {
  transform: rotate(-90deg);
}

.motteku-toc-content {
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.motteku-toc-list {
  list-style: none;
  margin: 0;
  padding: 1rem;
  counter-reset: toc-counter;
}

.motteku-toc-list > li {
  counter-increment: toc-counter;
  margin-bottom: 0.5rem;
}

.motteku-toc-list > li:last-child {
  margin-bottom: 0;
}

.motteku-toc-list > li > a {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  color: #374151;
  text-decoration: none;
  font-size: 0.9375rem;
  line-height: 1.5;
  transition: color 0.2s;
}

.motteku-toc-list > li > a::before {
  content: counter(toc-counter) ".";
  color: #10b981;
  font-weight: 600;
  flex-shrink: 0;
}

.motteku-toc-list > li > a:hover {
  color: #10b981;
}

.motteku-toc-sublist {
  list-style: none;
  margin: 0.5rem 0 0 1.5rem;
  padding: 0;
  counter-reset: toc-sub-counter;
}

.motteku-toc-sublist > li {
  counter-increment: toc-sub-counter;
  margin-bottom: 0.375rem;
}

.motteku-toc-sublist > li:last-child {
  margin-bottom: 0;
}

.motteku-toc-sublist > li > a {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  color: #6B7280;
  text-decoration: none;
  font-size: 0.875rem;
  line-height: 1.5;
  transition: color 0.2s;
}

.motteku-toc-sublist > li > a::before {
  content: "・";
  color: #9CA3AF;
  flex-shrink: 0;
}

.motteku-toc-sublist > li > a:hover {
  color: #10b981;
}

.motteku-toc-close {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  margin-top: 0.5rem;
  background: transparent;
  border: none;
  border-top: 1px solid #E5E7EB;
  color: #6B7280;
  font-size: 0.875rem;
  cursor: pointer;
  transition: color 0.2s, background-color 0.2s;
}

.motteku-toc-close:hover {
  color: #374151;
  background-color: #F3F4F6;
}

/* "Open TOC" button shown at the bottom only when collapsed */
.motteku-toc-open {
  display: none;
  width: 100%;
  padding: 0.75rem 1rem;
  background-color: #F0FDFA;
  border: none;
  border-top: 1px solid #E5E7EB;
  color: #059669;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s, background-color 0.2s;
  position: relative;
  z-index: 2;
}

.motteku-toc-open:hover {
  background-color: #D1FAE5;
  color: #047857;
}

.motteku-toc.is-collapsed .motteku-toc-open {
  display: block;
}

.motteku-toc.is-collapsed .motteku-toc-close {
  display: none;
}

/* ========================================
   テキスト装飾（記事本文向け）
   ======================================== */

/* 赤字 */
.motteku-text-red {
  color: #dc2626;
}

/* モダンな“お洒落下線”（マーカー風・角丸・透け感） */
.motteku-underline-red,
.motteku-underline-green,
.motteku-underline-yellow {
  text-decoration: none;
  padding: 0 0.06em;
  border-radius: 0.22em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.motteku-underline-red {
  background-image: linear-gradient(
    180deg,
    transparent 66%,
    rgba(220, 38, 38, 0.22) 66%,
    rgba(220, 38, 38, 0.22) 100%
  );
}

.motteku-underline-green {
  background-image: linear-gradient(
    180deg,
    transparent 66%,
    rgba(5, 150, 105, 0.22) 66%,
    rgba(5, 150, 105, 0.22) 100%
  );
}

.motteku-underline-yellow {
  background-image: linear-gradient(
    180deg,
    transparent 66%,
    rgba(245, 158, 11, 0.22) 66%,
    rgba(245, 158, 11, 0.22) 100%
  );
}

/* ========================================
   タイトル付きリストボックス（タイトル＋番号付きリスト）
   ======================================== */

.motteku-title-list-box {
  background: #ffffff;
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 16px;
  padding: 0.75rem 1rem;
  margin: 1rem 0;
  box-shadow: none;
}

.motteku-title-list-box-title {
  margin: 1rem 0 1rem;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.4;
  color: #0f172a;
  padding-left: 0.75rem;
  position: relative;
}

.motteku-title-list-box-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  bottom: 0.2em;
  width: 3px;
  border-radius: 9999px;
  background: #10b981;
}

.motteku-title-list-box-list {
  margin: 0;
  margin-bottom: 0.25rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

/* Ordered list (1,2,3) */
ol.motteku-title-list-box-list {
  list-style: none;
  counter-reset: motteku-title-list-counter;
}

ol.motteku-title-list-box-list > li {
  counter-increment: motteku-title-list-counter;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  line-height: 1.75;
  color: #1f2937;
}

ol.motteku-title-list-box-list > li::before {
  content: counter(motteku-title-list-counter);
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 0.15rem;
  font-size: 0.85rem;
  font-weight: 800;
  color: #047857;
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.28);
  box-shadow: none;
}

/* Unordered list (●) */
ul.motteku-title-list-box-list {
  list-style: disc;
  padding-left: 1.15rem;
}

ul.motteku-title-list-box-list > li {
  line-height: 1.75;
  color: #1f2937;
}

ul.motteku-title-list-box-list > li::before {
  content: none;
}

ul.motteku-title-list-box-list ::marker {
  color: #10b981;
}

/* If list item contains paragraphs (rare), keep it compact */
.motteku-title-list-box-list > li > p {
  margin: 0;
}

/* ========================================
   吹き出し（アイコン＋会話文）
   ======================================== */

.motteku-balloon {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 1rem 0;
}

.motteku-balloon-avatar {
  flex-shrink: 0;
  margin: 0;
}

.motteku-balloon-avatar img {
  width: 56px;
  height: 56px;
  border-radius: 9999px;
  object-fit: contain;
  padding: 6px;
  border: 2px solid rgba(16, 185, 129, 0.25);
  background: #ffffff;
}

.motteku-balloon-body {
  position: relative;
  background: #f3f4f6;
  border-radius: 16px;
  padding: 0.875rem 1rem;
  color: #111827;
  line-height: 1.75;
}

.motteku-balloon-body::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 18px;
  width: 16px;
  height: 16px;
  background: #f3f4f6;
  transform: rotate(45deg);
  border-radius: 3px;
}

.motteku-balloon-text {
  margin: 0;
}

/* Tap animation (tilt) for balloon avatar */
.motteku-balloon-avatar img {
  transform-origin: 60% 80%;
  transition: transform 220ms ease;
}

.motteku-balloon-avatar img.is-tilting {
  animation: motteku-balloon-tilt 450ms ease-in-out;
}

@keyframes motteku-balloon-tilt {
  0% { transform: rotate(0deg); }
  35% { transform: rotate(-10deg); }
  70% { transform: rotate(6deg); }
  100% { transform: rotate(0deg); }
}

@media (prefers-reduced-motion: reduce) {
  .motteku-balloon-avatar img {
    transition: none;
  }
  .motteku-balloon-avatar img.is-tilting {
    animation: none;
  }
}

/* ========================================
   見出しスタイル (Heading Styles)
   ======================================== */

/* h2 - ロゴアイコン付き (シングル投稿ページのみ) */
.single.single-post .entry-content h2,
.single.single-post .post-content h2,
.single.single-post main h2.wp-block-heading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1F2937;
  margin: 2rem 0 1rem;
  line-height: 1.4;
}

.single.single-post .entry-content h2::before,
.single.single-post .post-content h2::before,
.single.single-post main h2.wp-block-heading::before {
  content: "";
  display: inline-block;
  width: 2.25rem;
  height: 2.25rem;
  background-image: url('/wp-content/themes/motteku/assets/images/logo.avif');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.single.single-post .entry-content h2:hover::before,
.single.single-post .post-content h2:hover::before,
.single.single-post main h2.wp-block-heading:hover::before {
  transform: rotate(-10deg);
}

@media (min-width: 768px) {
  .single.single-post .entry-content h2,
  .single.single-post .post-content h2,
  .single.single-post main h2.wp-block-heading {
    font-size: 1.75rem;
  }

  .single.single-post .entry-content h2::before,
  .single.single-post .post-content h2::before,
  .single.single-post main h2.wp-block-heading::before {
    width: 2.5rem;
    height: 2.5rem;
  }
}

/* h3 - 下線のみ (シングル投稿ページのみ) */
.single.single-post .entry-content h3,
.single.single-post .post-content h3,
.single.single-post main h3.wp-block-heading {
  border-bottom: 2px dashed #10b981;
  padding-bottom: 0.5rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin: 1rem 0 1rem;
  line-height: 1.4;
}

@media (min-width: 768px) {
  .single.single-post .entry-content h3,
  .single.single-post .post-content h3,
  .single.single-post main h3.wp-block-heading {
    font-size: 1.375rem;
  }
}

/* h4 - 小さな左線 (シングル投稿ページのみ) */
.single.single-post .entry-content h4,
.single.single-post .post-content h4,
.single.single-post main h4.wp-block-heading {
  border-left: 2px solid #6B7280;
  padding-left: 0.75rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: #1F2937;
  margin: 1.25rem 0 0.75rem;
  line-height: 1.4;
}

/* テキストリンク */
.entry-content a,
.post-content a {
  color: #2563EB;
  font-weight: 700;
  text-decoration: underline;
}

.entry-content a:hover,
.post-content a:hover {
  color: #1D4ED8;
}

/* ========================================
   枠線付きリストボックス (Bordered List)
   ======================================== */

.motteku-bordered-list {
  background-color: #fff;
  border: 1px solid #D1D5DB;
  border-radius: 0.5rem;
  padding: 1.25rem 1.5rem;
  margin: 1rem 0;
}

.motteku-bordered-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.motteku-bordered-list ul li {
  position: relative;
  padding-left: 1.5rem;
  line-height: 1.75;
}

.motteku-bordered-list ul li + li {
  margin-top: 0.5rem;
}

.motteku-bordered-list ul li::before {
  content: "●";
  position: absolute;
  left: 0;
  color: #10b981;
  font-size: 0.625rem;
  top: 0.5rem;
}

/* ========================================
   リスト - 緑の点線区切り（ブロックスタイル）
   ======================================== */

.wp-block-list.is-style-motteku-dotted-divider > li + li {
  border-top: 2px dotted rgba(16, 185, 129, 0.8);
  margin-top: 0.75rem;
  padding-top: 0.75rem;
}

/* ========================================
   ステップ (Steps)
   ======================================== */

.motteku-steps {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 1.5rem 0;
}

.motteku-step {
  background: #ffffff;
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 16px;
  padding: 1rem 1rem;
  display: flex;
  gap: 0.875rem;
}

.motteku-step-number {
  margin: 0;
  flex-shrink: 0;
  min-width: 5.5rem;
  font-size: 0.85rem;
  font-weight: 800;
  line-height: 1.2;
  color: #047857;
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 9999px;
  padding: 0.45rem 0.75rem;
  text-align: center;
  align-self: flex-start;
}

.motteku-step-body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 1;
}

.motteku-step-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.4;
  color: #0f172a;
}

.motteku-step-text {
  margin: 0;
  line-height: 1.75;
  color: #1f2937;
}

@media (max-width: 640px) {
  .motteku-step {
    flex-direction: column;
  }

  .motteku-step-number {
    align-self: flex-start;
    min-width: 0;
  }
}

/* ========================================
   Table Styling
   ======================================== */

/* テーブルコンテナ - 横スクロール対応 */
.wp-block-table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 1.5rem;
}

/* figure要素のラッパー対策 */
.wp-block-table figure,
figure.wp-block-table {
  display: block;
  width: 100%;
  overflow-x: auto;
  margin: 0;
}

/* エントリーコンテンツ内のテーブル対策 */
.entry-content .wp-block-table,
.post-content .wp-block-table {
  max-width: 100%;
  overflow-x: auto;
}

/* テーブル本体 */
.wp-block-table table {
  border-collapse: collapse;
  width: max-content !important;
  min-width: 100%;
  font-size: 0.9375rem;
  table-layout: auto;
}

/* ========================================
   Table - Sticky header & first column
   ======================================== */

/* Sticky header: stays visible while page scrolls */
.wp-block-table thead th {
  position: sticky;
  top: var(--motteku-table-sticky-top, 0px);
  z-index: 3;
}

/*
  NOTE:
  `.wp-block-table` uses horizontal overflow scrolling, which prevents CSS `position: sticky`
  from sticking to the viewport on vertical page scroll in many browsers.
  We therefore add a JS-based fixed header for better UX (see `assets/js/sticky-table.js`).
*/

.motteku-table-fixed-header {
  position: fixed;
  top: var(--motteku-table-sticky-top, 0px);
  z-index: 9999;
  overflow-x: auto;
  overflow-y: hidden;
  /* Match table header color (prevents "transparent" look while keeping original tone) */
  background: #10b981;
  display: none;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; /* Firefox */
  box-shadow: none;
  border-bottom: 2px solid #059669;
}

.motteku-table-fixed-header::-webkit-scrollbar {
  display: none; /* Chrome/Safari */
}

.motteku-table-fixed-header table {
  margin: 0;
}

/* Fixed header table appearance */
.motteku-table-fixed-header thead th {
  background-color: #10b981;
  color: #ffffff;
}

/* Keep first column header on the top layer (no overlap) */
.motteku-table-fixed-header.motteku-table-sticky-1 thead th:first-child,
.motteku-table-fixed-header.motteku-table-sticky-2 thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 6;
}

/* Optional: sticky second column header when `.motteku-table-sticky-2` is enabled */
.motteku-table-fixed-header.motteku-table-sticky-2 thead th:nth-child(2) {
  position: sticky;
  left: var(--motteku-sticky-col-1, 140px);
  z-index: 5;
}

/* ========================================
   Table - Sticky FIRST column (opt-in)
   Add class: motteku-table-sticky-1 (or motteku-table-sticky-2)
   ======================================== */

/* Sticky first column: stays visible while horizontal scrolling (opt-in) */
.wp-block-table.motteku-table-sticky-1 tbody td:first-child,
.wp-block-table.motteku-table-sticky-1 thead th:first-child,
.wp-block-table.motteku-table-sticky-1 tfoot td:first-child,
.wp-block-table.motteku-table-sticky-2 tbody td:first-child,
.wp-block-table.motteku-table-sticky-2 thead th:first-child,
.wp-block-table.motteku-table-sticky-2 tfoot td:first-child {
  position: sticky;
  left: 0;
}

/* Ensure proper stacking for the top-left corner cell */
.wp-block-table.motteku-table-sticky-1 thead th:first-child,
.wp-block-table.motteku-table-sticky-2 thead th:first-child {
  z-index: 5;
}

/* Keep first column above other body cells when overlapping */
.wp-block-table.motteku-table-sticky-1 tbody td:first-child,
.wp-block-table.motteku-table-sticky-1 tfoot td:first-child,
.wp-block-table.motteku-table-sticky-2 tbody td:first-child,
.wp-block-table.motteku-table-sticky-2 tfoot td:first-child {
  z-index: 2;
}

/* Visual separator for the fixed first column */
.wp-block-table.motteku-table-sticky-1 tbody td:first-child,
.wp-block-table.motteku-table-sticky-1 tfoot td:first-child,
.wp-block-table.motteku-table-sticky-2 tbody td:first-child,
.wp-block-table.motteku-table-sticky-2 tfoot td:first-child {
  box-shadow: 1px 0 0 #E5E7EB;
}

/* Visual separator for the sticky header */
.wp-block-table thead th {
  box-shadow: 0 1px 0 #059669;
}

/* ========================================
   Table - Sticky column toggle UI
   ======================================== */

.motteku-table-sticky-toggle {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  width: 100%;
  margin: 0 0 1.25rem 0;
  font-size: 0.875rem;
  color: #0f172a;
}

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

.motteku-table-sticky-toggle__label {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: 3.125rem; /* switch width + gap */
  min-height: 1.5rem;
  cursor: pointer;
  user-select: none;
}

/* Switch track */
.motteku-table-sticky-toggle__label::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 2.5rem;
  height: 1.5rem;
  transform: translateY(-50%);
  border-radius: 999px;
  background: #cbd5e1;
  box-shadow: inset 0 0 0 1px #94a3b8;
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

/* Switch knob */
.motteku-table-sticky-toggle__label::after {
  content: '';
  position: absolute;
  left: 0.1875rem;
  top: 50%;
  width: 1.125rem;
  height: 1.125rem;
  transform: translateY(-50%);
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.18);
  transition: transform 0.2s ease;
}

/* Checked state */
.motteku-table-sticky-toggle__input:checked + .motteku-table-sticky-toggle__label::before {
  background: #10b981;
  box-shadow: inset 0 0 0 1px #059669;
}

.motteku-table-sticky-toggle__input:checked + .motteku-table-sticky-toggle__label::after {
  transform: translateY(-50%) translateX(1rem);
}

/* Focus ring (keyboard) */
.motteku-table-sticky-toggle__input:focus + .motteku-table-sticky-toggle__label::before {
  box-shadow: inset 0 0 0 1px #059669, 0 0 0 3px rgba(16, 185, 129, 0.25);
}

/* Extra spacing above the table (guards against layout edge cases) */
.motteku-table-sticky-toggle + .wp-block-table {
  margin-top: 0;
  padding-top: 0.25rem;
}

/* ========================================
   Table - Sticky first TWO columns (opt-in)
   Add class: motteku-table-sticky-2 to the Table block
   ======================================== */

.wp-block-table.motteku-table-sticky-2 tbody td:nth-child(2),
.wp-block-table.motteku-table-sticky-2 thead th:nth-child(2),
.wp-block-table.motteku-table-sticky-2 tfoot td:nth-child(2) {
  position: sticky;
  left: var(--motteku-sticky-col-1, 140px);
}

/* Stacking order for 2nd sticky column */
.wp-block-table.motteku-table-sticky-2 thead th:nth-child(2) {
  z-index: 4;
}

.wp-block-table.motteku-table-sticky-2 tbody td:nth-child(2),
.wp-block-table.motteku-table-sticky-2 tfoot td:nth-child(2) {
  z-index: 1;
  background-color: #ffffff;
  box-shadow: 1px 0 0 #E5E7EB;
}

/* Keep zebra/hover colors for the 2nd sticky column */
.wp-block-table.motteku-table-sticky-2 tbody tr:nth-child(even) td:nth-child(2) {
  background-color: #F9FAFB;
}

.wp-block-table.motteku-table-sticky-2 tbody tr:hover td:nth-child(2) {
  background-color: #F3F4F6;
}

/* ヘッダー行 */
.wp-block-table thead th {
  background-color: #10b981;
  color: #fff;
  font-weight: 700;
  padding: 0.75rem 1rem;
  text-align: left;
  border: 1px solid #059669;
  white-space: nowrap;
  min-width: 100px;
}

/* ボディセル */
.wp-block-table tbody td {
  padding: 0.75rem 1rem;
  border: 1px solid #E5E7EB;
  vertical-align: top;
  background-color: #fff;
  min-width: 100px;
}

/* 左列（1列目）に背景色 */
.wp-block-table tbody td:first-child {
  background-color: #F0FDFA;
  font-weight: 600;
}

/* 偶数行のストライプ */
.wp-block-table tbody tr:nth-child(even) td {
  background-color: #F9FAFB;
}

/* 偶数行の左列 */
.wp-block-table tbody tr:nth-child(even) td:first-child {
  background-color: #E6FAF5;
}

/* ホバー効果 */
.wp-block-table tbody tr:hover td {
  background-color: #F3F4F6;
}

.wp-block-table tbody tr:hover td:first-child {
  background-color: #D1FAE5;
}

/* テーブル内のリンク */
.wp-block-table a {
  color: #059669;
  text-decoration: underline;
}

.wp-block-table a:hover {
  color: #047857;
  text-decoration: none;
}

/* ========================================
   About Page (運営者情報)
   ======================================== */

.motteku-about-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.motteku-about-title {
  font-size: 2rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 0.75rem 0;
}

.motteku-about-subtitle {
  font-size: 1rem;
  color: #6B7280;
  margin: 0;
}

.motteku-about-card {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 2rem;
  margin-bottom: 1.5rem;
}

.motteku-about-card-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 1.5rem 0;
}

.motteku-about-info {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.motteku-about-info-item {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.motteku-about-info-label {
  font-weight: 600;
  color: #1F2937;
}

.motteku-about-info-value {
  color: #4B5563;
}

.motteku-about-info-value--primary {
  color: #2563EB;
}

.motteku-about-mission-quote {
  font-size: 1rem;
  font-weight: 500;
  color: #1F2937;
  margin: 0 0 1.5rem 0;
  padding: 0;
  border: none;
}

.motteku-about-mission-text {
  color: #4B5563;
  line-height: 1.8;
}

.motteku-about-mission-text p {
  margin: 0 0 1rem 0;
}

.motteku-about-mission-text p:last-child {
  margin-bottom: 0;
}

.motteku-about-contact {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 2.5rem;
  text-align: center;
}

.motteku-about-contact-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 1rem 0;
}

.motteku-about-contact-text {
  color: #6B7280;
  margin: 0 0 1.5rem 0;
  line-height: 1.8;
}

/* Responsive */
@media (max-width: 640px) {
  .motteku-about-title {
    font-size: 1.5rem;
  }

  .motteku-about-card {
    padding: 1.5rem;
  }

  .motteku-about-contact {
    padding: 1.5rem;
  }

  .motteku-about-mission-text br {
    display: none;
  }

  .motteku-about-contact-text br {
    display: none;
  }
}

/* ========================================
   Sitemap Page (サイトマップ)
   ======================================== */

.motteku-sitemap-header {
  margin-bottom: 2.5rem;
}

.motteku-sitemap-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 0.5rem 0;
}

.motteku-sitemap-subtitle {
  font-size: 0.95rem;
  color: #6B7280;
  margin: 0;
}

.motteku-sitemap-section {
  margin-bottom: 2.5rem;
}

.motteku-sitemap-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 1rem 0;
}

.motteku-sitemap-icon {
  color: #6B7280;
}

.motteku-sitemap-card {
  background: #F0FDFA;
  border-radius: 12px;
  padding: 1.5rem;
}

.motteku-sitemap-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.motteku-sitemap-item:last-child {
  margin-bottom: 0;
}

.motteku-sitemap-item-icon {
  color: #6B7280;
  flex-shrink: 0;
  margin-top: 2px;
}

.motteku-sitemap-link {
  font-size: 1rem;
  font-weight: 500;
  color: #2563EB;
  text-decoration: none;
}

.motteku-sitemap-link:hover {
  text-decoration: underline;
}

.motteku-sitemap-desc {
  font-size: 0.875rem;
  color: #6B7280;
  margin: 0.25rem 0 0 0;
}

/* Destinations region styling */
.motteku-sitemap-region {
  margin-bottom: 1.5rem;
}

.motteku-sitemap-region:last-child {
  margin-bottom: 0;
}

.motteku-sitemap-region-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: #4B5563;
  margin: 0 0 0.75rem 0;
}

.motteku-sitemap-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem 1.5rem;
}

.motteku-sitemap-dest-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: #2563EB;
  text-decoration: none;
}

.motteku-sitemap-dest-link:hover {
  text-decoration: underline;
}

.motteku-sitemap-bullet {
  width: 6px;
  height: 6px;
  background: #93C5FD;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Query Loop版（公開済みdestinationのみ）でも同じ見た目にする */
.motteku-sitemap-grid .wp-block-post-title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 500;
}

.motteku-sitemap-grid .wp-block-post-title a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #2563EB;
  text-decoration: none;
}

.motteku-sitemap-grid .wp-block-post-title a::before {
  content: "";
  width: 6px;
  height: 6px;
  background: #93C5FD;
  border-radius: 50%;
  flex-shrink: 0;
}

.motteku-sitemap-grid .wp-block-post-title a:hover {
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 768px) {
  .motteku-sitemap-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .motteku-sitemap-grid {
    grid-template-columns: 1fr;
  }

  .motteku-sitemap-title {
    font-size: 1.5rem;
  }

  .motteku-sitemap-card {
    padding: 1rem;
  }
}

/* ========================================
   Legal Pages (プライバシーポリシー、利用規約等)
   ======================================== */

.motteku-legal-page {
  color: #1F2937;
  line-height: 1.8;
}

.motteku-legal-header {
  margin-bottom: 2.5rem;
}

.motteku-legal-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 0.5rem 0;
}

.motteku-legal-date {
  font-size: 0.875rem;
  color: #6B7280;
  margin: 0;
}

.motteku-legal-section {
  margin-bottom: 2.5rem;
}

.motteku-legal-section h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 1rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #E5E7EB;
}

.motteku-legal-section h3 {
  font-size: 1rem;
  font-weight: 600;
  color: #374151;
  margin: 1.5rem 0 0.75rem 0;
}

.motteku-legal-section h4 {
  font-size: 0.95rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 0.25rem 0;
}

.motteku-legal-section p {
  margin: 0 0 1rem 0;
  color: #4B5563;
}

.motteku-legal-section ul {
  margin: 0 0 1rem 0;
  padding-left: 1.5rem;
}

.motteku-legal-section li {
  margin-bottom: 0.5rem;
  color: #4B5563;
}

.motteku-legal-section a {
  color: #2563EB;
  text-decoration: none;
}

.motteku-legal-section a:hover {
  text-decoration: underline;
}

.motteku-legal-section strong {
  font-weight: 600;
  color: #1F2937;
}

/* Service cards for third-party services */
.motteku-legal-service-card {
  background: #F9FAFB;
  border-radius: 8px;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.motteku-legal-service-card h4 {
  margin-bottom: 0.25rem;
}

.motteku-legal-service-card p {
  font-size: 0.875rem;
  color: #6B7280;
  margin-bottom: 0.5rem;
}

.motteku-legal-service-card a {
  font-size: 0.875rem;
  color: #2563EB;
}

.motteku-legal-contact-email {
  font-weight: 600;
  color: #1F2937 !important;
  font-size: 1rem;
}

/* Notice boxes for legal pages */
.motteku-legal-notice {
  padding: 1rem 1.25rem;
  border-radius: 8px;
  margin-bottom: 2rem;
}

.motteku-legal-notice p {
  margin: 0;
}

.motteku-legal-notice p + p {
  margin-top: 0.5rem;
}

.motteku-legal-notice-danger {
  background: #FEF2F2;
  border: 1px solid #FECACA;
}

.motteku-legal-notice-danger strong {
  color: #DC2626;
}

.motteku-legal-notice-warning {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
}

.motteku-legal-notice-warning strong {
  color: #D97706;
}

/* Responsive */
/* Legal page table */
.motteku-legal-table {
  width: 100%;
  border-collapse: collapse;
  background: #F9FAFB;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 1rem;
}

.motteku-legal-table th,
.motteku-legal-table td {
  padding: 1rem 1.25rem;
  text-align: left;
  border-bottom: 1px solid #E5E7EB;
}

.motteku-legal-table tr:last-child th,
.motteku-legal-table tr:last-child td {
  border-bottom: none;
}

.motteku-legal-table th {
  width: 30%;
  font-weight: 600;
  color: #374151;
  background: #F3F4F6;
}

.motteku-legal-table td {
  color: #4B5563;
}

/* Affiliate cards */
.motteku-legal-affiliate-card {
  background: #F9FAFB;
  border-radius: 8px;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.motteku-legal-affiliate-card h4 {
  font-size: 1rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 0.5rem 0;
}

.motteku-legal-affiliate-card p {
  font-size: 0.875rem;
  color: #6B7280;
  margin: 0;
}

/* 報告カード */
.motteku-legal-report-card {
  background: #F9FAFB;
  border-radius: 8px;
  padding: 1.5rem;
  margin: 1.5rem 0;
}

.motteku-legal-report-card h4 {
  font-size: 1rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 1rem 0;
}

.motteku-legal-report-card p {
  font-size: 0.9375rem;
  color: #374151;
  margin: 0 0 0.75rem 0;
}

.motteku-legal-report-card ul {
  margin: 0.75rem 0 0 0;
  padding-left: 1.25rem;
}

.motteku-legal-report-card ul li {
  font-size: 0.875rem;
  color: #4B5563;
  margin-bottom: 0.375rem;
}

/* 関連ページボックス */
.motteku-legal-related {
  background: #F0FDFA;
  border: 1px solid #99F6E4;
  border-radius: 8px;
  padding: 1.5rem;
  margin-top: 3rem;
}

.motteku-legal-related h4 {
  font-size: 1rem;
  font-weight: 600;
  color: #0F766E;
  margin: 0 0 1rem 0;
}

.motteku-legal-related ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.motteku-legal-related ul li {
  margin-bottom: 0.5rem;
}

.motteku-legal-related ul li:last-child {
  margin-bottom: 0;
}

.motteku-legal-related ul li a {
  color: #0D9488;
  text-decoration: none;
  font-size: 0.9375rem;
  transition: color 0.2s;
}

.motteku-legal-related ul li a:hover {
  color: #0F766E;
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 640px) {
  .motteku-legal-title {
    font-size: 1.5rem;
  }

  .motteku-legal-section h2 {
    font-size: 1.125rem;
  }

  .motteku-legal-table th {
    width: 35%;
    padding: 0.75rem;
  }

  .motteku-legal-table td {
    padding: 0.75rem;
  }
}

/* ============================================
   Featured Article Carousel
   ============================================ */
.motteku-featured-carousel {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
}

.motteku-featured-carousel-track {
  display: flex;
  transition: transform 0.4s ease-in-out;
}

.motteku-featured-carousel-slide {
  flex: 0 0 100%;
  min-width: 100%;
}

/* Navigation Buttons */
.motteku-featured-carousel-prev,
.motteku-featured-carousel-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: all 0.2s ease;
  color: #374151;
}

.motteku-featured-carousel-prev:hover,
.motteku-featured-carousel-next:hover {
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  transform: translateY(-50%) scale(1.05);
}

.motteku-featured-carousel-prev {
  left: 16px;
}

.motteku-featured-carousel-next {
  right: 16px;
}

/* Dots Navigation */
.motteku-featured-carousel-dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}

.motteku-featured-carousel-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.2s ease;
}

.motteku-featured-carousel-dot:hover {
  background: rgba(255, 255, 255, 0.8);
}

.motteku-featured-carousel-dot.active {
  background: #10b981;
  width: 24px;
  border-radius: 5px;
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .motteku-featured-carousel-prev,
  .motteku-featured-carousel-next {
    width: 36px;
    height: 36px;
  }

  .motteku-featured-carousel-prev {
    left: 8px;
  }

  .motteku-featured-carousel-next {
    right: 8px;
  }

  .motteku-featured-carousel-prev svg,
  .motteku-featured-carousel-next svg {
    width: 18px;
    height: 18px;
  }

  .motteku-featured-carousel-dots {
    bottom: 12px;
  }

  .motteku-featured-carousel-dot {
    width: 8px;
    height: 8px;
  }

  .motteku-featured-carousel-dot.active {
    width: 20px;
  }
}

/* ========================================
 * Contact Form 7 Styles
 * ======================================== */

.wpcf7 {
    max-width: 600px;
    margin: 0 auto;
}

.wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.wpcf7-form p {
    margin: 0;
}

.wpcf7-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #1e3a5f;
}

.wpcf7-form-control-wrap {
    display: block;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form textarea,
.wpcf7-form select {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    line-height: 1.5;
    color: #333;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="url"]:focus,
.wpcf7-form input[type="number"]:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
    outline: none;
    border-color: #0073aa;
    box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.15);
}

.wpcf7-form textarea {
    min-height: 150px;
    resize: vertical;
}

.wpcf7-form input[type="submit"] {
    display: inline-block;
    padding: 0.875rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    background-color: #0073aa;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
}

.wpcf7-form input[type="submit"]:hover {
    background-color: #005a87;
}

.wpcf7-form input[type="submit"]:active {
    transform: scale(0.98);
}

/* Validation Messages */
.wpcf7-not-valid-tip {
    color: #dc3545;
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

.wpcf7-response-output {
    margin: 1rem 0 0;
    padding: 1rem;
    border-radius: 8px;
}

.wpcf7-form.invalid .wpcf7-response-output {
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
    color: #721c24;
}

.wpcf7-form.sent .wpcf7-response-output {
    background-color: #d4edda;
    border: 1px solid #c3e6cb;
    color: #155724;
}

/* Spinner */
.wpcf7-spinner {
    margin-left: 1rem;
}

/* ========================================
   Back to Top Button
   ======================================== */

.motteku-back-to-top {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #10b981;
  color: #fff;
  border: none;
  border-radius: 50%;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s, background-color 0.2s;
  z-index: 9999;
}

.motteku-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.motteku-back-to-top:hover {
  background-color: #059669;
}

.motteku-back-to-top svg {
  width: 1.5rem;
  height: 1.5rem;
}

/* ============================================
   Pagination Styles
   ============================================ */
.motteku-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 2rem;
  padding: 1rem 0;
  flex-wrap: wrap;
}

.motteku-pagination-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.625rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #374151;
  background: white;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.motteku-pagination-btn:hover:not([disabled]) {
  background: #F9FAFB;
  border-color: #10b981;
  color: #10b981;
}

.motteku-pagination-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

.motteku-pagination-btn svg {
  width: 16px;
  height: 16px;
}

.motteku-pagination-numbers {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.motteku-pagination-number {
  min-width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 500;
  color: #6B7280;
  background: white;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.motteku-pagination-number:hover {
  background: #F9FAFB;
  border-color: #10b981;
  color: #10b981;
}

.motteku-pagination-number.active {
  background: #10b981;
  border-color: #10b981;
  color: white;
}

.motteku-pagination-ellipsis {
  padding: 0 0.5rem;
  color: #9CA3AF;
  font-size: 0.875rem;
}

/* Mobile pagination */
@media (max-width: 640px) {
  .motteku-pagination {
    gap: 0.375rem;
  }

  .motteku-pagination-btn {
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
  }

  .motteku-pagination-btn span {
    display: none;
  }

  .motteku-pagination-number {
    min-width: 36px;
    height: 36px;
    font-size: 0.8125rem;
  }
}

/* ============================================
   Featured Carousel Responsive (PC: 3 items, SP: 1 item)
   ============================================ */

/* PC: 3 items per view */
@media (min-width: 768px) {
  .motteku-featured-carousel-slide {
    flex: 0 0 calc(100% / 3);
    min-width: calc(100% / 3);
    padding: 0 0.5rem;
  }

  .motteku-featured-carousel-track {
    gap: 0;
  }

  /* Adjust featured card size for 3-column layout */
  .motteku-featured-carousel .motteku-media-featured {
    height: 100%;
  }

  .motteku-featured-carousel .motteku-media-featured-image {
    aspect-ratio: 16 / 10;
  }

  .motteku-featured-carousel .motteku-media-featured-content {
    padding: 1rem;
  }

  .motteku-featured-carousel .motteku-media-featured-title {
    font-size: 1rem;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .motteku-featured-carousel .motteku-media-featured-excerpt {
    font-size: 0.8125rem;
    -webkit-line-clamp: 2;
  }

  .motteku-featured-carousel .motteku-media-featured-meta {
    font-size: 0.75rem;
  }

  .motteku-featured-carousel .motteku-media-featured-tags {
    display: none;
  }

  .motteku-featured-carousel .motteku-media-featured-link {
    font-size: 0.8125rem;
  }
}

/* SP: 1 item per view */
@media (max-width: 767px) {
  .motteku-featured-carousel-slide {
    flex: 0 0 100%;
    min-width: 100%;
  }
}

/* Hide dots on PC when showing 3+ items (optional - only show if more slides than visible) */
@media (min-width: 768px) {
  .motteku-featured-carousel-dots {
    bottom: -2rem;
  }
}

/* ============================================
   Clickable Cards (Full card as link)
   ============================================ */

/* Featured Card - Make entire card clickable */
.motteku-media-featured {
  position: relative;
  cursor: pointer;
}

.motteku-media-featured-title a::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

/* Keep other links above the overlay */
.motteku-media-featured-link,
.motteku-media-featured-category,
.motteku-media-featured-tag {
  position: relative;
  z-index: 2;
}

/* Regular Article Card - Make entire card clickable */
.motteku-media-card {
  position: relative;
  cursor: pointer;
}

.motteku-media-card-title a::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

/* Keep other elements above the overlay */
.motteku-media-card-category,
.motteku-media-card-tag,
.motteku-media-card-badge {
  position: relative;
  z-index: 2;
}

/* ============================================
   Article Grid - Always 2 columns (PC & SP)
   ============================================ */
.motteku-media-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

/* Prevent grid children from forcing overflow (e.g. long words / images) */
.motteku-media-article-item,
.motteku-media-card {
  min-width: 0;
}

/* Media page main layout is a CSS Grid: allow columns to shrink (fixes carousel pushing page width on mobile) */
.motteku-media-page .motteku-media-layout > * {
  min-width: 0;
}

/* Safety: keep featured carousel from contributing oversized intrinsic width */
.motteku-media-page .motteku-featured-carousel {
  max-width: 100%;
}

.motteku-media-page .motteku-featured-carousel-track {
  min-width: 100%;
}

@media (max-width: 480px) {
  .motteku-media-grid {
    gap: 0.75rem;
  }

  /* Smaller card text on very small screens */
  .motteku-media-card-title {
    font-size: 0.875rem;
  }

  .motteku-media-card-excerpt {
    display: none;
  }

  .motteku-media-card-content {
    padding: 0.75rem;
  }
}

/* ============================================
   Media Sidebar - Tags (Chips)
   ============================================ */
.motteku-media-sidebar-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.motteku-media-sidebar-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.375rem 0.625rem;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 9999px;
  border: 1px solid #E5E7EB;
  background-color: #F9FAFB;
  color: #374151;
  text-decoration: none;
  transition: background-color 200ms, border-color 200ms, color 200ms;
}

.motteku-media-sidebar-tag:hover {
  background-color: #F0FDFA;
  border-color: #10b981;
  color: #059669;
}

.motteku-media-sidebar-tag.active {
  background-color: #10b981;
  border-color: #10b981;
  color: #ffffff;
}

.motteku-media-sidebar-tags-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.75rem;
  width: 100%;
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #059669;
  background-color: #F0FDFA;
  border: 1px solid #A7F3D0;
  border-radius: 0.75rem;
  cursor: pointer;
  transition: background-color 200ms, border-color 200ms, color 200ms;
}

.motteku-media-sidebar-tags-toggle:hover {
  background-color: #D1FAE5;
  border-color: #6EE7B7;
  color: #047857;
}

/* ============================================
   Media Sidebar - Categories (Hierarchy)
   ============================================ */
.motteku-media-sidebar-category-item--child {
  padding-left: 1.25rem;
}

.motteku-media-sidebar-category-item--child .motteku-media-sidebar-category-name svg {
  opacity: 0.7;
  transform: scale(0.9);
}

/* ============================================
   Media Page (travel guide) - Mobile layout fix
   ============================================ */

/* Prevent accidental horizontal scroll on mobile (causes "right side blank" UI break) */
.motteku-media-page {
  overflow-x: clip;
}

@supports not (overflow: clip) {
  .motteku-media-page {
    overflow-x: hidden;
  }
}

/* Media hero should be full-bleed (no left/right padding), while keeping page padding for other sections */
.motteku-media-page > .motteku-media-hero {
  margin-left: -1rem;
  margin-right: -1rem;
  width: calc(100% + 2rem);
  max-width: none;
  margin-top: 0 !important;
}

@media (min-width: 640px) {
  .motteku-media-page > .motteku-media-hero {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
    width: calc(100% + 3rem);
  }
}

/* Remove top spacing above hero (some WP block themes add block gaps/margins) */
.motteku-media-page {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

.motteku-media-page > *:first-child {
  margin-top: 0 !important;
}

/* Remove negative margins used for full-bleed scroll row that can trigger overflow on some mobile browsers */
@media (max-width: 767px) {
  .motteku-media-page .motteku-media-filter-row {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }
}

/* Replace inline styles removed from `templates/page-media.html` */
.motteku-media-filter-wrapper {
  padding-top: 0;
  padding-bottom: 0;
}

/* Media page: filter buttons are <a>, so remove underline */
.motteku-media-filter-btn {
  text-decoration: none;
}

.motteku-media-filter-btn:hover,
.motteku-media-filter-btn:focus,
.motteku-media-filter-btn:focus-visible,
.motteku-media-filter-btn:visited {
  text-decoration: none;
}

.motteku-media-content-wrapper {
  padding-top: var(--wp--preset--spacing--10);
  padding-bottom: var(--wp--preset--spacing--16);
}

/* Media page: no extra space above Featured heading ("おすすめ記事") */
.motteku-media-page .motteku-media-content-wrapper {
  padding-top: 0;
}

.motteku-media-page .motteku-media-featured-section {
  margin-top: 0;
}

.motteku-media-page .motteku-media-featured-section .motteku-media-section-title {
  margin-top: 0;
}

/* Media page: no extra space above Article list heading ("記事一覧") */
.motteku-media-page .motteku-media-grid-section--spaced {
  margin-top: 0;
}

.motteku-media-page .motteku-media-grid-section .motteku-media-section-title {
  margin-top: 0;
}

/* ============================================
   Media page - Card consistency (shadow/height)
   ============================================ */

/* ============================================
   Media page - Search UI (clear button)
   ============================================ */

.motteku-media-search {
  position: relative;
}

.motteku-media-search-clear-btn {
  position: absolute;
  right: 3.5rem; /* leaves space for the search button on the far right */
  top: 50%;
  transform: translateY(-50%);
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  background-color: rgba(255, 255, 255, 0.18);
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 200ms, border-color 200ms, opacity 200ms;
}

.motteku-media-search-clear-btn:hover {
  background-color: rgba(255, 255, 255, 0.28);
  border-color: rgba(255, 255, 255, 0.85);
}

.motteku-media-search-clear-btn svg {
  width: 1.25rem;
  height: 1.25rem;
}

/* ============================================
   Media page - Status messages (no inline styles)
   ============================================ */

.motteku-media-status {
  color: #6B7280;
  text-align: center;
  grid-column: 1 / -1;
}

.motteku-media-sidebar-status {
  color: #9CA3AF;
  font-size: 0.875rem;
}

/* Make cards in grid equal-height per row */
.motteku-media-page .motteku-media-grid {
  grid-auto-rows: 1fr;
}

/* Unify shadow treatment (some cards looked "flat" depending on content) */
.motteku-media-page .motteku-media-card,
.motteku-media-page .motteku-media-featured {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.motteku-media-page .motteku-media-card:hover,
.motteku-media-page .motteku-media-featured:hover {
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
}

/* Mobile: keep card height consistent regardless of tags/excerpt presence */
@media (max-width: 767px) {
  /* Featured (おすすめ記事) */
  .motteku-media-page .motteku-media-featured-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .motteku-media-page .motteku-media-featured-title {
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.4;
    min-height: calc(1.4em * 2);
  }

  .motteku-media-page .motteku-media-featured-excerpt {
    display: none;
  }

  .motteku-media-page .motteku-media-featured-tags {
    /* Reserve one line so cards without tags match height */
    min-height: 1.25rem;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .motteku-media-page .motteku-media-featured-link {
    margin-top: auto;
  }

  /* Regular cards (記事一覧) */
  .motteku-media-page .motteku-media-card-content {
    padding: 0.875rem;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .motteku-media-page .motteku-media-card-title {
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.4;
    min-height: calc(1.4em * 2);
  }

  .motteku-media-page .motteku-media-card-excerpt {
    display: none;
  }

  .motteku-media-page .motteku-media-card-tags {
    /* Reserve one line so cards without tags match height */
    min-height: 1.1rem;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

.motteku-media-pagination {
  margin-top: 2rem;
  text-align: center;
}

/* ============================================
   Home - Featured Articles (おすすめ記事) width
   Match "人気の旅行先" section width (1200px)
   ============================================ */

.motteku-home-featured-section {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--wp--style--root--padding-left, 1.5rem);
  padding-right: var(--wp--style--root--padding-right, 1.5rem);
}

/* Fallback: if homepage is rendered by a different template / block structure */
body.home .motteku-home-featured-section,
body.front-page .motteku-home-featured-section {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--wp--style--root--padding-left, 1.5rem);
  padding-right: var(--wp--style--root--padding-right, 1.5rem);
}

/* Home (SP): keep featured card height consistent regardless of tags/excerpt presence */
@media (max-width: 767px) {
  .motteku-home-featured-section .motteku-featured-carousel-slide {
    display: flex;
  }

  .motteku-home-featured-section .motteku-media-featured {
    height: 100%;
  }

  .motteku-home-featured-section .motteku-media-featured-content {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .motteku-home-featured-section .motteku-media-featured-title {
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.4;
    min-height: calc(1.4em * 2);
  }

  .motteku-home-featured-section .motteku-media-featured-excerpt {
    display: none;
  }

  .motteku-home-featured-section .motteku-media-featured-tags {
    /* Reserve one line so cards without tags match height */
    min-height: 1.25rem;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .motteku-home-featured-section .motteku-media-featured-link {
    margin-top: auto;
  }
}

/* ============================================
   Home - Popular Destinations (SP: 2 columns)
   ============================================ */

@media (max-width: 639px) {
  /* `.motteku-grid-destinations` is defined with `!important` in the built CSS, so we override with `!important` too */
  .motteku-home-popular-destinations .motteku-grid-destinations {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  /*
    Fallback: if the homepage is rendered by a different template / block structure,
    rely on WP body classes instead of a wrapper class.
    (Scope is still limited to TOP via `.home` / `.front-page`.)
  */
  body.home .motteku-grid-destinations,
  body.front-page .motteku-grid-destinations {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }
}

/* ============================================
   /destinations/ (Destination Archive) - SP: 2 columns
   ============================================ */

@media (max-width: 639px) {
  body.post-type-archive-destination .motteku-grid-destinations {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }
}

/* ============================================
   Related Destinations Section (SEO Internal Links)
   ============================================ */

.motteku-related-destinations {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid #E5E7EB;
}

.motteku-related-destinations-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1F2937;
  margin-bottom: 1.5rem;
}

.motteku-related-destinations-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.motteku-related-destination-card {
  display: block;
  background: white;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.motteku-related-destination-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.motteku-related-destination-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
}

.motteku-related-destination-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.motteku-related-destination-card:hover .motteku-related-destination-image img {
  transform: scale(1.05);
}

.motteku-related-destination-content {
  padding: 0.875rem;
}

.motteku-related-destination-title {
  font-size: 1rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 0.25rem 0;
  line-height: 1.3;
}

.motteku-related-destination-country {
  font-size: 0.8125rem;
  color: #6B7280;
}

/* Tablet (2 columns) */
@media (max-width: 1024px) {
  .motteku-related-destinations-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile (2 columns, smaller) */
@media (max-width: 639px) {
  .motteku-related-destinations-title {
    font-size: 1.25rem;
  }

  .motteku-related-destinations-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }

  .motteku-related-destination-content {
    padding: 0.625rem;
  }

  .motteku-related-destination-title {
    font-size: 0.875rem;
  }

  .motteku-related-destination-country {
    font-size: 0.75rem;
  }
}

/* ============================================
   SEO Section Heading Styles
   ============================================ */

.motteku-section-heading {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 1.5rem 0;
  line-height: 1.4;
}

.motteku-section-title-h2 {
  font-size: 1.375rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

/* Embassy section H2 styling adjustment */
.motteku-embassy-section .motteku-section-title.motteku-section-title-h2 {
  font-size: 1.25rem;
}

@media (max-width: 639px) {
  .motteku-section-heading {
    font-size: 1.25rem;
    margin-bottom: 1rem;
  }
}

/* ========================================
   Related Articles Section (Checklist Page)
   ======================================== */

.motteku-is-hidden {
  display: none;
}

.motteku-related-articles-section {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid #E5E7EB;
}

.motteku-related-articles-section .motteku-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.125rem;
  margin-bottom: 1.25rem;
}

.motteku-related-articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.motteku-related-article-card {
  display: flex;
  flex-direction: column;
  background-color: white;
  border-radius: 0.75rem;
  border: 1px solid #E5E7EB;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.motteku-related-article-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.motteku-related-article-image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: #F3F4F6;
}

.motteku-related-article-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.motteku-related-article-card:hover .motteku-related-article-image img {
  transform: scale(1.05);
}

.motteku-related-article-no-image {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  background-color: #F3F4F6;
}

.motteku-related-article-content {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.motteku-related-article-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 0.5rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.motteku-related-article-excerpt {
  font-size: 0.8125rem;
  color: #6B7280;
  margin: 0 0 0.75rem;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.motteku-related-article-date {
  font-size: 0.75rem;
  color: #9CA3AF;
}

.motteku-related-articles-more {
  margin-top: 1.25rem;
  text-align: center;
}

.motteku-related-articles-more-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #10b981;
  text-decoration: none;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  transition: background-color 0.2s ease;
}

.motteku-related-articles-more-link:hover {
  background-color: #F0FDF4;
}

.motteku-related-articles-more-link svg {
  transition: transform 0.2s ease;
}

.motteku-related-articles-more-link:hover svg {
  transform: translateX(2px);
}

/* Responsive: Tablet */
@media (max-width: 768px) {
  .motteku-related-articles-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

/* Responsive: Mobile */
@media (max-width: 640px) {
  .motteku-related-articles-grid {
    grid-template-columns: 1fr;
    gap: 0.875rem;
  }

  .motteku-related-article-card {
    flex-direction: row;
  }

  .motteku-related-article-image {
    width: 100px;
    min-width: 100px;
    aspect-ratio: 1;
  }

  .motteku-related-article-content {
    padding: 0.75rem;
  }

  .motteku-related-article-title {
    font-size: 0.875rem;
    -webkit-line-clamp: 2;
  }

  .motteku-related-article-excerpt {
    display: none;
  }
}

/* ========================================
   Survey Modal Styles
   ======================================== */
.motteku-survey-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  opacity: 0;
  transition: opacity 0.3s ease;
  padding: 1rem;
}

.motteku-survey-modal-overlay.visible {
  opacity: 1;
}

.motteku-survey-modal {
  background: #ffffff;
  border-radius: 1rem;
  max-width: 400px;
  width: 100%;
  padding: 1.5rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
  transform: scale(0.95) translateY(10px);
  transition: transform 0.3s ease;
}

.motteku-survey-modal-overlay.visible .motteku-survey-modal {
  transform: scale(1) translateY(0);
}

.motteku-survey-modal-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.motteku-survey-modal-close {
  margin-left: auto;
  width: 36px;
  height: 36px;
  border-radius: 9999px;
  border: 1px solid #E5E7EB;
  background: #ffffff;
  color: #6B7280;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.motteku-survey-modal-close:hover {
  background: #F3F4F6;
}

.motteku-survey-modal-close:focus {
  outline: 2px solid #10B981;
  outline-offset: 2px;
}

.motteku-survey-modal-select {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1px solid #D1D5DB;
  border-radius: 0.75rem;
  background: #ffffff;
  font-size: 0.875rem;
  color: #111827;
}

.motteku-survey-modal-select:focus {
  outline: 2px solid rgba(16, 185, 129, 0.3);
  outline-offset: 2px;
}

.motteku-survey-modal-icon {
  font-size: 1.5rem;
}

.motteku-survey-modal-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0;
}

.motteku-survey-modal-desc {
  font-size: 0.875rem;
  color: #6B7280;
  margin: 0 0 1.25rem 0;
  line-height: 1.5;
}

.motteku-survey-modal-field {
  margin-bottom: 1.25rem;
}

.motteku-survey-modal-label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #374151;
  margin-bottom: 0.625rem;
}

.motteku-survey-modal-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.motteku-survey-option {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.motteku-survey-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.motteku-survey-option span {
  display: inline-block;
  padding: 0.5rem 0.875rem;
  font-size: 0.875rem;
  color: #374151;
  background: #F3F4F6;
  border: 2px solid transparent;
  border-radius: 2rem;
  transition: all 0.2s ease;
}

.motteku-survey-option:hover span {
  background: #E5E7EB;
}

.motteku-survey-option input[type="radio"]:checked + span {
  background: #D1FAE5;
  border-color: #10B981;
  color: #065F46;
  font-weight: 500;
}

.motteku-survey-option input[type="radio"]:focus + span {
  box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.3);
}

.motteku-survey-modal-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.motteku-survey-btn {
  flex: 1;
  padding: 0.75rem 1rem;
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
}

.motteku-survey-btn-skip {
  background: #F3F4F6;
  color: #6B7280;
}

.motteku-survey-btn-skip:hover {
  background: #E5E7EB;
}

.motteku-survey-btn-submit {
  background: #10B981;
  color: #ffffff;
}

.motteku-survey-btn-submit:hover {
  background: #059669;
}

.motteku-survey-btn:focus {
  outline: 2px solid #10B981;
  outline-offset: 2px;
}

/* Survey Modal Mobile */
@media (max-width: 480px) {
  .motteku-survey-modal {
    padding: 1.25rem;
  }

  .motteku-survey-modal-title {
    font-size: 1.125rem;
  }

  .motteku-survey-option span {
    padding: 0.4375rem 0.75rem;
    font-size: 0.8125rem;
  }

  .motteku-survey-modal-actions {
    flex-direction: column-reverse;
    gap: 0.5rem;
  }
}

/* Breadcrumb wrapper with PR badge */
.motteku-breadcrumb-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}