/* 出張整体ラポール メインスタイル。デザイントークン・レイアウトは既存モックアップ(rapport_top_page_v2.html)から移植。変更なし。 */
  :root{
    --green:#1B3B2F; --green-light:#2F5745;
    --beige:#E4D9C4; --beige-soft:#F4EEE3;
    --white:#FCFBF8; --gold:#B7924B; --gold-soft:#D9BD84;
    --text:#26291F; --text-sub:#5B5C52;
    --serif:'Hiragino Mincho ProN', 'Yu Mincho', serif;
    --sans:'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:var(--sans); color:var(--text); background:var(--white); line-height:1.8; -webkit-font-smoothing:antialiased;}
  img{display:block; max-width:100%; height:auto;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 20px;}
  h1,h2,h3{font-family:var(--serif); font-weight:600; line-height:1.5; letter-spacing:.02em;}

  /* skip link: アクセシビリティ */
  .skip-link{position:absolute; left:-999px; top:auto; background:var(--green); color:var(--white); padding:10px 16px; z-index:100;}
  .skip-link:focus{left:12px; top:12px;}

  a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}

  header{position:sticky; top:0; z-index:50; background:rgba(252,251,248,.94); backdrop-filter:blur(6px); border-bottom:1px solid rgba(27,59,47,.08);}
  .header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 20px; max-width:1120px; margin:0 auto;}
  .logo{font-family:var(--serif); font-size:19px; font-weight:600; color:var(--green);}
  .logo span{display:block; font-family:var(--sans); font-size:9.5px; font-weight:500; color:var(--text-sub); letter-spacing:.24em; margin-top:2px;}
  nav{display:none; gap:24px; font-size:13.5px;}
  nav a{position:relative; padding:4px 0;}
  nav a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .25s ease;}
  nav a:hover::after{width:100%;}
  @media(min-width:960px){nav{display:flex;}}
  .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 26px; border-radius:2px; font-size:15px; font-weight:700; letter-spacing:.02em; white-space:nowrap; transition:opacity .2s ease, transform .2s ease; min-height:48px;}
  .btn:hover{opacity:.88; transform:translateY(-1px);}
  .btn-gold{background:var(--gold); color:var(--white);}
  .btn-outline{background:transparent; color:var(--green); border:1px solid var(--green);}
  .btn-outline-light{background:transparent; color:var(--white); border:1px solid rgba(255,255,255,.55);}
  .header-cta{display:none;}
  @media(min-width:960px){.header-cta{display:inline-flex;}}

  /* パンくず（構造化データと連動。トップは簡易表示） */
  .breadcrumb{font-size:12px; color:var(--text-sub); padding:10px 0;}
  .breadcrumb ol{list-style:none; display:flex; gap:6px;}

  .hero{position:relative; overflow:hidden; background:var(--green); color:var(--white); padding:52px 0 64px;}
  .hero-grid{display:grid; grid-template-columns:1fr; gap:40px; align-items:center;}
  @media(min-width:960px){.hero-grid{grid-template-columns:1.05fr .95fr;}}
  .badge-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
  .badge{font-size:12px; font-weight:700; letter-spacing:.02em; color:var(--gold-soft); border:1px solid rgba(217,189,132,.45); padding:6px 12px; border-radius:2px;}
  .hero h1{font-size:clamp(30px,5.2vw,46px); color:var(--white);}
  .hero h1 em{font-style:normal; color:var(--gold-soft);}
  .sub-copy{margin-top:14px; font-family:var(--serif); font-size:clamp(18px,2.6vw,24px); font-weight:600; color:var(--gold-soft);}
  .symptom-line{margin-top:16px; font-size:14.5px; color:rgba(252,251,248,.85); font-weight:500;}
  .symptom-line strong{color:var(--gold-soft); font-weight:700;}
  .hero-cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px;}
  .hero-cta .btn{font-size:16px; padding:16px 30px;}

  .signature{position:relative; height:260px; display:flex; align-items:center; justify-content:center;}
  .signature svg{width:100%; height:100%;}
  .signature img{width:100%; height:100%; object-fit:cover; border-radius:4px;}
  .sig-line{stroke:var(--gold-soft); stroke-width:1.4; fill:none;}

  section{padding:72px 0;}
  .section-head{max-width:620px; margin:0 auto 44px; text-align:center;}
  .eyebrow-line{display:inline-block; font-size:12px; letter-spacing:.22em; color:var(--gold); margin-bottom:12px; font-weight:700;}
  .section-head h2{font-size:clamp(22px,3.2vw,30px); color:var(--green);}
  .section-head p{margin-top:14px; color:var(--text-sub); font-size:14.5px;}
  .bg-soft{background:var(--beige-soft);}

  .cta-inline{text-align:center; margin-top:36px;}

  .reasons-grid{display:grid; grid-template-columns:1fr; gap:1px; background:rgba(27,59,47,.12); border:1px solid rgba(27,59,47,.12);}
  @media(min-width:760px){.reasons-grid{grid-template-columns:repeat(4,1fr);}}
  .reason{background:var(--white); padding:30px 24px;}
  .reason .icon{width:30px; height:30px; color:var(--gold); margin-bottom:16px;}
  .reason h3{font-family:var(--sans); font-size:15px; font-weight:700; color:var(--green); margin-bottom:8px;}
  .reason p{font-size:13px; color:var(--text-sub);}

  /* 対応症状: タグクラウド（内部リンク想定） */
  .symptom-tags{display:flex; flex-wrap:wrap; gap:10px; justify-content:center;}
  .symptom-tags a{font-size:13.5px; font-weight:500; color:var(--green); background:var(--white); border:1px solid rgba(27,59,47,.16); padding:9px 18px; border-radius:20px; transition:background .2s ease, color .2s ease;}
  .symptom-tags a:hover{background:var(--green); color:var(--white);}

  .services-grid{display:grid; grid-template-columns:1fr; gap:20px;}
  @media(min-width:700px){.services-grid{grid-template-columns:repeat(2,1fr);}}
  .service-card{background:var(--white); border:1px solid rgba(27,59,47,.12); padding:28px; transition:border-color .25s ease;}
  .service-card:hover{border-color:var(--gold);}
  .service-card .tag{font-size:11px; letter-spacing:.12em; color:var(--gold); font-weight:700; margin-bottom:12px;}
  .service-card .icon{width:28px; height:28px; color:var(--green); margin-bottom:14px;}
  .service-card h3{font-size:18px; color:var(--green); margin-bottom:8px;}
  .service-card p{font-size:13.5px; color:var(--text-sub); margin-bottom:14px;}
  .service-card .more{font-size:13px; font-weight:700; color:var(--green);}

  .flow{display:grid; grid-template-columns:1fr; gap:0;}
  @media(min-width:760px){.flow{grid-template-columns:repeat(5,1fr);}}
  .flow-step{position:relative; padding:0 16px 26px; text-align:center;}
  .flow-num{width:38px; height:38px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-family:var(--serif); color:var(--gold); font-size:15px; background:var(--white);}
  .flow-step h4{font-size:14px; font-weight:700; color:var(--green); margin-bottom:6px;}
  .flow-step p{font-size:12px; color:var(--text-sub);}

  .price-grid{display:grid; grid-template-columns:1fr; gap:18px;}
  @media(min-width:760px){.price-grid{grid-template-columns:repeat(4,1fr);}}
  .price-card{background:var(--white); border:1px solid rgba(27,59,47,.14); text-align:center; padding:30px 20px; position:relative;}
  .price-card.featured{border:1px solid var(--gold);}
  .price-card .badge-pin{position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--gold); color:var(--white); font-size:11px; font-weight:700; padding:4px 12px;}
  .price-card .mins{font-family:var(--serif); font-size:14px; color:var(--text-sub);}
  .price-card .yen{font-family:var(--serif); font-size:28px; color:var(--green); margin:8px 0 2px;}
  .price-card .note{font-size:12px; color:var(--text-sub); margin-bottom:16px;}

  .profile-grid{display:grid; grid-template-columns:1fr; gap:36px; align-items:center;}
  @media(min-width:760px){.profile-grid{grid-template-columns:220px 1fr;}}
  .profile-photo{width:220px; height:220px; border-radius:4px; background:var(--beige); display:flex; align-items:center; justify-content:center; color:var(--text-sub); font-size:12px; margin:0 auto;}
  .profile-cred{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
  .profile-cred span{font-size:12px; background:var(--beige-soft); color:var(--green); padding:5px 12px; border-radius:20px; font-weight:700;}

  .voice-grid{display:grid; grid-template-columns:1fr; gap:18px;}
  @media(min-width:760px){.voice-grid{grid-template-columns:repeat(3,1fr);}}
  .voice-card{background:var(--white); border:1px solid rgba(27,59,47,.12); padding:24px;}
  .stars{display:flex; gap:3px; margin-bottom:12px;}
  .stars svg{width:14px; height:14px; color:var(--gold);}
  .voice-card p.body{font-size:13px; color:var(--text); margin-bottom:16px;}
  .voice-who{display:flex; align-items:center; gap:10px;}
  .voice-avatar{width:32px; height:32px; border-radius:50%; background:var(--beige); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--green); font-weight:700;}
  .voice-meta{font-size:11.5px; color:var(--text-sub);}
  .voice-meta strong{display:block; font-size:12.5px; color:var(--text); font-weight:700;}

  /* 信頼性ブロック */
  .trust-grid{display:grid; grid-template-columns:1fr; gap:20px;}
  @media(min-width:860px){.trust-grid{grid-template-columns:1fr 1fr;}}
  .trust-box{background:var(--white); border:1px solid rgba(27,59,47,.12); padding:22px;}
  .trust-box h4{font-size:13.5px; font-weight:700; color:var(--green); margin-bottom:14px;}
  .map-frame{width:100%; aspect-ratio:16/9; background:var(--beige-soft); display:flex; align-items:center; justify-content:center; color:var(--text-sub); font-size:12px; border:1px dashed rgba(27,59,47,.2);}
  .insta-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:6px;}
  .insta-grid div{aspect-ratio:1/1; background:var(--beige-soft); display:flex; align-items:center; justify-content:center; color:var(--text-sub); font-size:10px;}
  .nap-list{list-style:none; font-size:13px; color:var(--text-sub); display:flex; flex-direction:column; gap:8px;}
  .nap-list strong{color:var(--text); font-weight:700;}

  /* 対応エリア */
  .area-list{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:8px;}
  .area-list span{font-size:13px; background:var(--white); border:1px solid rgba(27,59,47,.14); padding:7px 16px; border-radius:2px; color:var(--text);}

  /* ブログ */
  .blog-grid{display:grid; grid-template-columns:1fr; gap:20px;}
  @media(min-width:760px){.blog-grid{grid-template-columns:repeat(3,1fr);}}
  .blog-card{background:var(--white); border:1px solid rgba(27,59,47,.12);}
  .blog-thumb{width:100%; aspect-ratio:4/3; background:var(--beige-soft); display:flex; align-items:center; justify-content:center; color:var(--text-sub); font-size:11px;}
  .blog-body{padding:18px;}
  .blog-cat{font-size:10.5px; font-weight:700; color:var(--gold); letter-spacing:.06em; margin-bottom:8px;}
  .blog-body h3{font-size:14.5px; font-family:var(--sans); font-weight:700; color:var(--text); margin-bottom:10px;}
  .blog-tags{display:flex; flex-wrap:wrap; gap:6px;}
  .blog-tags span{font-size:10.5px; color:var(--text-sub); background:var(--beige-soft); padding:3px 8px; border-radius:12px;}

  .faq{max-width:720px; margin:0 auto; display:flex; flex-direction:column; gap:1px; background:rgba(27,59,47,.12); border:1px solid rgba(27,59,47,.12);}
  .faq-item{background:var(--white);}
  .faq-q{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; cursor:pointer; font-size:14px; font-weight:700; color:var(--green); min-height:48px;}
  .faq-q .plus{width:15px; height:15px; flex:none; color:var(--gold); transition:transform .25s ease;}
  .faq-item.open .plus{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
  .faq-a p{padding:0 20px 18px; font-size:13px; color:var(--text-sub);}

  .final-cta{background:var(--green); color:var(--white); text-align:center; padding:80px 0;}
  .final-cta h2{color:var(--white); font-size:clamp(22px,3.4vw,32px);}
  .final-cta p{color:rgba(252,251,248,.78); margin:16px auto 30px; max-width:460px; font-size:14.5px;}
  .final-cta .hero-cta{justify-content:center;}

  footer{background:#132A21; color:rgba(252,251,248,.7); padding:56px 0 100px; font-size:13px;}
  .footer-grid{display:grid; grid-template-columns:1fr; gap:32px;}
  @media(min-width:760px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;}}
  .footer-logo{font-family:var(--serif); font-size:17px; color:var(--white); margin-bottom:10px;}
  footer h5{font-size:11.5px; letter-spacing:.1em; color:var(--gold-soft); margin-bottom:14px; font-weight:700;}
  footer ul{list-style:none; display:flex; flex-direction:column; gap:9px;}
  footer a:hover{color:var(--white);}
  .footer-bottom{border-top:1px solid rgba(252,251,248,.12); margin-top:40px; padding-top:20px; font-size:11.5px; color:rgba(252,251,248,.45); text-align:center;}

  /* デスクトップ用フローティングCTA */
  .fixed-cta-desktop{position:fixed; right:20px; bottom:20px; z-index:60; display:none; flex-direction:column; gap:10px;}
  @media(min-width:760px){.fixed-cta-desktop{display:flex;}}
  .fab{display:flex; align-items:center; gap:8px; padding:13px 18px; font-size:13px; font-weight:700; border-radius:2px;}
  .fab-line{background:var(--gold); color:var(--white);}
  .fab-tel{background:var(--white); color:var(--green); border:1px solid var(--green);}
  .fab svg{width:16px; height:16px;}

  /* スマホ固定CTAバー: 予約率最優先。フルワイド・親指で押しやすい高さ */
  .mobile-cta-bar{position:fixed; left:0; right:0; bottom:0; z-index:70; display:flex; box-shadow:0 -6px 18px rgba(0,0,0,.12);}
  @media(min-width:760px){.mobile-cta-bar{display:none;}}
  .mobile-cta-bar a{flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:16px 0; font-size:14.5px; font-weight:700;}
  .mobile-cta-bar .mc-line{background:var(--gold); color:var(--white);}
  .mobile-cta-bar .mc-tel{background:var(--green); color:var(--white);}
  .mobile-cta-bar svg{width:17px; height:17px;}

  .mockup-note{background:var(--beige-soft); border-top:1px solid rgba(27,59,47,.12); padding:12px 20px; font-size:11.5px; color:var(--text-sub); text-align:center;}

  @media(prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

/* ===== LINE登録特典バナー ===== */
.line-benefit-banner{ background:var(--beige); padding:20px 0; }
.line-benefit-inner{ display:flex; flex-wrap:wrap; align-items:center; gap:16px; justify-content:center; text-align:center; }
.line-benefit-icon{ width:28px; height:28px; color:var(--green); flex:none; }
.line-benefit-icon svg{ width:100%; height:100%; }
.line-benefit-text{ font-size:13.5px; font-weight:700; color:var(--green); margin:0; }

/* ===== 最下部の大型CTA ===== */
.bottom-cta{ background:var(--green); color:var(--white); text-align:center; padding:72px 0; }
.bottom-cta h2{ color:var(--white); font-size:clamp(26px,4vw,38px); }
.bottom-cta p{ color:rgba(252,251,248,.8); margin:14px 0 30px; font-size:15px; }
.btn-xl{ font-size:17px; padding:18px 34px; }

/* ===== 人気記事ランキング ===== */
.rank-list{ display:flex; flex-direction:column; gap:1px; background:rgba(27,59,47,.12); border:1px solid rgba(27,59,47,.12); max-width:720px; margin:0 auto; }
.rank-item{ display:flex; align-items:center; gap:16px; background:var(--white); padding:16px 20px; }
.rank-num{ font-family:var(--serif); font-size:22px; color:var(--gold); width:32px; flex:none; text-align:center; }
.rank-title{ font-size:14px; color:var(--text); font-weight:700; }
.rank-title:hover{ color:var(--green); }

/* ===== Google口コミ ===== */
.google-review-card{ background:var(--white); border:1px solid rgba(27,59,47,.12); padding:20px; text-align:left; }
.google-review-author{ font-size:13px; font-weight:700; color:var(--green); margin-bottom:6px; }
.google-review-time{ font-size:11px; color:var(--text-sub); margin-bottom:10px; }
.google-review-text{ font-size:13px; color:var(--text); }
.google-review-summary{ text-align:center; font-size:13px; color:var(--text-sub); margin-bottom:20px; }
.google-review-summary strong{ color:var(--gold); font-family:var(--serif); font-size:20px; }
