/*
Theme Name: GLUE Child
Theme URI: https://demo.tcd-theme.com/glue/
Template: glue_free002
Author: TCD
Author URI: https://tcd-theme.com/
Description: WordPress theme “GLUE” is a template that allows you to create a personal blog or a multi-person media. It has a simple design that is easy to use even for beginners, and you can also use abundant advertising features that contribute to monetizing your blog.
Version: 1.4.1767110576
Updated: 2025-12-31 01:02:56

*/

/* ===== Section base ===== */
.svc{
  padding: 64px 16px;
  background:#fff;
  color:#111;
}
.svc__inner{
  max-width: 1440px;
  margin: 0 auto;
}
.svc__header{
  margin: 0 0 22px;
  text-align: center;
}
.svc__title{
  margin: 0 0 80px;
  font-size: 36px;
  line-height: 1.35;
  letter-spacing: .02em;
}


/* ===== Cards (PC: 3 columns) ===== */
.svc__cards{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
  margin: 0 0 50px;
}
.svc__card{
  border: 1px solid #e8e8e8;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.svc__media{
  margin: 0;
  background:#f3f3f3; /* 画像未設定時 */
}
.svc__media img{
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
/* 画像が未指定でもそれっぽく見せる（任意） */
.svc__media img:not([src]), 
.svc__media img[src=""]{
  min-height: 180px;
  background: #f3f3f3;
}

/* Text */
.svc__cardTitle{
  margin: 14px 16px 8px;
  font-size: 18px;
  line-height: 1.45;
}
.svc__text{
  margin: 0 16px 16px !important;
  font-size: 15px;
  line-height: 1.85;
  color:#333;
}

/* ===== CTA ===== */
.svc__cta{
  display: flex;
  justify-content: center;
  margin: 34px 0;
}

/* ボタン本体（サイズは padding で調整） */
.svc__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 26px 46px;        /* ←ここで大きさ調整 */
  border-radius: 10px;
  background: #003366;
  color: #fff !important;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  line-height: 1;
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
  will-change: transform;
}

@media (max-width: 768px){
  .svc__btn{
    padding: 20px 20px !important;
  }
}

/* hover（シンプル） */
@media (hover:hover){
  .svc__btn:hover{
    background: #155a9a;
    transform: translateY(-1px);
    box-shadow: 0 10px 20px rgba(0,0,0,.18);
  }
}

/* SPは押した時だけ軽く反応（hover不具合回避） */
.svc__btn:active{
  transform: translateY(0);
  box-shadow: 0 6px 14px rgba(0,0,0,.16);
}


/* ===== Section ===== */
.svc__section{
  background:#f3f3f3;
  padding: 62px 16px;
}

.svc__sectionInner{
  max-width: 960px;
  margin: 0 auto;
}

/* ===== Single block ===== */
/*
.svc__single{
  border-top: 1px solid #ddd;
  padding-top: 26px;
}
 */
.svc__singleTitle{
  margin: 0 0 15px;
  text-align: center;
  font-size: 34px !important;
  line-height: 1.4;
  color:#111 !important;
}

.svc__singleLead{
  margin: 0 0 24px;
  text-align: center;
  font-size: 20px;
  font-weight: 400;
  color:#111;
}

.svc__text{
  margin: 0;
  font-size: 16px;
  line-height: 2;
  color:#333;
}

/* CTA */
.svc__cta--bottom{
  margin: 24px 0 0;
  text-align: center;
}


/* =================================================
   Responsive
================================================= */

/* ---------- Tablet & Small PC ---------- */
@media (max-width: 1024px){
  .svc__section{
    padding: 64px 20px;
  }

  .svc__sectionInner{
    max-width: 880px;
  }
}

/* ---------- Smartphone ---------- */
@media (max-width: 768px){
  .svc__section{
    padding: 48px 16px;
  }

  .svc__sectionInner{
    max-width: 100%;
  }

  .svc__single{
    padding-top: 20px;
  }

  .svc__singleTitle{
    font-size: 20px !important;
    line-height: 1.4;
  }

  .svc__singleLead{
    font-size: 15px;
    margin-bottom: 12px;
  }

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

  .svc__cta--bottom{
    margin-top: 20px;
  }

  .svc__btn{
    width: 100%;
    max-width: 320px;
  }
}

/* ---------- Small Smartphone ---------- */
@media (max-width: 480px){
  .svc__section{
    padding: 40px 14px;
  }

  .svc__singleTitle{
    font-size: 18px !important;
  }

  .svc__singleLead{
    font-size: 14px;
  }

  .svc__text{
    font-size: 14px;
    line-height: 1.8;
  }
}


/* ===== Responsive (SP: 1 column) ===== */
@media (max-width: 860px){
  .svc{
    padding: 48px 16px;
  }
  .svc__title{
    font-size: 24px;
  }
  .svc__cards{
    grid-template-columns: 1fr;
  }
  .svc__media img{
    aspect-ratio: 4 / 3;
  }
}

/* ===== Hero ===== */
.hero{
  padding: 96px 16px 72px;
  background: #fff;
  overflow: hidden;
}

.hero__inner{
  max-width: 1000px;
  margin: 30px auto;
}

/* FadeUp共通 */
.hero__company,
.hero__title,
.hero__lead{
  opacity: 0;
  transform: translateY(12px);
  animation: heroFadeUp .8s ease forwards;
}

/* Company */
.hero__company{
  margin: 0 0 10px;
  font-size: 14px;
  letter-spacing: .14em;
  color: #666;
}

/* Title */
.hero__title{
  text-align: center;
  margin: 0 0 16px;
  font-size: 36px; /* できれば!importantは外す（必要なら戻してOK） */
  line-height: 1.3;
  letter-spacing: .02em;
  color: #111;
  transform: translateY(14px);
  animation-delay: .15s;
}

/* Lead */
.hero__lead{
  margin: 40px auto !important;      /* ← これでブロックを中央に */
  text-align: left;
  max-width: 940px;
  font-size: 18px;
  line-height: 2.2;
  color: #333;
  transform: translateY(16px);
  animation-delay: .3s;
}

/* Animation */
@keyframes heroFadeUp{
  to{
    opacity: 1;
    transform: translateY(0);
  }
}

.sp-only{
  display: none;
}

/* ===== Responsive ===== */
@media (max-width: 768px){
  .hero__inner{
    margin: 20px 20px !important;
  }
  .hero{ padding: 64px 16px 48px; }
  .hero__title{ font-size: 24px !important;text-align : center;margin-bottom:20px !important;}
  .hero__lead{ font-size: 15px; }
  .sp-only{
    display: inline;
}
}

#header_logo img {
  max-height: 80px; /* 40px → 80px（2倍） */
  width: auto;
}

/* =========================================================
   PCのみ：スライダー高さに合わせて
   左右ブラウザ端まで背景色を敷く
========================================================= */
@media screen and (min-width: 1025px) {

  /* ----------------------------------
     1) 全幅に背景色を直塗り
       （一番確実な方法）
  ---------------------------------- */
  #header_slider_container {
    background: #f3f3f3 !important;
  }

  /* ----------------------------------
     2) 余計な背景を透明化
       （テーマ側の背景潰し対策）
  ---------------------------------- */
  #header_slider,
  #header_slider .swiper-wrapper,
  #header_slider .item,
  #header_slider .item_inner {
    background: transparent !important;
  }

  /* ----------------------------------
     3) 高さが親で潰れている場合の保険
       （現在の設定：540px）
  ---------------------------------- */
  #header_slider_container {
    min-height: 540px !important;
  }

}



:root{
  --bg: #ffffff;
  --text: #111;
  --muted: #666;
  --line: #e7e7e7;
  --card: #fafafa;
  --accent: #111; /* ボタン等 */
  --radius: 14px;
  --shadow: 0 8px 24px rgba(0,0,0,.06);
  --container: 1040px;
}

*{ box-sizing: border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", "Segoe UI", Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.8;
}

a{ color: inherit; text-decoration: none; }
a:hover{ text-decoration: underline; }

.container{
  width: min(100% - 40px, var(--container));
  margin: 0 auto;
}

/* Header */
.site-header{
  position: sticky;
  top: 0;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
  z-index: 10;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 0;
  gap: 16px;
}
.brand__name{
  font-weight: 800;
  letter-spacing: .02em;
}
.nav{
  display:flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.nav a{
  font-size: 14px;
  color: var(--muted);
  padding: 6px 8px;
  border-radius: 10px;
}
.nav a[aria-current="page"]{
  color: var(--text);
  background: #f2f2f2;
}

/* Hero */
.hero{
  padding: 34px 0 18px;
}
.breadcrumb{
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 10px;
}
.hero__title{
  font-size: clamp(26px, 4vw, 38px);
  letter-spacing: .02em;
  margin: 0 0 8px;
}
.hero__lead{
  margin: 0;
  color: var(--muted);
}

/* Section */
.section{
  padding: 18px 0 54px;
}
.grid{
  display:grid;
  grid-template-columns: 1.5fr .9fr;
  gap: 18px;
}
@media (max-width: 920px){
  .grid{ grid-template-columns: 1fr; }
}

/* Card */
.card{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 22px;
}
.section-title{
  font-size: 18px;
  margin: 0 0 14px;
}

/* Definition list (会社情報) */
/* 会社概要（固定ページ用） */
.company {
  max-width: 880px;
  margin: 0 auto;
  padding: 0;
}

/* タイトル */
.company__title {
  font-size: 32px;
  font-weight: 700;
  margin: 0 0 12px;
  letter-spacing: 0.02em;
}

/* リード文 */
.company__lead {
  font-size: 15px;
  color: #555;
  margin: 0 0 40px;
}

/* テーブル風レイアウト */
.company__table {
  margin: 0;
}

.company__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  padding: 16px 0;
  border-top: 1px solid #e5e5e5;
}

.company__row:first-child {
  border-top: none;
}

.company__row dt {
  font-size: 14px;
  font-weight: 600;
  color: #555;
}

.company__row dd {
  margin: 0;
  font-size: 15px;
}

/* リンク */
.company a {
  color: inherit;
  text-decoration: underline;
}

.company a:hover {
  opacity: 0.7;
}

/* スマホ対応 */
@media (max-width: 640px) {
  .company__title {
    font-size: 26px;
  }

  .company__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .company__row dt {
    font-size: 13px;
  }
}

/* 事業内容（見やすく） */
.services__item{
  padding: 10px 0;
  border-top: 1px dashed #e5e5e5;
}

/* 事業名＋説明を1ブロックに */
.services__name,
.services__desc{
  display: inline;
  margin: 0;
  padding: 0;
  line-height: 1.6;
}

/* 事業名の見た目 */
.services__name{
  font-weight: 700;
  font-size: 15px;
}

/* 「：」をCSSで追加 */
.services__name::after{
  content: "：";
}

/* 説明文 */
.services__desc{
  font-size: 14px;
  color: #444;
}




/* PCで少し詰めて見せたい場合（任意） */
@media (min-width: 900px){
  .services{
    gap: 12px;
  }
}



/* =========================================================
   MW WP Form × TCD glue（整理版 / 最終）
   - PC: 2カラム
   - SP: 1カラム（重なり防止）
   - tel(3分割): PC/SPとも1行固定
   - 必須バッジ: SPのみ下に10px（transformで安全に）
   - プライバシー同意: 改行させない
========================================================= */

/* ---------------------------
   Base
--------------------------- */
.mwform{
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: #111 !important;
}

/* ---------------------------
   Row layout (PC default)
--------------------------- */
.mwform .mwform__row{
  display: grid !important;
  grid-template-columns: 220px minmax(0, 1fr) !important;
  gap: 12px 18px !important;
  padding: 14px 0 !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
  align-items: flex-start !important; /* glue対策：上基準 */
}

/* float等を無効化 */
.mwform .mwform__row > *{
  float: none !important;
  max-width: 100% !important;
  width: auto !important;
  margin: 0 !important;
}

/* label */
.mwform .mwform__row > .mwform__label,
.mwform .mwform__row > span.mwform__label{
  grid-column: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  padding: 0 !important;
}

/* field */
.mwform .mwform__row > .mwform__field{
  grid-column: 2 !important;
  min-width: 0 !important;
  margin-top: -50px !important; /* PCでの高さ揃え（現状維持） */
}

/* ---------------------------
   Required badge
--------------------------- */
.mwform .mwform__req{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 2px 8px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  border-radius: 999px !important;
  background: #e11d48 !important;
  color: #fff !important;
  flex-shrink: 0 !important;
  line-height: 1.2 !important;
  position: relative !important;
  top: 10px !important; /* PCでの見え方（現状維持） */
}

/* ---------------------------
   Inputs
--------------------------- */
.mwform input[type="text"],
.mwform input[type="email"],
.mwform input[type="tel"],
.mwform input[type="url"],
.mwform input[type="number"],
.mwform select,
.mwform textarea{
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 12px 12px !important;
  border: 1px solid rgba(0,0,0,.18) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #111 !important;
  outline: none !important;
}

.mwform input::placeholder,
.mwform textarea::placeholder{
  color: rgba(0,0,0,.45) !important;
}

.mwform input:focus,
.mwform select:focus,
.mwform textarea:focus{
  border-color: rgba(0,0,0,.45) !important;
  box-shadow: 0 0 0 3px rgba(0,0,0,.06) !important;
}

.mwform textarea{
  resize: vertical !important;
  min-height: 140px !important;
}

/* hint */
.mwform .mwform__hint{
  margin-top: 6px !important;
  font-size: 13px !important;
  color: rgba(0,0,0,.6) !important;
}

/* ---------------------------
   Select (arrow)
--------------------------- */
.mwform .mwform__select{
  position: relative !important;
}
.mwform .mwform__select:after{
  content: "" !important;
  position: absolute !important;
  right: 14px !important;
  top: 50% !important;
  width: 8px !important;
  height: 8px !important;
  border-right: 2px solid rgba(0,0,0,.55) !important;
  border-bottom: 2px solid rgba(0,0,0,.55) !important;
  transform: translateY(-65%) rotate(45deg) !important;
  pointer-events: none !important;
}
.mwform select{
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  padding-right: 40px !important;
}

/* ---------------------------
   Radio
--------------------------- */
.mwform .mwform__radio,
.mwform .mwform__radio .mwform-radio-field{
  display: flex !important;
  gap: 18px !important;
  flex-wrap: wrap !important;
  align-items: center !important;
}
.mwform .mwform__radio label{
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  margin: 0 !important;
  position: relative !important;
  top: 14px !important; /* PCでの微調整（現状維持） */
}
.mwform .mwform__radio input[type="radio"]{
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
}

/* ---------------------------
   Tel (3分割) - PC/SPとも1行固定
--------------------------- */
.mwform .mwform__field .mwform-tel-field{
  display: flex !important;
  gap: 6px !important;
  flex-wrap: nowrap !important; /* 1行固定 */
  align-items: center !important;
}
.mwform .mwform__field .mwform-tel-field input{
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* ---------------------------
   Actions
--------------------------- */
.mwform .mwform__actions{
  padding-top: 18px !important;
  display: flex !important;
  justify-content: center !important;
  border-bottom: none !important;
}

.mwform input[type="submit"],
.mwform button[type="submit"]{
  appearance: none !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 14px 26px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  background: #111 !important;
  color: #fff !important;
  transition: transform .12s ease, opacity .12s ease !important;
}
.mwform input[type="submit"]:hover,
.mwform button[type="submit"]:hover{
  opacity: .92 !important;
  transform: translateY(-1px) !important;
}


/* =========================================
   MW WP Form 完了メッセージ
   - フォームと同トーン
   - シンプル / 1カラム
========================================= */

.mwform-thanks{
  max-width: 760px;
  margin: 0 auto;
  padding: 40px 0 20px;
  color: #111;
  font-size: 16px;
  line-height: 1.7;
}

/* タイトル */
.mwform-thanks__ttl{
  margin: 0 0 20px;
  padding-bottom: 14px;
  font-size: 22px;
  font-weight: 700;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

/* リード文 */
.mwform-thanks__lead{
  margin: 0 0 28px;
}

/* 注意・連絡先ボックス */
.mwform-thanks__box{
  margin: 0 0 32px;
  padding: 20px;
  background: #f8f8f8;
  border-radius: 6px;
}

/* 注意文 */
.mwform-thanks__note{
  margin: 0 0 16px;
  font-size: 14px;
  color: #555;
}

/* 電話番号 */
.mwform-thanks__tel{
  margin: 0;
}

.mwform-thanks__label{
  font-weight: 600;
}

.mwform-thanks__tel-link{
  display: inline-block;
  margin: 4px 0;
  font-size: 20px;
  font-weight: 700;
  color: #111;
  text-decoration: none;
}

.mwform-thanks__tel-link:hover{
  opacity: .8;
}

.mwform-thanks__time{
  font-size: 14px;
  color: #555;
}

/* ボタン */
.mwform-thanks__actions{
  text-align: center;
}

.mwform-thanks__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 14px 22px;
  border-radius: 10px;
  background: #111;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  transition: opacity .15s ease, transform .15s ease;
}

.mwform-thanks__btn:hover{
  opacity: .92;
  transform: translateY(-1px);
}

/* スマホ調整 */
@media (max-width: 768px){
  .mwform-thanks{
    padding: 28px 0 10px;
    font-size: 15px;
  }

  .mwform-thanks__ttl{
    font-size: 20px;
  }

  .mwform-thanks__tel-link{
    font-size: 18px;
  }
}


@media (max-width: 768px){
  /* bodyには触らない */
  body.page-id-88,
  body.page-id-97{
    overflow-x: visible !important;
  }

  /* 横はみ出しは “中身” で止める（テーマに合わせてどれか当たるものを残す） */
  body.page-id-88 #main_content,
  body.page-id-88 #wrapper,
  body.page-id-88 #container,
  body.page-id-88 #site_wrap,
  body.page-id-97 #main_content,
  body.page-id-97 #wrapper,
  body.page-id-97 #container,
  body.page-id-97 #site_wrap{
    overflow-x: clip; /* 対応ブラウザで理想 */
  }

  /* clipが効かないブラウザ用保険（どっちか残す） */
  body.page-id-88 #main_content,
  body.page-id-97 #main_content{
    overflow-x: hidden;
  }
}

/* =========================================================
   Privacy row
========================================================= */
.mwform__row--privacy{
  align-items: flex-start !important;
}

.mwform__privacy{
  margin-top: 6px;
}

.mwform__privacy a{
  color: #111 !important;
  text-decoration: underline !important;
}
.mwform__privacy a:hover{ opacity: .75 !important; }

/* 改行させない（出力差異に強い） */
.mwform__row--privacy .mwform__field{
  display: flex !important;
  align-items: center !important;
}
.mwform__row--privacy .mwform__privacy label{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  line-height: 1.6 !important;
}
.mwform__row--privacy .mwform__privacy label *{
  white-space: nowrap !important;
}
.mwform__privacy input[type="checkbox"]{
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  cursor: pointer !important;
}

/* 文章部分だけ微調整（必要な場合のみ） */
.mwform__row--privacy .mwform__privacy label span:has(a){
  position: relative !important;
  top: -13px !important;
}

/* =========================================================
   Mobile (SP)
========================================================= */
@media (max-width: 768px){
  .mwform{
    padding: 0 14px !important;
  }

  .mwform .mwform__row{
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: start !important;
  }

  .mwform .mwform__row > .mwform__label,
  .mwform .mwform__row > span.mwform__label,
  .mwform .mwform__row > .mwform__field{
    grid-column: 1 !important;
    white-space: normal !important;
  }

  /* SPでは重なり防止（PC用のズラしを無効化） */
  .mwform .mwform__row > .mwform__field{
    margin-top: 0 !important;
  }

  /* SPの必須バッジは top ではなく transform で下げる（上書きに強い） */
  .mwform .mwform__req{
    top: auto !important;
    transform: translateY(10px) !important;
  }

  /* SPではラジオの微調整を解除 */
  .mwform .mwform__radio label{
    top: 0 !important;
  }
}



/* ==============================
   プライバシーポリシー同意
============================== */

/* チェックボックス行 */
.mwform__row--privacy{
  align-items: flex-start !important;
}

/* チェックボックス全体 */
.mwform__privacy{
  margin-top: 6px;
}

/* ラベル整形 */
.mwform__privacy label{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  line-height: 1.6 !important;
}

/* チェックボックス */
.mwform__privacy input[type="checkbox"]{
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  cursor: pointer !important;
}

/* リンク */
.mwform__privacy a{
  color: #111 !important;
  text-decoration: underline !important;
}
.mwform__privacy a:hover{
  opacity: .75 !important;
}

/* ======================================
   プライバシー同意：改行させない最終手段
   （MW WP Formの出力差異に強い）
====================================== */

/* プライバシー行の右側は必ず横並び */
.mwform__row--privacy .mwform__field{
  display: flex !important;
  align-items: center !important;
}

/* label配下の要素を横並び＆折り返し禁止 */
.mwform__row--privacy .mwform__privacy label{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}

/* label直下の span / input は全部横並びに寄せる（クラス不問） */
.mwform__row--privacy .mwform__privacy label > span{
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
}
.mwform__row--privacy .mwform__privacy label > input{
  margin: 0 !important;
}

/* もし「☑ 同意する」部分がspanで囲われていない場合にも対応 */
.mwform__row--privacy .mwform__privacy label input[type="checkbox"]{
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
}

/* リンク＋「に同意します」側（最後のテキスト塊）も改行禁止 */
.mwform__row--privacy .mwform__privacy label span:last-child{
  white-space: nowrap !important;
}

/* 念のため：途中の「に同意します」だけが別要素になっても改行させない */
.mwform__row--privacy .mwform__privacy label *{
  white-space: nowrap !important;
}


/* 文章「プライバシーポリシーに同意します」だけ上に13px */
.mwform__row--privacy .mwform__privacy label span:has(a){
  position: relative !important;
  top: -13px !important;
}

/* ラジオ全体を下に6px */
.mwform .mwform__radio label{
  position: relative !important;
  top: 14px !important;
}

/* =========================================
   SP崩れ修正（重なり＆電話番号2行）最終上書き
   - 高さ調整はPCのみ
   - SPは1カラムで自然表示
   - 電話番号はSPでも1行固定
========================================= */

/* 1) 高さズレ調整（PCのみ有効） */
@media (min-width: 769px){
  /* 行は上基準 */
  .mwform .mwform__row{
    align-items: flex-start !important;
  }

  /* 入力フィールドを上にずらす（PCのみ） */
  .mwform .mwform__row > .mwform__field{
    margin-top: -50px !important;
  }

  /* 必須バッジ位置（PCのみ） */
  .mwform .mwform__req{
    position: relative !important;
    top: 10px !important;
  }

  /* ラジオ位置（PCのみ） */
  .mwform .mwform__radio label{
    position: relative !important;
    top: 14px !important;
  }
}

/* 2) スマホでは高さ調整を完全に無効化（重なり防止） */
@media (max-width: 768px){
  .mwform .mwform__row{
    align-items: start !important;
  }

  .mwform .mwform__row > .mwform__field{
    margin-top: 0 !important; /* ← 重なりの原因を消す */
  }

  .mwform .mwform__req{
    top: 0 !important;
  }

  .mwform .mwform__radio label{
    top: 0 !important;
  }

  /* 3) 電話番号（3分割）をスマホでも1行固定 */
  .mwform .mwform__field .mwform-tel-field{
    flex-wrap: nowrap !important;   /* ← 折り返し禁止 */
    gap: 6px !important;
  }
  .mwform .mwform__field .mwform-tel-field input{
    flex: 1 1 0 !important;
    min-width: 0 !important;        /* ← はみ出し防止 */
  }
}

@media (max-width: 768px){
  .mwform__row--privacy .mwform__req{
    top: 10px !important;
  }
}

@media (max-width: 768px){
  .mwform .mwform__req{
    position: relative !important;
    top: auto !important;
    transform: translateY(10px) !important;
  }
}


/* 確認画面専用調整 */
.mw_wp_form_confirm .mwform__hint,
.mw_wp_form_confirm .mwform__req {
  display: none !important;
}


/* =========================
   Privacy Policy Page
========================= */
.privacy{
  max-width: 920px;
  margin: 0 auto;
  padding: 0 16px;
  color: #111;
  line-height: 1.85;
}

.privacy__head{
  padding: 24px 0 10px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.privacy__eyebrow{
  margin: 0 0 4px;
  font-size: 12px;
  letter-spacing: .12em;
  color: rgba(0,0,0,.55);
  text-transform: uppercase;
}

.privacy__title{
  margin: 0 0 10px;
  font-size: 28px;
  line-height: 1.25;
}

.privacy__lead{
  margin: 0 0 10px;
  color: rgba(0,0,0,.78);
}

.privacy__meta{
  margin: 0;
  font-size: 13px;
  color: rgba(0,0,0,.55);
}

.privacy__body{
  padding: 18px 0 40px;
}

/* TOC */
.privacy__toc{
  margin: 16px 0 22px;
  padding: 14px 16px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 14px;
  background: #fff;
}

.privacy__tocTitle{
  margin: 0 0 8px;
  font-weight: 800;
}

.privacy__tocList{
  margin: 0;
  padding-left: 18px;
}
.privacy__tocList li{
  margin: 6px 0;
}
.privacy__tocList a{
  color: #111;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.privacy__tocList a:hover{ opacity: .75; }

/* Section */
.privacy__section{
  padding: 18px 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.privacy__h2{
  margin: 0 0 10px;
  font-size: 20px !important;
  line-height: 1.35;
}
.privacy__text{
  margin: 0 0 10px;
  color: rgba(0,0,0,.85);
}
.privacy__list{
  margin: 0;
  padding-left: 18px;
}
.privacy__list li{
  margin: 6px 0;
  color: rgba(0,0,0,.85);
}

/* DL */
.privacy__dl{
  margin: 12px 0 0;
}
.privacy__dlRow{
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 10px 14px;
  padding: 10px 0;
  border-top: 1px solid rgba(0,0,0,.08);
}
.privacy__dlRow dt{
  font-weight: 800;
  color: rgba(0,0,0,.75);
}
.privacy__dlRow dd{
  margin: 0;
}
.privacy__dl a{
  color: #111;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.privacy__dl a:hover{ opacity: .75; }

.privacy__note{
  margin: 12px 0 0;
  font-size: 13px;
  color: rgba(0,0,0,.55);
}

/* Back button */
.privacy__back{
  margin-top: 22px;
  display: flex;
  justify-content: center;
}
.privacy__backBtn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  border-radius: 12px;
  background: #111;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  transition: transform .12s ease, opacity .12s ease;
}
.privacy__backBtn:hover{
  opacity: .92;
  transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 768px){
  .privacy__title{ font-size: 24px; }
  .privacy__dlRow{ grid-template-columns: 1fr; }
}


#global_menu .menu_nagoya > a{
  background: #001a34;
  color: #fff;
}

/* hover */
#global_menu .menu_nagoya > a:hover{
  background: #b80028;
}
