/*
Theme Name: My Corporate Theme
Author: Miki
Description: コーポレートサイト用のオリジナルテーマ
Version: 1.0
*/

/* Layout */
.l-container{ max-width:1080px; margin:0 auto; padding:0 16px; }
.l-header{ border-bottom:1px solid #eee; }
.l-header__bar{ display:flex; align-items:center; gap:16px; padding:12px 0; }
.l-header__nav{ margin-left:auto; }
.c-gnav, .c-fnav{ display:flex; gap:20px; list-style:none; margin:0; padding:0; }
.l-footer{ margin-top:40px; padding:24px 0; background:#f8f8f8; }
.c-small{ font-size:0.875rem; }

/* Cards */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; list-style:none; padding:0; }
.card a{ display:block; border:1px solid #eee; padding:24px; text-align:center; }

/* Works */
.works__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.works__more{ text-align:center; margin-top:16px; }

/* CTA band */
.ctaBand{ background:#fafafa; padding:20px 0; text-align:center; }
.ctaBand__text{ margin:0 0 8px; }

/* Sections */
.l-section{ padding:48px 0; }
.c-secTitle{ font-size:1.6rem; margin:0 0 16px; }

/* Responsive */
@media (max-width:768px){
  .l-header__bar{ flex-wrap:wrap; }
  .cards, .works__grid{ grid-template-columns:1fr; }
}


/* ハンバーガーの見た目 */
.c-burger {
  width: 40px; height: 40px;
  border: 1px solid #ddd; border-radius: 8px; background: #fff;
  position: relative;
}
.c-burger span {
  position: absolute; left: 8px; right: 8px; height: 2px; background: #111;
}
.c-burger span:nth-child(1){ top: 12px; }
.c-burger span:nth-child(2){ top: 19px; }
.c-burger span:nth-child(3){ top: 26px; }

/* モバイルでナビを隠して、.is-open で表示 */
@media (max-width: 960px){
  .c-burger{ display:block; margin-left:auto; }
  .c-tel{ display:none; } /* 必要なら消してOK */

  .l-header__nav{
    display: none;
  }
  .l-header__nav.is-open{
    display: block;
    position: fixed; top: 64px; left: 0; right: 0;
    background:#fff; padding:20px; border-top:1px solid #eee; z-index:1000;
  }

  .c-gnav{ display:flex; flex-direction:column; gap:12px; list-style:none; margin:0; padding:0; }

  /* 開いている時は背面スクロールを抑止 */
  body.is-nav-open{ overflow:hidden; }
}

/* PCではナビ常時表示、ハンバーガー非表示 */
@media (min-width: 961px){
  .l-header__nav{ display:block; }
  .c-burger{ display:none; }
}

.footer-contact{padding:48px 16px;border-top:2px solid #eee;background:#fafafa;margin-top:40px;}
.footer-contact .c-secTitle{text-align:center;margin:0 0 12px;font-size:1.4rem;}
.footer-contact .c-lead{text-align:center;color:#555;margin:0 0 16px;}
.footer-contact form{max-width:640px;margin:0 auto;}
.footer-contact input,.footer-contact textarea{
  width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;box-sizing:border-box;
}
.footer-contact button{
  display:inline-block;padding:12px 20px;border:1px solid #111;background:#111;color:#fff;border-radius:8px;
}
.footer-contact .c-small{text-align:center;font-size:.85rem;color:#666;}

.c-pageTitle{font-size:1.8rem;margin:0 0 12px;}
.c-lead{color:#555;margin:0 0 24px;}
.service{margin:28px 0;}
.service .c-secTitle{margin:0 0 8px;}

.map-dummy{height:280px;background:#e9eef3;border:1px dashed #b6c1cc;
  display:flex;align-items:center;justify-content:center;color:#6b7a8a;}

  .c-pageTitle{font-size:1.8rem;margin:0 0 12px;}
.c-small{font-size:.85rem;color:#666;margin:0 0 16px;}
.c-content p{line-height:1.9;color:#444;margin:0 0 1em;}
.c-content h2{font-size:1.3rem;margin:24px 0 8px;}
.c-content ul{padding-left:1.2em;list-style:disc;}

.wpcf7-acceptance {
  margin: 1em 0;
  font-size: 0.9rem;
  color: #444;
}
.wpcf7-acceptance a {
  color: #007acc; /* リンク色 */
  text-decoration: underline;
}
/* 同意チェック：横並びを強制（フッター共通フォーム） */
.footer-contact .wpcf7-form-control-wrap.agree-1 {
  display: inline-flex; 
  align-items: center;
  gap: .4em;
}
.footer-contact .wpcf7-acceptance .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  margin: 0;           /* 変な余白を消す */
}
.footer-contact .wpcf7-acceptance input[type="checkbox"] {
  margin: 0 .4em 0 0;  /* チェックボックス右の余白 */
}
.footer-contact .wpcf7-acceptance .wpcf7-list-item-label {
  display: inline;     /* ラベルをインライン化 */
}
/* チェックボックスには幅100%等を適用しない */
.footer-contact input[type="checkbox"]{
  width: auto;
  padding: 0;
  border: none;
  display: inline-block;
  vertical-align: middle;
  margin-right: .4em; /* □と文言の間隔 */
}

/* CF7のacceptance行を横並びに固定（保険） */
.footer-contact .wpcf7-form-control-wrap.agree-1{
  display: inline-flex;
  align-items: center;
  gap: .4em;
}
.footer-contact .wpcf7-acceptance .wpcf7-list-item{
  display: inline-flex;
  align-items: center;
  margin: 0;
}
.footer-contact .wpcf7-acceptance .wpcf7-list-item-label{
  display: inline;
}

.site-map {
  margin: 40px 0;
  background: #f9f9f9; /* 任意で背景を薄グレーに */
  padding: 20px 0;
}
.site-map h2 {
  text-align: center;
  margin-bottom: 16px;
}
.site-map .map-wrap {
  position: relative;
  padding-bottom: 56.25%; /* 16:9比率 */
  height: 0;
  overflow: hidden;
}
.site-map .map-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* CTA帯（トップ専用） */
.cta-band{
  background:#0f172a; /* 濃紺 */
  color:#fff;
  padding:28px 0;
  margin:24px 0 0;
}
.cta-band .cta-copy{
  text-align:center;
  margin:0 0 10px;
  font-size:clamp(16px,2.8vw,20px);
  letter-spacing:.02em;
}
.cta-band .cta-actions{
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
}
.btn{-webkit-tap-highlight-color:transparent;display:inline-block;padding:12px 18px;border-radius:8px;text-decoration:none;border:1px solid transparent}
.btn.-tel{background:#334155;color:#fff;border-color:#475569}
.btn.-primary{background:#22c55e;color:#0a0a0a;border-color:#16a34a}
.btn:active{transform:translateY(1px)}

/* モバイル固定TELボタン */
.sticky-call {
  display: none; /* ← PCでは非表示にする */
}

@media (max-width:960px) {
  .sticky-call {
    display: inline-block; /* ← スマホだけ表示 */
    position: fixed;
    right: 16px;
    bottom: 16px;
    padding: 12px 16px;
    border-radius: 999px;
    background: #22c55e;
    color: #0a0a0a;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(0,0,0,.15);
    z-index: 1100;
    font-weight: 700;
  }
}

/* メインスライダー（共通） */
.main-slider {
  position: relative;
  width: 100%;          /* 横幅いっぱい */
  margin: 0;            /* 中央寄せ解除 */
  max-width: none;      /* 制限解除 */
  height: clamp(420px, 56vw, 900px); /* PC〜タブレット時の高さ */
  overflow: hidden;
}

@media (max-width: 960px) {
  .main-slider {
    height: 100svh;     /* スマホは画面いっぱい */
  }
}

.slider {
  position: relative;
  width: 100%;
  height: 100%;
}

.slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}
.slide.active {
  opacity: 1;
}

html, body {
  margin: 0;
  padding: 0;
}

*, *::before, *::after { box-sizing: border-box; }