/* layout.css */

/* ヘッダー */
header {
    width: 1208px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  
  .header-logo,
  .head-logo {
    max-width: 210px;
  }
  
  .header-logo img,
  .head-logo img {
    width: 100%;
    height: auto;
  }
  
  /* グローバルナビ */
  header nav {
    font-size: 0.9375rem;
    display: flex;
    align-items: center;
  }
  
  header nav ul {
    display: flex;
  }
  
  header nav ul li {
    margin-right: 3.0625rem;
  }
  
  /* メインナビ */
  .gnavi li a {
    position: relative;
    display: block;
    padding: 10px 0;
    color: #333;
    white-space: nowrap;
  }

  .gnavi li {
    flex-shrink: 0;
  }

  .header-bar > .head-logo,
  .header-bar > .pc-only,
  .header-bar > .header-actions {
    flex-shrink: 0;
  }

  /* ナビ内のInstagramリンク（背景なし・アイコン＋SNSテキスト） */
  .gnavi li.nav-instagram a {
    display: flex;
    align-items: center;
    column-gap: 6px;
  }

  .gnavi li.nav-instagram svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
  }
  
  .gnavi li {
    margin-bottom: 20px;
  }
  .gnavi li.drop-down {
    margin-right: 0;
  }
  
  /* ホバーラインアニメーション */
  .gnavi li.current a,
  li.is-current a,
  .gnavi li a:hover {
    color: var(--color-main);
  }
  
  .gnavi li a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 10%;
    width: 80%;
    height: 2px;
    background: var(--color-main);
    transform: scale(0, 1);
    transform-origin: left top;
    transition: all .5s;
  }
  
  .gnavi li.is-current a::after,
  .gnavi li a:hover::after {
    transform: scale(1, 1);
    pointer-events: none;
  }
  
  /* ドロップダウン */
  nav ul li {
    position: relative;
  }

  /* 親リンク：下線アニメーションを無効化してシェブロンに置き換え */
  .gnavi li.has-child > a {
    display: flex;
    align-items: center;
    gap: 4px;
  }

  .gnavi li.has-child > a::after {
    content: "▾";
    position: static;
    width: auto;
    height: auto;
    background: none;
    transform: none;
    transition: color .2s ease, opacity .2s ease;
    font-size: 0.95em;
    opacity: 0.5;
  }

  .gnavi li.has-child:hover > a::after {
    opacity: 1;
  }

  /* ドロップダウン本体 */
  .gnavi li.has-child ul {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 4;
    background: #fff;
    width: 220px;
    border-radius: 0;
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease, visibility 0s .2s;
    text-align: left;
    padding: 4px 0;
    flex-direction: column;
  }

  .gnavi li.has-child:hover > ul {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition: opacity .2s ease, transform .2s ease, visibility 0s 0s;
  }

  /* ドロップダウン内アイテム */
  .gnavi li.drop-down a.drop-a {
    display: block;
    padding: 11px 18px;
    color: #333;
    transition: background .15s ease, color .15s ease;
  }

  .gnavi li.drop-down a.drop-a:hover {
    background: rgba(0,166,60,.08);
    color: var(--color-main);
  }

  .gnavi li.has-child ul li + li {
    border-top: 1px solid rgba(0,0,0,.06);
  }

  /* dropdown内は下線アニメーション不要 */
  .gnavi li.drop-down a::after {
    display: none;
  }
  /* ヘッダー：常時上部固定＋浮いたカード表示
     ※ header.header は "header{}" より詳細度が高いので、
       他の <header class="○○__head"> 要素（certs__head 等）には影響しない */
  header.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    margin: 0;
    padding: 0 clamp(20px, 4vw, 56px) 20px;
    justify-content: center;
    z-index: 100;
  }

  /* 浮きカードの幅はメインイメージ（.hero-area / 1208px）と同幅 */
  .header-bar {
    width: 1208px;
    background: #fff;
    border-radius: 999px;
    padding: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
    column-gap: 1rem;
  }

  /* ヘッダー右側：TEL・お問い合わせ・Instagramの円形ボタン群
     ※ display/align-items は明示指定（.pc-only の display:block が
       .flex ユーティリティより後に定義されているため上書きされてしまう対策） */
  .header-actions {
    display: flex;
    align-items: center;
    column-gap: 20px;
    margin: 0;
  }

  /* 電話・お問い合わせのピルを縦積み */
  .header-actions__buttons {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    row-gap: 8px;
  }

  /* 電話・お問い合わせのピル幅を揃える（テキスト量が違っても同じ幅に） */
  .header-actions__buttons .action-btn--pill {
    justify-content: center;
    min-width: 168px;
  }

  /* 電話ピル内：受付時間＋電話番号の2行（ピルの高さ48pxは変えない） */
  .action-btn__text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
  }

  .action-btn__hours {
    font-size: 0.6rem;
    font-weight: 600;
    opacity: .85;
  }

  .action-btn__number {
    font-size: 0.85rem;
    font-weight: 700;
  }

  .action-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--color-accent);
    color: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
    transition: transform .2s ease, background-color .2s ease;
  }

  .action-btn svg {
    width: 22px;
    height: 22px;
    display: block;
    flex-shrink: 0;
  }

  /* 電話・お問い合わせはピル型（アイコン＋テキスト）、Instagramのみ丸のまま */
  .action-btn--pill {
    width: auto;
    border-radius: 999px;
    gap: 8px;
    padding: 0 22px 0 18px;
    font-size: 0.9rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .action-btn:hover {
    transform: translateY(-3px);
    background: #c8933f;
  }

  /* お問い合わせピルだけ緑（サイトのメインカラー） */
  .action-btn--green {
    background: var(--color-main);
  }

  .action-btn--green:hover {
    background: #008c33;
  }

  /* 固定ヘッダー分の余白（.hero-area 自体の margin-top: 11px と合わせてヘッダー直下に密着させる） */
  body {
    padding-top: 133px;
  }

  /* slick */
  .slick-dots {
    display: block;
    text-align:center;
    padding: 0;
    position: absolute;
    bottom: 0;
    left: 46%;
}

.slick-dots li{
    display:inline-block;
	margin:0 5px;
}

.slick-dots button {
    color: transparent;
    outline: none;
    /* width:8px;ドットボタンのサイズ */
    height: 15px;/*ドットボタンのサイズ*/
    display:block;
    border-radius:50%;
    background:#fff;/*ドットボタンの色*/
    border: 1px solid #B2C2C4;
    font-size: 1px;
}

.slick-dots .slick-active button{
    background:#00A63C;/*ドットボタンの現在地表示の色*/
}
  
  /* ヒーローエリア */
  .hero-area,
  .heroarea-wrap {
    position: relative;
    width: 1208px;
    margin: 11px auto 0;
  }
  
  .hero-area img.hero-img {
    width: 100%;
    height: auto;
  }

  .hero-area.hero-video {
    border-radius: 20px;
    overflow: hidden;
  }

  #recruit .hero-area,
  #day .hero-area {
    border-radius: 20px;
    overflow: hidden;
  }

  .hero-area .hero-video__el {
    display: block;
    width: 100%;
    height: auto;
  }
  
  .hero-area .mv-ttl{
    position: absolute;
    bottom: 0;
    left: 0;
    width: 321px;
    height: 186px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: url(../img/common/ttl_base.svg) center / 100% 100% no-repeat;
    border-radius: 13px;
    overflow: hidden;
    color: #fff;
  }

  .hero-area .mv-ttl::before {
    content: "";
    position: absolute;
    top: 22px;
    left: 22px;
    width: 18px;
    height: 15px;
    border-top: 1.5px solid #fff;
    border-left: 1.5px solid #fff;
  }

  .hero-area .mv-ttl__lead {
    padding-left: 50px;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 21px;
    line-height: 1.5;
    letter-spacing: 0.12em;
  }

  .hero-area .mv-ttl__brand {
    padding-left: 50px;
    margin-top: 6px;
    font-family: "Shippori Mincho", serif;
    font-size: 12px;
    letter-spacing: 0.3em;
    text-indent: 0.3em;
    color: rgba(255, 255, 255, 0.9);
  }

  #company .hero-area .mv-ttl__lead,
  #recruit .hero-area .mv-ttl__lead {
    font-size: 27px;
    letter-spacing: 0.16em;
  }

  #support .hero-area .mv-ttl__lead {
    font-size: 16px;
    letter-spacing: 0.04em;
  }
  .heroarea-wrap .mv-ttl {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 5;
    width: 500px;
    height: 290px;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: url(../img/common/ttl_base.svg) center / 100% 100% no-repeat;
    border-radius: 13px;
    overflow: hidden;
    color: #fff;
  }

  .heroarea-wrap .mv-ttl::before {
    content: "";
    position: absolute;
    top: 34px;
    left: 34px;
    width: 26px;
    height: 22px;
    border-top: 1.5px solid #fff;
    border-left: 1.5px solid #fff;
  }

  .heroarea-wrap .mv-ttl__lead {
    padding-left: 58px;
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 34px;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }

  .heroarea-wrap .mv-ttl__sub {
    align-self: center;
    margin-top: 16px;
    font-family: var(--font-base);
    font-weight: 400;
    font-size: 15px;
    letter-spacing: 0.08em;
    text-indent: 0.08em;
  }

  .heroarea-wrap .mv-ttl__brand {
    position: absolute;
    right: 36px;
    bottom: 30px;
    font-family: "Shippori Mincho", serif;
    font-size: 18px;
    letter-spacing: 0.35em;
    text-indent: 0.35em;
    color: rgba(255, 255, 255, 0.92);
  }
  
  /* セクション共通リンク */
  section a.page-link {
    position: relative;
    display: inline-flex;
    margin: 0 auto;
    font-family: var(--font-body);
    font-weight: 700;
    align-items: center;
    color: var(--color-text);
  }
  
  section a.page-link:hover {
    color: var(--color-main);
  }
  
  section a.page-link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 80%;
    height: 2px;
    background: var(--color-main);
    transform: scale(0, 1);
    transform-origin: left top;
    transition: all .5s;
  }
  
  /* recruit のみ幅が違うバリエーション */
  .recruit-bnr a.page-link::after {
    width: 42%;
  }
  
  section a.page-link:hover::after {
    transform: scale(1, 1);
  }
  
/* =====================================================
   New Footer
===================================================== */

.new-footer {
  background: #6D7B52; /* あなたのサイトカラー */
  color: #fff;
  padding: 48px 0 24px;
  font-family: var(--font-heading);
}

.footer-container {
  width: min(1100px, 92%);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 4rem;
}

/* 左エリア */
.footer-left {
  flex: 1;
  min-width: 260px;
}

.footer-logo {
  width: 180px;
  margin-bottom: 16px;
}

.footer-info p {
  font-size: 0.95rem;
  line-height: 1.8;
  color: #fff;
}

.footer-info a {
  color: #fff;
  text-decoration: underline;
}

/* 右エリア：ナビゲーション */
.footer-right {
  flex: 1;
}

.footer-nav {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  row-gap: 12px;
}

.footer-nav a {
  color: #fff;
  text-decoration: none;
  font-size: 1rem;
}

.footer-nav a:hover {
  text-decoration: underline;
}

/* 下ライン */
.footer-line {
  width: min(1100px, 92%);
  margin: 32px auto 12px;
  border-color: rgba(255, 255, 255, 0.3);
}

/* コピーライト */
.footer-copy {
  text-align: center;
  font-size: 0.85rem;
  opacity: 0.8;
}
.footer-cert{
  margin-top: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.tomonin-badge{
  width: 62px;           /* ここが肝：小さめで綺麗に見える */
  height: auto;
  display: block;
  background: #fff;      /* 画像の外枠を白で整える */
  padding: 6px;
  border-radius: 8px;
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
}

.footer-cert p{
  font-size: .8rem;
  line-height: 1.4;
  opacity: .85;
}


/* ======================
   SP レイアウト
====================== */
@media (max-width: 768px) {
  .footer-container {
    flex-direction: column-reverse;
    gap: 2rem;
  }

  .footer-logo {
    width: 45vw;
  }

  .footer-nav {
    grid-template-columns: 1fr 1fr;
    font-size: 3.5vw;
  }
  .footer-nav a{
    font-size: 0.9rem;
  }
  .footer-info p {
    font-size: 3.5vw;
  }
}
