/*
Theme Name: 【沖縄】完全無料の女性向き出会い系【2026年最新】おすすめ優良マッチングアプリ比較＆安全な出会い方ガイド WPテーマ
Theme URI: https://example.com/
Author: Antigravity Migration System
Author URI: https://example.com/
Description: Antigravityで生成されたホームページのデザイン・レイアウト・アセットを完全維持しつつ、固定ページおよびブロックエディタ（Gutenberg）で自由編集可能にしたWordPressテーマです。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ag-migrated-theme
*/

/* WordPress Core Alignment & Block Compatibility */
.alignwide { max-width: 1200px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
.wp-block-group { box-sizing: border-box; }
.wp-block-group:not([class*="is-layout-flex"]) { display: inherit; }
.wp-block-image img { max-width: 100%; height: auto; }
.site-logo, .logo-wrap, .header-logo, .brand { flex-shrink: 0; }
.ag-wp-menu-list { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; align-items: center; flex-wrap: wrap; }
.ag-wp-menu-list li { margin: 0; padding: 0; display: inline-flex; align-items: center; }
.ag-wp-menu-list a { text-decoration: none; color: inherit; padding: 0.35rem 0.65rem; border-radius: 6px; transition: all 0.2s ease; }

/* Keep original header nav layout seamless with WordPress ul menu */
.header-nav ul.ag-wp-menu-list,
.header-nav ul.ag-nav-list,
nav.header-nav ul,
header nav ul {
  display: flex !important;
  gap: inherit !important;
  align-items: center !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-wrap: wrap;
}
.header-nav ul li,
nav.header-nav ul li,
header nav ul li {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Navigation Uniform Menu Design (通常メニュー項目の統一デザイン：固有バッジやCTAボタンは元デザインを最優先保持) */
.header-nav ul li a:not(.rec-badge-link):not(.nav-cta-btn):not([class*="badge"]):not([class*="btn"]):not([class*="spark"]),
nav.header-nav ul li a:not(.rec-badge-link):not(.nav-cta-btn):not([class*="badge"]):not([class*="btn"]):not([class*="spark"]),
header nav ul li a:not(.rec-badge-link):not(.nav-cta-btn):not([class*="badge"]):not([class*="btn"]):not([class*="spark"]),
.ag-wp-menu-list a:not(.rec-badge-link):not(.nav-cta-btn):not([class*="badge"]):not([class*="btn"]):not([class*="spark"]),
.ag-nav-list a:not(.rec-badge-link):not(.nav-cta-btn):not([class*="badge"]):not([class*="btn"]):not([class*="spark"]) {
  background-color: transparent !important;
  background: transparent !important;
  color: inherit !important;
  text-decoration: none !important;
  padding: 0.45rem 0.75rem !important;
  border-radius: 0 !important;
  border-bottom: 2px solid transparent !important;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  transition: color 0.2s ease, border-color 0.2s ease;
  box-shadow: none !important;
}

.header-nav ul li a:not(.rec-badge-link):not(.nav-cta-btn):hover,
nav.header-nav ul li a:not(.rec-badge-link):not(.nav-cta-btn):hover,
header nav ul li a:not(.rec-badge-link):not(.nav-cta-btn):hover,
.ag-wp-menu-list a:not(.rec-badge-link):not(.nav-cta-btn):hover,
.ag-nav-list a:not(.rec-badge-link):not(.nav-cta-btn):hover {
  color: var(--color-primary, #e05370) !important;
  border-bottom-color: var(--color-primary, #e05370) !important;
  background-color: transparent !important;
  background: transparent !important;
}

/* 現在地（カレント・アクティブ表示）：下線アンダーライン＋アクセントカラーで統一 */
.current-menu-item > a:not(.rec-badge-link):not(.nav-cta-btn),
.current_page_item > a:not(.rec-badge-link):not(.nav-cta-btn),
.current-menu-ancestor > a:not(.rec-badge-link):not(.nav-cta-btn),
nav ul li.current-menu-item > a:not(.rec-badge-link):not(.nav-cta-btn),
nav ul li.current_page_item > a:not(.rec-badge-link):not(.nav-cta-btn),
header nav a.is-current:not(.rec-badge-link):not(.nav-cta-btn),
header nav a.active:not(.rec-badge-link):not(.nav-cta-btn),
.ag-wp-menu-list li.current-menu-item > a:not(.rec-badge-link):not(.nav-cta-btn),
.ag-wp-menu-list li.current_page_item > a:not(.rec-badge-link):not(.nav-cta-btn),
.ag-wp-menu-list a.is-current:not(.rec-badge-link):not(.nav-cta-btn),
.ag-wp-menu-list a.active:not(.rec-badge-link):not(.nav-cta-btn),
.ag-nav-list li.current-menu-item > a:not(.rec-badge-link):not(.nav-cta-btn),
.ag-nav-list a.is-current:not(.rec-badge-link):not(.nav-cta-btn),
.ag-nav-list a.active:not(.rec-badge-link):not(.nav-cta-btn) {
  color: var(--color-primary, #e05370) !important;
  background-color: transparent !important;
  background: transparent !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
  border-bottom: 2px solid var(--color-primary, #e05370) !important;
  box-shadow: none !important;
}

/* CTA Highlight Button: Preserve vibrant gradient & hover animation from original site */
.header-nav .nav-cta-btn,
.ag-wp-menu-list .nav-cta-btn,
.ag-nav-list .nav-cta-btn {
  background: linear-gradient(135deg, var(--color-primary-soft, #f472b6), var(--color-primary, #e05370)) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(224, 83, 112, 0.35);
}
.header-nav .nav-cta-btn:hover,
.ag-wp-menu-list .nav-cta-btn:hover,
.ag-nav-list .nav-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(224, 83, 112, 0.45);
}

/* Mobile Drawer Dynamic WordPress Menu (スマホ3本バーメニューの動的スタイル) */
.mobile-drawer .ag-wp-drawer-list,
.mobile-drawer ul.drawer-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}
.mobile-drawer .ag-wp-drawer-list li,
.mobile-drawer ul.drawer-list li {
  list-style: none !important;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  display: block !important;
}
.mobile-drawer .ag-wp-drawer-list a,
.mobile-drawer ul.drawer-list a {
  display: block !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  padding: 8px 0 !important;
  color: inherit !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
  transition: color 0.2s ease !important;
}
.mobile-drawer .ag-wp-drawer-list a:hover,
.mobile-drawer ul.drawer-list a:hover {
  color: var(--color-primary, #e11d48) !important;
}
.mobile-drawer .ag-wp-drawer-list li.current-menu-item > a,
.mobile-drawer .ag-wp-drawer-list a.active {
  color: #e11d48 !important;
  font-weight: 800 !important;
}

/* Hero Visual & Image Visibility Guarantee (ヒーロー画像の表示保証) */
.hero-img.pattern-img-editorial,
.hero-img:first-of-type,
[data-pattern] .hero-img:first-of-type {
  opacity: 0.92 !important;
  display: block !important;
}
.hero-bg-wrapper {
  display: block !important;
}

/* Hero section height & print spacing fix */
.hero-section {
  min-height: auto !important;
}
@media print {
  .hero-section {
    min-height: auto !important;
    padding-top: 15px !important;
    padding-bottom: 20px !important;
  }
  .minshaa-border {
    margin: 8px 0 !important;
  }
  .toc-section {
    margin-top: 10px !important;
  }
}

/* Default Contact Form Styling (if auto-generated) */
.ag-contact-section { padding: 4rem 1.5rem; max-width: 760px; margin: 0 auto; }
.ag-default-form .ag-form-row { margin-bottom: 1.25rem; display: flex; flex-direction: column; gap: 0.4rem; }
.ag-default-form label { font-weight: 600; font-size: 0.95rem; }
.ag-default-form .req { color: #e11d48; }
.ag-default-form input, .ag-default-form textarea, .ag-default-form select {
  padding: 0.75rem 1rem; border: 1px solid rgba(128,128,128,0.35); border-radius: 6px;
  font-size: 1rem; font-family: inherit; background: rgba(255,255,255,0.9); color: #111;
}
.ag-default-form .ag-submit-btn {
  padding: 0.85rem 2.25rem; border: none; border-radius: 6px; font-weight: 600;
  cursor: pointer; background: #0f172a; color: #fff; font-size: 1rem;
}

/* Single Post & Blog Content Spacing (チャトレ通信・投稿記事の左右余白を他のページと統一) */
body.single .ag-migrated-main > :not(.content-wrapper),
body.single-post .ag-migrated-main > :not(.content-wrapper),
body.blog .ag-migrated-main > :not(.content-wrapper),
body.archive .ag-migrated-main > :not(.content-wrapper) {
  max-width: var(--container-max, min(97%, 1440px));
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  body.single .ag-migrated-main > :not(.content-wrapper),
  body.single-post .ag-migrated-main > :not(.content-wrapper),
  body.blog .ag-migrated-main > :not(.content-wrapper),
  body.archive .ag-migrated-main > :not(.content-wrapper) {
    padding-left: 12px;
    padding-right: 12px;
  }
}
.ag-single-post-article p {
  margin-bottom: 1.5em;
  line-height: 1.85;
}

/* Extracted Inline Styles from Source HTML */
.contact-container {
      max-width: 680px;
      margin: 40px auto;
      background: #ffffff;
      border: 1px solid var(--border-light);
      border-radius: var(--radius-md);
      padding: 36px;
      box-shadow: var(--shadow-sm);
    }
    .form-group {
      margin-bottom: 20px;
    }
    label {
      display: block;
      font-size: 14px;
      font-weight: 600;
      color: #334155;
      margin-bottom: 8px;
    }
    input[type="text"], input[type="email"], select, textarea {
      width: 100%;
      padding: 12px 14px;
      border: 1px solid var(--border-medium);
      border-radius: 8px;
      font-size: 14px;
      font-family: inherit;
    }
    input:focus, select:focus, textarea:focus {
      outline: none;
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.15);
    }
    .alert-box {
      padding: 14px;
      border-radius: 8px;
      margin-bottom: 20px;
      display: none;
      font-size: 14px;
    }
    .alert-box.success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
    .alert-box.error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

:root {
      --primary: #e11d48;
      --primary-hover: #be123c;
      --primary-light: #ffe4e6;
      --bg: #f8fafc;
      --card-bg: #ffffff;
      --text: #1e293b;
      --text-muted: #64748b;
      --border: #e2e8f0;
      --success: #10b981;
      --danger: #ef4444;
      --radius: 14px;
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: 'Noto Sans JP', 'Inter', sans-serif;
      background-color: var(--bg);
      color: var(--text);
      line-height: 1.6;
      padding: 40px 20px;
    }
    .container {
      max-width: 680px;
      margin: 0 auto;
    }
    .card {
      background: var(--card-bg);
      border-radius: var(--radius);
      box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
      border: 1px solid var(--border);
      padding: 36px;
      margin-bottom: 24px;
    }
    .header {
      text-align: center;
      margin-bottom: 28px;
    }
    .header h1 {
      font-size: 22px;
      font-weight: 700;
      color: #0f172a;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
    }
    .header p {
      font-size: 13.5px;
      color: var(--text-muted);
      margin-top: 6px;
    }
    .badge {
      display: inline-block;
      padding: 4px 12px;
      border-radius: 9999px;
      font-size: 12px;
      font-weight: 600;
      background: var(--primary-light);
      color: var(--primary);
      margin-bottom: 12px;
    }
    .form-group {
      margin-bottom: 20px;
    }
    label {
      display: block;
      font-size: 13.5px;
      font-weight: 600;
      color: #334155;
      margin-bottom: 6px;
    }
    .input-desc {
      font-size: 12px;
      color: var(--text-muted);
      margin-top: 4px;
    }
    input[type="text"], input[type="email"], input[type="password"], input[type="url"], select {
      width: 100%;
      padding: 12px 14px;
      border: 1px solid var(--border);
      border-radius: 8px;
      font-size: 14px;
      font-family: inherit;
      background-color: #fff;
      transition: all 0.2s;
    }
    input:focus, select:focus {
      outline: none;
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.15);
    }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      padding: 14px;
      background: var(--primary);
      color: #fff;
      font-size: 15px;
      font-weight: 600;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      transition: all 0.2s;
      gap: 8px;
    }
    .btn:hover { background: var(--primary-hover); transform: translateY(-1px); }
    .btn-secondary {
      background: #f1f5f9;
      color: #475569;
      margin-top: 10px;
    }
    .btn-secondary:hover { background: #e2e8f0; color: #1e293b; }
    .btn-link {
      background: none;
      border: none;
      color: var(--primary);
      font-size: 13px;
      cursor: pointer;
      text-decoration: underline;
      padding: 0;
    }
    .alert {
      padding: 14px 16px;
      border-radius: 8px;
      font-size: 13.5px;
      margin-bottom: 20px;
      display: none;
      line-height: 1.5;
    }
    .alert-success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
    .alert-error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
    .alert-info { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
    .notice-box {
      background: #f8fafc;
      border-left: 4px solid var(--primary);
      padding: 16px;
      border-radius: 6px;
      font-size: 13px;
      color: #334155;
      margin-top: 24px;
      line-height: 1.7;
    }
    .notice-box strong { color: #0f172a; }
    .nav-links {
      display: flex;
      justify-content: center;
      gap: 16px;
      margin-top: 24px;
      font-size: 13px;
    }
    .nav-links a { color: var(--primary); text-decoration: none; font-weight: 500; }
    .nav-links a:hover { text-decoration: underline; }
    .hidden { display: none !important; }
    .status-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      color: var(--success);
      font-weight: 600;
    }
    .section-divider {
      border: none;
      border-top: 1px solid var(--border);
      margin: 26px 0;
    }
    .tag-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 16px;
    }

/* WordPress Block Editor (Gutenberg) WYSIWYG Support */
.editor-styles-wrapper {
  background-color: inherit;
  color: inherit;
  font-family: inherit;
}
.editor-styles-wrapper .wp-block-freeform {
  cursor: text;
}
/* Force animation-delayed elements to display immediately inside the editor so text is never blank */
.editor-styles-wrapper .reveal-elem,
.editor-styles-wrapper [class*="reveal"],
.wp-block-freeform .reveal-elem,
.mce-content-body .reveal-elem,
body.block-editor-page .reveal-elem,
body.wp-admin .reveal-elem {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* Ensure only the primary hero image is shown (hide background switcher alternates) */
.editor-styles-wrapper .hero-img,
.wp-block-freeform .hero-img,
body.block-editor-page .hero-img,
body.wp-admin .hero-img {
  display: none !important;
}
.editor-styles-wrapper .hero-img:first-of-type,
.editor-styles-wrapper .pattern-img-editorial,
.wp-block-freeform .hero-img:first-of-type,
.wp-block-freeform .pattern-img-editorial,
body.block-editor-page .hero-img:first-of-type,
body.block-editor-page .pattern-img-editorial,
body.wp-admin .hero-img:first-of-type,
body.wp-admin .pattern-img-editorial {
  display: block !important;
  opacity: 0.92 !important;
  transform: none !important;
  visibility: visible !important;
}
.editor-styles-wrapper .hero-overlay,
.wp-block-freeform .hero-overlay,
body.block-editor-page .hero-overlay,
body.wp-admin .hero-overlay {
  background: linear-gradient(135deg, rgba(251, 249, 245, 0.88) 0%, rgba(251, 249, 245, 0.5) 50%, rgba(201, 147, 101, 0.25) 100%) !important;
}
