/*
Theme Name: CES LAGNAX
Theme URI: https://www.king-spade.com/
Author: Codex
Description: CESのWordPress用テーマ。LAGNAXを軸とした6ページ構成。
Version: 1.0.0
Text Domain: ces-lagnax
*/

:root{
  --navy:#0d1b3d;
  --blue:#073f79;
  --ice:#f3f7fb;
  --line:#d8e0e9;
  --ink:#10264c;
  --muted:#637086;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  background:#fff;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
p{line-height:1.9;margin:0 0 1rem}
h1,h2,h3,h4{letter-spacing:.04em;line-height:1.25;margin:0 0 .75rem}
.site-header{
  min-height:70px;
  padding:0 4vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:sticky;
  top:0;
  background:#fffc;
  backdrop-filter:blur(15px);
  z-index:99;
  border-bottom:1px solid #edf1f5;
}
.ces-logo{
  font-size:2rem;
  font-weight:900;
  color:var(--blue);
  background:none;
  border:0;
  padding:0;
  cursor:pointer;
}
.site-header nav{
  display:flex;
  gap:2rem;
  align-items:center;
}
.site-header nav a{
  font-size:.82rem;
  font-weight:700;
  display:flex;
  align-items:center;
  height:70px;
  border-bottom:2px solid transparent;
}
.site-header nav a.current_page_item,
.site-header nav a:hover{
  border-color:var(--blue);
}
.menu-button{
  display:none;
  border:0;
  background:none;
  font-size:1.5rem;
  cursor:pointer;
}
.site-main{display:block}
.section-shell,
.section{
  width:min(1200px,88vw);
  margin:auto;
  padding:5rem 0;
}
.eyebrow,
.breadcrumb,
.section-heading > p{
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.18em;
  color:var(--blue);
  text-transform:uppercase;
}
.home-hero{
  min-height:760px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#f8fbff,#edf4fb);
}
.home-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 16% 18%,rgba(255,255,255,.92),rgba(255,255,255,.72) 24%,transparent 46%),
    linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.72) 30%,rgba(255,255,255,.16) 54%,rgba(255,255,255,.02) 100%);
  pointer-events:none;
  z-index:1;
}
.home-hero-image{
  position:absolute;
  inset:0;
  margin:0;
  display:flex;
  justify-content:center;
  align-items:center;
}
.home-hero-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.home-hero-copy{
  position:relative;
  z-index:2;
  width:min(760px,82vw);
  padding:4.2rem 0 3rem 6vw;
}
.home-hero h1{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(3.6rem,5.9vw,6.4rem);
  line-height:1.05;
  margin:.2rem 0 .8rem;
  letter-spacing:.02em;
  text-shadow:0 1px 0 rgba(255,255,255,.6);
}
.home-hero h1 span{display:block}
.home-lead{
  max-width:680px;
  font-size:1rem;
  font-weight:700;
  color:#142a57;
}
.home-lead span{
  display:block;
  margin-top:.7rem;
  font-weight:500;
  color:#4d5e7d;
}
.button-row,
.buttons{
  display:flex;
  gap:1rem;
  margin-top:2rem;
  flex-wrap:wrap;
}
.button,
.wp-block-button__link,
.site-main button[type="submit"]{
  background:var(--blue);
  color:white;
  padding:1rem 1.4rem;
  display:inline-block;
  font-weight:700;
  border:0;
  cursor:pointer;
}
.button.outline{
  background:white;
  color:var(--blue);
  border:1px solid var(--blue);
}
.button.light{
  background:white;
  color:var(--blue);
}
.home-band,
.brand,
.cta{
  width:min(1200px,88vw);
  margin:auto;
  padding:3rem;
  color:white;
  background:linear-gradient(115deg,#071c3e,#073d6b);
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:3rem;
  align-items:center;
}
.home-band{
  border-radius:20px;
  box-shadow:0 24px 70px #06173433;
  margin-top:-3.2rem;
  position:relative;
  z-index:3;
}
.home-band small{letter-spacing:.18em;color:#aab9db;font-weight:800}
.home-band h2{margin:.2rem 0;font-size:2rem}
.home-band p{margin:0;color:#d8e3f4}
.brand.compact{grid-template-columns:1fr 1fr;margin-bottom:4rem}
.mark{display:flex;align-items:center;gap:1rem}
.mark img{
  display:block;
  width:min(220px,100%);
  height:auto;
}
.section-heading{max-width:820px;margin:0 auto 3rem;text-align:center}
.section-heading.left{text-align:left;margin-left:0}
.section-heading h2{font-size:clamp(1.8rem,3vw,2.8rem)}
.section-heading p:last-child{color:var(--muted)}
.cards,
.features{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
.cards article,
.features article{
  padding:2rem;
  border:1px solid var(--line);
  min-height:190px;
  background:white;
}
.cards b{
  font:2rem "Yu Mincho",serif;
  color:var(--blue);
}
.cards p,
.features p,
.business-list p,
.field-grid h3 + p,
.policy p,
.message-body p,
.contact p,
.profile dd{
  color:var(--muted);
}
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.4rem;
}
.split article{
  padding:2.5rem;
  background:var(--ice);
  border-top:3px solid var(--blue);
}
.split a{color:var(--blue);font-weight:800}
.page-hero{
  min-height:310px;
  padding:4rem 7vw;
  background:linear-gradient(100deg,#fff,#eaf6fc);
}
.page-hero h1{
  font:clamp(3rem,5vw,5rem) "Yu Mincho","Hiragino Mincho ProN",serif;
  margin:.4rem 0;
}
.page-hero h2{font:1.3rem "Yu Mincho","Hiragino Mincho ProN",serif}
.business-list{
  border-top:2px solid var(--navy);
}
.business-list article{
  display:grid;
  grid-template-columns:140px 1fr;
  align-items:center;
  padding:2rem;
  border-bottom:1px solid var(--line);
}
.business-list b{
  font:3rem "Yu Mincho",serif;
  color:var(--blue);
}
.lagnax-hero{
  padding:6rem 7vw;
  color:white;
  background:radial-gradient(circle at 80% 20%,#1b668b,transparent 30%),var(--navy);
}
.lagnax-hero h1{
  font:clamp(2.5rem,5vw,5rem) "Yu Mincho","Hiragino Mincho ProN",serif;
  margin:2rem 0 .4rem;
}
.lagnax-hero h2{font-size:1.7rem}
.lagnax-hero p:last-child{max-width:700px}
.master-badge{margin-top:1.2rem}
.master-badge img{display:block;width:min(360px,100%);height:auto}
.page-image{margin:0}
.page-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:18px;
}
.shadow img{box-shadow:0 28px 60px #183f5d2e}
.pale{
  width:100%;
  padding-left:6vw;
  padding-right:6vw;
  background:var(--ice);
}
.field-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:.8rem;
}
.field-grid article{
  background:white;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(9,22,61,.08);
  border:1px solid rgba(13,27,61,.08);
}
.field-grid figure{margin:0;height:122px}
.field-grid img{display:block;width:100%;height:100%;object-fit:cover}
.field-grid article > div{padding:.8rem .8rem .95rem}
.field-grid span{
  display:block;
  font:700 1.5rem/1 "Yu Gothic",sans-serif;
  color:var(--blue);
  margin-bottom:.35rem;
}
.field-grid h3{margin:0;font-size:.98rem;line-height:1.35}
.steps{
  list-style:none;
  padding:0;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1.5rem;
}
.steps li{text-align:center}
.steps span{
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  margin:0 auto 1rem;
  background:var(--navy);
  color:white;
}
.note{
  text-align:center;
  background:var(--ice);
  padding:1rem;
}
.evaluation{
  padding:4rem 8vw;
  background:var(--navy);
  color:white;
}
.evaluation p{max-width:780px}
.profile{
  border-top:2px solid var(--navy);
}
.profile div{
  display:grid;
  grid-template-columns:220px 1fr;
  border-bottom:1px solid var(--line);
}
.profile dt,
.profile dd{
  padding:1.5rem;
  margin:0;
}
.profile dt{
  font-weight:800;
  background:var(--ice);
}
.profile dd{line-height:1.8}
.message{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:5rem;
  border-top:1px solid var(--line);
}
.message > div:last-child p{
  line-height:2.2;
  color:#334760;
}
.signature{
  text-align:right;
  margin-top:3rem;
}
.signature strong{
  font:1.8rem "Yu Mincho","Hiragino Mincho ProN",serif;
}
.contact{
  display:grid;
  grid-template-columns:.7fr 1fr;
  gap:5rem;
}
.contact aside{
  padding:1.5rem;
  background:var(--ice);
  border-left:4px solid var(--blue);
}
.mail-link{margin-top:1rem}
.mail-link a{
  font-weight:800;
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:.18em;
}
.contact form,
form{
  padding:2rem;
  background:var(--ice);
  display:grid;
  gap:1.2rem;
}
form label{
  display:grid;
  gap:.5rem;
  font-weight:700;
}
input,select,textarea{
  width:100%;
  padding:.9rem;
  border:1px solid #c7d2dc;
  background:white;
  font:inherit;
}
.consent{
  display:flex;
  align-items:center;
  gap:.6rem;
}
.consent input{width:auto}
.form-note{
  font-size:.78rem;
  color:var(--muted);
}
.policy{
  max-width:900px;
}
.policy > p:first-child{
  padding:1.2rem;
  background:var(--ice);
  border-left:4px solid var(--blue);
}
.policy h2{margin-top:2.5rem}
.date{text-align:right}
footer{
  padding:4rem 6vw 2rem;
  background:#07152e;
  color:white;
}
.footer-brand{
  display:flex;
  align-items:baseline;
  gap:1rem;
  border-bottom:1px solid #ffffff33;
  padding-bottom:2rem;
}
.footer-brand strong{font-size:2rem}
.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  margin:2rem 0;
  font-size:.8rem;
}
.footer-nav a,
.footer-nav button{
  background:none;
  border:0;
  color:inherit;
  padding:0;
  font:inherit;
  cursor:pointer;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:#8494aa;
  font-size:.9rem;
}
.btn-wrap{margin-top:2rem}
@media(max-width:900px){
  .site-header nav{
    display:none;
    position:absolute;
    top:70px;
    left:0;
    right:0;
    height:auto;
    background:white;
    padding:1rem 4vw;
  }
  .site-header nav.open{display:grid}
  .menu-button{display:block}
  .home-band,
  .brand,
  .contact,
  .message{
    grid-template-columns:1fr;
  }
  .home-hero{min-height:620px}
  .home-hero-copy{padding:3.8rem 6vw 2.4rem}
  .cards,
  .features{
    grid-template-columns:1fr;
  }
  .field-grid{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:1fr}
  .brand.compact{grid-template-columns:1fr}
  .profile div{grid-template-columns:1fr}
  .profile dt,
  .profile dd{padding:1rem}
  .footer-bottom{flex-direction:column}
}
@media(max-width:600px){
  .home-hero{min-height:560px}
  .home-hero h1{font-size:2.8rem}
  .home-hero-copy{padding:3.4rem 6vw 2.1rem}
  .home-band{padding:1.5rem}
  .buttons,
  .button-row{
    display:grid;
    grid-template-columns:1fr;
  }
  .button,
  .wp-block-button__link,
  .site-main button[type="submit"]{
    width:100%;
  }
  .section,
  .section-shell{
    padding:3.5rem 0;
  }
  .field-grid{grid-template-columns:1fr 1fr}
  .business-list article{grid-template-columns:1fr}
  .page-hero{min-height:260px}
}
