@charset "UTF-8";
/* =========================================================
   株式会社中京試験機 — custom styles
   Bootstrap 5 (Modern Business 構造) の上に重ねるブランドCSS
   外部CDN・外部フォント不使用
   ========================================================= */

:root{
  --ck-navy:   #0b3d77;
  --ck-navy-d: #082b54;
  --ck-blue:   #1565c0;
  --ck-accent: #00a0c8;
  --ck-soft:   #f4f7fa;
  --ck-line:   #e2e7ec;
  --bs-body-font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic","YuGothic",Meiryo,sans-serif;
}

body{
  font-family:var(--bs-body-font-family);
  color:#333b44;
  letter-spacing:.02em;
  padding-top:0;
}

/* ===== Navbar ===== */
.navbar-ck{
  background:#fff;
  border-bottom:1px solid var(--ck-line);
  box-shadow:0 1px 3px rgba(11,61,119,.06);
}
.navbar-ck .navbar-brand{
  font-weight:800; color:var(--ck-navy); letter-spacing:.02em; display:flex; align-items:center; gap:8px;
  font-size:1.08rem;
}
.navbar-ck .navbar-brand .brand-bar{
  width:5px; height:24px; border-radius:3px;
  background:linear-gradient(180deg,var(--ck-accent),var(--ck-navy)); display:inline-block;
}
.navbar-ck .navbar-brand small{
  display:block; font-size:.58rem; font-weight:400; color:#6a7783; letter-spacing:0; margin-top:1px;
}
.navbar-ck .nav-link{
  color:#2c3742 !important; font-weight:600; font-size:.88rem; padding:.5rem .62rem !important;
  border-bottom:2px solid transparent; transition:color .2s,border-color .2s; white-space:nowrap;
}
@media (min-width:1200px) and (max-width:1399px){
  .navbar-ck .nav-link{ font-size:.82rem; padding:.5rem .5rem !important; }
  .navbar-ck .navbar-brand{ font-size:1rem; }
}
.navbar-ck .nav-link:hover{ color:var(--ck-blue) !important; }
.navbar-ck .nav-item.active .nav-link,
.navbar-ck .nav-link.active{ color:var(--ck-navy) !important; border-bottom-color:var(--ck-accent); }
.navbar-ck .navbar-toggler{ border-color:var(--ck-line); }

/* ===== Buttons ===== */
.btn-ck{
  background:linear-gradient(135deg,var(--ck-navy),var(--ck-blue)); color:#fff; border:none;
  border-radius:50px; padding:.7rem 1.9rem; font-weight:700; letter-spacing:.04em;
  box-shadow:0 6px 18px rgba(11,61,119,.18); transition:transform .2s,box-shadow .2s;
  display:inline-flex; align-items:center; gap:.5rem;
}
.btn-ck:hover{ color:#fff; transform:translateY(-2px); box-shadow:0 12px 28px rgba(11,61,119,.26); }
.btn-ck-outline{
  background:#fff; color:var(--ck-navy); border:1.5px solid var(--ck-navy);
  border-radius:50px; padding:.7rem 1.9rem; font-weight:700; transition:all .2s;
  display:inline-flex; align-items:center; gap:.5rem;
}
.btn-ck-outline:hover{ background:var(--ck-navy); color:#fff; transform:translateY(-2px); }
.btn-ck svg,.btn-ck-outline svg{ width:17px; height:17px; }
.btn-ghost-w{
  background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.6);
  border-radius:50px; padding:.7rem 1.9rem; font-weight:700; transition:all .2s;
  display:inline-flex; align-items:center; gap:.5rem;
}
.btn-ghost-w:hover{ background:rgba(255,255,255,.14); color:#fff; transform:translateY(-2px); }
.btn-ghost-w svg{ width:17px; height:17px; }

/* ===== Hero ===== */
.ck-hero{
  position:relative; color:#fff; overflow:hidden;
  background:linear-gradient(120deg,var(--ck-navy-d) 0%,var(--ck-navy) 55%,var(--ck-blue) 100%);
}
.ck-hero::after{
  content:""; position:absolute; right:-140px; top:-140px; width:520px; height:520px;
  background:radial-gradient(circle,rgba(0,160,200,.32),transparent 65%); border-radius:50%;
}
.ck-hero .container{ position:relative; z-index:1; }
.ck-hero .eyebrow{ letter-spacing:.3em; font-size:.78rem; font-weight:700; color:#7fd4e8; }
.ck-hero h1{ font-weight:800; line-height:1.45; letter-spacing:.02em; }
.ck-hero h1 span{ color:#7fd4e8; }
.ck-hero p.lead{ color:#dce7f2; }
.ck-hero-visual{
  border-radius:18px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.35);
  aspect-ratio:4/3; background:linear-gradient(135deg,#0a4d8c,#063363);
  display:flex; align-items:center; justify-content:center; position:relative;
}
.ck-hero-visual img{ width:100%; height:100%; object-fit:cover; opacity:.92; }
.ck-hero-visual .ph{ width:55%; height:55%; color:#fff; opacity:.85; }

/* ===== Page header (下層) ===== */
.ck-page-header{
  color:#142f42;
  background:#fff;
  background-image:none;
  padding:36px 0 40px;
  border-top:1px solid #edf1f3;
  border-bottom:1px solid #dce5ea;
}
.ck-page-header h1{color:#142f42;font-weight:800;letter-spacing:.03em;margin:0;}
.ck-page-header .breadcrumb{margin:18px 0 0;--bs-breadcrumb-divider-color:#9daab2;}
.ck-page-header .breadcrumb a{color:#71818b;text-decoration:none;}
.ck-page-header .breadcrumb a:hover{color:#0b6f9e;}
.ck-page-header .breadcrumb-item.active{color:#71818b;}
.ck-page-header .breadcrumb-item+.breadcrumb-item::before{color:#9daab2;}

/* ===== Section ===== */
.ck-section{ padding:4.5rem 0; }
.ck-section.alt{ background:var(--ck-soft); }
.ck-section-title{ text-align:center; margin-bottom:2.6rem; }
.ck-section-title .en{ display:block; letter-spacing:.28em; font-size:.74rem; font-weight:700; color:var(--ck-accent); text-transform:uppercase; margin-bottom:.5rem; }
.ck-section-title h2{ font-weight:800; color:var(--ck-navy); letter-spacing:.03em; }
.ck-section-title p{ color:#6a7783; margin:.6rem auto 0; max-width:680px; }

/* ===== Cards ===== */
.ck-card{
  height:100%; border:1px solid var(--ck-line); border-radius:12px; background:#fff;
  transition:transform .25s,box-shadow .25s,border-color .25s; overflow:hidden; position:relative;
}
.ck-card::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:4px;
  background:linear-gradient(90deg,var(--ck-accent),var(--ck-navy));
  transform:scaleX(0); transform-origin:left; transition:transform .25s;
}
.ck-card:hover{ transform:translateY(-6px); box-shadow:0 16px 38px rgba(11,61,119,.16); border-color:transparent; }
.ck-card:hover::before{ transform:scaleX(1); }
.ck-card .card-body{ padding:1.7rem 1.6rem; }
.ck-icon{
  width:56px; height:56px; border-radius:14px; background:#e8f1fb; color:var(--ck-navy);
  display:flex; align-items:center; justify-content:center; margin-bottom:1rem;
}
.ck-icon svg{ width:30px; height:30px; }
.ck-card h3,.ck-card .h5{ font-weight:700; color:var(--ck-navy); font-size:1.12rem; }
.ck-card .more{ color:var(--ck-blue); font-weight:700; font-size:.86rem; display:inline-flex; align-items:center; gap:.3rem; margin-top:.6rem; }
.ck-card .more svg{ width:15px; height:15px; }

/* 番号バッジ */
.ck-step .step-no{ font-size:.72rem; font-weight:800; letter-spacing:.12em; color:var(--ck-accent); }

/* ===== Feature row ===== */
.ck-feature-img{
  border-radius:16px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 12px 30px rgba(11,61,119,.14);
  background:linear-gradient(135deg,#e9eff5,#e8f1fb); display:flex; align-items:center; justify-content:center;
}
.ck-feature-img img{ width:100%; height:100%; object-fit:cover; }
.ck-feature-img .ph{ width:55%; height:55%; color:var(--ck-navy); opacity:.8; }
.ck-feature .en{ letter-spacing:.28em; font-size:.74rem; font-weight:700; color:var(--ck-accent); text-transform:uppercase; }
.ck-feature h3{ font-weight:800; color:var(--ck-navy); }

/* ===== チップ ===== */
.ck-chips{ display:flex; flex-wrap:wrap; gap:.55rem; list-style:none; padding:0; margin:0; }
.ck-chips li{
  background:var(--ck-soft); border:1px solid var(--ck-line); border-radius:50px;
  padding:.4rem 1rem; font-size:.85rem; transition:all .2s;
}
.ck-chips li:hover{ background:var(--ck-navy); color:#fff; border-color:var(--ck-navy); }

/* ===== チェックリスト ===== */
.ck-check{ list-style:none; padding:0; margin:1rem 0 0; }
.ck-check li{ display:flex; gap:.6rem; align-items:flex-start; margin-bottom:.55rem; font-size:.95rem; }
.ck-check li svg{ flex:none; width:22px; height:22px; color:var(--ck-navy); background:#e8f1fb; border-radius:50%; padding:3px; margin-top:2px; }

/* ===== 定義テーブル ===== */
.ck-dl{ margin:0; border-top:2px solid var(--ck-navy); }
.ck-dl .row-line{ display:flex; border-bottom:1px solid var(--ck-line); }
.ck-dl dt{ width:170px; flex:none; background:var(--ck-soft); color:var(--ck-navy); font-weight:700; padding:.85rem 1rem; }
.ck-dl dd{ margin:0; padding:.85rem 1rem; }
@media (max-width:575px){ .ck-dl .row-line{ flex-direction:column; } .ck-dl dt{ width:100%; } }

/* ===== Mini table ===== */
.table-ck th{ background:var(--ck-soft); color:var(--ck-navy); }
.table-ck thead th{ background:var(--ck-navy); color:#fff; }

/* ===== 帯ビジュアル ===== */
.ck-band{
  position:relative; overflow:hidden; color:#fff; text-align:center;
  background:linear-gradient(135deg,var(--ck-navy-d),var(--ck-blue));
}
.ck-band img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.16; }
.ck-band .inner{ position:relative; z-index:1; padding:4rem 1rem; }
.ck-band .en{ letter-spacing:.3em; font-size:.74rem; font-weight:700; color:#7fd4e8; }
.ck-band h2{ font-weight:800; }
.ck-band p{ color:#dbe8f4; max-width:720px; margin:1rem auto 0; }

/* ===== CTA ===== */
.ck-cta{
  color:#fff; text-align:center; padding:3.8rem 1rem;
  background:linear-gradient(120deg,rgba(8,43,84,.96),rgba(21,101,192,.92)),
             radial-gradient(circle at 80% 20%,rgba(0,160,200,.5),transparent 50%);
}
.ck-cta h2{ font-weight:800; }
.ck-cta .tel{ font-size:1.5rem; font-weight:800; display:inline-flex; align-items:center; gap:.5rem; }
.ck-cta .tel svg{ width:26px; height:26px; }

/* ===== 連絡先カード ===== */
.ck-contact-card{ border:1px solid var(--ck-line); border-radius:12px; background:#fff; padding:1.4rem; height:100%; }
.ck-contact-card .ic{ width:42px; height:42px; color:var(--ck-accent); margin-bottom:.5rem; }
.ck-contact-card .ic svg{ width:42px; height:42px; }
.ck-contact-card .l{ font-size:.74rem; font-weight:700; letter-spacing:.08em; color:#6a7783; }
.ck-contact-card .v{ font-size:1.05rem; font-weight:700; color:var(--ck-navy); word-break:break-all; }

/* ===== フォーム ===== */
.ck-form .form-label{ font-weight:600; color:var(--ck-navy); }
.ck-form .req{ color:#c0392b; font-weight:700; }
.ck-form .form-control{ border-radius:8px; border-color:#c4cfd9; padding:.65rem .8rem; }
.ck-form .form-control:focus{ border-color:var(--ck-accent); box-shadow:0 0 0 .2rem rgba(0,160,200,.18); }

/* ===== 地図 ===== */
.ck-map iframe{ width:100%; height:420px; border:0; border-radius:12px; box-shadow:0 6px 20px rgba(11,61,119,.10); }
@media (max-width:575px){ .ck-map iframe{ height:300px; } }

/* JCSS標章画像 */
.ck-jcss-mark{ max-width:420px; border-radius:12px; box-shadow:0 6px 20px rgba(11,61,119,.10); }

/* ===== Footer ===== */
.ck-footer{ background:var(--ck-navy-d); color:#cdd8e4; }
.ck-footer .fname{ font-weight:800; color:#fff; letter-spacing:.05em; display:flex; align-items:center; gap:.6rem; font-size:1.2rem; }
.ck-footer .fname .bar{ width:6px; height:24px; background:linear-gradient(180deg,var(--ck-accent),#fff); border-radius:3px; }
.ck-footer h6{ color:#fff; font-weight:700; letter-spacing:.08em; border-bottom:1px solid rgba(255,255,255,.14); padding-bottom:.6rem; margin-bottom:.9rem; }
.ck-footer a{ color:#c2d0e0; text-decoration:none; }
.ck-footer a:hover{ color:#fff; }
.ck-footer .small-muted{ color:#9fb2c8; }
.ck-footer .copyright{ border-top:1px solid rgba(255,255,255,.10); color:#8ea3bb; }

/* ニュースリスト */
.ck-news{ list-style:none; padding:0; margin:0; max-width:860px; }
.ck-news li{ border-bottom:1px solid var(--ck-line); }
.ck-news a{ display:flex; align-items:center; gap:1rem; padding:1rem .4rem; color:#333b44; text-decoration:none; flex-wrap:wrap; transition:background .2s; }
.ck-news a:hover{ background:var(--ck-soft); color:var(--ck-navy); }
.ck-news .date{ color:#6a7783; font-weight:600; font-size:.85rem; white-space:nowrap; }
.ck-news .tag{ font-size:.7rem; font-weight:700; color:#fff; background:var(--ck-accent); border-radius:4px; padding:.15rem .7rem; white-space:nowrap; }
.ck-news .tag.holiday{ background:#d98200; }
.ck-news .tag.info{ background:var(--ck-blue); }
.ck-news .ttl{ flex:1; min-width:180px; }

/* 信頼バー */
.ck-trust .item{ text-align:center; padding:1.3rem .5rem; }
.ck-trust .item .ic{ width:36px; height:36px; color:var(--ck-accent); margin:0 auto .4rem; }
.ck-trust .item .ic svg{ width:36px; height:36px; }
.ck-trust .item .num{ font-size:1.5rem; font-weight:800; color:var(--ck-navy); line-height:1.1; }
.ck-trust .item .num small{ font-size:.85rem; }
.ck-trust .item .lbl{ font-size:.78rem; color:#6a7783; margin-top:.2rem; }


/* ===== Header logo optimization ===== */
.navbar-ck .navbar-brand{
  display:flex;
  align-items:center;
  padding:.25rem 0;
  gap:0;
  min-width:0;
}
.ck-site-logo{
  display:block;
  height:54px;
  width:auto;
  max-width:360px;
  object-fit:contain;
}
@media (max-width: 1199.98px){
  .navbar-ck .container{
    align-items:center;
  }
  .ck-site-logo{
    height:46px;
    max-width:300px;
  }
}
@media (max-width: 575.98px){
  .ck-site-logo{
    height:38px;
    max-width:230px;
  }
}

/* ===== Hero carousel: keep full image visible ===== */
.ck-hero-carousel-wrap{
  padding:10px;
  background:#eaf2fb;
}
.ck-hero-carousel,
.ck-hero-carousel .carousel-inner,
.ck-hero-carousel .carousel-item{
  width:100%;
  height:100%;
}
.ck-hero-carousel .carousel-item{
  background:#eaf2fb;
}
.ck-hero-carousel img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#eaf2fb;
}
.ck-hero-carousel .carousel-indicators{
  margin-bottom:.35rem;
}
.ck-hero-carousel .carousel-indicators [data-bs-target]{
  width:8px;
  height:8px;
  border-radius:50%;
}
.ck-hero-carousel .carousel-control-prev,
.ck-hero-carousel .carousel-control-next{
  width:12%;
}

/* ===== 画像表示調整：全体を切らずに表示 ===== */
.ck-feature-img{
  background:#eef4fa;
}
.ck-feature-img img{
  object-fit:contain;
  padding:10px;
  opacity:1;
  background:#eef4fa;
}
.ck-band img{
  object-fit:contain;
  opacity:.18;
  background:#082b54;
}

/* ===== 設備・校正風景ギャラリー ===== */
.ck-gallery-section{
  background:#fff;
}
.ck-photo-grid{
  align-items:stretch;
}
.ck-photo-card{
  height:100%;
  margin:0;
  border:1px solid var(--ck-line);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(11,61,119,.08);
}
.ck-photo-card img{
  width:100%;
  height:320px;
  object-fit:contain;
  display:block;
  background:#f4f7fa;
  padding:10px;
}
.ck-photo-card.certificate img{
  height:420px;
}
.ck-photo-card figcaption{
  padding:.85rem 1rem;
  font-size:.9rem;
  font-weight:700;
  color:var(--ck-navy);
  border-top:1px solid var(--ck-line);
  background:#fff;
}
@media (max-width:575px){
  .ck-photo-card img{ height:260px; }
  .ck-photo-card.certificate img{ height:360px; }
}

/* ===== Extended support cards ===== */
.ck-business-scope .ck-card{
  min-height:100%;
}

/* ===== ギャラリー説明文を中央揃え ===== */
.ck-photo-card figcaption{
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  font-weight:700;
  color:var(--ck-navy);
  letter-spacing:.03em;
}


/* ===== Image Lightbox ===== */
.ck-image-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.82);
}

.ck-image-lightbox.is-open{
  display:flex;
}

.ck-image-lightbox img{
  max-width:92vw;
  max-height:88vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:14px;
  background:#fff;
  box-shadow:0 24px 80px rgba(0,0,0,.45);
  cursor:zoom-out;
}

.ck-image-lightbox-close{
  position:fixed;
  top:18px;
  right:22px;
  z-index:10000;
  width:46px;
  height:46px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#0b3d77;
  font-size:34px;
  line-height:42px;
  font-weight:300;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
}

.ck-image-lightbox-close:hover{
  background:#fff;
}

body.ck-lightbox-open{
  overflow:hidden;
}

@media (max-width:575.98px){
  .ck-image-lightbox{
    padding:12px;
  }

  .ck-image-lightbox img{
    max-width:96vw;
    max-height:82vh;
    border-radius:10px;
  }

  .ck-image-lightbox-close{
    top:12px;
    right:12px;
    width:42px;
    height:42px;
    font-size:30px;
    line-height:38px;
  }
}

/* 20260730: お知らせ一覧の営業案内バッジ文字色 */
.ck-news-item .badge,
.ck-news-list .badge,
.ck-post-list .badge,
.posts-list .badge,
article .badge{
  color:#fff !important;
}
