/*
Theme Name: 刺繍工房りん
Theme URI: https://shisyu112-rin.com/
Description: 刺繍工房りん専用テーマ（モックアップv11準拠）
Author: 刺繍工房りん
Version: 1.0
Text Domain: rin-theme
*/

/* ===== モックアップ v11 CSS そのまま ===== */

:root {
  --color-bg: #FAF7F2;
  --color-text: #3D3532;
  --color-text-light: #6B5E57;
  --color-accent: #C4713B;
  --color-accent-soft: #D4956A;
  --color-accent-hover: #A85C2E;
  --color-cream: #FFF8F0;
  --color-sage-light: #D0DECA;
  --color-border: #E0D6CB;
  --color-white: #FFFFFF;
  --color-line: #06C755;
  --color-line-hover: #05B04C;
  --font-body: 'Zen Maru Gothic', sans-serif;
  --font-heading: 'Noto Serif JP', serif;
  --shadow-soft: 0 2px 20px rgba(61,53,50,0.06);
  --shadow-card: 0 4px 24px rgba(61,53,50,0.08);
  --shadow-hover: 0 8px 32px rgba(61,53,50,0.12);
  --radius: 12px;
  --radius-lg: 20px;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { margin-top:0 !important; }
body { font-family:var(--font-body); color:var(--color-text); background:var(--color-bg); line-height:1.8; -webkit-font-smoothing:antialiased; margin:0; padding:0; }
body.admin-bar header { top:32px; }
@media (max-width:782px) { body.admin-bar header { top:46px; } }

/* ===== HEADER ===== */
header {
  position:sticky; top:0; left:0; right:0; z-index:100;
  padding:0 40px; backdrop-filter:blur(12px);
  background:rgba(255,255,255,0.85);
  border-bottom:1px solid rgba(224,214,203,0.4);
}
.header-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:72px; }
.logo { display:flex; align-items:center; text-decoration:none; }
.logo-img { height:50px; width:auto; display:block; }
nav.desktop-nav { display:flex; align-items:center; }
nav a { text-decoration:none; color:var(--color-text-light); font-size:14px; font-weight:500; margin-left:32px; transition:color .2s; position:relative; }
nav a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:2px; background:var(--color-accent); transition:width .3s ease; }
nav a:hover { color:var(--color-accent); }
nav a:hover::after { width:100%; }
.nav-cta { background:var(--color-accent)!important; color:#fff!important; padding:8px 20px; border-radius:24px; font-size:13px!important; }
.nav-cta::after { display:none!important; }
.nav-cta:hover { background:var(--color-accent-hover)!important; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px; background:none; border:none; }
.hamburger span { display:block; width:24px; height:2px; background:var(--color-text); border-radius:2px; }
.mobile-nav { display:none; position:fixed; top:72px; left:0; right:0; background:rgba(255,255,255,0.97); backdrop-filter:blur(12px); padding:24px 20px 32px; border-bottom:1px solid var(--color-border); z-index:99; flex-direction:column; }
.mobile-nav.open { display:flex; }
.mobile-nav a { display:block; text-decoration:none; color:var(--color-text); font-size:15px; font-weight:500; padding:14px 0; border-bottom:1px solid var(--color-border); }
.mobile-nav a:last-child { border-bottom:none; }
.mobile-nav .nav-cta-mobile { display:block; text-align:center; margin-top:16px; background:var(--color-accent); color:#fff; padding:12px; border-radius:24px; font-weight:700; border-bottom:none; }

/* ===== LINE FLOAT ===== */
.line-float { position:fixed; bottom:28px; right:28px; z-index:200; display:flex; align-items:center; gap:10px; background:var(--color-line); color:#fff; text-decoration:none; padding:14px 24px; border-radius:40px; font-size:14px; font-weight:700; box-shadow:none; transition:transform .2s,opacity .4s,visibility .4s,background .2s; }
.line-float:hover { transform:translateY(-3px); background:var(--color-line-hover); }
.line-float svg { width:22px; height:22px; fill:#fff; flex-shrink:0; }
.line-float.hide-float { opacity:0; visibility:hidden; pointer-events:none; }

/* スマホ：スクロール中の非表示（translateYで上にスライド） */
header { transition:transform .4s ease; }
.sp-hide { transform:translateY(-100%) !important; }
.line-float.sp-hide { transform:translateY(200%) !important; }

/* ===== HERO ===== */
.hero {
  position: relative; width: 100%; height: calc(100vh - 72px);
  margin-top: 0; overflow: hidden; background: var(--color-bg-warm, #EDE6DC);
}
.hero-bg { position: absolute; inset: 0; }
.hero-bg picture, .hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.sp-br { display:none; }

/* ===== INTRO ===== */
.intro { background:var(--color-white); padding:56px 40px; text-align:center; }
.intro-inner { max-width:700px; margin:0 auto; }
.intro-badges { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:24px; }
.intro-badge { background:rgba(196,113,59,0.08); border:1px solid var(--color-accent-soft); color:var(--color-accent); padding:8px 20px; border-radius:24px; font-size:14px; font-weight:700; }
.intro p { font-family:var(--font-body); font-size:18px; color:var(--color-text-light); line-height:2; margin-bottom:32px; }
.intro-cta { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ===== SECTION ===== */
section { padding:80px 40px; }
.section-inner { max-width:1100px; margin:0 auto; }
.section-label { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.15em; color:var(--color-accent); margin-bottom:8px; }
.section-title { font-family:var(--font-heading); font-size:26px; font-weight:600; margin-bottom:16px; line-height:1.5; }
.section-desc { color:var(--color-text-light); font-size:16px; max-width:600px; margin-bottom:48px; }

/* ===== SERVICES ===== */
.services { background:var(--color-bg); }
.service-item { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; margin-bottom:64px; padding-bottom:64px; border-bottom:1px solid var(--color-border); }
.service-item:last-child { margin-bottom:0; padding-bottom:0; border-bottom:none; }
.service-item:nth-child(even) { direction:rtl; }
.service-item:nth-child(even) > * { direction:ltr; }
.service-image { width:100%; height:300px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); transition:transform .4s ease,box-shadow .4s ease; }
.service-image:hover { transform:translateY(-4px); box-shadow:var(--shadow-hover); }
.service-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.service-image:hover img { transform:scale(1.03); }
.service-header { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.service-num { font-family:var(--font-heading); font-size:44px; font-weight:600; color:rgba(196,113,59,0.25); line-height:1; flex-shrink:0; }
.service-header h3 { font-family:var(--font-heading); font-size:20px; font-weight:600; line-height:1.4; }
.service-body p { font-size:16px; color:var(--color-text-light); line-height:2; margin-bottom:16px; }
.service-link { display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:700; color:var(--color-accent); text-decoration:none; transition:gap .2s; }
.service-link:hover { gap:10px; }

/* ===== MERIT ===== */
.merits-section { background:var(--color-white); }
.merits-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.merit-card { background:var(--color-bg); border-radius:var(--radius); padding:36px 28px; box-shadow:var(--shadow-soft); border:1px solid var(--color-border); position:relative; overflow:hidden; }
.merit-card::before { content:''; position:absolute; top:0; left:0; width:4px; height:100%; background:var(--color-accent); border-radius:0 2px 2px 0; }
.merit-number { font-family:var(--font-heading); font-size:42px; font-weight:600; color:rgba(196,113,59,0.25); line-height:1; margin-bottom:12px; }
.merit-card h3 { font-family:var(--font-heading); font-size:18px; font-weight:600; margin-bottom:12px; }
.merit-card p { font-size:15px; color:var(--color-text-light); line-height:1.9; }

/* ===== FLOW ===== */
.flow-section { background:var(--color-bg); }
.flow-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; }
.flow-steps::before { content:''; position:absolute; top:40px; left:12.5%; width:75%; height:2px; background:linear-gradient(to right,var(--color-accent-soft),var(--color-sage-light)); }
.flow-step { text-align:center; position:relative; z-index:1; }
.flow-circle { width:80px; height:80px; border-radius:50%; background:var(--color-white); border:3px solid var(--color-accent-soft); display:flex; align-items:center; justify-content:center; margin:0 auto 20px; font-size:28px; transition:transform .3s,border-color .3s; }
.flow-step:hover .flow-circle { transform:scale(1.08); border-color:var(--color-accent); }
.flow-step-num { font-size:12px; font-weight:700; color:var(--color-accent); margin-bottom:6px; letter-spacing:.1em; }
.flow-step h3 { font-family:var(--font-heading); font-size:15px; font-weight:600; margin-bottom:8px; }
.flow-step p { font-size:14px; color:var(--color-text-light); line-height:1.7; }

/* ===== CTA ===== */
.cta-section { background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-soft) 100%); text-align:center; color:#fff; position:relative; overflow:hidden; }
.cta-section::before { content:''; position:absolute; top:-50%; right:-20%; width:400px; height:400px; background:rgba(255,255,255,0.06); border-radius:50%; }
.cta-section .section-inner { position:relative; z-index:1; }
.cta-title { font-family:var(--font-heading); font-size:28px; font-weight:600; margin-bottom:12px; }
.cta-desc { font-size:16px; opacity:.9; margin-bottom:36px; }
.cta-buttons { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ===== BUTTONS ===== */
.btn { display:inline-flex; align-items:center; gap:8px; padding:14px 32px; border-radius:32px; font-size:15px; font-weight:700; font-family:var(--font-body); text-decoration:none; transition:transform .2s,box-shadow .2s; cursor:pointer; border:none; }
.btn:hover { transform:translateY(-2px); }
.btn-white { background:#fff; color:var(--color-accent); box-shadow:0 4px 16px rgba(0,0,0,0.1); }
.btn-outline-white { background:transparent; color:#fff; border:2px solid rgba(255,255,255,0.5); }
.btn-outline-white:hover { border-color:#fff; }
.btn-accent { background:var(--color-accent); color:#fff; box-shadow:0 4px 16px rgba(196,113,59,0.3); }
.btn-accent:hover { background:var(--color-accent-hover); }
.btn-outline-accent { background:transparent; color:var(--color-accent); border:2px solid var(--color-accent-soft); }
.btn-outline-accent:hover { border-color:var(--color-accent); background:rgba(196,113,59,0.04); }
.btn-line-cta { background:var(--color-line); color:#fff; box-shadow:none; }
.btn-line-cta:hover { background:var(--color-line-hover); box-shadow:none; }

/* ===== NOTE ===== */
.note-box { background:var(--color-cream); border:1px solid var(--color-border); border-radius:var(--radius); padding:24px 28px; margin-top:48px; font-size:14px; color:var(--color-text-light); line-height:2; }
.note-box strong { color:var(--color-text); }

/* ===== FOOTER ===== */
footer { background:var(--color-text); color:rgba(255,255,255,0.6); padding:48px 40px 32px; }
.footer-inner { max-width:1100px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; }
.footer-logo { color:#fff; font-family:var(--font-heading); font-size:16px; font-weight:600; }
.footer-logo small { display:block; font-size:11px; font-weight:400; color:rgba(255,255,255,0.4); font-family:var(--font-body); margin-top:4px; }
footer p { font-size:12px; }

.fade-up { opacity:0; transform:translateY(24px); transition:opacity .6s ease,transform .6s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/* ===== 下部ページ用追加スタイル ===== */
.page-header { margin-top:0; padding:56px 40px 40px; background:var(--color-white); border-bottom:1px solid var(--color-border); }
.page-header-inner { max-width:800px; margin:0 auto; }
.page-header h1 { font-family:var(--font-heading); font-size:28px; font-weight:600; line-height:1.5; color:var(--color-text); }
.breadcrumb { font-size:13px; color:var(--color-text-light); margin-bottom:16px; }
.breadcrumb a { color:var(--color-accent); text-decoration:none; }
.breadcrumb a:hover { color:var(--color-accent-hover); }
.page-body { max-width:800px; margin:0 auto; padding:48px 40px 80px; }
.page-body p { font-size:16px; color:var(--color-text-light); line-height:2; margin-bottom:24px; }
.page-body strong { color:var(--color-text); }
.page-body h2 { font-family:var(--font-heading); font-size:22px; font-weight:600; color:var(--color-text); margin:48px 0 20px; padding-left:16px; border-left:4px solid var(--color-accent); line-height:1.5; }
.page-body h3 { font-family:var(--font-heading); font-size:18px; font-weight:600; color:var(--color-text); margin:36px 0 16px; }
.page-body img { width:100%; border-radius:var(--radius-lg); box-shadow:var(--shadow-card); margin:24px 0; }
.page-body ul { list-style:none; padding:0; margin-bottom:24px; }
.page-body ul li { position:relative; padding-left:1.4em; font-size:16px; color:var(--color-text-light); line-height:2; }
.page-body ul li::before { content:'・'; position:absolute; left:0; color:var(--color-accent); }
.page-body ol { padding-left:1.5em; margin-bottom:24px; }
.page-body ol li { font-size:16px; color:var(--color-text-light); line-height:2; }
.page-body hr { border:none; border-top:1px solid var(--color-border); margin:48px 0; }
.page-body a { color:var(--color-accent); text-decoration:none; font-weight:700; }
.page-body a:hover { color:var(--color-accent-hover); }
.page-body blockquote { background:var(--color-cream); border:1px solid var(--color-border); border-radius:var(--radius); padding:24px 28px; font-size:14px; color:var(--color-text-light); line-height:2; }

/* WPエディタ用ボタン */
.wp-block-button .wp-block-button__link {
  display:inline-flex; align-items:center; gap:8px; padding:14px 32px;
  border-radius:32px; font-size:15px; font-weight:700; font-family:var(--font-body);
  text-decoration:none; transition:transform .2s,box-shadow .2s;
  border:none; background:var(--color-accent); color:#fff;
  box-shadow:0 4px 16px rgba(196,113,59,0.3);
}
.wp-block-button .wp-block-button__link:hover {
  transform:translateY(-2px); background:var(--color-accent-hover);
  box-shadow:0 8px 24px rgba(196,113,59,0.35); color:#fff;
}

/* ===== MOBILE ===== */
@media (max-width:768px) {
  header { padding:0 20px; position:fixed; top:0; left:0; right:0; }
  .logo-img { height:36px; }
  nav.desktop-nav { display:none; }
  .hamburger { display:flex; }
  .hero { height: calc(100vh - 72px); max-height: 600px; margin-top:72px; }
  .page-header { margin-top:72px; }
  .sp-br { display:inline; }
  .intro { padding: 40px 20px; }
  .intro-inner { text-align: left; }
  .intro-badges { justify-content: center; }
  .intro-cta { justify-content: center; }
  .service-item { display:flex; flex-direction:column; gap:16px; margin-bottom:48px; padding-bottom:48px; }
  .service-item:nth-child(even) { direction:ltr; }
  .service-info { display:contents; }
  .service-header { order:1; }
  .service-image { order:2; height:220px; }
  .service-body { order:3; }
  .service-num { font-size:32px; }
  .service-header h3 { font-size:18px; }
  .merits-grid { grid-template-columns:1fr; gap:20px; }
  .flow-steps { grid-template-columns:repeat(2,1fr); gap:32px 20px; }
  .flow-steps::before { display:none; }
  section { padding:60px 20px; }
  .section-title { font-size:22px; }
  .line-float { bottom:20px; right:20px; padding:12px 20px; font-size:13px; }
  .footer-inner { flex-direction:column; gap:16px; text-align:center; }
  .page-header { padding:40px 20px 32px; }
  .page-header h1 { font-size:22px; }
  .page-body { padding:32px 20px 60px; }
  .page-body h2 { font-size:20px; }
}

@media (max-width:480px) {
  .intro-badges { gap:6px; }
  .intro-badge { font-size:11px; padding:5px 10px; }
  .intro-cta { flex-direction:column; }
  .intro-cta .btn { text-align:center; justify-content:center; }
  .service-num { font-size:28px; }
  .service-header h3 { font-size:16px; }
  .service-image { height:200px; }
  .flow-steps { grid-template-columns:1fr; }
}
