:root{
  --navy:#0d2a52;
  --navy-dark:#081a35;
  --navy-light:#1e4380;
  --brand-blue:#1668c5;
  --accent:#1668c5;
}
html,body{font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;color:#2a2f36;-webkit-font-smoothing:antialiased;}
a{color:var(--navy-light);}
a:hover{color:var(--navy);}

/* ---- Utility / Brand ---- */
.text-navy{color:var(--navy)!important;}
.bg-navy{background-color:var(--navy)!important;}
.bg-dark-navy{background-color:var(--navy-dark)!important;}
.btn-navy{background-color:var(--navy);color:#fff;border:1px solid var(--navy);}
.btn-navy:hover,.btn-navy:focus{background-color:var(--navy-dark);color:#fff;border-color:var(--navy-dark);}
.btn-outline-navy{color:var(--navy);border-color:var(--navy);}
.btn-outline-navy:hover{background-color:var(--navy);color:#fff;}

.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:6px;background:var(--navy);color:#fff;font-weight:700;letter-spacing:.05em;font-size:1rem;}
.brand-logo{height:44px;width:auto;display:block;}
.brand-logo--footer{height:48px;width:auto;background:#fff;padding:6px 10px;border-radius:4px;}

/* ---- Section / Heading ---- */
.section{padding:5rem 0;}
.section-sm{padding:3rem 0;}
.section-title{position:relative;font-weight:700;color:var(--navy);margin-bottom:.75rem;}
.section-title-en{display:block;font-size:.75rem;letter-spacing:.25em;color:var(--accent);font-weight:500;margin-bottom:.5rem;}
.section-lead{color:#6b7280;margin-bottom:3rem;}

/* ---- Hero ---- */
.hero{position:relative;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%);color:#fff;overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 20%,rgba(255,255,255,.08) 0,transparent 40%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.06) 0,transparent 40%);z-index:0;}
.hero .container{position:relative;}
.hero h1{font-weight:700;line-height:1.4;}
.hero .hero-en{letter-spacing:.25em;font-size:.8rem;opacity:.7;}

/* デスクトップ: 右側絶対配置パネル */
.hero-content{position:relative;z-index:3;padding-top:3rem;padding-bottom:4rem;}
.hero-img-panel{position:absolute;top:0;right:0;bottom:0;left:40%;z-index:1;overflow:hidden;}
.hero-img-panel .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s ease-in-out;}
.hero-img-panel .hero-slide.active{opacity:1;}
/* 左側ネイビーグラデオーバーレイ */
.hero-img-overlay{position:absolute;inset:0;z-index:2;background:linear-gradient(to right, var(--navy) 0%, rgba(13,42,82,.85) 25%, rgba(13,42,82,.4) 55%, transparent 80%);pointer-events:none;}

/* モバイル: 上部200px帯 */
.hero-strip{position:relative;width:100%;height:200px;overflow:hidden;}
.hero-strip .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s ease-in-out;}
.hero-strip .hero-slide.active{opacity:1;}

/* ---- Page header (sub pages) ---- */
.page-hero{position:relative;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%);color:#fff;overflow:hidden;}
.page-hero h1{font-weight:700;margin-bottom:.25rem;}
.page-hero .en{letter-spacing:.25em;font-size:.75rem;opacity:.7;}
/* デスクトップ: 右側絶対配置パネル(静止画1枚) */
.page-hero-img-panel{position:absolute;top:0;right:0;bottom:0;left:40%;z-index:1;overflow:hidden;}
.page-hero-img-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-hero-content{position:relative;z-index:3;padding-top:3.5rem;padding-bottom:3.5rem;}
/* モバイル: 上部200px帯 */
.page-hero-strip{position:relative;width:100%;height:200px;overflow:hidden;}
.page-hero-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* ---- Cards ---- */
.feature-card{border:1px solid #e5e7eb;border-radius:8px;padding:2rem 1.5rem;height:100%;background:#fff;transition:.25s;}
.feature-card:hover{border-color:var(--navy);box-shadow:0 6px 20px rgba(13,42,82,.08);transform:translateY(-2px);}
.feature-card .icon{width:56px;height:56px;border-radius:50%;background:#eef3fb;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1rem;}
.feature-card h3{font-size:1.05rem;font-weight:700;color:var(--navy);margin-bottom:.5rem;}
.feature-card p{font-size:.9rem;color:#6b7280;margin-bottom:0;}

.work-card{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;background:#fff;height:100%;}
.work-card .ratio{background:#f3f4f6;}
.work-card .body{padding:1rem 1.25rem;}
.work-card h3{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:.25rem;}
.work-card .meta{font-size:.75rem;color:#9ca3af;}

/* ---- Info table ---- */
.info-table{width:100%;border-collapse:collapse;}
.info-table th,.info-table td{padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb;vertical-align:top;font-size:.95rem;}
.info-table th{width:30%;background:#f8fafc;color:var(--navy);font-weight:600;text-align:left;}
@media (max-width: 575.98px){
  .info-table th,.info-table td{display:block;width:100%;}
  .info-table th{border-bottom:none;}
}

/* ---- Navbar ---- */
.site-header .navbar-nav .nav-link{color:#2a2f36;font-weight:500;font-size:.92rem;padding-left:1rem;padding-right:1rem;}
.site-header .navbar-nav .nav-link:hover,.site-header .navbar-nav .nav-link.active{color:var(--navy);}

/* ---- Footer ---- */
.site-footer{
  position:relative;
  background:var(--navy-dark);
  overflow:hidden;
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url('../images/footerbackground.webp');
  background-size:cover;
  background-position:center;
  opacity:.2;
  z-index:0;
  pointer-events:none;
}
.site-footer > *{position:relative;z-index:1;}
.site-footer a:hover{color:#fff !important;}

/* ---- Hero Slider (removed old standalone styles) ---- */

/* ---- Section Divider Image ---- */
.section-divider-img{width:100%;overflow:hidden;line-height:0;max-height:320px;}
.section-divider-img img{width:100%;height:100%;object-fit:cover;display:block;max-height:320px;}
.noimg{background:#f3f4f6;display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.noimg img{max-width:60%;max-height:60%;opacity:.6;}

/* ---- Contact Form 7 ---- */
/* プライバシーポリシー同意チェックボックス */
.wpcf7-acceptance .wpcf7-list-item{display:inline-flex;align-items:center;gap:.6rem;vertical-align:middle;}
.wpcf7-acceptance input[type="checkbox"]{width:25px;height:25px;min-width:25px;cursor:pointer;accent-color:var(--navy);flex-shrink:0;vertical-align:middle;margin-right:10px;}
.wpcf7-acceptance .wpcf7-list-item-label{font-size:.95rem;line-height:1.5;display:inline;}
