/*
Theme Name: Ookayama Womens Clinic
Version: 1.0.0
Text Domain: ookayama-womens-clinic
*/

:root{
  --c-base:#fffaf5;
  --c-main:#8a9a5b;
  --c-main-dark:#5c6b3c;
  --c-accent:#f0a248;
  --c-accent-deep:#d97f2c;
  --c-dark:#2b211b;
  --c-tint:#f3e6d8;
  --c-tint2:#eaf0dd;
  --c-ink-soft:#6b6055;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;}
body{
  font-family:'Zen Maru Gothic',sans-serif;background:var(--c-base);color:var(--c-dark);
  overflow-x:hidden;line-height:1.9;
  overflow-wrap:anywhere;word-break:normal;line-break:strict;
}
h1,h2,h3{font-family:'Kaisei Decol',serif;text-wrap:balance;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.nb{white-space:nowrap;}
section{position:relative;}

/* ===== header ===== */
header{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;
  padding:18px 24px;position:sticky;top:0;background:rgba(255,250,245,.92);backdrop-filter:blur(6px);
  z-index:50;border-bottom:1px solid rgba(90,70,40,.08);
}
.logo{display:flex;align-items:center;white-space:nowrap;}
.logo img{height:38px;width:auto;display:block;}
nav.primary-nav{display:none;align-items:center;gap:26px;font-size:15px;font-weight:600;list-style:none;margin:0;padding:0;color:var(--c-main-dark);}
nav.primary-nav li{list-style:none;}
nav.primary-nav a{position:relative;padding:4px 0;}
nav.primary-nav a::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:var(--c-accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
nav.primary-nav a:hover::after{transform:scaleX(1);}
@media(min-width:920px){nav.primary-nav{display:flex;} .logo img{height:44px;}}
.head-right{display:flex;align-items:center;gap:18px;}
.tel{font-size:15px;font-weight:700;color:var(--c-main-dark);white-space:nowrap;}
@media(min-width:480px){.tel{font-size:16.5px;}}
.btn-mini{background:var(--c-accent);color:#fff;font-size:14.5px;font-weight:700;padding:12px 26px;border-radius:999px;white-space:nowrap;letter-spacing:.02em;box-shadow:0 6px 16px -8px rgba(224,140,60,.6);transition:transform .2s ease,box-shadow .2s ease;}
.btn-mini:hover{transform:translateY(-1px);box-shadow:0 8px 20px -8px rgba(224,140,60,.7);}

/* ===== hero ===== */
.hero{padding:28px 0 40px;overflow:hidden;}
.hero .wrap{display:grid;grid-template-columns:1fr;gap:30px;align-items:center;}
@media(min-width:900px){.hero .wrap{grid-template-columns:.9fr 1.2fr;gap:32px;}}
@media(min-width:1300px){.hero .wrap{max-width:1400px;grid-template-columns:.9fr 1.25fr;gap:48px;}}

.deco-circle{position:absolute;border-radius:50%;z-index:0;}
.deco1{width:240px;height:240px;background:var(--c-tint2);top:-70px;left:-90px;}
.deco2{width:100px;height:100px;background:var(--c-accent);opacity:.16;bottom:6%;left:44%;}
.deco3{width:60px;height:60px;background:var(--c-main);opacity:.22;top:6%;right:4%;}

.hero-copy{position:relative;z-index:2;}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--c-main-dark);background:var(--c-tint2);padding:6px 14px;border-radius:999px;margin-bottom:16px;}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c-accent);}
.hero-title{font-size:clamp(30px,4.6vw,46px);font-weight:400;color:var(--c-main-dark);margin-bottom:14px;letter-spacing:.01em;text-wrap:balance;}
.hero-sub{font-size:15px;color:var(--c-ink-soft);margin-bottom:20px;max-width:36em;}
.hero-sub b{color:var(--c-main-dark);}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:15px 26px;border-radius:999px;font-size:14.5px;font-weight:700;transition:transform .25s ease,box-shadow .25s ease;}
.btn-primary{background:var(--c-accent);color:#fff;box-shadow:0 8px 20px rgba(240,162,72,.35);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(240,162,72,.45);}
.btn-outline{border:1.5px solid var(--c-main);color:var(--c-main-dark);}
.btn-outline:hover{background:var(--c-tint2);}
.note{font-size:11.5px;color:#a39584;}

.quick-facts{display:flex;flex-wrap:wrap;gap:10px 22px;margin:22px 0 14px;padding-top:18px;border-top:1px solid #ecdfc9;}
.quick-facts div{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--c-main-dark);}
.quick-facts .qf-ic{width:26px;height:26px;border-radius:50%;background:var(--c-tint2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.quick-facts .qf-ic svg{width:14px;height:14px;stroke:var(--c-main-dark);fill:none;stroke-width:2;}

/* hero collage(現行サイトの丸型コラージュを踏襲・拡張) */
.collage{position:relative;height:440px;z-index:1;}
@media(min-width:640px){.collage{height:520px;}}
@media(min-width:900px){.collage{height:560px;}}
@media(min-width:1300px){.collage{height:620px;}}
/* 全写真のトーン統一(暖色オーバーレイ+フィルタ) */
.collage img,.abortion-photo img,.clinic-photo img,.page-hero-photo img{filter:saturate(.92) sepia(.22) brightness(1.05) contrast(.98) hue-rotate(-4deg);}
.collage img{position:absolute;object-fit:cover;border-radius:50%;box-shadow:0 20px 44px -18px rgba(90,70,40,.4);}
.c1{width:74%;height:74%;top:0;left:4%;z-index:2;}
.c2{width:46%;height:46%;bottom:0;right:0;z-index:3;border:7px solid var(--c-base);}
.c3{width:36%;height:36%;top:2%;right:2%;z-index:4;border:7px solid var(--c-base);}
.c4{width:27%;height:27%;bottom:20%;left:-2%;z-index:4;border:7px solid var(--c-base);background:var(--c-tint2);}
.hero-badge{
  display:inline-flex;align-items:center;gap:10px;background:#fff;border-radius:999px;padding:10px 18px 10px 14px;
  box-shadow:0 10px 24px -12px rgba(90,70,40,.3);margin-bottom:18px;transition:transform .25s ease,box-shadow .25s ease;
}
.hero-badge:hover{transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(90,70,40,.4);}
.hero-badge b{font-family:'Kaisei Decol',serif;font-size:18px;color:var(--c-accent);}
.hero-badge span{font-size:12.5px;color:var(--c-main-dark);font-weight:700;}

.fade-up{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease;}
.fade-up.is-visible{opacity:1;transform:none;}
.fade-up.d1.is-visible{transition-delay:.08s;}
.fade-up.d2.is-visible{transition-delay:.16s;}
.fade-up.d3.is-visible{transition-delay:.24s;}
.fade-up.d4.is-visible{transition-delay:.32s;}

/* ===== section headings ===== */
.sec-head{text-align:center;margin-bottom:44px;}
.sec-head .kicker{display:block;font-size:11px;letter-spacing:.22em;color:var(--c-accent-deep);margin-bottom:10px;font-weight:700;}
.sec-head h2{font-size:clamp(20px,2.8vw,26px);color:var(--c-main-dark);font-weight:400;position:relative;display:inline-block;padding-bottom:14px;}
.sec-head h2::after{content:"";position:absolute;left:50%;bottom:0;width:60px;height:2px;background:var(--c-accent);transform:translateX(-50%) scaleX(0);transform-origin:center;transition:transform .8s ease;}
.sec-head h2.is-visible::after{transform:translateX(-50%) scaleX(1);}
.sec-pad{padding:80px 0;}
.sec-pad-tight{padding:56px 0;}
.sec-pad-loose{padding:104px 0;}

/* ===== news ===== */
.news-list{max-width:820px;margin:0 auto;border-top:1px solid #ecdfc9;}
.news-item{display:flex;flex-wrap:wrap;gap:6px 22px;padding:18px 4px;border-bottom:1px solid #ecdfc9;font-size:14px;}
.news-item .date{color:var(--c-accent-deep);font-weight:700;min-width:96px;}
.news-more{display:block;text-align:right;max-width:820px;margin:14px auto 0;font-size:13px;color:var(--c-main-dark);}

/* ===== concept ===== */
.concept{background:linear-gradient(180deg,var(--c-tint2),var(--c-tint));}
.concept-box{max-width:860px;margin:0 auto;background:rgba(255,255,255,.55);border-radius:24px;padding:44px 32px;font-size:14.5px;color:#5a5045;}
.concept-box p + p{margin-top:16px;}
.concept-box b{color:var(--c-main-dark);}
.concept-lead{font-family:'Kaisei Decol',serif;font-size:clamp(19px,2.4vw,24px);color:var(--c-main-dark);font-weight:400;margin-bottom:22px;line-height:1.7;}

/* ===== ご来院から診療までの流れ ===== */
.flow-grid{display:grid;grid-template-columns:1fr;gap:36px;}
@media(min-width:640px){.flow-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:900px){.flow-grid{grid-template-columns:repeat(4,1fr);}}
.flow-step{text-align:center;position:relative;}
.flow-step::after{
  content:"";position:absolute;top:70px;right:-18px;width:20px;height:20px;
  background:transparent;border-top:2px solid var(--c-tint);border-right:2px solid var(--c-tint);
  transform:rotate(45deg);
}
@media(max-width:899px){.flow-step::after{display:none;}}
.flow-step:nth-child(4n)::after{display:none;}
.flow-photo{position:relative;width:132px;height:132px;margin:0 auto 18px;border-radius:50%;overflow:hidden;box-shadow:0 16px 32px -16px rgba(90,70,40,.4);}
.flow-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) sepia(.22) brightness(1.05) contrast(.98) hue-rotate(-4deg);}
.flow-no{
  position:absolute;top:-4px;right:2px;width:32px;height:32px;border-radius:50%;background:var(--c-accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Kaisei Decol',serif;font-size:15px;
  box-shadow:0 6px 14px rgba(240,162,72,.4);border:3px solid var(--c-base);
}
.flow-title{font-size:15px;font-weight:700;color:var(--c-main-dark);margin-bottom:6px;}
.flow-desc{font-size:12.5px;color:var(--c-ink-soft);max-width:22em;margin:0 auto;line-height:1.75;}

/* ===== 診療のご案内(icon grid) ===== */
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media(min-width:640px){.service-grid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:900px){.service-grid{grid-template-columns:repeat(5,1fr);}}
.service-card{
  background:#fff;border-radius:20px;padding:26px 14px;text-align:center;box-shadow:0 8px 22px -14px rgba(90,70,40,.25);
  transition:transform .3s ease,box-shadow .3s ease;
}
.service-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px -16px rgba(90,70,40,.35);}
.service-card .ic{width:64px;height:64px;margin:0 auto 14px;color:var(--c-main-dark);background:var(--c-tint2);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .3s ease;position:relative;}
.service-card:nth-child(odd) .ic{background:var(--c-tint2);}
.service-card:nth-child(even) .ic{background:var(--c-tint);color:var(--c-accent-deep);}
.service-card:hover .ic{transform:scale(1.08) rotate(-4deg);}
.service-card .ic svg{width:56%;height:56%;}
.service-card .ic::after{content:"";position:absolute;top:2px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--c-accent);opacity:.7;}
.service-card:nth-child(even) .ic::after{background:var(--c-main);}
.service-card span{font-size:13px;color:var(--c-dark);font-weight:500;}
.service-note{text-align:center;font-size:11.5px;color:#a39584;margin-top:22px;}

/* ===== abortion highlight ===== */
.abortion{background:var(--c-tint2);}
.abortion .inner{display:grid;grid-template-columns:1fr;gap:36px;}
@media(min-width:900px){.abortion .inner{grid-template-columns:.85fr 1.15fr;align-items:center;}}
.abortion-photo{border-radius:32% 68% 62% 38%/48% 42% 58% 52%;overflow:hidden;aspect-ratio:4/5;box-shadow:0 24px 48px -20px rgba(90,70,40,.35);}
.abortion-photo img{width:100%;height:100%;object-fit:cover;}
.abortion h2{font-size:clamp(20px,2.8vw,26px);color:var(--c-main-dark);font-weight:400;margin-bottom:16px;}
.abortion p{font-size:14.5px;color:var(--c-ink-soft);margin-bottom:14px;}
.faq-pills{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:22px;}
.faq-pill{
  background:#fff;border-radius:999px;padding:12px 18px;font-size:13px;color:var(--c-main-dark);font-weight:700;
  display:flex;align-items:center;gap:8px;box-shadow:0 6px 16px -10px rgba(90,70,40,.3);
  transition:transform .25s ease,box-shadow .25s ease;
}
.faq-pill:hover{transform:translateY(-2px);box-shadow:0 10px 20px -10px rgba(90,70,40,.4);}
.faq-pill::before{content:"Q";width:20px;height:20px;border-radius:50%;background:var(--c-accent);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.faq-pill.alt::before{background:var(--c-main);}
.abortion-more{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:13.5px;font-weight:700;color:var(--c-main-dark);}
.abortion-more:hover{text-decoration:underline;}

/* ===== 診療科目・症状インデックスカード(カード全体をクリック可能に) ===== */
.shinryo-index-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;}
a.shinryo-index-card{
  display:block;background:#fff;border-radius:16px;padding:22px;box-shadow:0 8px 22px -16px rgba(90,70,40,.3);
  transition:transform .3s ease,box-shadow .3s ease;
}
a.shinryo-index-card:hover,a.shinryo-index-card:focus-visible{transform:translateY(-4px);box-shadow:0 16px 30px -16px rgba(90,70,40,.35);}
a.shinryo-index-card h2,a.shinryo-index-card h3{margin-top:0;font-size:17px;color:var(--c-dark);font-weight:700;}
a.shinryo-index-card p{font-size:13.5px;color:var(--c-ink-soft);margin-top:8px;}
a.shinryo-index-card .abortion-more{pointer-events:none;}
a.shinryo-index-card:hover .abortion-more{text-decoration:underline;}

/* ===== features(3 circles) ===== */
.features{background:linear-gradient(180deg,var(--c-tint2),#eef2e2);}
.feature-grid{display:grid;grid-template-columns:1fr;gap:40px;text-align:center;}
@media(min-width:820px){.feature-grid{grid-template-columns:repeat(3,1fr);}}
.feature-circle{
  width:190px;height:190px;border-radius:50%;margin:0 auto 20px;background:radial-gradient(circle at 32% 30%,#a9bb7c,var(--c-main-dark));
  color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 20px 34px -18px rgba(70,80,40,.5);
}
.feature-circle .no{font-family:'Kaisei Decol',serif;font-size:15px;opacity:.85;}
.feature-circle .ti{font-size:16px;font-weight:700;margin-top:6px;padding:0 20px;}
.feature-grid p{font-size:13.5px;color:var(--c-ink-soft);max-width:26em;margin:0 auto;}

/* ===== clinic info ===== */
.clinic-inner{display:grid;grid-template-columns:1fr;gap:36px;}
@media(min-width:900px){.clinic-inner{grid-template-columns:1fr 1fr;align-items:center;}}
.clinic-table{width:100%;border-collapse:collapse;font-size:14px;}
.clinic-table th,.clinic-table td{text-align:left;padding:14px 10px;border-bottom:1px solid #ecdfc9;vertical-align:top;}
.clinic-table th{width:110px;color:var(--c-main-dark);font-weight:700;white-space:nowrap;}
.hours-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px;}
.hours-table th,.hours-table td{border:1px solid #ecdfc9;text-align:center;padding:6px 4px;}
.hours-table th{background:var(--c-tint2);color:var(--c-main-dark);}
.clinic-photo{border-radius:20px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 18px 36px -18px rgba(90,70,40,.3);}
.clinic-photo img{width:100%;height:100%;object-fit:cover;}
.clinic-note{font-size:11.5px;color:#a39584;margin-top:10px;}

.gbp-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:13px;color:var(--c-main-dark);border:1.5px solid var(--c-main);border-radius:999px;padding:10px 18px;}
.gbp-link:hover{background:var(--c-tint2);}

/* ===== footer(現行サイトに合わせ明るいトーンを維持) ===== */
footer{background:var(--c-tint2);color:var(--c-dark);padding:56px 0 24px;border-top:1px solid #e2dcc4;}
.foot-grid{display:grid;grid-template-columns:1fr;gap:32px;margin-bottom:32px;}
@media(min-width:760px){.foot-grid{grid-template-columns:1fr 1fr 1.2fr;}}
.foot-grid h4{font-size:13px;color:var(--c-main-dark);margin-bottom:14px;letter-spacing:.05em;border-bottom:1px solid #dcd4b8;padding-bottom:8px;}
.foot-grid ul{list-style:none;font-size:13px;line-height:2.2;color:#6b6055;}
.foot-grid ul a:hover{color:var(--c-accent-deep);text-decoration:underline;}
.foot-clinic{font-family:'Kaisei Decol',serif;font-size:16px;margin-bottom:10px;color:var(--c-main-dark);}
.foot-meta{font-size:12.5px;color:#6b6055;line-height:2;}
.foot-reserve{display:inline-block;margin-top:14px;background:var(--c-accent);color:#fff;font-size:12.5px;font-weight:700;padding:10px 18px;border-radius:999px;}
.foot-note{font-size:11px;color:#a39584;margin-top:6px;}
.copyright{border-top:1px solid #e2dcc4;padding-top:18px;font-size:11.5px;color:#a39584;text-align:center;}

/* ===== 掲載メディアバナー(マクロスまっぷ) ===== */
.macross-badge-strip{background:#f6f1e6;padding:14px 16px;text-align:center;border-top:1px solid rgba(0,0,0,.06);}
.macross-badge{display:inline-flex;align-items:center;gap:10px;text-decoration:none;opacity:.92;transition:opacity .2s ease;}
.macross-badge:hover{opacity:1;}
.macross-badge-icon{height:26px;width:auto;display:block;}
.macross-badge-label{font-size:11px;color:#8a8078;letter-spacing:.04em;}

/* ===== ページ内下層ページ共通(診療案内/中絶手術/医院紹介) ===== */
.page-hero{background:var(--c-tint2);padding:64px 0 40px;}
.page-hero .wrap{text-align:center;}
.page-hero .kicker{display:block;font-size:11px;letter-spacing:.22em;color:var(--c-accent-deep);margin-bottom:10px;font-weight:700;}
.page-hero h1{font-size:clamp(26px,4vw,38px);color:var(--c-main-dark);font-weight:400;margin-bottom:14px;}
.page-hero p{font-size:14.5px;color:var(--c-ink-soft);max-width:42em;margin:0 auto;}
.breadcrumb{font-size:12px;color:#a39584;margin-bottom:18px;}
.breadcrumb a{color:var(--c-main-dark);}
.breadcrumb a:hover{text-decoration:underline;}

.toc{background:#fff;border-radius:16px;padding:20px 24px;max-width:820px;margin:32px auto 0;box-shadow:0 8px 22px -16px rgba(90,70,40,.3);}
.toc h2{font-size:13px;color:var(--c-main-dark);margin-bottom:10px;}
.toc ol{padding-left:1.2em;font-size:13.5px;line-height:2;color:var(--c-ink-soft);}
.toc a:hover{color:var(--c-accent-deep);text-decoration:underline;}

.content-section{max-width:820px;margin:0 auto;padding:56px 0;border-bottom:1px solid #ecdfc9;}
.content-section:last-of-type{border-bottom:none;}
.content-section h2{font-size:clamp(19px,2.6vw,24px);color:var(--c-main-dark);font-weight:400;margin-bottom:18px;scroll-margin-top:90px;}
.content-section h3{font-size:15.5px;color:var(--c-main-dark);font-weight:700;margin:20px 0 8px;}
.content-section p{font-size:14.5px;color:var(--c-ink-soft);margin-bottom:14px;}
.content-section p b{color:var(--c-main-dark);}
.content-section ul,.content-section ol{padding-left:1.4em;font-size:14.5px;color:var(--c-ink-soft);margin-bottom:14px;}
.content-section li{margin-bottom:6px;}
.content-section table{width:100%;border-collapse:collapse;font-size:13.5px;margin:18px 0;}
.content-section th,.content-section td{border:1px solid #ecdfc9;padding:10px 12px;text-align:left;}
.content-section th{background:var(--c-tint2);color:var(--c-main-dark);white-space:nowrap;}
.partner-link{display:inline-flex;align-items:center;gap:5px;color:var(--c-accent-deep);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;}
.partner-link:hover{color:var(--c-accent);}
.partner-link svg{flex:none;opacity:.75;}

.flow-layout{display:grid;grid-template-columns:1fr;gap:28px;margin:22px 0;align-items:stretch;}
@media(min-width:760px){.flow-layout{grid-template-columns:300px 1fr;gap:40px;}}
.flow-image{width:100%;height:220px;object-fit:cover;border-radius:18px;box-shadow:0 10px 26px -16px rgba(90,70,40,.35);display:block;filter:saturate(.92) sepia(.22) brightness(1.05) contrast(.98) hue-rotate(-4deg);}
@media(min-width:760px){.flow-image{height:100%;min-height:380px;}}
.flow-steps{list-style:none;margin:0;padding:0;counter-reset:flow;}
.flow-steps li{position:relative;padding:0 0 30px 54px;counter-increment:flow;font-size:14.5px;color:var(--c-ink-soft);line-height:1.9;}
.flow-steps li:last-child{padding-bottom:0;}
.flow-steps li::before{content:counter(flow);position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;background:var(--c-accent);color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;font-family:'Kaisei Decol',serif;}
.flow-steps li::after{content:"";position:absolute;left:17px;top:38px;bottom:2px;width:2px;background:#ecdfc9;}
.flow-steps li:last-child::after{display:none;}
.flow-steps b{display:block;font-size:16px;color:var(--c-main-dark);font-weight:700;margin-bottom:5px;}
.warn-box{background:var(--c-tint);border-left:4px solid var(--c-accent);border-radius:8px;padding:16px 20px;font-size:13.5px;color:var(--c-dark);margin:16px 0;}
.warn-box strong{color:var(--c-accent-deep);}

.section-cta{text-align:center;background:var(--c-tint2);border-radius:20px;padding:32px 24px;margin:24px 0;}
.section-cta p{margin-bottom:16px;color:var(--c-ink-soft);font-size:14px;}

/* ===== Q&A ===== */
.qa-section{max-width:820px;margin:0 auto;padding:56px 0;}
.qa-list{list-style:none;}
.qa-item{border-bottom:1px solid #ecdfc9;}
.qa-question{width:100%;text-align:left;background:none;border:none;padding:18px 36px 18px 8px;font-size:14.5px;font-weight:700;color:var(--c-dark);cursor:pointer;position:relative;font-family:inherit;}
.qa-question::before{content:"Q";color:#fff;background:var(--c-accent);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;margin-right:10px;flex-shrink:0;}
.qa-question::after{content:"+";position:absolute;right:8px;top:16px;font-size:20px;color:var(--c-main-dark);transition:transform .25s ease;}
.qa-question[aria-expanded="true"]::after{transform:rotate(45deg);}
.qa-answer{padding:0 8px 22px 40px;font-size:13.5px;color:var(--c-ink-soft);}
.qa-answer p{margin-bottom:10px;}
.qa-answer a{color:var(--c-accent-deep);text-decoration:underline;}
.qa-more{text-align:right;margin-top:18px;font-size:13px;}
.qa-more a{color:var(--c-main-dark);}

.qa-archive-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:32px;}
.qa-archive-filter a{font-size:12.5px;padding:8px 16px;border-radius:999px;border:1px solid var(--c-main);color:var(--c-main-dark);}
.qa-archive-filter a.is-active{background:var(--c-main-dark);color:#fff;border-color:var(--c-main-dark);}
.qa-single-cta{background:var(--c-tint2);border-radius:16px;padding:22px;margin-top:32px;text-align:center;}

/* ===== フォーム(CF7) ===== */
.contact-form p{margin-bottom:0;}
.contact-form .wpcf7-form-control-wrap{display:block;margin-bottom:18px;}
.contact-form label{display:block;font-size:13.5px;font-weight:700;color:var(--c-main-dark);margin-bottom:6px;}
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"],.contact-form select,.contact-form textarea{
  width:100%;padding:12px 14px;border:1px solid #dcd0bb;border-radius:10px;font-size:14px;font-family:inherit;background:#fff;
}
.contact-form textarea{min-height:140px;resize:vertical;}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:2px solid var(--c-accent);outline-offset:1px;}
.contact-form .wpcf7-submit{background:var(--c-accent);color:#fff;border:none;padding:15px 40px;border-radius:999px;font-size:15px;font-weight:700;cursor:pointer;transition:transform .2s ease;}
.contact-form .wpcf7-submit:hover{transform:translateY(-2px);}
.contact-privacy-note{background:var(--c-tint2);border-radius:14px;padding:18px 20px;font-size:13px;color:var(--c-ink-soft);margin-bottom:28px;}
.contact-channels{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:36px;}
@media(min-width:640px){.contact-channels{grid-template-columns:1fr 1fr;}}
.contact-channel{background:#fff;border-radius:16px;padding:24px;text-align:center;box-shadow:0 8px 22px -16px rgba(90,70,40,.3);}
.contact-channel .cc-ic{width:44px;height:44px;margin:0 auto 12px;background:var(--c-tint2);border-radius:50%;display:flex;align-items:center;justify-content:center;}
.contact-channel .cc-value{font-size:20px;font-weight:700;color:var(--c-main-dark);margin:6px 0;}
.contact-channel .cc-note{font-size:12px;color:#a39584;}
.wpcf7-not-valid-tip{color:#c0392b;font-size:12px;margin-top:4px;}
.wpcf7-response-output{border-radius:10px;padding:12px 16px!important;font-size:13.5px;margin-top:16px!important;}

@media (prefers-reduced-motion: reduce){
  .fade-up,.sec-head h2{opacity:1!important;transform:none!important;transition:none!important;}
  .sec-head h2::after{transform:translateX(-50%) scaleX(1)!important;}
}
