:root{
--bg:#FAF9F6;
--accent:#eaefe6;
--primary:#6F8468;
--primary2:#7F8F7A;
--text:#333333;
--sub:#666666;
--btn:#768653;
--btn2:#b1bb9b;
--card:#FFFFFF;
--shadow: 0 10px 30px rgba(0,0,0,.06);
--radius: 18px;
--max: 420px;

  --font-serif: "Noto Serif", Georgia, "Times New Roman", serif;
  --font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont,
               "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-jp-gothic: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", 
               "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
}

*{box-sizing:border-box}
.imgEv03{
  filter: saturate(1.9) brightness(1.5)  contrast(0.7);
}
body{
margin:0;
font-family: var(--font-sans);
background: var(--bg);
color: var(--text);
line-height: 1.65;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
body::before{
content:"";
position:absolute; top:0; left:0; right:0; bottom:0;
display: block; width: 100%; height: 100%;
background: url(../img/blog-03.png) center center / 100vh auto repeat, transparent;
opacity: .03;
z-index:-1; 
}

h1, h2, h3,
.section-title,
.quote{
  font-family: var(--font-serif);
}

/* Container */
.contentWrap{
width:100%;
max-width: var(--max);
margin: 0 auto;
padding: 0 0px;
}

/* Simple top brand bar (no menu) */
.brandbar{
padding: 44px 18px 10px;
}
.brandrow{
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
}
.logo{
display:flex;
align-items:center;
gap:10px;
font-weight: 700;
letter-spacing: .2px;
}
.logo img{width:28px;height:28px;border-radius:8px;object-fit:cover}
.tagline{
font-size: 12px;
color: var(--sub);
margin-top: 2px;
}

.locale{
    display: flex;
    align-items: center;
    justify-content: end;
    gap: 4px;
    font-size: 12px;
    color: var(--sub);
    flex-wrap: wrap;
    width: 96px;
    padding: 5px;
}
.locale select{
border:1px solid rgba(0,0,0,.12);
background: rgba(255,255,255,.7);
border-radius: 999px;
padding: 8px 10px;
font-size: 12px;
color: var(--text);
}

/* Decorative background helpers */
/* .decor-top{
background:
url("../img/gk/bg/leaf_top.png") top center / 1200px auto no-repeat,
var(--bg);
}
.decor-bottom{
background:
url("../img/gk/bg/leaf_bottom.png") bottom center / 1200px auto no-repeat,
var(--bg);
} */
.deco-leaf {
    background: url(../img/gk/leaf.png) center center / 100% auto no-repeat, transparent;
    width: 100%;
    height: 40px;
}


/* Hero */
.hero{
margin-top: 6px;
box-shadow: var(--shadow);
padding: 0 16px;
}
.hero-media{
position:relative;
border-radius: 22px;
overflow:hidden;
height: 46vh;
min-height: 320px;
background: #ddd;
}
.hero-media img{
width:100%; height:100%;
object-fit:cover;
display:block;
}
.hero-media::after{
content:"";
position:absolute; left:0; right:0; bottom:0;
height: 180px;
background: linear-gradient(to top, rgba(250,249,246,1), rgba(250,249,246,.85), rgba(250,249,246,0));
pointer-events:none;
}
.hero-body{
padding: 18px 16px 18px;
background: var(--bg);
}
.kicker{
display:inline-flex;
gap:8px;
align-items:center;
font-size: 12px;
color: var(--sub);
letter-spacing:.3px;
text-transform: none;
margin-bottom: 10px;
}
.kicker .dot{
width:8px;height:8px;border-radius:999px;background:var(--primary2);
display:inline-block;
}
h1{
margin:0;
font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
font-size: 30px;
line-height: 1.2;
letter-spacing: -0.2px;
color: #2F3B2F;
}
.lead{
margin: 10px 0 0;
color: var(--sub);
font-size: 15.5px;
}
.btnrow{
display:flex;
gap:10px;
margin-top: 16px;
flex-wrap: wrap;
}
.btnrow > a { background: var(--btn); border-color: transparent;
  display: inline-flex; justify-content: center; line-height: 1.2; }
  .btnrow > a:last-of-type { background: var(--btn2) !important;}
  .btnrow > a:hover, .btnrow > a:focus, .btnrow > a:active { 
    background: var(--btn) !important; border-color: var(--btn) !important; }
.btn{
flex: 1 1 150px;
display:inline-flex;
justify-content:center;
align-items:center;
text-decoration:none;
border-radius: 999px;
padding: 12px 14px;
font-weight: 650;
font-size: 15px;
border: 1px solid transparent;
transition: transform .05s ease, filter .15s ease;
user-select:none;
}
.btn:active{ transform: translateY(1px); }
.btn-primary{
background: var(--primary);
color:#fff;
box-shadow: 0 10px 18px rgba(111,132,104,.18);
}
.btn-primary:hover{ filter: brightness(0.98); }
.btn-secondary{
background: rgba(255,255,255,.75);
border-color: rgba(111,132,104,.9);
color: var(--primary);
}

/* Sections */
section{
padding: 52px 16px;
}
.section-title{
font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
font-size: 22px;
line-height: 1.25;
letter-spacing: -0.1px;
color: #2F3B2F;
margin: 0 0 12px;
}
.copy{
margin: 0;
color: #444;
font-size: 15.5px;
}
.quote{
margin: 16px 0 0;
padding: 14px 14px;
background: rgba(255,255,255,.75);
border: 1px solid rgba(0,0,0,.08);
border-radius: 14px;
color:#2F3B2F;
font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
}

/* Image card */
.imgcard{
margin-top: 16px;
border-radius: var(--radius);
overflow:hidden;
box-shadow: var(--shadow);
background:#fff;
}
.imgcard img{
width:100%;
display:block;
height: auto;
animation: slowZoom 5s ease-in-out infinite alternate;
}

/* Accent sections */
.accent{
padding:0 16px;
}
.accent > div{
padding: 60px 16px;
/* background: var(--accent); */
border-radius: var(--radius);
}

/* Bullet cards */
.grid2{
display:grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
margin-top: 16px;
}
.card{
  display: block !important;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  padding: 12px 12px;
  height: 100%;
}
.card strong{display:block; font-size: 14.5px}
.card span{display:block; font-size: 12.5px; color: var(--sub); margin-top: 2px}

/* Activity cards */
.activity-list{
margin-top: 20px;
display:flex;
flex-direction:column;
gap: 16px;
}
.activity-card{
display:flex;
gap: 14px;
background: rgba(255,255,255,.85);
border: 1px solid rgba(0,0,0,.08);
border-radius: 16px;
padding: 18px 16px;
box-shadow: 0 6px 16px rgba(0,0,0,.04);
}
.activity-icon{
font-size: 28px;
flex: 0 0 auto;
width: 48px;
height: 48px;
display:flex;
align-items:center;
justify-content:center;
background: rgba(111,132,104,.1);
border-radius: 12px;
overflow: hidden;
}
.activity-icon img{
width: 100%;
height: 100%;
object-fit: cover;
}
.activity-content{
flex: 1;
}
.activity-content h3{
margin: 0 0 6px;
font-size: 16px;
font-weight: 700;
color: #2F3B2F;
font-family: var(--font-serif);
}
.activity-content p{
margin: 0;
font-size: 14px;
color: var(--sub);
line-height: 1.5;
}
.activity-more{
margin-top: 20px;
text-align: center;
font-size: 14px;
color: var(--sub);
font-style: italic;
}

/* Lists */
ul.clean{
list-style:none;
padding:0;margin:14px 0 0;
}
ul.clean li{
display:flex;
gap:10px;
padding: 10px 0;
border-bottom: 1px solid rgba(0,0,0,.06);
color:#444;
font-size: 15px;
}
ul.clean li:last-child{border-bottom:none}
.check{
width:22px;height:22px;border-radius: 999px;
background: rgba(111,132,104,.14);
color: var(--primary);
display:flex;align-items:center;justify-content:center;
font-weight: 900;
flex: 0 0 auto;
margin-top: 1px;
}
/* mission */
.missionInner{
display: flex;
flex-direction: column;
flex-flow: column-reverse;
}
/* Program overview */
.stats{
display:grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
margin-top: 16px;
}
.stat{
background: var(--card);
border: 1px solid rgba(0,0,0,.08);
border-radius: 18px;
padding: 14px 14px;
box-shadow: 0 8px 20px rgba(0,0,0,.05);
}
.stat .label{
font-size: 12px;
color: var(--sub);
}
.stat .value{
margin-top: 4px;
font-weight: 700;
color: #2F3B2F;
}
.stat-wide{
grid-column: 1 / -1;
text-align: center;
background: linear-gradient(135deg, rgba(111,132,104,.08), rgba(111,132,104,.04));
border-color: rgba(111,132,104,.2);
}
.stat-wide .value{
font-size: 20px;
}
.price-note{
font-size: 12px;
font-weight: 400;
color: var(--sub);
margin-left: 4px;
}

/* CTA block */
.cta{
background: var(--accent);
border-top: 1px solid rgba(0,0,0,.05);
border-bottom: 1px solid rgba(0,0,0,.05);
}
.cta p{
margin:0;
font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
font-size: 22px;
color: #2F3B2F;
line-height: 1.3;
}

/* Footer with illustration */
footer{
/* background: linear-gradient(to bottom, var(--bg), rgba(250,249,246,.85)); */
/* padding: 34px 0 0; */
}
.footer-illustration{
width:100%;
display:block;
margin-top: 18px;
}
.foot{
padding: 14px 0 14px;
color: var(--sub);
font-size: 12px;
}
.foot strong{color:#2F3B2F}
.foot a{color: var(--primary); text-decoration: none; border-bottom: 1px solid rgba(111,132,104,.35)}
.foot a:hover{border-bottom-color: rgba(111,132,104,.75)}

/* Desktop: center on page nicely */
@media (min-width: 820px){
body{ padding: 30px 0; }
.decor-top, .decor-bottom{ background-size: 1600px auto; }
.hero-media{ height: 420px; }
}
/* =========================
PC / Tablet Optimization
Max width 1080px centered
========================= */

/* 共通ラッパーを拡張 */
.contentWrap{
max-width: 940px;
}

/* PC */
@media (min-width: 768px){
    body{
    font-size: 16px;
    }
    .brandbar{
    padding: 94px 20px 10px;
    }

    section{
    padding: 72px 16px;
    }
    section.accent {
        padding: 72px 16px;
    }
    .deco-leaf {
    background: url(../img/gk/leaf.png) center center / auto 100% no-repeat, transparent;
    width: 100%;
    height: 54px;
    }

    .hero{
    border-radius: 28px;
    padding: 0 2px;
    }

    .hero-media{
    height: 520px;
    }
    .hero-body {
    padding: 24px 32px 64px;}
      /*  */
    h1{
    font-size: 40px;
    max-width: 720px;
    }

    .lead{
    font-size: 17px;
    max-width: 720px;
    }

    .btnrow{
    max-width: 560px;
    }

    .section-title{
    font-size: 28px;
    max-width: 720px;
    }

    .copy{
    font-size: 16.5px;
    max-width: 720px;
    }

    .quote{
    max-width: 720px;
    font-size: 17px;
    }

    .imgcard{
    max-width: 820px;
    }

    .grid2{
    grid-template-columns: repeat(4, 1fr);
    }

    .stats{
    grid-template-columns: repeat(4, 1fr);
    }
    .card {}

    ul.clean{
    max-width: 820px;
    }
    /* --------- */
    /* vp */
    .vp{
      text-align: center;
    }
    .vp .section-title{
      margin-left: auto;
      margin-right: auto;
    }
    .vp .copy{
      margin-left: auto;
      margin-right: auto;
    }
    /* brand vision */
    .bvInner{
      display: flex;
      align-items: center;
    }
    .bvInner > div{
      /* flex: 1; */
    }
    .bvInner > div:first-child{
      padding-right: 32px;
    }
    .bvInner > div:last-child{
      width: 51%;
    }
    .bvInner > .imgcard img{
      height: 100%;
      object-fit: cover;
      display: block;
      animation: slowZoom 10s ease-in-out infinite alternate;
      
    }
    /* mission */
    .missionInner{
      flex-direction: row;
      flex-flow: row;
      align-items: center;
    }
    .missionInner > div{
      /* flex: 1; */
    }
    .missionInner > div:first-child{
      width: 75%;
    }
    .missionInner > div:last-child{
      padding-left: 32px;
    }
    .missionInner > .imgcard img{
      height: 100%;
      object-fit: cover;
      display: block;
      animation: slowZoom 10s ease-in-out infinite alternate;
      
    }
    
    /* gain */
    .gain{
      
    }
    .gainInner{
      display: flex;
      justify-content: center;
      align-items: stretch;
    }
  
    .gainInner > ul{
      padding-left: 32px;
    }
    .gainInner > .imgcard{
      width: 46%;
      margin-left: 32px;
    }
    .gainInner > .imgcard img{
      height: 100%;
      object-fit: cover;
      display: block;
      animation: panLeft 10s ease-in-out infinite alternate;
      
    }
    
    .gain ul.clean{
      display: flex;
      flex-wrap: wrap;
      flex-direction: column;
      gap: 1;
    }
    .gain ul.clean li{
      width: 100%;
      justify-content: start;
      align-items: center;
      padding: 1em;
      height: 90px;
      background: #fdfffd;
      margin-bottom: 7px;
      border-radius: 5px;
    }
    /*  */
    .activity-list {
      flex-direction: row;
    }
    .activity-card {
      flex-direction: column;
    }
    /*  */
    .cta p{
    font-size: 28px;
    max-width: 720px;
    }

    footer .contentWrap{
    max-width: 1080px;
    }
}

/* PC WIDE */
@media (min-width: 1200px){
body{
/* display: flex; */
/* justify-content: center; */
}

body > .contentWrap{
width: 100%;
}
}

/* ===========================
   Locale-specific styles
   =========================== */

/* Japanese locale - Gothic font family */
body.locale-jp {
  font-family: var(--font-jp-gothic);
}

body.locale-jp h1,
body.locale-jp h2,
body.locale-jp h3,
body.locale-jp .section-title,
body.locale-jp .quote,
body.locale-jp .activity-content h3 {
  font-family: var(--font-jp-gothic);
}


@keyframes slowZoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.15);
  }
}
@keyframes panLeft {
  from {
    object-position: 100% center;
  }
  to {
    object-position: 90% center;
  }
}