
:root{
  --cream:#f8f5ed;
  --paper:#fcfaf5;
  --white:#ffffff;
  --ink:#2d322e;
  --muted:#747970;
  --green:#657d46;
  --green-dark:#3f5230;
  --sage:#e9eee1;
  --coral:#e98276;
  --yellow:#e6bf47;
  --line:#d9ddd2;
  --dark:#293129;
  --max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  line-height:1.85;letter-spacing:.02em
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
.shell{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.section{padding:108px 0}
.kicker{
  font-family:Inter,sans-serif;font-size:.68rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--green)
}
.display{
  margin:14px 0 24px;font-size:clamp(2.8rem,5.2vw,5.35rem);
  line-height:1.28;letter-spacing:-.01em;font-weight:500
}
.section-title{
  margin:12px 0 18px;font-size:clamp(2rem,3.5vw,3.45rem);
  line-height:1.42;font-weight:500;letter-spacing:.005em
}
.section-lead{max-width:720px;margin:0;color:var(--muted);font-size:.98rem}
.text-link{display:inline-block;color:var(--green-dark);font-weight:700;font-size:.84rem}
.cta{
  display:inline-flex;align-items:center;justify-content:center;min-height:50px;
  padding:0 24px;border:1px solid var(--green);border-radius:999px;
  background:var(--green);color:#fff;font-weight:700
}
.cta.alt{background:transparent;color:var(--green-dark);border-color:#98a78d}

/* header */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(252,250,245,.94);
  backdrop-filter:blur(16px);border-bottom:1px solid var(--line)
}
.header-inner{height:82px;display:flex;align-items:center;gap:30px}
.brand{width:228px;flex:0 0 auto}.brand img{width:228px}
.desktop-nav{display:flex;align-items:center;gap:24px;margin-left:auto}
.desktop-nav a{position:relative;padding:29px 0;font-size:.76rem;font-weight:700}
.desktop-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:20px;height:1px;
  background:var(--green);transform:scaleX(0);transform-origin:left;transition:.2s
}
.desktop-nav a:hover::after,.desktop-nav a.active::after{transform:scaleX(1)}
.header-contact{
  padding:9px 17px;border:1px solid var(--green);border-radius:999px;
  color:var(--green-dark);font-size:.76rem;font-weight:700
}
.menu-btn,.mobile-nav{display:none}

/* editorial hero */
.hero{
  min-height:690px;background:var(--cream);
  border-bottom:1px solid var(--line);position:relative
}
.hero-inner{
  min-height:690px;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,46%);
  gap:58px;align-items:center;padding-top:68px;padding-bottom:54px
}
.hero-copy{align-self:center;max-width:850px}
.hero .display span{display:block}
.hero-lead{max-width:650px;margin:0 0 30px;color:#5f655f}
.hero-visual{margin:0;align-self:center}
.hero-visual img{
  width:100%;aspect-ratio:1.05/1;object-fit:cover;border-radius:28px;
  border:1px solid rgba(45,50,46,.09);box-shadow:0 28px 70px rgba(45,50,46,.08)
}
.hero-visual figcaption{
  margin-top:14px;padding-top:14px;border-top:1px solid rgba(45,50,46,.14);
  font-size:.8rem;line-height:1.8;color:var(--muted)
}
.hero-mark{
  position:absolute;right:5.5%;top:118px;width:42px;height:42px
}
.hero-mark::before,.hero-mark::after{
  content:"";position:absolute;background:var(--coral);border-radius:999px
}
.hero-mark::before{width:6px;height:28px;left:18px;top:0}
.hero-mark::after{width:28px;height:6px;left:7px;top:18px;background:var(--yellow)}

/* manifesto */
.manifesto{background:#fff}
.manifesto-grid{
  display:grid;grid-template-columns:170px minmax(0,1fr);gap:58px;
  border-top:1px solid var(--ink);padding-top:34px
}
.manifesto-index{
  font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.14em;color:var(--muted)
}
.manifesto-copy{
  max-width:840px;font-size:clamp(1.45rem,2.5vw,2.45rem);
  line-height:1.7;font-weight:500
}
.manifesto-copy em{font-style:normal;color:var(--coral)}

/* editorial service rows */
.section-head{
  display:grid;grid-template-columns:170px minmax(0,1fr);gap:58px;
  margin-bottom:48px
}
.section-head-main{max-width:760px}
.service-list{border-top:1px solid var(--ink)}
.service-row{
  display:grid;grid-template-columns:90px minmax(220px,1fr) 1.4fr 120px;
  gap:28px;align-items:start;padding:34px 0;border-bottom:1px solid var(--line);
  transition:padding-left .2s
}
.service-row:hover{padding-left:8px}
.service-no{font-family:Inter,sans-serif;font-size:.72rem;letter-spacing:.12em;color:var(--muted)}
.service-row h3{margin:0;font-size:1.32rem;font-weight:500}
.service-row p{margin:0;color:var(--muted);font-size:.9rem}
.service-row .text-link{justify-self:end}


/* editorial imagery */
.image-ribbon-section{padding:0 0 94px;background:#fff}
.image-ribbon{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px
}
.image-ribbon figure{margin:0}
.image-ribbon img{
  width:100%;aspect-ratio:1.1/1;object-fit:cover;border-radius:22px;
  border:1px solid rgba(45,50,46,.08)
}

.media-card{margin:0}
.media-card img{
  width:100%;display:block;border-radius:24px;object-fit:cover;
  border:1px solid rgba(45,50,46,.08)
}
.media-card figcaption{
  margin-top:12px;font-size:.8rem;line-height:1.8;color:var(--muted)
}
.media-wide img{aspect-ratio:1.25/1}
.visual-essay-grid{
  display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:44px;align-items:end
}
.visual-essay-note{
  border-top:1px solid var(--ink);padding-top:14px
}
.visual-essay-note p{margin:18px 0 0;color:var(--muted);font-size:.9rem}

/* subsidy feature */
.subsidy-home{background:var(--sage)}
.subsidy-home .section-head{margin-bottom:60px}
.subsidy-home .section-title{max-width:620px}
.process-line{
  display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--green-dark)
}
.process-step{
  min-height:142px;padding:18px 14px 0 0;border-right:1px solid rgba(63,82,48,.16)
}
.process-step:last-child{border-right:0}
.process-step span{display:block;font-family:Inter,sans-serif;font-size:.62rem;color:var(--muted);margin-bottom:22px}
.process-step strong{font-size:.92rem;font-weight:500}
.process-step.after strong{color:var(--green-dark)}
.process-note{
  display:flex;justify-content:space-between;gap:30px;align-items:end;
  margin-top:38px;padding-top:24px;border-top:1px solid rgba(63,82,48,.22)
}
.process-note p{max-width:760px;margin:0;color:#586151}

/* research home */
.research-home{background:var(--dark);color:#fff}
.research-home .kicker{color:#b7c8a9}
.research-home .section-head{border-color:rgba(255,255,255,.8)}
.research-home .section-lead{color:#c7cec5}
.research-theme-list{border-top:1px solid rgba(255,255,255,.72)}
.research-theme{
  display:grid;grid-template-columns:100px minmax(0,1fr) 1fr;
  gap:28px;padding:35px 0;border-bottom:1px solid rgba(255,255,255,.14)
}
.research-theme .no{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.13em;color:#9dab9c}
.research-theme h3{margin:0;font-size:1.32rem;font-weight:500;line-height:1.6}
.research-theme p{margin:0;color:#bcc5bb;font-size:.88rem}
.research-home .text-link{color:#d9e4d4}

/* journal list */
.journal-list{border-top:1px solid var(--ink)}
.journal-row{
  display:grid;grid-template-columns:130px 150px minmax(0,1fr) 40px;
  gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)
}
.journal-row time,.journal-row .cat{font-size:.72rem;color:var(--muted)}
.journal-row h3{margin:0;font-size:1.05rem;font-weight:500;line-height:1.6}
.journal-row .arrow{font-family:Inter,sans-serif;color:var(--green);justify-self:end}

/* contact strip */
.contact-strip{padding:70px 0;background:var(--cream);border-top:1px solid var(--line)}
.contact-inner{
  display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end
}
.contact-inner h2{margin:0 0 8px;font-size:clamp(1.8rem,3vw,3rem);font-weight:500}
.contact-inner p{margin:0;color:var(--muted)}

/* subpage hero */
.page-hero{padding:92px 0 72px;background:var(--cream);border-bottom:1px solid var(--line)}
.page-hero-grid{display:grid;grid-template-columns:170px minmax(0,1fr);gap:58px}
.page-hero h1{margin:8px 0 16px;font-size:clamp(2.6rem,5vw,5rem);font-weight:500;line-height:1.32}
.page-hero p{max-width:760px;margin:0;color:var(--muted)}
.page-index{font-family:Inter,sans-serif;font-size:.68rem;letter-spacing:.14em;color:var(--muted);padding-top:12px}

/* subsidy detailed */
.subsidy-intro{
  display:grid;grid-template-columns:1fr .95fr;gap:64px;padding-bottom:70px;border-bottom:1px solid var(--line);
  align-items:end
}
.subsidy-intro h2{margin:0 0 18px;font-size:clamp(1.8rem,3vw,3rem);font-weight:500;line-height:1.55}
.subsidy-intro p{margin:0;color:var(--muted)}
.subsidy-intro .media-card img{aspect-ratio:1.08/1}
.timeline{margin-top:65px;border-top:1px solid var(--ink)}
.timeline-row{
  display:grid;grid-template-columns:90px 200px minmax(0,1fr);
  gap:28px;padding:28px 0;border-bottom:1px solid var(--line)
}
.timeline-row .phase{font-family:Inter,sans-serif;font-size:.68rem;color:var(--muted)}
.timeline-row h3{margin:0;font-size:1.08rem;font-weight:500}
.timeline-row p{margin:0;color:var(--muted);font-size:.88rem}
.timeline-row.highlight{background:linear-gradient(90deg,transparent 0,transparent 7%,rgba(233,238,225,.7) 7%,rgba(233,238,225,.7) 100%)}
.fee-table{width:100%;border-collapse:collapse;margin-top:30px}
.fee-table th,.fee-table td{padding:20px 10px;border-bottom:1px solid var(--line);text-align:left}
.fee-table th{font-size:.72rem;color:var(--muted);font-weight:500}
.fee-table td:first-child{font-weight:500}
.fee-table td:nth-child(2){font-size:1.15rem;font-weight:700;color:var(--green-dark)}
.note{padding:20px 22px;background:var(--sage);color:#586151;font-size:.84rem;margin-top:22px}

/* research detailed */
.research-question{
  display:grid;grid-template-columns:170px minmax(0,1fr);gap:58px;
  padding:38px 0;border-top:1px solid var(--ink)
}
.research-question .qno{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.13em;color:var(--muted)}
.research-question h2{margin:0 0 14px;font-size:clamp(1.65rem,2.8vw,2.65rem);font-weight:500;line-height:1.5}
.research-question p{max-width:760px;margin:0;color:var(--muted)}
.research-principle{
  margin-top:78px;padding:56px;background:var(--dark);color:#fff
}
.research-principle span{font-family:Inter,sans-serif;font-size:.66rem;letter-spacing:.14em;color:#aebaa9}
.research-principle p{max-width:860px;margin:22px 0 0;font-size:clamp(1.35rem,2.4vw,2.2rem);line-height:1.75;font-weight:500}

/* generic content */
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:54px}
.prose{max-width:820px}
.prose h2{margin:2.2em 0 .7em;font-size:1.55rem;font-weight:500}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.8em 0 .5em;font-size:1.05rem;font-weight:500}
.prose p,.prose li{color:#5a615a}
.prose blockquote{
  margin:1.8em 0;padding:18px 22px;border-left:3px solid var(--green);background:var(--sage)
}
.prose a{text-decoration:underline;color:var(--green-dark)}
.sidebar{border-top:1px solid var(--ink);padding-top:18px}
.sidebar h3{margin:0 0 12px;font-size:.9rem;font-weight:500}
.sidebar a{display:block;padding:10px 0;border-bottom:1px solid var(--line);font-size:.82rem}

/* tables/forms */
.info-table,.price-table{width:100%;border-collapse:collapse}
.info-table th,.info-table td,.price-table th,.price-table td{
  padding:18px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top
}
.info-table th,.price-table th{width:190px;font-size:.76rem;color:var(--muted);font-weight:500}
.price-section{margin-top:42px}.price-section h2{font-size:1.35rem;font-weight:500}
.form{display:grid;gap:18px;max-width:820px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:7px}.field.full{grid-column:1/-1}
.field label{font-size:.8rem;font-weight:700}
.field input,.field textarea,.field select{
  width:100%;padding:13px 14px;border:1px solid #cbd1c7;border-radius:8px;background:#fff;outline:none
}
.field textarea{min-height:170px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{
  border-color:var(--green);box-shadow:0 0 0 3px rgba(101,125,70,.08)
}
.alert{max-width:820px;padding:14px 17px;margin-bottom:22px}
.alert.ok{background:#e8f0df;color:#3f5c25}.alert.error{background:#f8e7e3;color:#80423d}

/* footer */
.site-footer{padding:64px 0 24px;background:var(--dark);color:#fff}
.footer-top{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:55px}
.footer-brand .footer-logo{
  display:block;
  width:230px;
  max-width:100%;
  height:auto;
  filter:none !important;
  opacity:1;
}
.footer-brand p,.footer-info p{color:#bbc4ba;font-size:.8rem}
.footer-nav{display:grid;align-content:start}
.footer-nav a{padding:5px 0;color:#d4dbd2;font-size:.82rem}
.footer-bottom{
  margin-top:40px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;gap:20px;color:#8e9a8d;font-family:Inter,sans-serif;font-size:.62rem;letter-spacing:.08em
}
.footer-bottom a{color:#cbd6c7}

@media(max-width:1050px){
  .desktop-nav,.header-contact{display:none}
  .menu-btn{display:grid;gap:5px;margin-left:auto;padding:10px;border:0;background:transparent}
  .menu-btn span{display:block;width:24px;height:2px;background:var(--ink)}
  .mobile-nav{
    position:absolute;top:82px;left:0;right:0;display:none;padding:18px 24px;
    background:rgba(252,250,245,.99);border-bottom:1px solid var(--line)
  }
  .mobile-nav.is-open{display:grid}.mobile-nav a{padding:10px 0;border-bottom:1px solid var(--line)}
  .hero-inner{grid-template-columns:1fr;min-height:auto;padding-top:90px}
  .hero-visual{max-width:640px}
  .section-head,.manifesto-grid,.page-hero-grid,.research-question{grid-template-columns:130px minmax(0,1fr)}
  .visual-essay-grid{grid-template-columns:1fr}
  .service-row{grid-template-columns:70px 1fr 1.4fr 90px}
  .process-line{grid-template-columns:repeat(4,1fr)}
  .process-step:nth-child(4){border-right:0}
  .process-step:nth-child(n+5){border-top:1px solid rgba(63,82,48,.16)}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-info{grid-column:1/-1}
}

@media(max-width:700px){
  .shell{width:min(calc(100% - 28px),var(--max))}
  .section{padding:76px 0}
  .header-inner{height:72px}.mobile-nav{top:72px}
  .brand,.brand img{width:186px}
  .display{font-size:clamp(2.25rem,10.5vw,3.25rem)}
  .hero{min-height:auto}.hero-inner{padding:64px 0 48px}
  .hero-mark{display:none}
  .hero-visual{margin-top:12px}
  .manifesto-grid,.section-head,.page-hero-grid,.research-question{grid-template-columns:1fr;gap:18px}
  .image-ribbon-section{padding:0 0 70px}
  .image-ribbon{grid-template-columns:1fr;gap:14px}
  .manifesto-copy{font-size:1.45rem}
  .service-row{grid-template-columns:52px 1fr;gap:12px;padding:26px 0}
  .service-row p{grid-column:2}.service-row .text-link{grid-column:2;justify-self:start}
  .process-line{grid-template-columns:1fr}
  .process-step{min-height:auto;padding:18px 0;border-right:0;border-bottom:1px solid rgba(63,82,48,.16)}
  .process-step:nth-child(n+5){border-top:0}
  .process-note{display:block}.process-note .cta{margin-top:20px}
  .research-theme{grid-template-columns:52px 1fr;gap:14px}
  .research-theme p{grid-column:2}
  .journal-row{grid-template-columns:90px 1fr 28px;gap:12px}
  .journal-row .cat{display:none}.journal-row h3{font-size:.96rem}
  .contact-inner{grid-template-columns:1fr}.contact-inner .cta{justify-self:start}
  .subsidy-intro{grid-template-columns:1fr;gap:24px}
  .timeline-row{grid-template-columns:50px 1fr;gap:12px}
  .timeline-row p{grid-column:2}
  .research-principle{padding:32px 24px}
  .content-grid{grid-template-columns:1fr}.sidebar{margin-top:20px}
  .form-row{grid-template-columns:1fr}.field.full{grid-column:auto}
  .footer-top{grid-template-columns:1fr}.footer-info{grid-column:auto}
  .footer-bottom{display:block}.footer-bottom a{display:block;margin-top:8px}
  .info-table,.info-table tbody,.info-table tr,.info-table th,.info-table td,
  .price-table,.price-table tbody,.price-table tr,.price-table th,.price-table td{display:block;width:100%}
  .info-table th,.price-table th{padding-bottom:3px;border-bottom:0}
  .info-table td,.price-table td{padding-top:3px}
}


/* =========================================================
   V6 — 採用画像を必要なセクションだけに使用
========================================================= */

.desktop-only{display:block}

/* HERO: 芽の画像を全面に使い、左に読みやすいグラデーション */
.hero-photo{
  min-height:640px;
  position:relative;
  background:
    linear-gradient(90deg, rgba(248,245,237,.97) 0%, rgba(248,245,237,.92) 29%, rgba(248,245,237,.48) 55%, rgba(248,245,237,.02) 78%),
    url('/images/hero-sprout.webp') center center / cover no-repeat;
}
.hero-photo-inner{
  min-height:640px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 220px;
  gap:40px;
  align-items:center;
  position:relative;
}
.hero-photo-copy{max-width:720px}
.hero-photo .display{font-size:clamp(3rem,5vw,5.1rem);margin-bottom:20px}
.hero-photo .hero-lead{max-width:680px}
.hero-subcopy{
  margin:26px 0 20px;
  padding-top:18px;
  width:max-content;
  border-top:1px solid rgba(45,50,46,.34);
  color:#5e645e;
  font-size:.82rem;
}
.hero-side-note{
  align-self:center;
  justify-self:end;
  color:#fff;
  font-size:.92rem;
  line-height:1.85;
  padding-right:10px;
  text-shadow:0 2px 10px rgba(0,0,0,.22);
}

/* 行政書士パート：背景画像1枚だけ */
.service-photo-section{
  position:relative;
  overflow:hidden;
  background:#f8f6f0;
}
.service-photo-bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(248,246,240,.98) 0%, rgba(248,246,240,.93) 34%, rgba(248,246,240,.38) 64%, rgba(248,246,240,.10) 100%),
    url('/images/admin-consult.webp') right center / 58% auto no-repeat;
}
.service-photo-content{position:relative;z-index:1}
.service-photo-head{
  max-width:520px;
  margin-bottom:58px;
}
.service-photo-head p{
  color:var(--muted);
  margin:0;
}
.service-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.service-card{
  min-height:230px;
  padding:25px;
  display:flex;
  flex-direction:column;
  background:rgba(255,255,255,.90);
  border:1px solid rgba(45,50,46,.10);
  transition:.2s ease;
}
.service-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 50px rgba(45,50,46,.08);
}
.service-icon{
  font-family:Inter,sans-serif;
  font-size:.72rem;
  color:var(--green);
  letter-spacing:.12em;
}
.service-card h3{
  margin:28px 0 10px;
  font-size:1.16rem;
  font-weight:500;
}
.service-card p{
  margin:0 0 18px;
  color:var(--muted);
  font-size:.84rem;
}
.service-card .text-link{margin-top:auto}

/* 補助金・AI ROI：画像は各1枚のみ */
.focus-section{background:#fff}
.focus-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.focus-panel{
  min-height:430px;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:stretch;
}
.focus-panel::before{
  content:"";
  position:absolute;
  inset:0;
  transition:transform .35s ease;
}
.focus-panel:hover::before{transform:scale(1.025)}
.subsidy-panel::before{
  background:
    linear-gradient(90deg, rgba(252,250,245,.97) 0%, rgba(252,250,245,.88) 38%, rgba(252,250,245,.35) 70%, rgba(252,250,245,.08) 100%),
    url('/images/subsidy-docs.webp') right center / cover no-repeat;
}
.ai-panel::before{
  background:
    linear-gradient(90deg, rgba(252,250,245,.97) 0%, rgba(252,250,245,.88) 38%, rgba(252,250,245,.35) 70%, rgba(252,250,245,.08) 100%),
    url('/images/ai-roi-desk.webp') right center / cover no-repeat;
}
.focus-copy{
  position:relative;
  z-index:1;
  width:min(100%,580px);
  padding:58px 54px;
  display:flex;
  flex-direction:column;
}
.focus-copy h2{
  font-size:clamp(1.9rem,3vw,3rem);
  line-height:1.5;
  font-weight:500;
  margin:12px 0 18px;
}
.focus-copy p{
  max-width:420px;
  margin:0 0 24px;
  color:#626862;
}
.focus-button{
  margin-top:auto;
  width:max-content;
  padding:10px 18px;
  border:1px solid var(--green);
  border-radius:999px;
  color:var(--green-dark);
  font-size:.8rem;
  font-weight:700;
  background:rgba(255,255,255,.72);
}

/* お問い合わせ：採用されたタイピング画像1枚 */
.contact-photo-section{
  background:
    linear-gradient(90deg, rgba(248,245,237,.98) 0%, rgba(248,245,237,.94) 34%, rgba(248,245,237,.35) 62%, rgba(248,245,237,.08) 100%),
    url('/images/contact-typing.webp') right center / 58% auto no-repeat;
  border-top:1px solid var(--line);
}
.contact-photo-inner{
  min-height:340px;
  display:grid;
  grid-template-columns:1fr 270px;
  gap:40px;
  align-items:center;
}
.contact-photo-copy{max-width:560px}
.contact-photo-copy h2{
  margin:10px 0 14px;
  font-size:clamp(2rem,3.4vw,3.3rem);
  line-height:1.5;
  font-weight:500;
}
.contact-photo-copy p{
  color:var(--muted);
  margin:0 0 24px;
}
.contact-photo-message{
  justify-self:end;
  align-self:center;
  color:var(--green-dark);
  font-size:1rem;
  line-height:1.9;
  padding-top:15px;
  border-top:1px solid rgba(63,82,48,.35);
}

/* V5で追加した余分な画像セクションは非表示 */
.image-ribbon-section,
.visual-essay-section{display:none!important}

/* V5のsubpage画像用スタイルは実質使用しない */
.media-card{display:none!important}

@media(max-width:1050px){
  .hero-photo-inner{grid-template-columns:1fr}
  .hero-side-note{justify-self:start;color:var(--green-dark);text-shadow:none;padding:0}
  .service-photo-bg{
    background:
      linear-gradient(180deg, rgba(248,246,240,.96) 0%, rgba(248,246,240,.89) 45%, rgba(248,246,240,.50) 100%),
      url('/images/admin-consult.webp') center bottom / cover no-repeat;
  }
  .focus-grid{grid-template-columns:1fr}
  .contact-photo-inner{grid-template-columns:1fr}
  .contact-photo-message{justify-self:start}
}

@media(max-width:700px){
  .desktop-only{display:none}
  .hero-photo{
    min-height:auto;
    background:
      linear-gradient(180deg, rgba(248,245,237,.97) 0%, rgba(248,245,237,.90) 52%, rgba(248,245,237,.20) 100%),
      url('/images/hero-sprout.webp') center bottom / cover no-repeat;
  }
  .hero-photo-inner{min-height:650px;padding:58px 0 36px;align-content:start}
  .hero-photo .display{font-size:clamp(2.25rem,10vw,3.1rem)}
  .hero-side-note{display:none}

  .service-photo-section{padding:76px 0}
  .service-photo-bg{
    background:
      linear-gradient(180deg, rgba(248,246,240,.98) 0%, rgba(248,246,240,.91) 46%, rgba(248,246,240,.45) 100%),
      url('/images/admin-consult.webp') center bottom / cover no-repeat;
  }
  .service-cards{grid-template-columns:1fr}
  .service-photo-head{margin-bottom:36px}

  .focus-panel{min-height:390px}
  .focus-copy{padding:42px 26px}
  .subsidy-panel::before,
  .ai-panel::before{
    background-position:center bottom;
  }

  .contact-photo-section{
    background:
      linear-gradient(180deg, rgba(248,245,237,.99) 0%, rgba(248,245,237,.92) 47%, rgba(248,245,237,.38) 100%),
      url('/images/contact-typing.webp') center bottom / cover no-repeat;
  }
  .contact-photo-inner{min-height:520px;padding:58px 0 34px;align-content:start}
  .contact-photo-message{display:none}
}


/* =========================================================
   CURRENT ADJUSTMENTS
   これまでの調整をまとめた最終オーバーライド
========================================================= */

/* トップ・お問い合わせの装飾用小メッセージは非表示 */
.hero-side-note,
.contact-photo-message{
  display:none !important;
}

/* 小メッセージ非表示後、トップの余分なカラムをなくす */
.hero-photo-inner{
  grid-template-columns:1fr;
}

/* お問い合わせセクションの余白をゆったり確保 */
.contact-photo-section{
  padding:78px 0 84px;
}

.contact-photo-inner{
  min-height:380px;
  grid-template-columns:1fr;
  align-items:center;
}

.contact-photo-copy{
  max-width:600px;
  padding:20px 0;
}

.contact-photo-copy h2{
  margin-bottom:22px;
}

.contact-photo-copy p{
  margin-bottom:32px;
  line-height:2;
}


/* =========================================================
   SUBSIDY HERO
   補助金ページの画像付きファーストビュー
========================================================= */

.subsidy-hero{
  min-height:520px;
  position:relative;
  background:
    linear-gradient(
      90deg,
      rgba(248,245,237,.96) 0%,
      rgba(248,245,237,.92) 34%,
      rgba(248,245,237,.45) 62%,
      rgba(248,245,237,.10) 100%
    ),
    url('/images/subsidy-docs.webp') right center / cover no-repeat;
  border-bottom:1px solid var(--line);
}

.subsidy-hero-inner{
  min-height:520px;
  display:flex;
  align-items:center;
}

.subsidy-hero-copy{
  max-width:640px;
  padding:40px 0;
}

.subsidy-hero .kicker{
  margin-bottom:16px;
}

.subsidy-hero h1{
  margin:0 0 24px;
  font-size:clamp(2.6rem,4.8vw,4.8rem);
  line-height:1.28;
  font-weight:500;
  letter-spacing:-.02em;
}

.subsidy-hero p{
  max-width:600px;
  margin:0 0 24px;
  color:var(--muted);
  line-height:1.95;
}

.subsidy-hero .hero-subcopy{
  margin:0 0 28px;
  padding-top:16px;
  width:max-content;
  border-top:1px solid rgba(45,50,46,.28);
  color:#5f655f;
  font-size:.82rem;
  line-height:1.8;
}


/* =========================================================
   FOOTER
   暗背景専用ロゴ＋文字色の最終調整
========================================================= */

.footer-brand .footer-logo{
  display:block;
  width:230px;
  max-width:100%;
  height:auto;
  filter:none !important;
  opacity:1;
}

.footer-brand p{
  margin-top:24px;
  color:rgba(245,242,230,.88);
  font-size:.8rem;
  line-height:2;
}

.footer-info p{
  color:rgba(245,242,230,.78);
}

.footer-info a{
  color:inherit;
}

.footer-nav a{
  color:rgba(245,242,230,.82);
  transition:color .2s ease;
}

.footer-nav a:hover{
  color:#fff;
}

.footer-bottom{
  color:rgba(245,242,230,.58);
}

.footer-bottom a{
  color:rgba(245,242,230,.82);
}

.footer-bottom a:hover{
  color:#fff;
}


/* =========================================================
   RESPONSIVE ADJUSTMENTS
========================================================= */

@media(max-width:900px){
  .subsidy-hero{
    background:
      linear-gradient(
        180deg,
        rgba(248,245,237,.97) 0%,
        rgba(248,245,237,.92) 48%,
        rgba(248,245,237,.35) 100%
      ),
      url('/images/subsidy-docs.webp') center bottom / cover no-repeat;
  }

  .subsidy-hero,
  .subsidy-hero-inner{
    min-height:560px;
  }
}

@media(max-width:700px){
  .footer-brand .footer-logo{
    width:210px;
  }

  .subsidy-hero{
    min-height:620px;
  }

  .subsidy-hero-inner{
    min-height:620px;
    align-items:flex-start;
    padding-top:52px;
  }

  .subsidy-hero h1{
    font-size:clamp(2.1rem,9vw,3rem);
    line-height:1.35;
  }

  .subsidy-hero p{
    font-size:.92rem;
    line-height:1.9;
  }

  .contact-photo-section{
    padding:64px 0 72px;
  }

  .contact-photo-inner{
    min-height:520px;
  }
}


/* =========================================================
   GX / SERVICE STRUCTURE UPDATE 2026-09-15
========================================================= */

/* Global nav: expanded label support */
.desktop-nav{gap:18px}
.desktop-nav a{white-space:nowrap}

/* Homepage - three primary service pillars */
.pillars-section{
  background:#f8f6f0;
  position:relative;
}
.pillars-head{margin-bottom:46px}
.pillar-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  width:100%;
  max-width:920px;
  margin-inline:auto;
}
.pillar-card{
  min-height:320px;
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(45,50,46,.12);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.pillar-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 50px rgba(45,50,46,.08);
  border-color:rgba(63,82,48,.25);
}
.pillar-no{
  font-family:Inter,sans-serif;
  font-size:.68rem;
  letter-spacing:.14em;
  color:var(--green);
}
.pillar-card h3{
  margin:36px 0 14px;
  font-size:1.28rem;
  line-height:1.5;
  font-weight:500;
}
.pillar-card p{
  margin:0 0 26px;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.85;
}
.pillar-card .text-link{margin-top:auto}

/* Administrative services */
.admin-service-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--ink);
}
.admin-service-block{
  min-height:520px;
  padding:36px 30px 38px 0;
  border-bottom:1px solid var(--line);
}
.admin-service-block + .admin-service-block{
  border-left:1px solid var(--line);
  padding-left:30px;
}
.admin-service-block h2{
  margin:18px 0 18px;
  font-size:1.55rem;
  line-height:1.5;
  font-weight:500;
}
.admin-service-block p,
.admin-service-block li{
  color:var(--muted);
  font-size:.88rem;
  line-height:1.9;
}
.admin-service-block ul{
  margin:25px 0 28px;
  padding-left:1.2em;
}
.admin-service-block .small-note{
  font-size:.78rem;
}
.admin-related{background:var(--sage)}
.admin-related-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
  gap:72px;
  align-items:center;
}
.admin-related-inner p{color:#596159;margin:0 0 25px}

/* GX page hero: business / investment tone, no eco clichés */
.gx-hero{
  min-height:590px;
  position:relative;
  background:
    linear-gradient(90deg,rgba(248,245,237,.98) 0%,rgba(248,245,237,.93) 35%,rgba(248,245,237,.46) 64%,rgba(248,245,237,.10) 100%),
    url('/images/admin-consult.webp') right center / cover no-repeat;
  border-bottom:1px solid var(--line);
}
.gx-hero-inner{
  min-height:590px;
  display:flex;
  align-items:center;
}
.gx-hero-copy{max-width:720px;padding:58px 0}
.gx-hero h1{
  margin:12px 0 6px;
  font-size:clamp(2.8rem,5vw,5.1rem);
  line-height:1.24;
  font-weight:500;
  letter-spacing:-.03em;
}
.gx-hero h2{
  margin:0 0 26px;
  font-size:clamp(1.45rem,2.4vw,2.25rem);
  line-height:1.55;
  font-weight:500;
  color:var(--green-dark);
}
.gx-hero p{
  max-width:650px;
  margin:0 0 30px;
  color:#5f655f;
  line-height:2;
}

.gx-section{background:#fff}
.gx-section.gx-alt{background:#f8f6f0}
.gx-section-grid{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:70px;
}
.gx-section-index{
  padding-top:8px;
}
.gx-section-index>span{
  display:block;
  margin-bottom:14px;
  font-family:Inter,sans-serif;
  font-size:2.4rem;
  font-weight:500;
  color:rgba(63,82,48,.25);
}
.gx-section-main{min-width:0}
.gx-section-main>.section-lead{max-width:900px}

.gx-item-list{
  margin-top:44px;
  border-top:1px solid var(--ink);
}
.gx-item-list div{
  padding:21px 4px;
  border-bottom:1px solid var(--line);
  font-size:.98rem;
}
.gx-note{margin-top:28px}

.gx-tags{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:34px 0 44px;
}
.gx-tags span{
  padding:9px 14px;
  border:1px solid rgba(63,82,48,.22);
  border-radius:999px;
  background:rgba(255,255,255,.7);
  font-size:.82rem;
  color:var(--green-dark);
}

.gx-mini-flow{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--line);
  margin-bottom:30px;
}
.gx-mini-flow div{
  min-height:150px;
  padding:22px 22px 24px 0;
  position:relative;
  border-right:1px solid var(--line);
}
.gx-mini-flow div + div{padding-left:22px}
.gx-mini-flow div:last-child{border-right:0}
.gx-mini-flow span,
.gx-flow-step span{
  display:block;
  margin-bottom:24px;
  font-family:Inter,sans-serif;
  font-size:.65rem;
  letter-spacing:.12em;
  color:var(--green);
}
.gx-mini-flow strong{
  font-size:.9rem;
  line-height:1.7;
  font-weight:500;
}
.ghost-cta{background:transparent;color:var(--green-dark);border:1px solid var(--green)}

.gx-flow{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  margin:44px 0 56px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--line);
}
.gx-flow-step{
  min-height:170px;
  padding:22px 17px 24px;
  position:relative;
  border-right:1px solid var(--line);
}
.gx-flow-step:first-child{padding-left:0}
.gx-flow-step:last-child{border-right:0}
.gx-flow-step:not(:last-child)::after{
  content:'→';
  position:absolute;
  right:-11px;
  top:50%;
  transform:translateY(-50%);
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  background:#fff;
  color:var(--green);
  font-size:.8rem;
}
.gx-flow-step strong{
  font-size:.86rem;
  line-height:1.7;
  font-weight:500;
}

.gx-consult-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:54px;
  margin-top:20px;
}
.gx-consult-grid>div{
  padding-top:24px;
  border-top:1px solid var(--ink);
}
.gx-consult-grid h3{
  margin:0 0 18px;
  font-size:1.12rem;
  font-weight:500;
}
.gx-consult-grid ul{margin:0;padding-left:1.25em}
.gx-consult-grid li{
  margin-bottom:10px;
  color:var(--muted);
  font-size:.87rem;
  line-height:1.8;
}
.gx-positioning{
  margin-top:48px;
  padding:36px 38px;
  background:var(--sage);
  border-left:3px solid var(--green);
}
.gx-positioning h3{
  margin:0 0 14px;
  font-size:1.25rem;
  font-weight:500;
}
.gx-positioning p{
  margin:0;
  color:#596159;
  line-height:1.9;
}

@media(max-width:1120px){
  .desktop-nav{gap:12px}
  .desktop-nav a{font-size:.72rem}
  .pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}
  .gx-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gx-flow-step:nth-child(3){border-right:0}
  .gx-flow-step:nth-child(n+4){border-top:1px solid var(--line)}
  .gx-flow-step:nth-child(3)::after{display:none}
}

@media(max-width:900px){
  .admin-service-grid{grid-template-columns:1fr}
  .admin-service-block{min-height:auto;padding:30px 0}
  .admin-service-block + .admin-service-block{border-left:0;padding-left:0}
  .admin-related-inner{grid-template-columns:1fr;gap:30px}
  .gx-section-grid{grid-template-columns:1fr;gap:28px}
  .gx-section-index{display:flex;align-items:center;gap:16px}
  .gx-section-index>span{margin:0;font-size:1.6rem}
  .gx-mini-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gx-mini-flow div:nth-child(2){border-right:0}
  .gx-mini-flow div:nth-child(n+3){border-top:1px solid var(--line)}
  .gx-consult-grid{grid-template-columns:1fr;gap:30px}
}

@media(max-width:700px){
  .pillar-grid{grid-template-columns:1fr;max-width:none}
  .pillar-card{min-height:auto}
  .gx-hero{
    min-height:680px;
    background:
      linear-gradient(180deg,rgba(248,245,237,.98) 0%,rgba(248,245,237,.93) 55%,rgba(248,245,237,.42) 100%),
      url('/images/admin-consult.webp') center bottom / cover no-repeat;
  }
  .gx-hero-inner{min-height:680px;align-items:flex-start;padding-top:50px}
  .gx-hero-copy{padding:0}
  .gx-hero h1{font-size:clamp(2.3rem,11vw,3.3rem)}
  .gx-mini-flow{grid-template-columns:1fr}
  .gx-mini-flow div,
  .gx-mini-flow div + div{
    min-height:auto;
    padding:18px 0;
    border-right:0;
    border-top:0;
    border-bottom:1px solid var(--line);
  }
  .gx-flow{grid-template-columns:1fr}
  .gx-flow-step,
  .gx-flow-step:first-child{
    min-height:auto;
    padding:18px 0;
    border-right:0;
    border-top:0 !important;
    border-bottom:1px solid var(--line);
  }
  .gx-flow-step:not(:last-child)::after{
    content:'↓';
    left:0;
    right:auto;
    top:auto;
    bottom:-12px;
    transform:none;
  }
  .gx-positioning{padding:28px 24px}
}
