/*
Theme Name: Luminary SEO
Theme URI: https://example.com/luminary-seo
Author: Claude
Description: SEO・GEO対応の高性能WordPressテーマ。グレージュ×ゴールドのエレガントデザイン。構造化データ、Core Web Vitals最適化、地域SEO対応。
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, news, magazine, seo, responsive, accessibility-ready, elegant, luxury
Text Domain: luminary-seo
*/

/* ======================================================
   DESIGN TOKENS — Greige × Gold
   ====================================================== */
:root {
  --greige-50:  #FAF9F6;
  --greige-100: #F4F1EB;
  --greige-200: #EAE5DA;
  --greige-300: #D5CCBC;
  --greige-400: #BFB29E;
  --greige-500: #A89880;
  --greige-600: #8C7A64;
  --greige-700: #6B5C48;
  --greige-800: #483D2E;
  --greige-900: #2C2218;

  --gold-50:  #FBF5E6;
  --gold-100: #F5E4B5;
  --gold-200: #EDCD7E;
  --gold-300: #D4A847;
  --gold-600: #9A7828;
  --gold-700: #7C5E18;

  --color-bg:          var(--greige-50);
  --color-surface:     #FFFFFF;
  --color-border:      var(--greige-200);

  --color-text-primary:   var(--greige-900);
  --color-text-secondary: var(--greige-700);
  --color-text-muted:     var(--greige-500);

  --color-gold:      var(--gold-300);
  --color-gold-dark: var(--gold-600);
  --color-gold-light:var(--gold-50);

  --font-display:'Cormorant Garamond','Georgia',serif;
  --font-body:'Jost','Helvetica Neue',Arial,sans-serif;
  --font-mono:'DM Mono','Courier New',monospace;

  --size-2xs:0.6875rem;
  --size-xs: 0.75rem;
  --size-sm: 0.875rem;
  --size-base:1rem;
  --size-md: 1.125rem;
  --size-lg: 1.25rem;
  --size-xl: 1.5rem;
  --size-2xl:2rem;
  --size-3xl:2.75rem;
  --size-4xl:3.75rem;

  --space-section:clamp(4rem,9vw,9rem);
  --container:1200px;
  --container-narrow:740px;
  --radius-sm:2px;
  --radius-md:4px;
  --shadow-sm:0 2px 12px rgba(44,34,24,0.07);
  --shadow-md:0 6px 24px rgba(44,34,24,0.10);
}

/* RESET */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-body);font-size:var(--size-base);line-height:1.75;color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;}
img,video{max-width:100%;height:auto;display:block;}
a{color:var(--color-gold-dark);text-decoration:none;}
a:hover{text-decoration:underline;}

/* LAYOUT */
.container{width:min(var(--container),100% - 2.5rem);margin-inline:auto;}
.container--narrow{width:min(var(--container-narrow),100% - 2.5rem);margin-inline:auto;}

/* ORNAMENTAL */
.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font-size:var(--size-2xs);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--color-gold-dark);}
.eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--color-gold);flex-shrink:0;}
.gold-line-short{display:block;width:32px;height:1px;background:var(--color-gold);margin-top:6px;}
.ornament-divider{display:flex;align-items:center;gap:1.5rem;padding:var(--space-section) 0;}
.ornament-divider::before,.ornament-divider::after{content:'';flex:1;height:1px;background:var(--color-border);}
.ornament-divider__icon{font-family:var(--font-display);font-size:1.125rem;color:var(--color-gold);font-style:italic;letter-spacing:.2em;}

/* HEADER */
.site-header{position:sticky;top:0;z-index:100;background:rgba(250,249,246,0.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border);transition:box-shadow .3s;}
.site-header.scrolled{box-shadow:0 2px 24px rgba(44,34,24,.08);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;height:68px;}
.site-logo{font-family:var(--font-display);font-size:var(--size-xl);font-weight:600;color:var(--color-text-primary);text-decoration:none;letter-spacing:.05em;flex-shrink:0;line-height:1;}
.site-logo:hover{opacity:.8;text-decoration:none;}
.site-logo .logo-em{color:var(--color-gold-dark);font-style:italic;}
.site-nav{display:flex;align-items:center;}
.site-nav a{font-size:var(--size-2xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-secondary);text-decoration:none;padding:.5rem 1rem;position:relative;transition:color .2s;}
.site-nav a::after{content:'';position:absolute;bottom:0;left:1rem;right:1rem;height:1px;background:var(--color-gold);transform:scaleX(0);transition:transform .25s ease;}
.site-nav a:hover,.site-nav a.current-menu-item{color:var(--color-text-primary);text-decoration:none;}
.site-nav a:hover::after,.site-nav a.current-menu-item::after{transform:scaleX(1);}
.header-actions{display:flex;align-items:center;gap:.75rem;}
.btn-search{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--color-border);border-radius:0;cursor:pointer;color:var(--color-text-muted);transition:all .2s;}
.btn-search:hover{border-color:var(--color-gold);color:var(--color-gold-dark);}
.btn-primary{display:inline-flex;align-items:center;gap:.625rem;padding:.5625rem 1.375rem;background:transparent;color:var(--color-gold-dark);font-size:var(--size-2xs);font-weight:500;font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1px solid var(--color-gold);border-radius:0;cursor:pointer;transition:all .25s;}
.btn-primary:hover{background:var(--color-gold-dark);border-color:var(--color-gold-dark);color:var(--greige-50);text-decoration:none;}

/* HERO */
.hero{padding:clamp(3.5rem,8vw,7rem) 0 clamp(3rem,6vw,5.5rem);border-bottom:1px solid var(--color-border);}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,6rem);align-items:center;}
.hero-eyebrow{margin-bottom:1.25rem;}
.hero-title{font-family:var(--font-display);font-size:clamp(var(--size-3xl),5.5vw,var(--size-4xl));font-weight:600;line-height:1.08;letter-spacing:-.01em;color:var(--color-text-primary);margin-bottom:1.25rem;}
.hero-title em{font-style:italic;color:var(--color-gold-dark);}
.hero-excerpt{font-size:var(--size-md);color:var(--color-text-secondary);line-height:1.78;margin-bottom:1.75rem;max-width:44ch;font-weight:300;}
.hero-meta{display:flex;align-items:center;gap:.875rem;font-size:var(--size-xs);color:var(--color-text-muted);letter-spacing:.05em;}
.hero-meta .sep{width:1px;height:10px;background:var(--color-border);}
.read-more-link{display:inline-flex;align-items:center;gap:.875rem;font-size:var(--size-2xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--color-gold-dark);text-decoration:none;margin-top:2rem;transition:gap .25s;}
.read-more-link::after{content:'';display:block;width:36px;height:1px;background:var(--color-gold);transition:width .3s ease;}
.read-more-link:hover{gap:1.25rem;text-decoration:none;}
.read-more-link:hover::after{width:52px;}
.hero-image-wrap{position:relative;aspect-ratio:4/5;background:var(--greige-200);overflow:hidden;}
.hero-image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.hero-image-wrap:hover img{transform:scale(1.04);}
.hero-image-frame{position:absolute;inset:14px;border:1px solid rgba(212,168,71,.4);pointer-events:none;z-index:1;}

/* SECTION HEADER */
.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border);}
.section-title{font-family:var(--font-display);font-size:var(--size-2xl);font-weight:600;color:var(--color-text-primary);letter-spacing:.01em;}
.section-link{font-size:var(--size-2xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);text-decoration:none;transition:color .2s;}
.section-link:hover{color:var(--color-gold-dark);}

/* POSTS SECTION */
.posts-section{padding:var(--space-section) 0;}
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem;}

/* POST CARD */
.post-card{background:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;transition:box-shadow .3s,transform .3s;position:relative;}
.post-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--color-gold);transform:scaleX(0);transition:transform .3s ease;transform-origin:left;}
.post-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}
.post-card:hover::after{transform:scaleX(1);}
.post-card__thumb{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--greige-100);flex-shrink:0;}
.post-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.post-card:hover .post-card__thumb img{transform:scale(1.06);}
.post-card__body{padding:1.375rem 1.5rem 1.625rem;display:flex;flex-direction:column;flex:1;}
.post-card__cat{display:inline-block;font-size:var(--size-2xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--color-gold-dark);margin-bottom:.625rem;text-decoration:none;}
.post-card__cat:hover{opacity:.75;text-decoration:none;}
.post-card__title{font-family:var(--font-display);font-size:1.3125rem;font-weight:600;line-height:1.28;color:var(--color-text-primary);margin-bottom:.75rem;}
.post-card__title a{color:inherit;text-decoration:none;}
.post-card__title a:hover{color:var(--color-gold-dark);}
.post-card__excerpt{font-size:var(--size-sm);color:var(--color-text-secondary);line-height:1.72;font-weight:300;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:1.125rem;}
.post-card__meta{display:flex;align-items:center;gap:.625rem;font-size:var(--size-xs);color:var(--color-text-muted);letter-spacing:.04em;padding-top:1rem;border-top:1px solid var(--color-border);margin-top:auto;}
.post-card__meta .dot{width:3px;height:3px;border-radius:50%;background:var(--greige-300);flex-shrink:0;}
.post-card__avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;}

/* CATEGORY BADGE */
.cat-badge{display:inline-block;padding:.2rem .75rem;background:var(--gold-50);color:var(--color-gold-dark);font-size:var(--size-2xs);font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1px solid var(--gold-100);transition:all .2s;}
.cat-badge:hover{background:var(--color-gold-dark);border-color:var(--color-gold-dark);color:var(--greige-50);text-decoration:none;}

/* SINGLE POST */
.single-post{padding:var(--space-section) 0;}
.post-header{margin-bottom:2.5rem;}
.post-title{font-family:var(--font-display);font-size:clamp(var(--size-2xl),4.5vw,3.5rem);font-weight:600;line-height:1.1;letter-spacing:-.01em;color:var(--color-text-primary);margin-bottom:1.25rem;}
.post-subtitle{font-family:var(--font-display);font-size:var(--size-xl);color:var(--color-text-secondary);font-style:italic;font-weight:400;line-height:1.55;margin-bottom:1.75rem;}
.author-bar{display:flex;align-items:center;gap:1rem;padding:1.125rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);}
.author-bar img{width:42px;height:42px;border-radius:50%;object-fit:cover;}
.author-bar__info{flex:1;}
.author-bar__name{font-weight:500;font-size:var(--size-sm);letter-spacing:.02em;}
.author-bar__date{font-size:var(--size-xs);color:var(--color-text-muted);margin-top:2px;letter-spacing:.04em;}
.author-bar__read{font-size:var(--size-xs);color:var(--color-text-muted);letter-spacing:.05em;}
.post-cover{width:100%;overflow:hidden;aspect-ratio:21/9;margin:2.5rem 0;background:var(--greige-100);position:relative;}
.post-cover img{width:100%;height:100%;object-fit:cover;}
.post-cover::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--color-gold) 30%,var(--color-gold) 70%,transparent);opacity:.6;}

/* ENTRY CONTENT */
.entry-content{font-size:var(--size-md);line-height:1.82;color:var(--color-text-primary);font-weight:300;}
.entry-content > * + *{margin-top:1.6em;}
.entry-content h2{font-family:var(--font-display);font-size:var(--size-2xl);font-weight:600;letter-spacing:.01em;line-height:1.2;margin-top:3em;margin-bottom:.6em;padding-bottom:.6em;border-bottom:1px solid var(--color-border);}
.entry-content h3{font-family:var(--font-display);font-size:var(--size-xl);font-weight:600;line-height:1.28;margin-top:2.5em;}
.entry-content h4{font-size:var(--size-lg);font-weight:500;letter-spacing:.02em;margin-top:2em;}
.entry-content p{max-width:66ch;}
.entry-content a{color:var(--color-gold-dark);}
.entry-content a:hover{text-decoration:underline;}
.entry-content ul,.entry-content ol{padding-left:1.5em;}
.entry-content li + li{margin-top:.5em;}
.entry-content blockquote{border-left:2px solid var(--color-gold);padding:.5em 0 .5em 1.75rem;font-family:var(--font-display);font-size:var(--size-xl);font-style:italic;line-height:1.5;color:var(--color-text-secondary);font-weight:400;}
.entry-content code{font-family:var(--font-mono);font-size:.85em;background:var(--greige-100);padding:.15em .45em;border:1px solid var(--color-border);}
.entry-content pre{background:var(--greige-900);color:var(--greige-100);padding:1.75rem;overflow-x:auto;font-family:var(--font-mono);font-size:var(--size-sm);line-height:1.7;border-left:3px solid var(--color-gold);}
.entry-content pre code{background:none;border:none;padding:0;font-size:inherit;}
.entry-content figure{margin:2.5rem 0;}
.entry-content figcaption{font-size:var(--size-sm);color:var(--color-text-muted);text-align:center;margin-top:.875rem;font-style:italic;letter-spacing:.03em;}

/* TABLE OF CONTENTS */
.toc{background:var(--greige-100);border:1px solid var(--color-border);border-left:2px solid var(--color-gold);padding:1.5rem 1.75rem;margin:2.5rem 0;}
.toc__title{font-size:var(--size-2xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--color-gold-dark);margin-bottom:1rem;display:flex;align-items:center;gap:.625rem;}
.toc__title::before{content:'';display:block;width:16px;height:1px;background:var(--color-gold);}
.toc ol{padding-left:1.25rem;}
.toc li{font-size:var(--size-sm);line-height:1.55;font-weight:300;}
.toc li + li{margin-top:.4rem;}
.toc a{color:var(--color-text-secondary);}
.toc a:hover{color:var(--color-gold-dark);text-decoration:underline;}

/* SIDEBAR */
.sidebar{display:flex;flex-direction:column;gap:2rem;}
.widget{background:var(--color-surface);border:1px solid var(--color-border);padding:1.625rem;}
.widget__title{font-family:var(--font-display);font-size:var(--size-lg);font-weight:600;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border);letter-spacing:.02em;display:flex;flex-direction:column;gap:6px;}
.widget__title::after{content:'';display:block;width:24px;height:1px;background:var(--color-gold);}

/* BREADCRUMB */
.breadcrumb{font-size:var(--size-xs);color:var(--color-text-muted);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.75rem;letter-spacing:.04em;}
.breadcrumb a{color:var(--color-text-muted);}
.breadcrumb a:hover{color:var(--color-gold-dark);}
.breadcrumb-sep{opacity:.5;}

/* PAGINATION */
.pagination{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:4rem 0 1rem;}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;font-size:var(--size-sm);font-weight:400;text-decoration:none;color:var(--color-text-secondary);border:1px solid var(--color-border);transition:all .2s;}
.page-numbers:hover{border-color:var(--color-gold);color:var(--color-gold-dark);text-decoration:none;}
.page-numbers.current{background:var(--color-gold-dark);border-color:var(--color-gold-dark);color:var(--greige-50);}

/* FOOTER */
.site-footer{background:var(--greige-900);color:rgba(250,249,246,.6);padding:5rem 0 2rem;margin-top:var(--space-section);position:relative;}
.site-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--color-gold) 30%,var(--color-gold) 70%,transparent);opacity:.5;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3.5rem;margin-bottom:4rem;}
.footer-logo{font-family:var(--font-display);font-size:var(--size-xl);color:rgba(250,249,246,.9);text-decoration:none;display:block;margin-bottom:1rem;letter-spacing:.05em;}
.footer-logo .logo-em{color:var(--gold-200);font-style:italic;}
.footer-logo:hover{text-decoration:none;opacity:.8;}
.footer-desc{font-size:var(--size-sm);line-height:1.75;max-width:28ch;font-weight:300;}
.footer-col-title{font-size:var(--size-2xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(250,249,246,.45);margin-bottom:1.125rem;}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:.625rem;}
.footer-links a{font-size:var(--size-sm);color:rgba(250,249,246,.5);text-decoration:none;transition:color .2s;font-weight:300;}
.footer-links a:hover{color:var(--gold-200);}
.footer-bottom{border-top:1px solid rgba(250,249,246,.1);padding-top:1.75rem;display:flex;align-items:center;justify-content:space-between;font-size:var(--size-xs);letter-spacing:.04em;}

/* SEARCH MODAL */
.search-modal{position:fixed;inset:0;z-index:1000;background:rgba(250,249,246,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.search-modal.active{opacity:1;pointer-events:auto;}
.search-modal__inner{width:min(600px,100% - 2.5rem);}
.search-modal__field{position:relative;}
.search-modal__input{width:100%;font-family:var(--font-display);font-size:clamp(1.75rem,5vw,3rem);font-weight:600;color:var(--color-text-primary);background:transparent;border:none;outline:none;border-bottom:2px solid var(--greige-300);padding:.75rem 3.5rem .75rem 0;caret-color:var(--color-gold-dark);transition:border-color .2s;}
.search-modal__input:focus{border-bottom-color:var(--color-gold);}
.search-modal__input::placeholder{color:var(--greige-300);}
.search-modal__close{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:.5rem;}
.search-modal__hint{font-size:var(--size-xs);color:var(--color-text-muted);margin-top:.875rem;letter-spacing:.06em;}

/* MOBILE */
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.hamburger span{display:block;width:22px;height:1.5px;background:var(--color-text-primary);transition:all .25s;}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px);}
.mobile-menu{display:none;background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:1.5rem 0;}
.mobile-menu.open{display:block;}
.mobile-menu .mobile-nav{list-style:none;}
.mobile-menu .mobile-nav a{display:block;padding:.75rem 0;font-size:var(--size-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-secondary);text-decoration:none;border-bottom:1px solid var(--color-border);}
.mobile-menu .mobile-nav a:hover{color:var(--color-gold-dark);}

/* READING PROGRESS */
.reading-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--gold-200),var(--color-gold));z-index:200;width:0%;transition:width .1s linear;}

/* ACCESSIBILITY */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.skip-link:focus{position:fixed;top:1rem;left:1rem;width:auto;height:auto;padding:.75rem 1.25rem;background:var(--color-gold-dark);color:var(--greige-50);z-index:9999;font-size:var(--size-sm);font-weight:500;}
:focus-visible{outline:1px solid var(--color-gold);outline-offset:3px;}

/* RESPONSIVE */
@media (max-width:1024px){
  .posts-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem;}
}
@media (max-width:768px){
  .hero-grid{grid-template-columns:1fr;gap:2.5rem;}
  .hero-image-wrap{order:-1;aspect-ratio:3/2;}
  .posts-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:2rem;}
  .site-nav{display:none;}
  .hamburger{display:flex;}
  .footer-bottom{flex-direction:column;gap:.75rem;text-align:center;}
  .single-layout{grid-template-columns:1fr !important;}
  .single-layout .sidebar{display:none;}
}
@media (max-width:480px){
  .header-inner{height:58px;}
  .hero{padding:2.5rem 0 2rem;}
  .post-title{font-size:var(--size-2xl);}
}

/* PRINT */
@media print{
  .site-header,.site-footer,.sidebar,.reading-progress,.breadcrumb{display:none;}
  body{font-size:12pt;color:#000;background:#fff;}
  a{color:#000;}
}

/* ======================================================
   GEO：TL;DR 要点ボックス
   AIに引用されやすい冒頭サマリー
   ====================================================== */
.tl-dr {
  background: var(--gold-50);
  border: 1px solid var(--gold-100);
  border-left: 3px solid var(--color-gold);
  padding: 1.25rem 1.5rem;
  margin: 0 0 2rem;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.tl-dr__label {
  font-size: var(--size-2xs);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-gold-dark);
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.tl-dr__label::before {
  content: '';
  display: block;
  width: 14px;
  height: 1px;
  background: var(--color-gold);
}
.tl-dr__text {
  font-size: var(--size-md);
  color: var(--color-text-secondary);
  line-height: 1.7;
  font-weight: 300;
  margin: 0;
  max-width: 100%;
}

/* ======================================================
   GEO：FAQ ブロック
   FAQPage 構造化データと連動
   ====================================================== */
.faq-item {
  border: 1px solid var(--color-border);
  margin-bottom: 1rem;
}
.faq-question {
  font-family: var(--font-display);
  font-size: var(--size-lg);
  font-weight: 600;
  padding: 1.125rem 1.375rem;
  cursor: pointer;
  background: var(--greige-50);
  color: var(--color-text-primary);
  border: none;
  width: 100%;
  text-align: left;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  transition: background .2s;
  letter-spacing: .01em;
}
.faq-question::after {
  content: '+';
  font-family: var(--font-body);
  font-size: var(--size-xl);
  font-weight: 300;
  color: var(--color-gold);
  flex-shrink: 0;
  transition: transform .25s;
}
.faq-item.open .faq-question::after { transform: rotate(45deg); }
.faq-answer {
  padding: 0 1.375rem 1.25rem;
  font-size: var(--size-base);
  color: var(--color-text-secondary);
  line-height: 1.75;
  font-weight: 300;
  display: none;
}
.faq-item.open .faq-answer { display: block; }

/* ======================================================
   GEO：統計データハイライト
   数値・データを視覚的に強調してAIに認識させる
   ====================================================== */
.stat-highlight {
  display: inline-block;
  font-family: var(--font-display);
  font-size: var(--size-3xl);
  font-weight: 700;
  color: var(--color-gold-dark);
  line-height: 1;
}
.stat-block {
  background: var(--greige-100);
  border: 1px solid var(--color-border);
  border-top: 2px solid var(--color-gold);
  padding: 1.375rem 1.5rem;
  margin: 1.75rem 0;
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.stat-block__num {
  font-family: var(--font-display);
  font-size: var(--size-3xl);
  font-weight: 700;
  color: var(--color-gold-dark);
  line-height: 1;
  white-space: nowrap;
}
.stat-block__desc {
  font-size: var(--size-sm);
  color: var(--color-text-secondary);
  line-height: 1.6;
  font-weight: 300;
}
