@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700;900&family=Klee+One:wght@600&family=Noto+Sans+JP:wght@400;500;700&display=swap');

:root{
    --cream:#F7F4EA;
    --cream-deep:#F0EBDA;
    --sage:#E7EBDC;
    --sage-deep:#DCE3D0;
    --forest:#33462E;
    --forest-deep:#1F2E1B;
    --ink:#26301F;
    --ink-soft:#5B6350;
    --moss:#4C6B3F;
    --clay:#E2703A;
    --clay-soft:#F0C9A6;
    --line:#D9D6C4;
    --paper:#FFFEF9;
  }
.shinchalle-lp *{box-sizing:border-box;}
@media (prefers-reduced-motion: reduce){
.shinchalle-lp *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
.shinchalle-lp{
    margin:0; background:var(--cream); color:var(--ink);
    font-family:'Noto Sans JP', sans-serif; line-height:1.85;
    -webkit-font-smoothing:antialiased;
  }
.shinchalle-lp h1, .shinchalle-lp h2, .shinchalle-lp h3, .shinchalle-lp .brand{ font-family:'Zen Maru Gothic', sans-serif; color:var(--ink); margin:0; line-height:1.4; }
.shinchalle-lp .hand{ font-family:'Klee One', sans-serif; }
.shinchalle-lp a{color:inherit;}
.shinchalle-lp img, .shinchalle-lp svg{display:block;max-width:100%;}
.shinchalle-lp .wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.shinchalle-lp .narrow{max-width:640px;}
.shinchalle-lp a:focus-visible, .shinchalle-lp button:focus-visible{ outline:3px solid var(--clay); outline-offset:3px; }
.shinchalle-lp .photo-slot{
    position:relative; background:
      repeating-linear-gradient(135deg, #EFE9D8, #EFE9D8 10px, #E6DFCA 10px, #E6DFCA 20px);
    border:2px dashed #C9C2A8; border-radius:18px;
    display:flex; align-items:center; justify-content:center; text-align:center;
    color:#8B8264; font-size:0.82rem; line-height:1.7; padding:16px;
  }
.shinchalle-lp .photo-slot span{max-width:22em;}
.shinchalle-lp header{ position:sticky; top:0; z-index:50; background:rgba(247,244,234,0.94); backdrop-filter:blur(6px); }
.shinchalle-lp .nav{ display:flex; align-items:center; justify-content:space-between; padding:18px 28px; max-width:1120px; margin:0 auto; }
.shinchalle-lp .brand{ display:flex; align-items:center; gap:10px; font-size:1.02rem; font-weight:700; text-decoration:none; }
.shinchalle-lp .brand-mark{
    width:34px; height:34px; border-radius:50%; background:var(--moss);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
.shinchalle-lp .brand-mark svg{width:18px;height:18px;}
.shinchalle-lp .nav-links{ display:flex; gap:30px; list-style:none; margin:0; padding:0; font-size:0.92rem; }
.shinchalle-lp .nav-links a{ text-decoration:none; color:var(--ink-soft); }
.shinchalle-lp .nav-links a:hover{ color:var(--moss); }
.shinchalle-lp .nav-cta{ display:inline-block; background:var(--forest); color:var(--paper) !important; padding:11px 22px; border-radius:999px; text-decoration:none; font-size:0.88rem; font-weight:700; white-space:nowrap; }
.shinchalle-lp .nav-cta:hover{ background:var(--forest-deep); }
@media (max-width:760px){
.shinchalle-lp .nav-links{display:none;}
}
.shinchalle-lp .hero{ position:relative; padding:72px 0 0; overflow:hidden; }
.shinchalle-lp .hero-inner{ position:relative; }
.shinchalle-lp .hero-photo{ aspect-ratio:16/10; margin:0 28px; border-radius:28px; }
@media (min-width:1120px){
.shinchalle-lp .hero-photo{ margin:0 auto; max-width:1064px; }
}
.shinchalle-lp .hero-text{
    position:relative; z-index:2; max-width:1120px; margin:-140px auto 0; padding:0 48px;
  }
.shinchalle-lp .hero-tag{ color:var(--paper); background:rgba(38,48,31,0.55); display:inline-block; padding:6px 16px; border-radius:999px; font-size:0.8rem; font-weight:700; margin-bottom:16px; }
.shinchalle-lp .hero h1{ color:var(--paper); font-size:clamp(1.9rem,4.4vw,2.9rem); font-weight:900; text-shadow:0 2px 18px rgba(0,0,0,0.35); max-width:14em; }
.shinchalle-lp .hero-caption{
    position:absolute; top:-96px; right:40px; z-index:3; color:var(--paper);
    font-size:1rem; text-align:right; text-shadow:0 2px 10px rgba(0,0,0,0.4);
  }
@media (max-width:700px){
.shinchalle-lp .hero-caption{display:none;}
.shinchalle-lp .hero-text{margin-top:-90px;}
}
.shinchalle-lp .hero-body{ padding:170px 0 70px; }
.shinchalle-lp .hero-body p{ color:var(--ink-soft); max-width:34em; margin:0 0 28px; font-size:1.02rem; }
.shinchalle-lp .btn-row{ display:flex; gap:16px; flex-wrap:wrap; }
.shinchalle-lp .btn{ display:inline-block; padding:14px 28px; border-radius:999px; text-decoration:none; font-weight:700; font-size:0.95rem; transition:transform 0.15s ease; }
.shinchalle-lp .btn-primary{ background:var(--clay); color:var(--paper); }
.shinchalle-lp .btn-primary:hover{ transform:translateY(-2px); background:#CD5D28; }
.shinchalle-lp .btn-ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--ink); }
.shinchalle-lp .btn-ghost:hover{ transform:translateY(-2px); background:var(--ink); color:var(--paper); }
@media (max-width:700px){
.shinchalle-lp .hero-photo{ width:88%; margin:0; border-radius:0; aspect-ratio:16/9; }
@media screen and (max-width: 768px){
  .shinchalle-lp .hero-photo{
    width:100%;
    aspect-ratio:4/3;
  }
}
.shinchalle-lp .hero-text{ padding:0 24px; }
}
.shinchalle-lp .wave{ display:block; width:100%; height:64px; }
.shinchalle-lp .wave-cream-to-sage{ fill:var(--sage); }
.shinchalle-lp .wave-sage-to-cream{ fill:var(--cream); }
.shinchalle-lp .wave-cream-to-forest{ fill:var(--forest); }
.shinchalle-lp section{ padding:80px 0; }
.shinchalle-lp .section-tag{ color:var(--moss); font-weight:700; font-size:0.85rem; margin-bottom:10px; }
.shinchalle-lp .section-head h2{ font-size:clamp(1.5rem,3vw,2rem); font-weight:700; margin-bottom:14px; }
.shinchalle-lp .section-head p{ color:var(--ink-soft); max-width:42em; }
.shinchalle-lp .bg-sage{ background:var(--sage); position:relative; }
.shinchalle-lp .service-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin-top:48px; }
.shinchalle-lp .service-item{ text-align:left; }
.shinchalle-lp .service-icon{
    width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    margin-bottom:18px; color:var(--paper);
  }
.shinchalle-lp .service-icon svg{ width:28px; height:28px; }
.shinchalle-lp .service-item:nth-child(1) .service-icon{ background:var(--moss); }
.shinchalle-lp .service-item:nth-child(2) .service-icon{ background:var(--clay); }
.shinchalle-lp .service-item:nth-child(3) .service-icon{ background:var(--forest); }
.shinchalle-lp .service-item h3{ font-size:1.08rem; margin-bottom:10px; }
.shinchalle-lp .service-item p{ color:var(--ink-soft); font-size:0.94rem; margin:0; }
@media (max-width:820px){
.shinchalle-lp .service-grid{grid-template-columns:1fr; gap:40px;}
}
.shinchalle-lp .flow-wrap{ display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:start; margin-top:48px; }
.shinchalle-lp .flow{ border-left:2px dashed #B9C4AA; margin-left:20px; }
.shinchalle-lp .flow-step{ position:relative; padding:0 0 42px 40px; }
.shinchalle-lp .flow-step:last-child{ padding-bottom:0; }
.shinchalle-lp .flow-step::before{
    content:attr(data-step); position:absolute; left:-21px; top:0; width:40px; height:40px; border-radius:50%;
    background:var(--forest); color:var(--paper); display:flex; align-items:center; justify-content:center;
    font-family:'Zen Maru Gothic'; font-weight:700; font-size:1rem;
  }
.shinchalle-lp .flow-step h3{ font-size:1.05rem; margin-bottom:6px; }
.shinchalle-lp .flow-step p{ color:var(--ink-soft); margin:0; font-size:0.94rem; }
.shinchalle-lp .flow-note{
    position:relative; background:var(--paper); border-radius:50% 45% 55% 50% / 55% 50% 50% 45%;
    padding:44px 32px; text-align:center; align-self:center;
  }
.shinchalle-lp .flow-note p{ font-size:1.2rem; margin:0; color:var(--forest-deep); }
.shinchalle-lp .flow-note .dot{ position:absolute; width:26px; height:26px; border-radius:50%; background:var(--clay); bottom:18px; right:26px; opacity:0.85; }
@media (max-width:820px){
.shinchalle-lp .flow-wrap{grid-template-columns:1fr;}
.shinchalle-lp .flow-note{margin-top:8px;}
}
.shinchalle-lp .price-table{ width:100%; border-collapse:collapse; margin-top:14px; }
.shinchalle-lp .price-table th, .shinchalle-lp .price-table td{ text-align:left; padding:16px 4px; border-bottom:1px solid var(--line); font-size:0.95rem; }
.shinchalle-lp .price-table th{ font-weight:700; color:var(--ink-soft); font-size:0.85rem; }
.shinchalle-lp .price-table .amount{ font-weight:700; color:var(--moss); white-space:nowrap; }
.shinchalle-lp .price-note{ color:var(--ink-soft); font-size:0.86rem; margin-top:14px; }
.shinchalle-lp .blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:44px; }
.shinchalle-lp .blog-card{ text-decoration:none; color:var(--ink); display:block; }
.shinchalle-lp .blog-card .photo-slot{ aspect-ratio:4/3; margin-bottom:16px; }
.shinchalle-lp .blog-card h3{ font-size:1rem; font-weight:700; margin-bottom:6px; }
.shinchalle-lp .blog-card time{ color:var(--ink-soft); font-size:0.82rem; }
.shinchalle-lp .blog-more{ margin-top:40px; text-align:center; }
@media (max-width:820px){
.shinchalle-lp .blog-grid{grid-template-columns:1fr;}
}
.shinchalle-lp .about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.shinchalle-lp .about-photo{ position:relative; }
.shinchalle-lp .about-photo .photo-slot{ aspect-ratio:1/1; border-radius:50%; }
.shinchalle-lp .about-caption{
    position:absolute; bottom:-14px; left:-14px; background:var(--paper); border-radius:999px;
    padding:12px 22px; font-size:0.92rem; color:var(--forest-deep); box-shadow:0 6px 18px rgba(0,0,0,0.08);
  }
.shinchalle-lp .about-text h2{ margin-bottom:18px; }
.shinchalle-lp .about-text p{ color:var(--ink-soft); margin:0 0 30px; }
@media (max-width:820px){
.shinchalle-lp .about-grid{grid-template-columns:1fr; gap:60px;}
.shinchalle-lp .about-photo{max-width:280px;margin:0 auto;}
}
.shinchalle-lp .contact-box{
    background:var(--forest-deep); color:var(--paper); border-radius:28px; padding:56px 44px; text-align:center; margin-top:64px;
  }
.shinchalle-lp .contact-box h2{ color:var(--paper); font-size:clamp(1.35rem,3vw,1.8rem); margin-bottom:14px; }
.shinchalle-lp .contact-box p{ color:#C8D0BC; max-width:34em; margin:0 auto 28px; }
.shinchalle-lp footer{ padding:48px 0 40px; }
.shinchalle-lp .footer-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; }
.shinchalle-lp .footer-nav{ display:flex; gap:24px; list-style:none; padding:0; margin:0; font-size:0.88rem; }
.shinchalle-lp .footer-nav a{ text-decoration:none; color:var(--ink-soft); }
.shinchalle-lp .footer-copy{ text-align:center; color:var(--ink-soft); font-size:0.8rem; margin-top:28px; }
/* ---------- Cocoon標準スタイルとの衝突対策 ---------- */
.shinchalle-lp h1,
.shinchalle-lp h2,
.shinchalle-lp h3 {
  background: none !important;
  border: none !important;
  padding: 0 !important;
}
.shinchalle-lp ul,
.shinchalle-lp ol {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.shinchalle-lp a {
  text-decoration: none !important;
}
.shinchalle-lp table {
  border: none !important;
}
.shinchalle-lp .price-table th,
.shinchalle-lp .price-table td {
  border: none !important;
  border-bottom: 1px solid var(--line) !important;
}

/* ---------- 記事タイトル・SNS・日付などブログ要素を非表示(フロントページのみ) ---------- */
.home.page .entry-title { display: none; }
.home.page .sns-share { display: none; }
.home.page .sns-follow { display: none; }
.home.page .post-date { display: none; }
.home.page .post-update { display: none; }
.home.page .author-info { display: none; }
.home.page .article-tags { display: none; }
.home.page .related-entry-card-content { display: none; }
.home.page #comments { display: none; }
.home.page .content-bottom-nav { display: none; }

/* ---------- 記事の「枠」を解除してフルブリードにする ---------- */
.home.page .article {
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
}
.home.page .content {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
}
.home.page #main {
  padding: 0 !important;
  max-width: 100% !important;
}
.home.page .entry-content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}
.home.page #content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.home.page .container {
  max-width: 100% !important;
  padding: 0 !important;
}

/* ---------- ヘッダーメニューを非表示(フロントページのみ) ---------- */
.home.page #header,
.home.page .l-header,
.home.page .header-in,
.home.page .navi-in,
.home.page #navi,
.home.page #globalMenu,
.home.page .global-menu-container {
  display: none !important;
}

/* ---------- ブログカードの実際のアイキャッチ画像用 ---------- */
.shinchalle-lp .blog-thumb {
  aspect-ratio: 4/3;
  border-radius: 18px;
  overflow: hidden;
  margin-bottom: 16px;
}
.shinchalle-lp .blog-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}