@charset "utf-8";

/* ========= Base ========= */
html,body{margin:0;padding:0}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Meiryo",sans-serif;
  line-height:1.6;background:#fff;color:#333;
}
img{max-width:100%;height:auto}
h1,h2,h3{margin:0 0 .6em}
a{color:inherit}

/* ========= Header / Global Nav ========= */
header{
  background:#fff;border-bottom:1px solid #ddd;
  position:sticky;top:0;z-index:1000;
  box-shadow:0 2px 4px rgba(0,0,0,.05);
}
.header-container{
  max-width:1100px;margin:auto;display:flex;
  justify-content:space-between;align-items:flex-end;
  padding:10px 20px 6px;
}
.logo{display:flex;align-items:center;gap:10px}
.logo span{font-size:1.2em;font-weight:700;color:#005bac}

/* Hamburger */
.menu-toggle{display:none;flex-direction:column;cursor:pointer}
.menu-toggle span{height:3px;width:25px;background:#333;margin:4px 0;border-radius:2px}

/* --- Global Nav (画像の雰囲気に合わせた2行) --- */
nav ul{
  list-style:none;display:flex;gap:46px;margin:0;padding:0;
  align-items:flex-end;
}
nav ul li{position:relative}
/* --- Global Nav --- */
nav a{
  display:flex;
  flex-direction:column;
  align-items:center;   /* ← ★ここを center に変更 */
  text-decoration:none;
  color:#222;
  line-height:1.15;
  padding:12px 0 16px;
}

nav a .jp{ 
  font-size:1.02rem;
  font-weight:700;
  letter-spacing:.02em;
}

nav a .en{
  margin-top:6px;
  font-size:.72rem;
  color:#777;
  font-weight:700;
}


/* 下線インジケーター（現在位置・ホバー） */
nav ul li a::after{
  content:"";position:absolute;left:0;bottom:0;
  height:4px;width:0;background:#e47f6a;border-radius:2px;
  transition:width .22s ease;
}
nav ul li a:hover::after{width:36px}
nav ul li.active a::after{width:36px}

/* SP: Drawer */
@media (max-width:768px){
  .header-container{justify-content:flex-start;position:relative}
  .menu-toggle{display:flex;position:absolute;right:20px;top:50%;transform:translateY(-50%);z-index:1100}
  nav ul{
    flex-direction:column;display:none;background:#fff;position:absolute;
    top:60px;right:20px;width:260px;box-shadow:0 2px 5px rgba(0,0,0,.2);
    border-radius:12px;padding:10px 14px;gap:0;
  }
  nav ul.active{display:flex}
  nav ul li{width:100%}
  nav a{padding:14px 6px}
  nav ul li a::after{left:6px}
  nav ul li a:hover::after, nav ul li.active a::after{width:42px}
}

/* ========= Hero ========= */
.hero{
  position:relative;
  height:680px;
  background:url("../images/24212953.jpg") center/cover no-repeat;
  display:flex;
  justify-content:center;
  align-items:center;
  color:#000;
}
.hero-text{
  text-align:center;background:rgba(255,255,255,.65);
  padding:20px 40px;border-radius:6px;max-width:90%;
  box-shadow:0 4px 8px rgba(0,0,0,.15);
}
.hero-text h1{margin:0;line-height:1.3;font-weight:700;font-size:clamp(1.6rem,4.2vw,2.2rem)}
.hero-text p{margin:8px 0 0;font-size:clamp(.9rem,2.2vw,1rem);font-weight:600}
@media(max-width:600px){.hero{height:260px}}

/* ========= Sections: common ========= */
h2{border-bottom:2px solid #ccc;padding-bottom:10px}
.no-underline{border-bottom:none !important}
.counselor-section,.company-section{
  max-width:1100px;margin:0 auto 60px;padding:0 20px;scroll-margin-top:60px;
}

/* ===== ごあんない（左寄せレイアウト） ===== */
.about-section{
  padding:48px 20px 56px;
  background:#fff;
  text-align:left;
}
.about-heading{
  display:inline-block;
  margin:0 0 24px;
  padding:12px 18px;
  background:#e07b67;      /* 見出し帯 */
  color:#fff;
  border-radius:6px;
  font-weight:700;
  font-size:1.1rem;
}

/* 2カラム本体 */
.about-container{
  max-width:1000px;
  margin:0 auto;
  display:flex;
  gap:28px;
  justify-content:flex-start;
  align-items:flex-start;
}
.about-image{ flex:0 0 500px; }            /* 写真幅：360～420pxで好みに調整可 */
.about-image img{
  width:100%; height:auto; display:block; border-radius:8px;
}
.about-text{ flex:1 1 auto; padding-top:6px; }
.about-lead{ margin:0 0 10px; font-size:1.06rem; font-weight:700; }
.about-text p{ margin:0 0 12px; line-height:1.9; color:#333; }

/* SNS行 */
.about-sns{ max-width:1000px; margin:28px auto 0; text-align:center; }
.about-sns-title{
  margin:0 0 12px; font-weight:800; font-size:1.15rem; color:#2b4aa0; letter-spacing:.03em;
}
.about-sns-icons a{ display:inline-block; margin:0 10px; }
.about-sns-icons img{ width:40px; height:40px; }

/* スマホ：縦積み＋左寄せのまま */
@media (max-width:880px){
  .about-container{ flex-direction:column; }
  .about-image{ flex:0 0 auto; max-width:520px; }
}

/* ===== ごあんない見出しのレイアウト修正 ===== */
.about-section{
  text-align: left;              /* 左寄せに固定 */
}

.about-section h2{
  display: inline-block;         /* 幅を見出し分だけに */
  margin: 0 0 24px;
  padding: 12px 18px;
  background: #e07b67;           /* 画像の帯色 */
  color: #fff;
  border-radius: 6px;
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.4;
  border: none !important;       /* グローバルh2の下線を打ち消す */
  box-shadow: none;
}
/* CTAボタン */
.benefit-cta{text-align:center;margin:40px auto 0}
.btn-primary{
  display:inline-block;background:#005bac;color:#fff;padding:12px 40px;
  font-size:.95rem;font-weight:700;border-radius:3px;text-decoration:none;
  transition:opacity .25s;
}
.btn-primary:hover{opacity:.85}
@media(max-width:500px){.btn-primary{width:100%;box-sizing:border-box}}

/* ========= コーディネーター ========= */
/* ===== コーディネーター紹介 セクション ===== */

/* セクションタイトル（中央寄せ） */
.section-title.center {
  text-align: center;
  font-weight: 900;
  font-size: 1.4rem;
  margin: 0 0 26px;
  color: #2b4aa0;
}

/* セクション全体 */
.coord-section {
  padding: 56px 20px 40px;
  background: #fff;
}

/* カード本体（2列レイアウト + 下段全幅） */
.coord-card {
  max-width: 1040px;
  margin: 0 auto;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(0,0,0,.08);
  padding: 26px;
  display: grid;
  gap: 28px;
  grid-template-columns: 420px 1fr;   /* 左:画像 / 右:本文 */
}

/* 写真 
.coord-photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
}
*/
/* 本文（右列） */
.coord-body {
  line-height: 1.9;
  color: #333;
}

.coord-catch {
  margin: 0 0 6px;
  font-size: 1.15rem;
  color: #2b4aa0;
  font-weight: 800;
}

.coord-role {
  margin: 0 0 14px;
  font-weight: 700;
}

.coord-bio p {
  margin: .25em 0;
}

/* 長文メッセージ：カード内で全幅化 */
.coord-message.in-card {
  grid-column: 1 / -1;                /* 2列をまたいで全幅 */
  border-top: 1px solid #e9eef6;      /* 区切り線（任意） */
  padding-top: 16px;
  line-height: 1.9;
  color: #333;
  font-size: 1rem;
}

.coord-message.in-card p {
  margin: .9em 0;
}

/* レスポンシブ */
@media (max-width: 920px) {
  .coord-card {
    grid-template-columns: 1fr;
  }
}


/* ========= 代表あいさつ・会社情報 ========= */
/* ===== 代表あいさつ セクション ===== */

.represent-section {
  padding: 56px 20px 40px;
  background: #fff;
}

.represent-card {
  max-width: 1040px;
  margin: 0 auto;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 22px rgba(0,0,0,.08);
  padding: 26px;
  display: grid;
  gap: 28px;
  grid-template-columns: 320px 1fr;  /* 左：画像 / 右：本文 */
}
/*
.represent-photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
}
*/
.represent-body {
  line-height: 1.9;
  color: #333;
}

.represent-role {
  margin: 0 0 14px;
  font-weight: 700;
  font-size: 1.1rem;
}

.represent-bio p {
  margin: .9em 0;
  font-size: 1rem;
}

/* レスポンシブ */
@media (max-width: 920px) {
  .represent-card {
    grid-template-columns: 1fr;
  }
}
/* 写真カラムの幅を統一（320pxに） */
.coord-card{ grid-template-columns: 320px 1fr; }
.represent-card{ grid-template-columns: 320px 1fr; }
.counselor-photo img,
.represent-photo img {
  width: 320px;      /* 横幅をそろえる */
  height: auto;      /* 縦比率は維持 */
  object-fit: cover; /* はみ出した場合にトリミング */
  border-radius: 10px;
  display: block;
}

.company-title{text-align:center;margin:60px 0 30px;font-size:1.4rem;font-weight:700}
.greeting-block{display:flex;gap:40px;align-items:flex-start;flex-wrap:wrap}
.greeting-block img{flex:0 0 280px;max-width:100%;border-radius:4px}
.greeting-text{flex:1 1 300px}
.greeting-text h3{font-size:1.2rem;margin-top:0}

.company-table-wrap{max-width:800px;margin:0 auto}
.company-table{width:100%;border-collapse:collapse;margin-top:20px}
.company-table th,.company-table td{padding:12px 10px;border-bottom:1px solid #ccc;text-align:left}
.company-table th{width:160px;font-weight:600}
@media(max-width:640px){.greeting-block{gap:25px} .greeting-text{font-size:1rem}}

/* ========= SNS ========= */

.icon-scale img {
  transform: scale(0.7);
  transform-origin: center center;
}
.sns-section{max-width:1100px;margin:1px auto;padding:0 20px}
.sns-section h2{text-align:center;margin:40px 0 15px;font-size:1.2rem}
.sns-list{display:flex;justify-content:center;align-items:center;gap:40px;list-style:none;margin:0;padding:0}
.sns-list img{width:42px;height:42px;transition:opacity .25s}
.sns-list a:hover img{opacity:.75}


/* ===== 料金表下：CTAバナー ===== */
.big-cta{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  max-width:900px;
  margin:18px auto 10px;
  padding:18px 26px;
  text-decoration:none;
  color:#fff;
  background:#3657d4;            /* ベースのブルー */
  border-radius:14px;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  transition:transform .08s ease, box-shadow .08s ease, opacity .2s ease;
}
.big-cta:hover{ transform:translateY(-1px); box-shadow:0 10px 24px rgba(0,0,0,.16); }
.big-cta:active{ transform:translateY(0); box-shadow:0 6px 16px rgba(0,0,0,.12); }

.big-cta-title{
  font-weight:900;
  font-size:1.4rem;
  letter-spacing:.05em;
  padding:2px 10px;
  background:#ffd729;            /* 文字の黄色帯 */
  color:#1a1a1a;
  border-radius:8px;
  line-height:1.2;
}
.big-cta-tel{
  font-weight:800;
  font-size:1.35rem;
  letter-spacing:.02em;
}

/* 補足文 */
.big-cta-sub{
  max-width:900px;
  margin:8px auto 22px;
  text-align:center;
  color:#666;
  font-size:.95rem;
}

/* ========= お問い合わせ ========= */
.contact-section{
  max-width:1100px;margin:0 auto 80px;background:#e1e1e1;
 /* padding:10px 20px 25px;scroll-margin-top:60px;*/
	padding:0px 20px 25px;scroll-margin-top:60px;
}
.contact-section h2{text-align:center;padding:25px 0 15px;font-size:1.2rem;font-weight:700}
.contact-form{background:#fff;padding:40px 25px}
.form-row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:25px}
.form-row label{width:200px;font-size:.95rem}
.req{color:#c00;margin-left:4px}
.form-row input,.form-row textarea{
  flex:1 1 300px;padding:10px;border:1px solid #333;font-size:.95rem;box-sizing:border-box;
}
.form-row textarea{resize:vertical;min-height:6em}
.form-submit{justify-content:center}
.form-submit button{
  background:#014d9c;color:#fff;border:none;padding:12px 100px;
  font-size:1rem;font-weight:700;cursor:pointer;transition:opacity .25s;margin:10px;
}
.form-submit button:hover{opacity:.85}
@media(max-width:600px){
  .form-row{flex-direction:column;align-items:stretch}
  .form-row label{width:100%;margin-bottom:8px}
  .form-submit button{width:100%;padding:12px 0}
}
.form-row input[type="text"],.form-row input[type="email"]{
  height:2.2em;min-height:2.2em;max-height:2.6em;line-height:1.2;width:100%;
}

/* ========= Footer ========= */
.site-footer{border-top:1px solid #666;background:#fff;padding:30px 20px 25px;font-size:.9rem;color:#000}
.footer-inner{max-width:1100px;margin:0 auto 20px;display:flex;justify-content:space-between;align-items:center}
.footer-left img{height:45px}
.footer-left p{margin:8px 0 0;font-size:.85rem;line-height:1.5}
.footer-right img{height:60px}
.site-footer .copyright{text-align:center;margin:0;font-size:.85rem}
@media(max-width:600px){.footer-inner{flex-direction:column;gap:20px} .footer-left p{text-align:center}}

/* ========= Back to top ========= */
#backToTop{
  position:fixed;right:25px;bottom:25px;width:48px;height:48px;border:none;border-radius:50%;
  background:#005bac;color:#fff;font-size:1.2rem;cursor:pointer;
  opacity:0;pointer-events:none;transition:opacity .3s;z-index:1000;
}
#backToTop.show{opacity:.9;pointer-events:auto}
#backToTop:hover{opacity:1}

/* ======== Nav 修正（折り返し防止・レイアウト安定） ======== */

/* ロゴ周り：横幅を取りすぎない／改行しない */
.header-container{ align-items:center; }
.logo{ flex:0 0 auto; }
.logo span{
  white-space:nowrap;           /* ロゴの「結-YUI- 北九州」を改行させない */
  font-weight:700;
}

/* ナビ全体の伸縮を優先し、右側にきれいに並べる */
header nav{ flex:1 1 auto; min-width:0; }
nav ul{
  justify-content:flex-end;
  gap:32px;                     /* 46px→32px に調整（詰まり対策） */
  flex-wrap:nowrap;             /* PC幅では折り返さない */
}

/* 2行レイアウトを保ったまま、日本語・英語ともに途中改行しない */

nav a .jp,
nav a .en{
  white-space:nowrap;           /* 日本語の禁則を優先して改行しない */
  word-break:keep-all;
}

/* 文字が収まり切らない幅では、段階的に縮小＆隙間を詰める */
@media (max-width:1200px){
  nav ul{ gap:26px; }
  nav a .jp{ font-size:0.98rem; }
  nav a .en{ font-size:0.7rem; }
}
@media (max-width:1024px){
  nav ul{ gap:20px; }
  nav a{ padding:10px 0 14px; }
  nav a .jp{ font-size:0.95rem; }
  nav a .en{ font-size:0.68rem; }
}

/* 下線の開始位置がズレないよう微調整（PC時） */
nav ul li a::after{
  left:0;
}

/* ==== キャッチコピー行 ==== */
.header-top-copy{
  background:#f7f7f7;
  color:#444;
  font-size:0.88rem;
  text-align:center;
  padding:6px 10px;
  border-bottom:1px solid #ddd;
  line-height:1.4;
}

/* ==== ロゴの縮小 ==== */
.logo img{
  height:auto;
  max-height:60px;       /* ← ここで画像の高さを40pxに制限 */
  transform:scale(0.9);  /* ← 40pxをさらに90%に縮小 */
}

.logo span{
  font-size:1rem;        /* ロゴテキストも少し小さく */
}

/* ===== Intro Section ===== */
.intro-section{
  max-width:900px;
  margin:60px auto;
  padding:0 20px;
  text-align:center;
  line-height:1.8;
  background:#fff;   /* ← 背景を白に固定して、ヒーロー背景と分離 */
}

.intro-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
}

.intro-logo{
  max-width:480px;
  height:auto;
}

.intro-section p{
  font-size:1rem;
  color:#333;
  margin:0;
}

/* ===== ごあんない見出しだけ中央寄せ ===== */
.about-section{ text-align:center; }             /* 見出しは親の中央寄せを使う */
.about-section h2{
  display:inline-block;                           /* 幅は見出し分だけ */
  margin:0 auto 24px;                             /* 下余白だけ維持 */
  /* 既存の帯スタイル（背景色/角丸/色など）はそのままでOK */
}

/* 本文ブロックは左寄せをキープ */
.about-container{ text-align:left; }              /* ここで中身は左揃えに戻す */

/* ===== 共通：帯見出し ===== */
.section-band{
  display:inline-block;
  background:#e07b67;
  color:#fff;
  font-weight:800;
  font-size:1.15rem;
  padding:12px 22px;
  border-radius:8px;
  margin:0 0 26px;
}

/* ===== コーディネーター紹介 ===== */
.coord-section{
  padding:56px 20px 40px;
  background:#fff;
}
.coord-card{
  max-width:1040px;
  margin:0 auto;
  background:#fff;
  border-radius:14px;
  box-shadow:0 8px 22px rgba(0,0,0,.08);
  padding:26px;
  display:grid;
  grid-template-columns: 420px 1fr; /* 画像 / 本文 */
  gap:28px;
}
.coord-photo img{
  width:100%; height:auto; display:block;
  border-radius:10px;
}
.coord-body{ line-height:1.9; color:#333; }
.coord-catch{
  margin:0 0 6px;
  font-size:1.15rem;
  color:#2b4aa0;
  font-weight:800;
}
.coord-role{ margin:0 0 14px; font-weight:700; }
.coord-bio p{ margin:.25em 0; }
.coord-message p{ margin:.9em 0; }

@media (max-width:920px){
  .coord-card{ grid-template-columns:1fr; }
}

/* ===== 代表あいさつ ===== */
.greeting-section{
  padding:40px 20px 60px;
  background:#fff;
}
.section-title{
  text-align:center;
  font-weight:900;
  font-size:1.4rem;
  margin:0 0 22px;
}
.section-title.blue{ color:#2b4aa0; }

.greet-card{
  max-width:1040px;
  margin:0 auto;
  display:grid;
  grid-template-columns: 420px 1fr;
  gap:28px;
  align-items:start;
}
.greet-photo img{
  width:100%; height:auto; display:block; border-radius:10px;
}
.greet-body{ line-height:1.9; color:#333; }
.greet-role{ margin:0 0 12px; font-size:1.05rem; }

@media (max-width:920px){
  .greet-card{ grid-template-columns:1fr; }
}


/* ===== 追加（お問い合わせ & メッセージ表示） ===== */
.form-alert{margin:14px 0; padding:12px 14px; border-radius:6px; font-weight:700;}
.form-alert.error{ background:#ffe9e9; color:#b00020; border:1px solid #f2bcbc; }
.form-alert.success{ background:#ecf9f0; color:#137a38; border:1px solid #bfe6cd; }

.contact-banner-wrap{ max-width:1000px; margin:40px auto 0; }
.contact-banner{ background:#e97c67; color:#fff; text-align:center; font-size:1.4rem; font-weight:700; line-height:1.3; padding:10px 0; margin:0; border-radius:0; }
.contact-section{ max-width:960px; margin:0 auto 80px; background:#e1e1e1; padding:10px 20px 25px; scroll-margin-top:60px; }
.contact-lead{ text-align:center; font-weight:800; font-size:1.05rem; margin:18px 0 12px; }
.contact-form{ background:#fff; padding:26px; }
.contact-form-inner{ max-width:820px; margin:0 auto; }
.form-row{ display:flex; flex-wrap:wrap; align-items:center; margin-bottom:25px; }
.form-row label{ width:200px; font-size:.95rem; font-weight:700; }
.form-row input, .form-row textarea{ flex:1 1 300px; padding:10px; border:1px solid #333; font-size:.95rem; box-sizing:border-box; }
.form-row textarea{ resize:vertical; min-height:6em; }
.form-submit{ justify-content:center; }
.btn-primary{ background:#134faa; color:#fff; border:none; min-width:260px; padding:12px 40px; font-size:1rem; font-weight:800; cursor:pointer; transition:opacity .25s; }
.btn-primary:hover{ opacity:.88; }

* ===== Price Table ===== */
.price-section {
  padding:56px 20px 60px !important; 
  background:#fff; 
	margin: 56px 0 60px!important; 
}
section.price-section#price {
  padding-top: 56px !important;
  padding-bottom: 60px !important;
}
.price-table-wrap{
  max-width:900px;
  margin:0 auto;
  padding-top:0;   /* ←帯削除で余白リセット */
}

.price-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  background:#fff;
  font-size:1rem;
}

.price-table thead th{
  text-align:center;
  font-weight:700;
  color:#333;
  padding:12px 10px 12px 80px;
  border-bottom:1px solid #999;
}
@media (max-width: 921px) {
  .price-table thead th{
      padding:12px 10px 12px 10px;
  }
}

.price-table thead .th-empty{
  border-bottom:1px solid #999;
}

.price-table tbody th{
  text-align:left;
  font-weight:600;
  color:#333;
  padding:16px 14px;
  border-bottom:1px solid #cfcfcf;   /* 横罫線のみ */
}

.price-table tbody td{
  text-align:right;
  padding:16px 14px;
  border-bottom:1px solid #cfcfcf;
  color:#000;
}

.price-table tbody tr:last-child th,
.price-table tbody tr:last-child td{
  border-bottom:1px solid #999;       /* 最下行をやや濃く */
}

.price-table td.num{ letter-spacing:.02em; }

/* 注意書き */
.price-notes{
  margin-top:14px;
  color:#777;
  font-size:.92rem;
  line-height:1.7;
}

/* スマホ調整 */
@media (max-width:640px){
  .price-table{ font-size:.95rem; }
  .price-table tbody th,
  .price-table tbody td{ padding:12px 10px; }
}
/* Footer centered 3 columns, logos top-aligned */
.site-footer{ width:100%; padding:24px 0; border-top:1px solid #ccc; background:#fff; }
.site-footer .footer-container{
  display:flex; align-items:flex-start; justify-content:space-between; gap:56px;
  max-width:1000px; margin:0 auto; padding:0 24px; box-sizing:border-box;
}
.site-footer .footer-left,.site-footer .footer-center,.site-footer .footer-right{ flex:1 1 0; }
.site-footer .footer-left{ text-align:left; }
.site-footer .footer-center{ text-align:center; }
.site-footer .footer-right{ text-align:right; }
/*
.site-footer .footer-logo{ max-height:42px; width:auto; display:block; }
*/
.site-footer .footer-logo{ max-height:42px; width:auto; }
.site-footer .footer-address{ margin-top:8px; font-style:normal; line-height:1.6; font-size:.95rem; }
.site-footer .copy{ margin-top:12px; text-align:center; font-size:14px; }


@media (max-width:900px){
  #nav-menu{ gap:12px; }
  #nav-menu li{ padding:4px 6px; }
  .site-footer .footer-container{ gap:24px; padding:0 16px; }
  .site-footer .footer-logo{ max-height:38px; }
}


/* ===== モバイル：問い合わせ入力欄の幅を統一 ===== */
@media (max-width: 768px){
  .contact-form-inner{ padding: 0 12px; } /* 任意：左右の余白を少し付ける */

  .form-row{
    flex-direction: column;
    align-items: stretch;
    gap: 10px;                 /* ラベルと入力欄の間隔 */
  }
  .form-row label{
    width: 100%;
    margin-bottom: 6px;
  }

  /* ★ポイント：min-width:0 と width:100% を強制 */
  .form-row input[type="text"],
  .form-row input[type="email"],
  .form-row textarea{
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;   /* ← flex 子要素がはみ出さないように */
    box-sizing: border-box;
    flex: 0 0 auto;            /* 余計な伸縮を止める */
  }
}
/* ===== 代表あいさつ（モバイル修正） ===== */
@media (max-width: 768px){
  /* 横並び → 縦積み */
  .represent-content{
    display:flex;             /* 念のため明示 */
    flex-direction: column;
    gap: 16px;
  }

  /* 画像はブロック化して親幅いっぱいに */
  .represent-photo{ flex: 0 0 auto; }
  .represent-photo img{
    width: 100%;
    height: auto;
    display: block;
    border-radius: 10px;      /* 任意：カード感維持 */
  }

  /* 本文カラムが細くならないように */
  .represent-text{
    flex: 1 1 auto;
    width: 100%;
    min-width: 0 !important;  /* ★これが肝：flex 子要素の縮小を許可 */
  }

  /* 文字の潰れ防止（必要なら） */
  .represent-text p{
    overflow-wrap: anywhere;  /* 長い語でも折り返す */
    word-break: normal;
    line-height: 1.8;
  }

  /* カード内の左右余白を少し確保（任意） */
  .represent-card{ padding-left: 14px; padding-right:14px; }
}
/* === 代表あいさつ（スマホ修正まとめ） === */
@media (max-width: 920px){
  /* 2カラム → 1カラムへ確実に切替 */
  .greet-card,
  .represent-card,
  .coord-card{
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  /* 画像は親幅いっぱいに（固定320pxを上書き） */
  .greet-photo img,
  .represent-photo img,
  .coord-photo img,
  .counselor-photo img {       /* 既存の 320px 固定を打ち消す */
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block;
  }

  /* 本文カラムが細くならないように */
  .greet-body,
  .represent-body,
  .represent-text{
    min-width: 0 !important;   /* ← flex/grid 子要素の収縮を許可 */
    width: 100%;
  }
}
/* PC幅だけで写真カラムを320pxに固定 */
@media (min-width: 921px){
  .coord-card{ grid-template-columns: 320px 1fr; }
  .represent-card{ grid-template-columns: 320px 1fr; }

  .counselor-photo img,
  .represent-photo img{
    width: 320px;       /* ← ここはPCだけで有効 */
    height: auto;
    object-fit: cover;
    border-radius: 10px;
    display: block;
  }
}
/* モバイル時にロゴを非表示 */
@media (max-width: 768px){
  .intro-logo {
    display: none !important;
  }
}
/* まず個別指定を消す or 打ち消す */
#about, #coordinator, #price, #company, #contact-section{
  scroll-margin-top: 0 !important;  /* ←既存を無効化 */
}

/* これだけでOK（stickyヘッダー高さぶん） */
html { scroll-padding-top: 80px; }

/* まずこの2つは margin をゼロにして “::before” で調整 */
#company { scroll-margin-top: 0 !important; }

#company::before{
  content:""; display:block;
  height:1px;          /* ← 80→60 に調整 */
  margin-top:-1px;
  visibility:hidden;
}
section.contact-section::before{ content:none !important; }

/* デフォルト（モバイル～920px） */
table.price-table tbody td {
  padding-right: 14px !important;
}

/* PC（921px～）で上書き */
@media (min-width: 921px) {
  table.price-table tbody td {
    padding-right: 54px !important;
  }
}