:root{
  /* 信頼感のあるネイビー基調 */
  --accent:#1f5fbf;        /* 落ち着いた信頼のブルー */
  --accent-dark:#163f88;
  --ink:#1b2334;           /* 本文・濃ネイビーインク */
  --ink-soft:#56607a;
  --navy:#101a30;          /* 暗いセクション背景 */
  --navy-2:#0b1322;
  --bg:#f5f6f9;            /* クールなオフホワイト */
  --bg-card:#ffffff;
  --line:#e3e7ee;
  --max:1080px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Zen Kaku Gothic New",system-ui,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.02em;
}
img{display:block;width:100%;height:100%;object-fit:cover;}
a{color:inherit;text-decoration:none;}
.mincho{font-family:"Shippori Mincho",serif;}
/* 文節を語の途中で折り返さない（日本語の不自然な改行対策）。
   画面幅に応じて span 単位でのみ改行され、語の途中では切れない。 */
.nb{display:inline-block;}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* Header */
header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 22px;
  background:rgba(245,246,249,.85);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.logo{font-family:"Shippori Mincho",serif;font-weight:700;font-size:1.12rem;letter-spacing:.12em;}
.logo small{display:block;font-size:.58rem;letter-spacing:.28em;color:var(--ink-soft);font-family:"Zen Kaku Gothic New";font-weight:500;margin-top:2px;}
nav ul{display:flex;gap:24px;list-style:none;font-size:.82rem;letter-spacing:.08em;align-items:center;}
nav a{padding:4px 0;border-bottom:1px solid transparent;transition:border-color .2s;}
nav a:hover{border-color:var(--accent);}
nav a.active{border-color:var(--accent);color:var(--accent);font-weight:700;}
.nav-cta{padding:9px 20px !important;border-radius:40px;background:var(--accent);color:#fff;border:none !important;}
.nav-cta:hover{background:var(--accent-dark);}
.nav-cta.active{color:#fff !important;}
@media(max-width:860px){ nav ul li:not(.nav-cta-li){display:none;} }

/* Hero（トップページ用フルスクリーン） */
.hero{position:relative;height:100vh;min-height:580px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;}
.hero .hero-bg{position:absolute;inset:0;}
.hero .hero-bg img{filter:brightness(.42) saturate(.9);}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,19,34,.55),rgba(11,19,34,.7));z-index:1;}
.hero-inner{position:relative;z-index:2;padding:0 24px;max-width:880px;}
.hero-inner .tag{font-size:.78rem;letter-spacing:.38em;margin-bottom:24px;opacity:.92;}
.hero-inner h1{font-family:"Shippori Mincho",serif;font-weight:600;font-size:clamp(1.8rem,5vw,3.2rem);line-height:1.65;text-shadow:0 2px 24px rgba(0,0,0,.35);}
.hero-inner p{margin-top:26px;font-size:clamp(.86rem,2.3vw,1.02rem);line-height:2.1;text-shadow:0 1px 12px rgba(0,0,0,.4);opacity:.96;}
.hero-btns{margin-top:38px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.scroll{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:2;font-size:.6rem;letter-spacing:.3em;color:#fff;}
.scroll::after{content:"";display:block;width:1px;height:42px;background:#fff;margin:10px auto 0;opacity:.6;}
.hero-link{display:inline-block;margin-top:28px;font-size:.84rem;letter-spacing:.04em;color:#fff;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:3px;transition:border-color .2s,opacity .2s;}
.hero-link:hover{border-color:#fff;opacity:.85;}
@media(max-width:560px){
  .hero{min-height:620px;}
  .hero-inner{padding-top:76px;}
  .hero-inner .tag{letter-spacing:.06em !important;line-height:1.75;margin-bottom:20px;}
}

/* Page hero（下層ページ用・コンパクト） */
.page-hero{position:relative;background:var(--navy);color:#fff;padding:148px 22px 64px;text-align:center;overflow:hidden;}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 320px at 50% -10%,rgba(43,86,170,.45),transparent 70%);}
.page-hero .ph-inner{position:relative;z-index:1;max-width:860px;margin:0 auto;}
.page-hero .label{color:#7fb0ff;}
.page-hero h1{font-family:"Shippori Mincho",serif;font-weight:600;font-size:clamp(1.7rem,4.6vw,2.55rem);color:#fff;line-height:1.5;}
.page-hero p{margin-top:18px;color:#b7c0d4;font-size:clamp(.9rem,2.2vw,1rem);line-height:2;}
.breadcrumb{font-size:.74rem;letter-spacing:.08em;color:#8b95ac;margin-bottom:18px;}
.breadcrumb a:hover{color:#cdd5e4;}
.breadcrumb span{margin:0 8px;opacity:.6;}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:9px;padding:14px 32px;border-radius:40px;font-size:.9rem;letter-spacing:.06em;font-weight:500;transition:transform .2s,background .2s,border-color .2s;}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:var(--accent-dark);transform:translateY(-2px);}
.btn-line{background:#06c755;color:#fff;}
.btn-line:hover{background:#05a948;transform:translateY(-2px);}
.btn-ghost{border:1px solid rgba(255,255,255,.55);color:#fff;}
.btn-ghost:hover{border-color:#fff;transform:translateY(-2px);}
.btn-outline{border:1px solid var(--accent);color:var(--accent-dark);}
.btn-outline:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}

/* Section base */
section{padding:90px 22px;}
.wrap{max-width:var(--max);margin:0 auto;}
.label{font-size:.7rem;letter-spacing:.4em;color:var(--accent);margin-bottom:12px;font-weight:700;}
.heading{font-family:"Shippori Mincho",serif;font-weight:600;font-size:clamp(1.5rem,4vw,2.15rem);line-height:1.5;margin-bottom:8px;}
.section-head{text-align:center;margin-bottom:54px;}
.section-head p{font-size:.9rem;color:var(--ink-soft);margin-top:10px;}

/* Concept */
.concept{background:var(--bg-card);}
.concept .wrap{max-width:760px;text-align:center;}
.concept p{font-size:1rem;line-height:2.4;color:var(--ink-soft);}
.concept .lead{font-family:"Shippori Mincho",serif;font-size:clamp(1.18rem,3.2vw,1.55rem);color:var(--ink);line-height:2;margin-bottom:30px;}

/* Worries（こんなお悩み）*/
.worries{background:var(--bg-card);}
.worries .wrap{max-width:900px;}
.worry-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 34px;list-style:none;}
.worry-grid li{display:flex;gap:13px;align-items:flex-start;padding:15px 2px;border-bottom:1px solid var(--line);font-size:.93rem;color:var(--ink);line-height:1.8;}
.worry-grid li .ck{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.66rem;margin-top:4px;}
.worries .lead-after{text-align:center;margin-top:44px;font-family:"Shippori Mincho",serif;font-size:clamp(1.12rem,3.2vw,1.5rem);line-height:1.85;}
.worries .lead-after b{color:var(--accent-dark);}
@media(max-width:640px){ .worry-grid{grid-template-columns:1fr;} }

/* Services */
.services{background:var(--bg);}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.svc{background:var(--bg-card);border:1px solid var(--line);border-radius:6px;padding:38px 34px;transition:transform .25s,box-shadow .25s;overflow:hidden;}
.svc:hover{transform:translateY(-4px);box-shadow:0 16px 40px -22px rgba(16,26,48,.35);}
.svc .ico{width:46px;height:46px;color:var(--accent);margin-bottom:18px;}
.svc .ico svg{width:100%;height:100%;}
.svc .svc-thumb{aspect-ratio:16/10;overflow:hidden;margin:-38px -34px 22px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#1b2a4a,#2f4a82);}
.svc .svc-thumb img{transition:transform .6s ease;}
.svc:hover .svc-thumb img{transform:scale(1.05);}
.svc .num{font-size:.72rem;letter-spacing:.3em;color:var(--accent);font-weight:700;margin-bottom:6px;}
.svc h3{font-family:"Shippori Mincho",serif;font-size:1.2rem;margin-bottom:12px;}
.svc p{font-size:.88rem;color:var(--ink-soft);line-height:2;}
@media(max-width:720px){ .svc-grid{grid-template-columns:1fr;gap:16px;} .svc{padding:30px 26px;} .svc .svc-thumb{margin:-30px -26px 20px;} }

/* Reasons */
.reasons{background:var(--navy);color:#eef1f6;}
.reasons .label{color:#7fb0ff;}
.reasons .heading{color:#fff;}
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.reason{text-align:center;padding:0 8px;}
.reason .rno{font-family:"Shippori Mincho",serif;font-size:2.4rem;color:#5b8de0;line-height:1;margin-bottom:18px;}
.reason h3{font-size:1.08rem;margin-bottom:12px;color:#fff;}
.reason p{font-size:.85rem;color:#aeb8cc;line-height:2;}
@media(max-width:720px){ .reason-grid{grid-template-columns:1fr;gap:36px;} }

/* Merit（HP制作のメリット）*/
.merit{background:var(--navy);color:#eef1f6;}
.merit .label{color:#7fb0ff;}
.merit .heading{color:#fff;}
.merit .section-head p{color:#aeb8cc;}
.merit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:50px;}
.merit-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:32px 26px;}
.merit-card .mico{width:42px;height:42px;color:#7fb0ff;margin-bottom:16px;}
.merit-card .mico svg{width:100%;height:100%;}
.merit-card h3{font-size:1.06rem;color:#fff;margin-bottom:10px;}
.merit-card p{font-size:.85rem;color:#aeb8cc;line-height:1.95;}
.merit .cta-band{text-align:center;border-top:1px solid rgba(255,255,255,.12);padding-top:46px;}
.merit .cta-band .ct{font-family:"Shippori Mincho",serif;font-size:clamp(1.2rem,3.4vw,1.6rem);color:#fff;line-height:1.7;margin-bottom:24px;}
@media(max-width:820px){ .merit-grid{grid-template-columns:1fr;gap:16px;} }

/* Cases */
.cases{background:var(--bg-card);}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.case{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--bg-card);transition:transform .25s,box-shadow .25s;}
.case:hover{transform:translateY(-4px);box-shadow:0 16px 40px -22px rgba(16,26,48,.35);}
.case .thumb{aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#1b2a4a,#2f4a82);}
.case .thumb img{transition:transform .6s ease;}
.case:hover .thumb img{transform:scale(1.06);}
.case .body{padding:22px 22px 26px;}
.case .cat{display:inline-block;font-size:.68rem;letter-spacing:.12em;color:var(--accent);border:1px solid var(--line);border-radius:30px;padding:3px 12px;margin-bottom:12px;}
.case h3{font-size:1.02rem;line-height:1.6;margin-bottom:8px;}
.case p{font-size:.82rem;color:var(--ink-soft);line-height:1.9;}
@media(max-width:860px){ .case-grid{grid-template-columns:1fr;} }
.admin-note{margin-top:30px;text-align:center;font-size:.76rem;color:var(--ink-soft);}

/* News */
.news{background:var(--bg);}
.news .wrap{max-width:780px;}
.news-list{list-style:none;}
.news-list li{display:flex;gap:22px;align-items:baseline;padding:20px 4px;border-bottom:1px solid var(--line);}
.news-list li:first-child{border-top:1px solid var(--line);}
.news-list time{flex:0 0 auto;font-size:.8rem;color:var(--ink-soft);letter-spacing:.06em;width:96px;}
.news-list .ncat{flex:0 0 auto;font-size:.66rem;letter-spacing:.1em;background:var(--accent);color:#fff;border-radius:3px;padding:2px 10px;align-self:center;}
.news-list .ntitle{font-size:.92rem;}
.news-list a:hover .ntitle{color:var(--accent);}
@media(max-width:560px){ .news-list li{flex-wrap:wrap;gap:8px 14px;} .news-list .ntitle{flex-basis:100%;} }

/* Flow */
.flow{background:var(--bg-card);}
.flow-list{max-width:740px;margin:0 auto;display:flex;flex-direction:column;}
.step{display:flex;gap:22px;padding:26px 0;border-bottom:1px dashed var(--line);}
.step:last-child{border-bottom:none;}
.step .step-no{flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.step .step-no small{font-size:.5rem;letter-spacing:.12em;opacity:.85;}
.step .step-no b{font-family:"Shippori Mincho",serif;font-size:1.2rem;font-weight:600;}
.step h3{font-size:1.05rem;margin-bottom:4px;}
.step p{font-size:.86rem;color:var(--ink-soft);}

/* FAQ */
.faq{background:var(--bg);}
.faq .wrap{max-width:780px;}
.faq details{background:var(--bg-card);border:1px solid var(--line);border-radius:6px;margin-bottom:12px;overflow:hidden;}
.faq summary{list-style:none;cursor:pointer;padding:20px 56px 20px 22px;position:relative;font-weight:500;font-size:.95rem;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q";font-family:"Shippori Mincho",serif;color:var(--accent);font-weight:700;margin-right:12px;}
.faq summary::after{content:"";position:absolute;right:24px;top:50%;width:10px;height:10px;border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);transform:translateY(-70%) rotate(45deg);transition:transform .25s;}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.faq .ans{padding:0 22px 22px 22px;font-size:.86rem;color:var(--ink-soft);line-height:2;}
.faq .ans::before{content:"A";font-family:"Shippori Mincho",serif;color:var(--ink);font-weight:700;margin-right:12px;}

/* Company */
.company{background:var(--bg-card);}
.company .wrap{max-width:760px;}
table{width:100%;border-collapse:collapse;}
th,td{text-align:left;padding:18px 6px;border-bottom:1px solid var(--line);font-size:.92rem;vertical-align:top;}
th{width:32%;font-weight:700;color:var(--ink);white-space:nowrap;}
td{color:var(--ink-soft);}
td a{color:var(--accent-dark);border-bottom:1px solid var(--accent);}

/* Contact form */
.contact{background:var(--navy);color:#eef1f6;}
.contact .label{color:#7fb0ff;}
.contact .heading{color:#fff;}
.contact .lead{text-align:center;color:#aeb8cc;font-size:.92rem;margin-bottom:46px;}
.form{max-width:680px;margin:0 auto;}
.form .row{margin-bottom:20px;}
.form label{display:block;font-size:.82rem;margin-bottom:8px;color:#d3dae8;}
.form label .req{color:#ff8a8a;font-size:.7rem;margin-left:8px;letter-spacing:.08em;}
.form input,.form textarea{
  width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);
  border-radius:6px;padding:13px 15px;color:#fff;font-family:inherit;font-size:.92rem;transition:border-color .2s,background .2s;
}
.form input::placeholder,.form textarea::placeholder{color:#79839a;}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent);background:rgba(255,255,255,.1);}
.form textarea{resize:vertical;min-height:140px;}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:560px){ .form .two{grid-template-columns:1fr;} }
.form .submit{text-align:center;margin-top:32px;}
.form .privacy{text-align:center;font-size:.74rem;color:#8b95ac;margin-top:18px;}
.form .privacy a{color:#aeb8cc;border-bottom:1px solid #586480;}

/* LINE */
.line-sec{background:var(--bg);text-align:center;}
.line-box{max-width:760px;margin:0 auto;background:var(--bg-card);border:1px solid var(--line);border-radius:10px;padding:48px 32px;display:flex;gap:40px;align-items:center;justify-content:center;flex-wrap:wrap;}
.line-box .qr{width:150px;height:150px;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--ink-soft);text-align:center;background:#fafbfd;padding:10px;line-height:1.6;}
.line-box .qr img{object-fit:contain;}
.line-text{text-align:left;max-width:330px;}
.line-text h3{font-family:"Shippori Mincho",serif;font-size:1.3rem;margin-bottom:12px;}
.line-text p{font-size:.86rem;color:var(--ink-soft);line-height:2;margin-bottom:20px;}
@media(max-width:560px){ .line-box{flex-direction:column;gap:26px;padding:36px 24px;} .line-text{text-align:center;} }

/* Section CTA（ページ間の誘導バンド）*/
.cta-final{background:var(--accent);color:#fff;text-align:center;}
.cta-final .heading{color:#fff;}
.cta-final p{color:rgba(255,255,255,.9);font-size:.95rem;margin:14px auto 30px;max-width:560px;}
.cta-final .btn-primary{background:#fff;color:var(--accent-dark);}
.cta-final .btn-primary:hover{background:#eef2fb;}
.cta-final .btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* Overview cards（トップのページ案内）*/
.nav-cards{background:var(--bg);}
.nc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.nc{display:block;background:var(--bg-card);border:1px solid var(--line);border-radius:8px;padding:32px 28px;transition:transform .25s,box-shadow .25s;}
.nc:hover{transform:translateY(-4px);box-shadow:0 16px 40px -22px rgba(16,26,48,.35);}
.nc .nc-en{font-size:.66rem;letter-spacing:.3em;color:var(--accent);font-weight:700;}
.nc h3{font-family:"Shippori Mincho",serif;font-size:1.18rem;margin:8px 0 10px;}
.nc p{font-size:.85rem;color:var(--ink-soft);line-height:1.95;}
.nc .nc-more{display:inline-block;margin-top:16px;font-size:.8rem;color:var(--accent-dark);border-bottom:1px solid var(--accent);}
@media(max-width:820px){ .nc-grid{grid-template-columns:1fr;} }

/* Floating LINE button */
.float-line{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;align-items:center;gap:9px;background:#06c755;color:#fff;padding:13px 20px;border-radius:40px;font-size:.86rem;font-weight:700;box-shadow:0 10px 30px -8px rgba(6,199,85,.6);transition:transform .2s;}
.float-line:hover{transform:translateY(-3px);}
.float-line svg{width:20px;height:20px;}
@media(max-width:560px){ .float-line span{display:none;} .float-line{padding:15px;border-radius:50%;} }

footer{background:var(--navy-2);color:#7d879c;text-align:center;padding:38px 22px;font-size:.74rem;letter-spacing:.08em;}
footer .logo{color:#cdd5e4;margin-bottom:10px;}
footer .fnav{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-bottom:16px;font-size:.78rem;}
footer .fnav a:hover{color:#cdd5e4;}

/* ===== WordPress化で追加：記事本文・ページネーション ===== */
.article-body{max-width:780px;}
.entry{font-size:.96rem;line-height:2.05;color:var(--ink);}
.entry > *{margin-bottom:1.2em;}
.entry h2{font-family:"Shippori Mincho",serif;font-size:1.35rem;margin:1.6em 0 .6em;padding-bottom:.3em;border-bottom:1px solid var(--line);}
.entry h3{font-size:1.12rem;margin:1.4em 0 .5em;}
.entry a{color:var(--accent-dark);border-bottom:1px solid var(--accent);}
.entry ul,.entry ol{padding-left:1.4em;}
.entry li{margin-bottom:.4em;}
.entry img{border-radius:6px;height:auto;}
.entry blockquote{border-left:3px solid var(--accent);padding:.4em 0 .4em 1.2em;color:var(--ink-soft);background:var(--bg);}

.pagination,.posts-navigation,.nav-links{margin-top:48px;text-align:center;}
.pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg-card);color:var(--ink);font-size:.9rem;}
.pagination .page-numbers.current{background:var(--accent);color:#fff;border-color:var(--accent);}
.pagination a.page-numbers:hover{border-color:var(--accent);color:var(--accent);}
