/* ===========================================
   CSS Custom Properties
   =========================================== */
:root {
  --c-main: #004A57;
  --c-main-dark: #003540;
  --c-main-light: #DFF0F3;
  --c-accent: #99BF60;
  --c-accent-dark: #7DA040;
  --c-accent-light: #EEF5DA;
  --c-heading: #002830;
  --c-text: #4B4A48;
  --c-text-sub: #8A8888;
  --c-bg-sub: #F3F1EC;
  --c-bg-paper: #FBFAF6;
  --c-border: #D6DCDD;
}

/* ===========================================
   Base Reset & Global
   =========================================== */
html { scroll-behavior: smooth; }

body {
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--c-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt";
  margin: 0;
  padding: 0;
}

*, *::before, *::after { box-sizing: border-box; }

img { max-width: 100%; height: auto; }

a { outline: none; }
button { outline: none; }

/* ===========================================
   Typography Helpers
   =========================================== */
.font-serif-jp { font-family: 'Noto Serif JP', serif; }

.jp-vertical {
  writing-mode: vertical-rl;
  letter-spacing: 0.4em;
}

/* ===========================================
   Layout Utilities
   =========================================== */
.lp-container {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.lp-container-sm {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.lp-container-md {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* Flex helpers */
.flex-center { display: flex; align-items: center; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }

/* Grid */
.grid-2col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.grid-3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.grid-4col { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

@media (max-width: 768px) {
  .grid-2col, .grid-3col, .grid-4col { grid-template-columns: 1fr; }
  .lp-container, .lp-container-sm, .lp-container-md {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* ===========================================
   Section Padding
   =========================================== */
.lp-section {
  padding-top: 80px;
  padding-bottom: 80px;
  padding-left: 16px;
  padding-right: 16px;
}

@media (min-width: 768px) {
  .lp-section {
    padding-top: 112px;
    padding-bottom: 112px;
  }
}

/* ===========================================
   Heading Decorations
   =========================================== */
.deco-heading {
  text-align: center;
  position: relative;
  padding-bottom: 1.25rem;
}

.deco-heading .sub-en {
  display: block;
  font-size: 12px;
  letter-spacing: 0.3em;
  color: var(--c-accent-dark);
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.deco-heading::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, var(--c-main), var(--c-accent));
}

/* Left-aligned heading */
.deco-heading-left {
  position: relative;
  padding-left: 18px;
}

.deco-heading-left::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 4px;
  background: linear-gradient(180deg, var(--c-main), var(--c-accent));
}

.deco-heading-left .sub-en {
  display: block;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--c-accent-dark);
  font-weight: 700;
  margin-bottom: 4px;
}

/* ===========================================
   Cards
   =========================================== */
/* Top color bar card */
.deco-card-topbar {
  background: #fff;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0, 40, 48, 0.06);
  border: 1px solid var(--c-border);
  border-top: none;
  padding: 32px;
}

.deco-card-topbar::before {
  content: '';
  display: block;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--c-main), var(--c-accent));
}

/* Quote card */
.deco-card-quote {
  position: relative;
  background: #fff;
  padding: 36px 32px 32px;
  box-shadow: 0 2px 20px rgba(0, 40, 48, 0.08);
  border-left: 4px solid var(--c-accent);
  height: 100%;
}

.deco-card-quote::before {
  content: '\201C';
  font-family: 'Noto Serif JP', serif;
  font-size: 80px;
  color: var(--c-accent);
  opacity: 0.22;
  position: absolute;
  top: 4px;
  left: 18px;
  line-height: 1;
  pointer-events: none;
}

/* ===========================================
   Service Icon
   =========================================== */
.deco-service-icon {
  width: 56px;
  height: 56px;
  background: var(--c-main-light);
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: 3px solid var(--c-main);
  margin-bottom: 18px;
}

/* ===========================================
   Buttons
   =========================================== */
.deco-cta-shiny {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  position: relative;
  padding: 18px 44px;
  font-size: 16px;
  font-weight: 700;
  color: #fff !important;
  background: linear-gradient(135deg, var(--c-accent-dark), var(--c-accent));
  border: none;
  box-shadow: 0 6px 20px rgba(119, 160, 64, 0.35);
  cursor: pointer;
  text-decoration: none !important;
  text-align: center;
  overflow: hidden;
  transition: box-shadow .3s, transform .3s;
  letter-spacing: 0.05em;
  border-radius: 0;
}

.deco-cta-shiny::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50px;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.45), transparent);
  transform: skewX(-25deg);
  animation: shine 3.8s infinite;
}

@keyframes shine {
  0% { left: -100%; }
  40% { left: 130%; }
  100% { left: 130%; }
}

.deco-cta-shiny:hover {
  box-shadow: 0 8px 28px rgba(119, 160, 64, 0.55);
  transform: translateY(-2px);
}

/* Button inside wp:button block */
.wp-block-button.is-style-shiny .wp-block-button__link,
.wp-block-button.deco-cta-shiny-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  position: relative;
  padding: 18px 44px;
  font-size: 16px;
  font-weight: 700;
  color: #fff !important;
  background: linear-gradient(135deg, var(--c-accent-dark), var(--c-accent)) !important;
  border: none !important;
  box-shadow: 0 6px 20px rgba(119, 160, 64, 0.35);
  cursor: pointer;
  text-decoration: none !important;
  text-align: center;
  overflow: hidden;
  transition: box-shadow .3s, transform .3s;
  letter-spacing: 0.05em;
  border-radius: 0 !important;
}

.wp-block-button.is-style-outline-white .wp-block-button__link,
.wp-block-button.deco-cta-outline-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  font-size: 15px;
  font-weight: 700;
  color: #fff !important;
  background: transparent !important;
  border: 2px solid rgba(255, 255, 255, 0.85) !important;
  text-decoration: none !important;
  text-align: center;
  transition: all .3s;
  letter-spacing: 0.05em;
  border-radius: 0 !important;
}

.wp-block-button.is-style-outline-white .wp-block-button__link:hover,
.wp-block-button.deco-cta-outline-btn .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.15) !important;
  border-color: #fff !important;
}

/* Outline on main bg */
.deco-cta-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.85);
  text-decoration: none;
  text-align: center;
  transition: all .3s;
  letter-spacing: 0.05em;
}

.deco-cta-outline:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
}

/* Contact button (outlined, main color) */
.btn-contact-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--c-main);
  color: var(--c-main);
  font-size: 13px;
  font-weight: 700;
  padding: 8px 16px;
  transition: background .2s, color .2s;
  text-decoration: none;
}

.btn-contact-outline:hover {
  background: var(--c-main);
  color: #fff;
}

/* ===========================================
   Badges
   =========================================== */
.deco-badge {
  display: inline-block;
  background: var(--c-main-light);
  color: var(--c-main-dark);
  font-weight: 700;
  font-size: 12px;
  padding: 5px 12px;
  margin-right: 6px;
  margin-bottom: 6px;
  letter-spacing: 0.05em;
}

.deco-badge-accent {
  display: inline-block;
  background: var(--c-accent-light);
  color: var(--c-accent-dark);
  font-weight: 700;
  font-size: 12px;
  padding: 5px 12px;
  margin-right: 6px;
  margin-bottom: 6px;
  letter-spacing: 0.05em;
}

/* ===========================================
   Steps (Horizontal)
   =========================================== */
.lp-steps-h {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  position: relative;
}

.lp-steps-h::before {
  content: '';
  position: absolute;
  top: 26px;
  left: 12%;
  width: 76%;
  height: 2px;
  background: var(--c-main);
  opacity: 0.18;
}

/* ステップ番号は CSS カウンターで自動生成 */
.lp-steps-h.wp-block-columns {
  counter-reset: step-counter;
}

.lp-steps-h .wp-block-column {
  counter-increment: step-counter;
}

.lp-steps-h .wp-block-column::before {
  content: counter(step-counter, decimal-leading-zero);
  display: flex;
  width: 56px;
  height: 56px;
  background: #fff;
  border: 3px solid var(--c-main);
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  font-weight: 900;
  color: var(--c-main-dark);
  font-size: 20px;
  position: relative;
  z-index: 1;
  font-family: 'Noto Serif JP', serif;
}

@media (max-width: 768px) {
  .lp-steps-h { grid-template-columns: 1fr !important; gap: 28px; }
  .lp-steps-h::before { display: none; }
}

/* ===========================================
   Photo Cards (wp:cover ベース)
   =========================================== */
.wp-block-cover.deco-photo-card {
  overflow: hidden;
}

/* グラデーションオーバーレイ上書き */
.wp-block-cover.deco-photo-card .wp-block-cover__background {
  background: linear-gradient(to top, rgba(0, 40, 48, 0.88) 0%, rgba(0, 40, 48, 0.25) 55%, transparent 100%) !important;
  opacity: 1 !important;
}

/* ホバー時に画像ズーム */
.wp-block-cover.deco-photo-card .wp-block-cover__image-background {
  transition: transform .6s ease;
}

.wp-block-cover.deco-photo-card:hover .wp-block-cover__image-background {
  transform: scale(1.04);
}

/* 内側コンテンツのパディング */
.wp-block-cover.deco-photo-card .wp-block-cover__inner-container {
  padding: 28px;
  width: 100%;
}

.deco-photo-card-tag {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: #B9DC85 !important;
  font-weight: 700;
  margin-bottom: 8px !important;
}

/* ===========================================
   Hover Lift
   =========================================== */
.hover-lift { transition: transform .25s, box-shadow .25s; }
.hover-lift:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(0, 40, 48, 0.12); }

/* ===========================================
   Fade In Animation
   =========================================== */
.fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1);
}

.fade-in.visible { opacity: 1; transform: translateY(0); }

/* ===========================================
   Statistics Number
   =========================================== */
.stat-num {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  color: var(--c-main);
  line-height: 1;
}

/* ===========================================
   Header
   =========================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.header-ticker {
  background: var(--c-bg-paper);
  border-bottom: 1px solid var(--c-border);
  display: none;
}

@media (min-width: 768px) {
  .header-ticker { display: block; }
}

.header-ticker-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 32px;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--c-text-sub);
}

.header-main {
  background: #fff;
  border-bottom: 1px solid var(--c-border);
}

.header-main-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}

.header-logo-link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.header-logo-link:hover { opacity: 0.85; }

.header-logo-anchor {
  display: flex;
  align-items: center;
  text-decoration: none;
  line-height: 0;
}

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

.header-site-name {
  font-weight: 900;
  color: var(--c-heading);
  font-size: 17px;
  letter-spacing: 0.06em;
  line-height: 1;
}

.header-site-name-en {
  font-size: 10px;
  color: var(--c-text-sub);
  letter-spacing: 0.25em;
  margin-top: 4px !important;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

.header-phone {
  display: none;
  align-items: center;
  gap: 8px;
  padding-right: 16px;
  border-right: 1px solid var(--c-border);
}

@media (min-width: 1024px) {
  .header-phone { display: flex; }
}

.header-phone-text {
  display: flex;
  flex-direction: column;
}

.header-phone-number {
  font-weight: 700;
  font-size: 15px;
  color: var(--c-heading);
  letter-spacing: 0.1em;
  line-height: 1;
}

.header-phone-hours {
  font-size: 10px;
  color: var(--c-text-sub);
  margin-top: 2px;
}

.header-contact-btn {
  display: none;
}

@media (min-width: 640px) {
  .header-contact-btn { display: inline-flex; }
}

/* Navigation */
.header-nav-bar {
  background: var(--c-main);
  display: none;
}

@media (min-width: 768px) {
  .header-nav-bar { display: block; }
}

.header-nav-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 36px;
  height: 48px;
}

.header-nav-item {
  margin: 0 !important;
  display: inline-flex;
  align-items: center;
}

.header-nav-link {
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-decoration: none;
  transition: color .2s;
}

.header-nav-link:hover { color: var(--c-accent); }

.header-nav-meta {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 20px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 11px;
}

.header-nav-meta-date {
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* Mobile menu button */
.mobile-menu-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}

@media (min-width: 768px) {
  .mobile-menu-btn { display: none; }
}

/* Mobile menu panel */
.mobile-menu-panel {
  display: none;
  background: var(--c-main);
}

.mobile-menu-panel.is-open { display: block; }

.mobile-menu-panel .mobile-menu-item {
  margin: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.mobile-menu-panel .mobile-menu-item:last-child {
  border-bottom: none;
}

.mobile-menu-panel .mobile-menu-item a {
  display: block;
  color: #fff;
  padding: 12px 20px;
  font-size: 14px;
  text-decoration: none;
}

/* ===========================================
   Hero Section
   =========================================== */
/* wp:cover ベースのヒーロー */
.wp-block-cover.lp-hero {
  height: 640px !important;
  min-height: 0 !important;
  overflow: hidden;
  background: #8CB9C4;
  padding: 0 !important;
}

/* グラデーションオーバーレイ（wp:cover の span を上書き） */
.wp-block-cover.lp-hero .wp-block-cover__background {
  background: linear-gradient(to top, rgba(0, 30, 40, 0.78) 0%, rgba(0, 30, 40, 0.30) 55%, rgba(0, 30, 40, 0.18) 100%) !important;
  opacity: 1 !important;
}

/* サイドラベルは CSS で再現 */
.wp-block-cover.lp-hero::after {
  content: 'MINATOGAWA JC | SINCE 1974';
  display: none;
  position: absolute;
  left: 20px;
  top: 96px;
  z-index: 10;
  color: rgba(255, 255, 255, 0.7);
  writing-mode: vertical-rl;
  letter-spacing: 0.4em;
  font-size: 11px;
  pointer-events: none;
}

@media (min-width: 768px) {
  .wp-block-cover.lp-hero::after { display: block; }
}

.lp-hero-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 16px;
  width: 100%;
}

.lp-hero-subtitle {
  display: inline-block;
  color: var(--c-accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.4em;
  margin-bottom: 20px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

@media (min-width: 768px) {
  .lp-hero-subtitle { font-size: 12px; }
}

.lp-hero-heading {
  font-family: 'Noto Serif JP', serif;
  color: #fff !important;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 24px;
  font-size: clamp(32px, 5vw, 60px);
  letter-spacing: 0.02em;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}

.lp-hero-body {
  color: #fff;
  font-size: 15px;
  max-width: 640px;
  margin-bottom: 40px;
  line-height: 2;
  opacity: 0.92;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}

@media (min-width: 640px) {
  .lp-hero-body { font-size: 17px; }
}

.lp-hero-buttons.wp-block-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-top: 0;
}

.lp-hero-meta {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 40, 48, 0.55);
  backdrop-filter: blur(6px);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  z-index: 5;
  display: none;
}

@media (min-width: 768px) {
  .lp-hero-meta { display: block; }
}

.lp-hero-meta-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.08em;
}

.lp-hero-meta-inner .dot {
  color: #99BF60;
  margin-right: 8px;
  font-style: normal;
}

.lp-hero-stat {
  color: rgba(255, 255, 255, 0.9);
  font-size: 12px;
  letter-spacing: 0.08em;
  margin: 0;
  white-space: nowrap;
}

.lp-hero-stat::before {
  content: '●';
  color: #99BF60;
  margin-right: 8px;
  font-style: normal;
}

.lp-hero-stat strong {
  color: #fff;
  font-weight: 700;
}

.lp-hero-stat-last {
  margin-left: auto;
}

/* ===========================================
   About Section
   =========================================== */
.lp-about {
  background: var(--c-bg-sub);
  padding: 80px 16px;
}

@media (min-width: 768px) {
  .lp-about { padding: 112px 16px; }
}

.lp-about-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.lp-about-lead {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  font-size: clamp(22px, 2.8vw, 32px);
  color: var(--c-main);
  line-height: 1.7;
  margin-bottom: 40px;
  letter-spacing: 0.04em;
}

.lp-about-text {
  text-align: left;
  font-size: 15px;
  line-height: 2.2;
  color: var(--c-text);
}

@media (min-width: 768px) {
  .lp-about-text { font-size: 16px; }
}

/* ===========================================
   Activities Section
   =========================================== */
.lp-activities {
  padding: 80px 16px;
  background: #fff;
}

@media (min-width: 768px) {
  .lp-activities { padding: 112px 16px; }
}

.lp-activities-header {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-bottom: 48px;
}

@media (min-width: 768px) {
  .lp-activities-header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.lp-activities-sub {
  font-size: 13px;
  color: var(--c-text-sub);
  line-height: 1.9;
}

@media (min-width: 768px) {
  .lp-activities-sub {
    font-size: 14px;
    max-width: 360px;
  }
}

.lp-activities-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 768px) {
  .lp-activities-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}

/* Schedule table */
.lp-schedule {
  margin-top: 56px;
}

.lp-schedule-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.lp-schedule-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: var(--c-accent-dark);
}

.lp-schedule-line {
  height: 1px;
  flex: 1;
  background: var(--c-border);
}

.lp-schedule-year {
  font-size: 11px;
  color: var(--c-text-sub);
  letter-spacing: 0.1em;
}

.lp-schedule-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-left: 1px solid var(--c-border);
  border-top: 1px solid var(--c-border);
}

@media (min-width: 768px) {
  .lp-schedule-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 1024px) {
  .lp-schedule-grid { grid-template-columns: repeat(6, 1fr); }
}

.lp-schedule-cell {
  border-right: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  padding: 16px;
}

.lp-schedule-cell.is-highlight {
  background: var(--c-accent-light);
}

.lp-schedule-month {
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--c-text-sub);
  font-weight: 700;
}

.lp-schedule-cell.is-highlight .lp-schedule-month {
  color: var(--c-accent-dark);
}

.lp-schedule-event {
  font-size: 13px;
  font-weight: 700;
  color: var(--c-heading);
  margin-top: 4px;
  line-height: 1.6;
}

/* Service card inner */
.lp-service-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: var(--c-accent-dark);
  margin-bottom: 8px;
}

.lp-service-meta {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--c-border);
  font-size: 12px;
  color: var(--c-text-sub);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ===========================================
   Voice Section
   =========================================== */
.lp-voice {
  padding: 80px 16px;
  background: var(--c-main);
}

@media (min-width: 768px) {
  .lp-voice { padding: 112px 16px; }
}

.lp-voice-sub {
  color: #fff;
  text-align: center;
  font-size: 14px;
  margin-bottom: 56px;
  opacity: 0.75;
}

.lp-voice-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 768px) {
  .lp-voice-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.lp-voice-card-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  position: relative;
  z-index: 10;
}

.lp-voice-card-info {
  flex: 1;
}

.lp-voice-card-avatar-wrap.wp-block-image {
  flex-shrink: 0;
  margin: 0;
  width: 64px;
  height: 64px;
}

.lp-voice-card-avatar-wrap.wp-block-image img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--c-accent-light);
  display: block;
  margin: 0;
}

.lp-voice-meta {
  font-size: 12px;
  color: var(--c-text-sub);
  letter-spacing: 0.05em;
  margin: 0 0 12px;
}

.lp-voice-card-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--c-accent-light);
  flex-shrink: 0;
}

.lp-voice-card-name {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  font-size: 16px;
  color: var(--c-heading);
  line-height: 1.2;
  margin: 0;
}

.lp-voice-card-role {
  font-size: 11px;
  color: var(--c-text-sub);
  margin: 4px 0 0;
}

.lp-voice-card-text {
  font-size: 14px;
  line-height: 2.1;
  color: var(--c-text);
}

/* ===========================================
   Join Section
   =========================================== */
.lp-join {
  background: var(--c-bg-sub);
  padding: 80px 16px;
}

@media (min-width: 768px) {
  .lp-join { padding: 112px 16px; }
}

.lp-join .lp-container-md {
  text-align: center;
}

.lp-join-badge {
  display: inline-block;
  margin-bottom: 24px;
  font-size: 13px;
  padding: 8px 18px;
}

.lp-join-pricing {
  margin-top: 56px;
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid var(--c-border);
  background: #fff;
}

@media (min-width: 640px) {
  .lp-join-pricing { grid-template-columns: repeat(3, 1fr); }
}

.lp-join-pricing-cell {
  padding: 24px;
  border-bottom: 1px solid var(--c-border);
  text-align: left;
}

@media (min-width: 640px) {
  .lp-join-pricing-cell {
    border-bottom: none;
    border-right: 1px solid var(--c-border);
  }

  .lp-join-pricing-cell:last-child { border-right: none; }
}

.lp-join-pricing-label {
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--c-text-sub);
  font-weight: 700;
  margin-bottom: 8px;
}

.lp-join-pricing-num {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  color: var(--c-main);
  font-size: 24px;
  line-height: 1;
}

.lp-join-pricing-sub {
  font-size: 12px;
  color: var(--c-text-sub);
  margin-top: 8px;
}

/* ===========================================
   CTA Section
   =========================================== */
.lp-cta {
  background: var(--c-main);
  position: relative;
  overflow: hidden;
  padding: 80px 16px;
  text-align: center;
}

.lp-cta-heading {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  color: #fff !important;
  font-size: clamp(20px, 3vw, 30px);
  margin-bottom: 12px;
  line-height: 1.5;
}

.lp-cta-sub {
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  margin-bottom: 40px;
}

@media (min-width: 768px) {
  .lp-cta-sub { font-size: 15px; }
}

.lp-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-bottom: 24px;
}

.lp-cta-note {
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
}

.lp-cta .lp-container-sm {
  position: relative;
  z-index: 10;
}

/* ===========================================
   FAQ Section
   =========================================== */
.lp-faq {
  padding: 80px 16px;
  background: #fff;
}

@media (min-width: 768px) {
  .lp-faq { padding: 112px 16px; }
}

.lp-faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lp-faq-item {
  border: 1px solid var(--c-border);
  overflow: hidden;
}

.lp-faq-q {
  padding: 20px 24px;
  display: flex;
  align-items: flex-start;
  gap: 0;
  font-weight: 700;
  color: var(--c-heading);
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
  background: #fff;
}

.lp-faq-q::before {
  content: 'Q.';
  font-family: 'Noto Serif JP', serif;
  color: var(--c-main);
  font-weight: 900;
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
  margin-right: 16px;
  padding-top: 1px;
}

.lp-faq-a {
  padding: 8px 24px 24px;
  background: var(--c-bg-paper);
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: 14px;
  line-height: 2;
  color: var(--c-text);
  margin: 0;
}

.lp-faq-a::before {
  content: 'A.';
  font-family: 'Noto Serif JP', serif;
  color: var(--c-accent-dark);
  font-weight: 900;
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
  padding-top: 4px;
}

/* ===========================================
   Footer
   =========================================== */
.site-footer {
  background: var(--c-accent);
  position: relative;
}

.footer-svg-wrap {
  line-height: 0;
}

.footer-body {
  background: var(--c-accent);
}

.footer-body-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 56px 20px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}

@media (min-width: 768px) {
  .footer-grid { grid-template-columns: 7fr 5fr; }
}

.footer-logo-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.footer-org-name {
  color: #fff;
  font-weight: 900;
  font-size: 19px;
  line-height: 1;
}

.footer-org-name-en {
  color: rgba(255, 255, 255, 0.7);
  font-size: 11px;
  letter-spacing: 0.25em;
  margin-top: 4px;
}

.footer-info-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 13px;
  line-height: 1.9;
}

.footer-info-icon {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 3px;
}

.footer-links {
  margin-top: 32px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 24px;
}

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

.footer-link {
  color: rgba(255, 255, 255, 0.9);
  font-size: 12px;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color .2s;
}

.footer-link:hover { color: #fff; }

.footer-cta-col {
  padding-top: 0;
}

@media (min-width: 768px) {
  .footer-cta-col {
    padding-left: 32px;
    border-left: 1px solid rgba(255, 255, 255, 0.25);
  }
}

.footer-cta-heading {
  font-family: 'Noto Serif JP', serif;
  color: #fff;
  font-weight: 900;
  font-size: 22px;
  margin-bottom: 8px;
}

.footer-cta-text {
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  margin-bottom: 24px;
  line-height: 1.95;
}

.footer-social {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
}

.footer-social-icon {
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: background .2s;
}

.footer-social-icon:hover { background: rgba(255, 255, 255, 0.25); }

.footer-bottom {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

@media (min-width: 640px) {
  .footer-bottom { flex-direction: row; }
}

.footer-copyright {
  color: rgba(255, 255, 255, 0.7);
  font-size: 11px;
  letter-spacing: 0.1em;
}

.footer-bottom-links {
  display: flex;
  gap: 20px;
  font-size: 11px;
}

.footer-bottom-link {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color .2s;
}

.footer-bottom-link:hover { color: #fff; }

/* ===========================================
   WordPress Block Overrides
   =========================================== */

/* Remove default block margins inside LP sections */
.lp-hero .wp-block-group,
.lp-about .wp-block-group,
.lp-activities .wp-block-group,
.lp-voice .wp-block-group,
.lp-join .wp-block-group,
.lp-cta .wp-block-group,
.lp-faq .wp-block-group {
  margin-top: 0;
  margin-bottom: 0;
}

/* Heading block color overrides */
.lp-hero .wp-block-heading { color: #fff; }
.lp-voice .wp-block-heading { color: #fff; }
.lp-cta .wp-block-heading { color: #fff; }

/* Cover block overlay matching our design */
.wp-block-cover.lp-hero-cover {
  min-height: 640px;
  padding: 0;
}

/* Remove WordPress default padding on full-width groups */
.alignfull { margin-left: 0 !important; margin-right: 0 !important; }

/* Columns block gap override */
.lp-activities-grid.wp-block-columns { gap: 24px !important; }
.lp-voice-grid.wp-block-columns { gap: 24px !important; }

/* Steps columns: keep grid layout, override WP columns flex */
.lp-steps-h.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  flex-wrap: unset;
}

.lp-steps-h .wp-block-column {
  flex-grow: unset;
  flex-basis: unset;
  min-width: unset;
}

@media (max-width: 768px) {
  .lp-steps-h.wp-block-columns {
    grid-template-columns: 1fr !important;
  }
}

.lp-step-h-title {
  font-weight: 900 !important;
  font-size: clamp(15px, 1.5vw, 17px) !important;
  color: #002830;
  margin-bottom: 12px;
  margin-top: 0;
}

.lp-step-h-body {
  font-size: 13px;
  line-height: 1.95;
  color: #4B4A48;
  margin: 0;
}

/* Photo card content as wp:group */
.deco-photo-card-content.wp-block-group {
  margin: 0;
}

/* Photo card background as wp:image */
.deco-photo-card-bg.wp-block-image {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.deco-photo-card-bg.wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
  transition: transform .6s ease;
}

.deco-photo-card:hover .deco-photo-card-bg.wp-block-image img {
  transform: scale(1.04);
}

.deco-photo-card-icon-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.deco-photo-card-heading {
  color: #fff !important;
  font-size: clamp(18px, 2vw, 22px) !important;
  font-weight: 900 !important;
  margin: 0 0 8px !important;
}

.deco-photo-card-desc {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
  margin: 0 !important;
}

/* Button reset */
.wp-block-button .wp-block-button__link {
  border-radius: 0 !important;
  font-family: 'Noto Sans JP', sans-serif;
}

/* CTA セクションの wp:buttons */
.lp-cta-buttons.wp-block-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-bottom: 24px;
}

/* スケジュールグリッド wp:columns */
.lp-schedule-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  flex-wrap: unset;
  margin: 0 !important;
}

@media (max-width: 640px) {
  .lp-schedule-grid.wp-block-columns {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

.lp-schedule-cell.wp-block-column {
  padding: 16px;
  border-right: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  flex: unset;
  flex-basis: unset;
  min-width: unset;
}

.lp-schedule-cell.wp-block-column:last-child {
  border-right: none;
}

/* join バッジ（wp:paragraph） */
.lp-join-badge.wp-block-paragraph {
  display: inline-block;
}

/* ===========================================
   Header/Footer: ブロック化後の調整
   wp:group / wp:paragraph に置き換えた要素について
   既存CSSと齟齬が出ないよう最小限の調整を行う
   =========================================== */

/* wp:group の余白を無効化（ヘッダー/フッター内） */
.site-header .wp-block-group,
.site-footer .wp-block-group {
  margin-top: 0;
  margin-bottom: 0;
}

/* wp:paragraph（<p>）のデフォルト余白を無効化 */
.site-header p.header-ticker-left,
.site-header p.header-ticker-right,
.site-header p.header-site-name,
.site-header p.header-site-name-en,
.site-header p.header-phone-number,
.site-header p.header-phone-hours,
.site-header p.header-nav-item,
.site-header p.header-nav-meta-label,
.site-header p.header-nav-meta-date,
.site-header p.mobile-menu-item {
  margin: 0;
}

.site-footer p.footer-org-name,
.site-footer p.footer-org-name-en,
.site-footer p.footer-info-text,
.site-footer p.footer-link-item,
.site-footer p.footer-cta-heading,
.site-footer p.footer-cta-text,
.site-footer p.footer-copyright,
.site-footer p.footer-bottom-link-item {
  margin: 0;
}

/* フッター：wp:paragraph 化したことで失われた上下余白を復元 */
.site-footer p.footer-org-name-en { margin-top: 4px; }
.site-footer p.footer-cta-heading { margin-bottom: 8px; }
.site-footer p.footer-cta-text    { margin-bottom: 24px; }

/* フッターロゴ右のテキスト列（wp:group で新設） */
.footer-logo-text {
  display: flex;
  flex-direction: column;
}

/* フッターCTAの「入会案内を見る」ボタンを左寄せ */
.footer-cta-col .deco-cta-outline {
  align-self: flex-start;
}


/* hero ボタン行の margin リセット */
.wp-block-cover.lp-hero .wp-block-group,
.wp-block-cover.lp-hero .wp-block-heading,
.wp-block-cover.lp-hero .wp-block-paragraph,
.wp-block-cover.lp-hero .wp-block-buttons {
  margin-top: 0;
  margin-bottom: 0;
}

/* ===========================================
   Page Layout
   =========================================== */
.page-template-page-lp .wp-site-blocks {
  padding: 0;
}

.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: min(var(--wp--style--global--content-size, 760px), 100%);
  margin-left: auto;
  margin-right: auto;
}

/* ===========================================
   ヘッダー／フッター: アイコンを CSS で提供
   ( wp:html を使わないことで、編集画面にコード箱を出さない )
   =========================================== */

/* --- ヘッダー ロゴ --- */
.site-header .header-logo-link {
  display: flex;
  align-items: center;
  gap: 12px;
}
.site-header .header-logo-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 40 40'><rect x='2' y='2' width='36' height='36' fill='%23004A57'/><path d='M8 26 L20 10 L32 26 Z' fill='%2399BF60'/><circle cx='20' cy='24' r='3' fill='%23fff'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  font-size: 0;
  line-height: 0;
  color: transparent;
  user-select: none;
}

/* --- ヘッダー 電話（左に電話アイコン） --- */
.site-header .header-phone {
  display: none;
  align-items: center;
  gap: 8px;
  padding-right: 16px;
  border-right: 1px solid var(--c-border);
}
@media (min-width: 1024px) {
  .site-header .header-phone { display: flex; }
}
.site-header .header-phone::before {
  content: "";
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23004A57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12 19.79 19.79 0 0 1 1.61 3.41 2 2 0 0 1 3.6 1h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.91 8.6a16 16 0 0 0 6 6l.92-.92a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
}

/* --- ヘッダー 「お問い合わせ」ボタン (wp:button) --- */
.wp-block-buttons.header-contact-buttons {
  margin: 0;
  display: none;
}
@media (min-width: 640px) {
  .wp-block-buttons.header-contact-buttons { display: inline-flex; }
}
.wp-block-button.header-contact-btn {
  margin: 0;
}
.wp-block-button.header-contact-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border: 1px solid var(--c-main);
  background: transparent;
  color: var(--c-main);
  font-size: 13px;
  font-weight: 700;
  border-radius: 0;
  text-decoration: none;
  box-shadow: none;
  transition: background .2s, color .2s;
}
.wp-block-button.header-contact-btn .wp-block-button__link::before {
  content: "";
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect width='20' height='16' x='2' y='4' rx='2'/><path d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
}
.wp-block-button.header-contact-btn .wp-block-button__link:hover {
  background: var(--c-main);
  color: #fff;
}

/* --- ヘッダー モバイルメニューボタン (wp:button) --- */
.wp-block-buttons.mobile-menu-btn-wrap {
  margin: 0;
  display: flex;
}
@media (min-width: 768px) {
  .wp-block-buttons.mobile-menu-btn-wrap { display: none; }
}
.wp-block-button.mobile-menu-btn {
  margin: 0;
}
.wp-block-button.mobile-menu-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  background: transparent;
  color: #002830;
  border: none;
  border-radius: 0;
  font-size: 22px;
  line-height: 1;
  box-shadow: none;
  text-decoration: none;
  cursor: pointer;
}

/* --- フッター ロゴ --- */
.site-footer .footer-logo-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.site-footer .footer-logo-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 40 40'><rect x='2' y='2' width='36' height='36' fill='%23fff'/><path d='M8 26 L20 10 L32 26 Z' fill='%2399BF60'/><circle cx='20' cy='24' r='3' fill='%23004A57'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  font-size: 0;
  line-height: 0;
  color: transparent;
  user-select: none;
}

/* --- フッター 情報アイテム（左に各アイコン） --- */
.site-footer .footer-info-item {
  display: block;
  position: relative;
  padding-left: 28px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 13px;
  line-height: 1.9;
  margin: 0 0 12px 0 !important;
}
.site-footer .footer-info-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 16px;
  height: 16px;
  background-repeat: no-repeat;
  background-size: contain;
}
.site-footer .footer-info-address::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/><circle cx='12' cy='10' r='3'/></svg>");
}
.site-footer .footer-info-phone::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 12 19.79 19.79 0 0 1 1.61 3.41 2 2 0 0 1 3.6 1h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.91 8.6a16 16 0 0 0 6 6l.92-.92a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
}
.site-footer .footer-info-hours::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>");
}
.site-footer .footer-info-email::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect width='20' height='16' x='2' y='4' rx='2'/><path d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/></svg>");
}

/* --- フッター CTA ボタン (wp:button) --- */
.wp-block-buttons.footer-cta-buttons {
  margin: 0;
}
.wp-block-button.footer-cta-btn {
  margin: 0;
}
.wp-block-button.footer-cta-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.85);
  border-radius: 0;
  letter-spacing: 0.05em;
  text-decoration: none;
  box-shadow: none;
  transition: all .3s;
}
.wp-block-button.footer-cta-btn .wp-block-button__link::after {
  content: "";
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='m12 5 7 7-7 7'/></svg>");
  background-repeat: no-repeat;
  background-size: contain;
}
.wp-block-button.footer-cta-btn .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
}

/* --- フッター SNS アイコン --- */
.site-footer .footer-social {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
}
.site-footer .footer-social-icon {
  width: 36px;
  height: 36px;
  margin: 0 !important;
  background: rgba(255, 255, 255, 0.15);
  transition: background .2s;
  overflow: hidden;
}
.site-footer .footer-social-icon:hover {
  background: rgba(255, 255, 255, 0.25);
}
.site-footer .footer-social-icon a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-size: 16px 16px;
  background-position: center;
  font-size: 0;
  color: transparent;
  text-decoration: none;
}
.site-footer .footer-social-fb a {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M13.5 21v-8h2.7l.4-3.1h-3.1V7.9c0-.9.3-1.5 1.6-1.5h1.7V3.6c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.5-4 4.1v2.3H7.7V13h2.7v8h3.1z'/></svg>");
}
.site-footer .footer-social-ig a {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='4'/><circle cx='12' cy='12' r='4'/><circle cx='17.5' cy='6.5' r='1' fill='%23ffffff'/></svg>");
}
.site-footer .footer-social-yt a {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M21.6 7.2c-.2-.9-.9-1.6-1.8-1.8C18.3 5 12 5 12 5s-6.3 0-7.8.4c-.9.2-1.6.9-1.8 1.8C2 8.7 2 12 2 12s0 3.3.4 4.8c.2.9.9 1.6 1.8 1.8C5.7 19 12 19 12 19s6.3 0 7.8-.4c.9-.2 1.6-.9 1.8-1.8.4-1.5.4-4.8.4-4.8s0-3.3-.4-4.8zM10 15V9l5 3-5 3z'/></svg>");
}

/* --- フッター 下段リンク --- */
.site-footer .footer-bottom-links {
  display: flex;
  gap: 20px;
  font-size: 11px;
}

/* ===========================================
   NEWS / お知らせ（トップ新着・一覧・記事詳細）
   =========================================== */

/* トップページの新着お知らせセクション */
.lp-news {
  padding: 80px 16px;
  background: var(--c-bg-paper);
}
@media (min-width: 768px) {
  .lp-news { padding: 112px 16px; }
}

/* お知らせリスト（トップ新着・一覧で共通） */
.lp-news-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.lp-news-list li { margin: 0; }

.lp-news-item {
  display: flex;
  align-items: baseline;
  gap: 24px;
  padding: 18px 4px;
  border-bottom: 1px solid var(--c-border);
}

.lp-news-meta {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}

.lp-news-date {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--c-text-sub);
}
.lp-news-date time { color: inherit; }

.lp-news-cat { line-height: 1; }
.lp-news-cat a {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--c-main);
  background: var(--c-main-light);
  padding: 3px 10px;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.lp-news-cat a:hover { background: var(--c-accent-light); color: var(--c-accent-dark); }

.lp-news-title {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
}
.lp-news-title a {
  color: var(--c-heading);
  text-decoration: none;
  transition: color .2s;
}
.lp-news-title a:hover { color: var(--c-accent-dark); }

.lp-news-empty {
  padding: 40px 0;
  color: var(--c-text-sub);
}

@media (max-width: 640px) {
  .lp-news-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

/* 「ニュース一覧へ」/「一覧へ戻る」ボタン（白地・枠線） */
.lp-news-more { justify-content: center; margin-top: 44px; }
.lp-single-back { justify-content: center; margin-top: 56px; }
.lp-news-more-btn .wp-block-button__link,
.lp-single-back-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 38px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--c-main) !important;
  background: #fff !important;
  border: 1.5px solid var(--c-main) !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  transition: color .25s, background .25s;
}
.lp-news-more-btn .wp-block-button__link:hover,
.lp-single-back-btn .wp-block-button__link:hover {
  color: #fff !important;
  background: var(--c-main) !important;
}

/* お知らせ一覧ページ（/news/） */
.lp-page-main { background: #fff; }
.lp-news-archive {
  padding: 72px 16px 96px;
}
@media (min-width: 768px) {
  .lp-news-archive { padding: 96px 16px 120px; }
}
.lp-news-archive .lp-news-item {
  display: block;
  padding: 26px 4px;
}
.lp-news-archive .lp-news-meta { margin-bottom: 12px; }
.lp-news-archive .lp-news-title { font-size: 18px; margin-bottom: 10px; }
.lp-news-excerpt {
  margin: 0;
  font-size: 14px;
  line-height: 1.95;
  color: var(--c-text);
}
.lp-news-excerpt a { color: var(--c-main); }

/* ページネーション */
.lp-news-pagination {
  margin-top: 48px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  align-items: center;
}
.lp-news-pagination .page-numbers {
  display: inline-flex;
  min-width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border: 1px solid var(--c-border);
  color: var(--c-main);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.lp-news-pagination a.page-numbers:hover { background: var(--c-main-light); }
.lp-news-pagination .page-numbers.current {
  background: var(--c-main);
  color: #fff;
  border-color: var(--c-main);
}

/* 記事詳細（single） */
.lp-single {
  padding: 64px 16px 88px;
}
@media (min-width: 768px) {
  .lp-single { padding: 88px 16px 112px; }
}
.lp-single-head {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--c-border);
}
.lp-single-head .lp-news-meta { margin-bottom: 16px; }
.lp-single-title { margin: 0; color: var(--c-heading); }
.lp-single-thumb { margin: 0 0 32px; }
.lp-single-thumb img { width: 100%; height: auto; }
.lp-single-content {
  font-size: 16px;
  line-height: 2;
  color: var(--c-text);
}
.lp-single-content > * { margin-top: 0; margin-bottom: 1.6em; }
.lp-single-content h2 {
  font-size: 22px;
  font-weight: 900;
  color: var(--c-heading);
  margin: 2em 0 .8em;
  padding-left: 14px;
  border-left: 4px solid var(--c-accent);
  line-height: 1.5;
}
.lp-single-content h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--c-heading);
  margin: 1.8em 0 .6em;
}
.lp-single-content img { height: auto; }
.lp-single-content a { color: var(--c-main); text-decoration: underline; }
.lp-single-content ul,
.lp-single-content ol { padding-left: 1.4em; }
.lp-single-content blockquote {
  margin: 1.6em 0;
  padding: 16px 20px;
  border-left: 4px solid var(--c-border);
  background: var(--c-bg-sub);
  color: var(--c-text);
}

/* ===========================================
   お問い合わせページ（/contact/ ・ Snow Monkey Forms）
   =========================================== */
.lp-contact {
  padding: 64px 16px 96px;
}
@media (min-width: 768px) {
  .lp-contact { padding: 88px 16px 120px; }
}
.lp-contact-lead {
  max-width: 640px;
  margin: 0 auto 48px;
  text-align: center;
  font-size: 15px;
  line-height: 2;
  color: var(--c-text);
}

/* フォーム入力欄（Snow Monkey Forms の出力を装飾） */
.lp-contact .smf-text-control__control,
.lp-contact .smf-email-control__control,
.lp-contact .smf-tel-control__control,
.lp-contact .smf-textarea-control__control,
.lp-contact .smf-select-control__control,
.lp-contact input[type="text"],
.lp-contact input[type="email"],
.lp-contact input[type="tel"],
.lp-contact input[type="number"],
.lp-contact input[type="url"],
.lp-contact textarea,
.lp-contact select {
  width: 100%;
  padding: 12px 14px;
  font-size: 15px;
  font-family: inherit;
  color: var(--c-text);
  background: var(--c-bg-paper);
  border: 1px solid var(--c-border);
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}
.lp-contact textarea,
.lp-contact .smf-textarea-control__control { min-height: 160px; resize: vertical; }
.lp-contact input:focus,
.lp-contact textarea:focus,
.lp-contact select:focus,
.lp-contact .smf-text-control__control:focus,
.lp-contact .smf-email-control__control:focus,
.lp-contact .smf-tel-control__control:focus,
.lp-contact .smf-textarea-control__control:focus {
  outline: none;
  border-color: var(--c-main);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(0, 74, 87, 0.08);
}

/* Snow Monkey Forms：項目・ラベル */
.lp-contact .smf-item { margin-bottom: 26px; }
.lp-contact .smf-item__label,
.lp-contact .smf-item__col--label {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--c-heading);
}
.lp-contact .smf-item__label__required,
.lp-contact .smf-item__col--label .smf-item__label__required {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 8px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: var(--c-accent-dark);
}
.lp-contact table.smf-item__col,
.lp-contact .smf-item__col { display: block; width: 100%; }

/* 送信ボタン・確認/戻るボタン */
.lp-contact .smf-button-control__control,
.lp-contact button[type="submit"],
.lp-contact input[type="submit"],
.lp-contact input[type="button"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 48px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff !important;
  background: linear-gradient(135deg, var(--c-accent-dark), var(--c-accent)) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: 0 6px 20px rgba(119, 160, 64, 0.35);
  cursor: pointer;
  transition: box-shadow .3s, transform .3s;
}
.lp-contact .smf-button-control__control:hover,
.lp-contact button[type="submit"]:hover,
.lp-contact input[type="submit"]:hover {
  box-shadow: 0 8px 28px rgba(119, 160, 64, 0.55);
  transform: translateY(-2px);
}
.lp-contact .smf-button-row,
.lp-contact .smf-action {
  margin-top: 32px;
  text-align: center;
}
/* 「戻る」ボタンは控えめに */
.lp-contact .smf-button-control[data-action="back"] .smf-button-control__control,
.lp-contact .smf-button--back .smf-button-control__control {
  color: var(--c-main) !important;
  background: #fff !important;
  border: 1.5px solid var(--c-main) !important;
  box-shadow: none;
}
