
/* =========================================================
   癒しの泉 - スマホ対応 修正版 responsive.css
========================================================= */

html, body{
  width:100%;
  overflow-x:hidden;
}

img{
  max-width:100%;
  height:auto;
}

@media(max-width:768px){

  body{
    font-size:15px;
    line-height:1.9;
  }

  /* HEADER */
  .header-inner{
    height:auto !important;
    min-height:64px !important;
    padding:10px 14px !important;
    display:grid !important;
    grid-template-columns:1fr auto !important;
    align-items:center !important;
    gap:10px !important;
  }

  .logo{
    font-size:22px !important;
    letter-spacing:.12em !important;
  }

  .logo small{
    font-size:9px !important;
  }

  .nav,
  .tel{
    display:none !important;
  }

  .reserve-btn{
    padding:8px 12px !important;
    font-size:12px !important;
    line-height:1.4 !important;
  }

  /* HERO */
  .hero,
  .course-hero,
  .therapist-hero,
  .area-hero{
    min-height:360px !important;
    padding:110px 18px 58px !important;
    background-position:center center !important;
  }

  .hero h1,
  .course-hero h1,
  .therapist-hero h1,
  .area-hero h1{
    font-size:34px !important;
    line-height:1.45 !important;
    letter-spacing:.08em !important;
  }

  .hero p,
  .course-hero p,
  .therapist-hero p,
  .area-hero p{
    font-size:15px !important;
    line-height:1.9 !important;
  }

  /* TOPページの丸アイコン */
  .points{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
    margin-top:26px !important;
  }

  .point{
    min-height:76px !important;
    border-radius:14px !important;
    padding:10px !important;
    font-size:10.5px !important;
    line-height:1.55 !important;
  }

  /* 重要：TOPページ下部の画像＋文章を必ず縦並び */
  .intro-section{
    padding:54px 16px !important;
  }

  .intro-inner{
    max-width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    gap:54px !important;
  }

  .intro-block{
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    gap:22px !important;
    align-items:stretch !important;
  }

  .intro-block:nth-child(even){
    flex-direction:column !important;
  }

  .intro-block > div{
    width:100% !important;
    max-width:100% !important;
    display:block !important;
  }

  .intro-block img{
    width:100% !important;
    height:230px !important;
    object-fit:cover !important;
    object-position:center center !important;
    border:1px solid rgba(200,169,107,.55) !important;
  }

  .intro-kicker{
    font-size:12px !important;
    letter-spacing:.22em !important;
    margin-bottom:10px !important;
  }

  .intro-block h2{
    width:100% !important;
    max-width:100% !important;
    font-size:28px !important;
    line-height:1.65 !important;
    letter-spacing:.06em !important;
    margin:0 0 18px !important;
    writing-mode:horizontal-tb !important;
    white-space:normal !important;
    word-break:keep-all !important;
  }

  .intro-block p{
    width:100% !important;
    max-width:100% !important;
    font-size:15px !important;
    line-height:2 !important;
    writing-mode:horizontal-tb !important;
    white-space:normal !important;
    word-break:normal !important;
  }

  /* 画像が先に来るブロックも、スマホでは文章→画像に整える */
  .intro-block img:first-child{
    order:2 !important;
  }

  .intro-block img:first-child + div{
    order:1 !important;
  }

  /* NOTICE */
  .notice-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:20px !important;
  }

  .notice-box{
    padding:28px 20px !important;
  }

  .notice-box h2{
    font-size:22px !important;
  }

  .notice-tel{
    font-size:30px !important;
  }

  /* COURSE */
  .course-section{
    padding:50px 14px 60px !important;
  }

  .course-card{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .course-img{
    width:100% !important;
    height:220px !important;
    min-height:220px !important;
    object-fit:cover !important;
  }

  .course-info{
    padding:24px 20px !important;
    border-left:none !important;
    border-right:none !important;
    border-top:1px solid rgba(200,169,107,.28) !important;
    border-bottom:1px solid rgba(200,169,107,.28) !important;
  }

  .course-info h2{
    font-size:20px !important;
    line-height:1.65 !important;
  }

  .course-price{
    padding:22px 20px !important;
  }

  /* THERAPIST */
  .therapist-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:22px !important;
  }

  .therapist-card img{
    height:360px !important;
    object-fit:cover !important;
    object-position:center top !important;
  }

  /* AREA */
  .area-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
  }

  .area-card{
    height:190px !important;
  }

  .area-title{
    font-size:32px !important;
  }

  /* FAQ */
  .faq-section{
    padding:48px 18px 60px !important;
  }

  .faq-question{
    font-size:17px !important;
    line-height:1.7 !important;
    padding:20px 40px 20px 0 !important;
  }

  /* FOOTER */
  .footer-visual{
    padding:18px 14px 0 !important;
  }

  .footer-visual-inner{
    height:180px !important;
  }

  .footer-contact-inner{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:22px !important;
    text-align:center !important;
  }

  .footer-brand,
  .footer-line{
    text-align:center !important;
  }

  .footer-tel-number{
    font-size:28px !important;
  }

  .line-btn{
    width:100% !important;
    max-width:320px !important;
    text-align:center !important;
  }

  .footer-links{
    font-size:13px !important;
    line-height:2.2 !important;
  }
}

@media(max-width:430px){

  .hero h1,
  .course-hero h1,
  .therapist-hero h1,
  .area-hero h1{
    font-size:32px !important;
  }

  .intro-block h2{
    font-size:26px !important;
  }

  .intro-block img{
    height:215px !important;
  }
}


@media(max-width:768px){

.hero h1,
.intro-block h2{
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
}

}

@media screen and (max-width:768px){

  .intro-section .intro-block{
    display:block !important;
  }

  .intro-section .intro-block h2{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    font-size:30px !important;
    line-height:1.6 !important;
    letter-spacing:.06em !important;
    writing-mode:horizontal-tb !important;
    white-space:normal !important;
    word-break:keep-all !important;
  }

  .intro-section .intro-block p{
    width:100% !important;
    font-size:15px !important;
    line-height:2 !important;
    writing-mode:horizontal-tb !important;
    white-space:normal !important;
  }

  .intro-section .intro-block img{
    width:100% !important;
    height:230px !important;
    margin-top:24px !important;
    object-fit:cover !important;
  }

}

@media(max-width:768px){

.top-intro-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:28px !important;
}

.top-intro-grid h2{
  font-size:32px !important;
  line-height:1.5 !important;
  writing-mode:horizontal-tb !important;
}

.top-intro-grid p{
  writing-mode:horizontal-tb !important;
}

}

@media(max-width:768px){

  .therapist-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:14px !important;
  }

  .therapist-card img{
    height:240px !important;
    object-fit:cover !important;
  }

  .therapist-body{
    padding:14px !important;
  }

  .therapist-body h2{
    font-size:18px !important;
    margin-bottom:8px !important;
  }

  .therapist-body p{
    font-size:12px !important;
    line-height:1.7 !important;
  }

}

@media(max-width:768px){

  .therapist-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:14px !important;
  }

  .therapist-card{
    width:100% !important;
  }

.therapist-card img{
  height:200px !important;
}

  .therapist-body{
    padding:12px !important;
  }

  .therapist-body h2{
    font-size:16px !important;
    margin-bottom:6px !important;
  }

  .therapist-body p{
    font-size:11px !important;
    line-height:1.7 !important;
  }

}

@media(max-width:768px){

  .therapist-card img{
    height:190px !important;
  }

  .therapist-body{
    padding:10px !important;
  }

  .therapist-body h2{
    font-size:15px !important;
  }

}