/* ぷちファーマーズ トップページ */
:root{
  --green-950:#15361f;
  --green-900:#1d4b2d;
  --green-800:#2f6139;
  --green-700:#3d7542;
  --green-500:#779d54;
  --green-100:#edf3df;
  --cream:#fffaf0;
  --cream-2:#f7efdf;
  --beige:#efe3ca;
  --line:rgba(46,75,42,.16);
  --terra:#cf754a;
  --terra-dark:#ba643d;
  --text:#233126;
  --muted:#65705e;
  --shadow:0 20px 55px rgba(36,68,38,.14);
  --radius-xl:30px;
  --radius-lg:22px;
  --container:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",system-ui,-apple-system,sans-serif;
  line-height:1.85;
  letter-spacing:.02em;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(var(--container),calc(100% - 56px));margin-inline:auto}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,250,240,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(64,74,52,.11);
}
.header-inner{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.brand{
  display:flex;
  align-items:center;
  gap:13px;
  min-width:max-content;
}
.brand-logo{
  width:48px;
  height:48px;
  border-radius:16px;
  object-fit:contain;
}
.brand-name{
  font-weight:900;
  color:var(--green-950);
  font-size:1.28rem;
  letter-spacing:.08em;
}
.global-nav{
  display:flex;
  align-items:center;
  gap:22px;
  font-size:.94rem;
  font-weight:800;
  color:#273a28;
}
.global-nav a{
  white-space:nowrap;
  position:relative;
}
.global-nav a:not(.nav-button)::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  background:var(--green-700);
  transform:scaleX(0);
  transform-origin:left;
  transition:.2s;
}
.global-nav a:hover::after,
.global-nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border-radius:999px;
  color:#fff;
  background:var(--terra);
  box-shadow:0 14px 28px rgba(207,117,74,.22);
}
.mobile-menu{
  display:none;
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:.55rem .9rem;
  color:var(--green-900);
  font-weight:800;
}

/* Hero with background photo */
.hero{
  position:relative;
  min-height:660px;
  display:flex;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background-image:
    linear-gradient(90deg, rgba(255,250,240,.97) 0%, rgba(255,250,240,.86) 32%, rgba(255,250,240,.40) 55%, rgba(255,250,240,.10) 100%),
    linear-gradient(180deg, rgba(255,250,240,.10), rgba(255,250,240,.18)),
    url("../images/hero-farm-family.jpg");
  background-size:cover;
  background-position:center center;
}
.hero::after{
  content:"";
  position:absolute;
  left:-5%;
  right:-5%;
  bottom:-74px;
  height:150px;
  background:var(--cream);
  border-radius:50% 50% 0 0/100% 100% 0 0;
  z-index:-1;
}
.hero-content{
  width:min(640px,100%);
  padding:72px 0 98px;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.44rem .9rem;
  border-radius:999px;
  background:rgba(237,243,223,.82);
  border:1px solid rgba(61,117,66,.22);
  color:var(--green-900);
  font-weight:900;
  font-size:.9rem;
}
.eyebrow::before{
  content:"";
  width:.65rem;
  height:.65rem;
  border-radius:50%;
  background:var(--green-500);
}
.hero h1{
  margin:.48em 0 .32em;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(3rem,6.1vw,5.65rem);
  line-height:1.17;
  letter-spacing:.035em;
  font-weight:650;
  text-shadow:0 2px 18px rgba(255,250,240,.72);
}
.hero-lead{
  margin:0 0 1.75rem;
  color:#26382a;
  font-weight:650;
  font-size:clamp(.98rem,1.2vw,1.1rem);
  line-height:2.05;
  text-shadow:0 1px 12px rgba(255,250,240,.82);
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  border-radius:999px;
  min-height:48px;
  padding:.82rem 1.28rem;
  font-weight:900;
  color:#fff;
  background:var(--green-800);
  box-shadow:0 16px 30px rgba(34,76,42,.22);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.button::after{content:"›";font-size:1.18em;line-height:1}
.button:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 36px rgba(34,76,42,.26);
  background:var(--green-900);
}
.button.secondary{
  background:#fff;
  color:var(--green-900);
  border:1px solid rgba(47,97,57,.22);
  box-shadow:0 14px 30px rgba(52,62,42,.11);
}
.button.terra{background:var(--terra);box-shadow:0 16px 30px rgba(207,117,74,.24)}
.button.terra:hover{background:var(--terra-dark)}

/* Sections */
.section{
  padding:66px 0;
}
.section.soft{
  background:linear-gradient(135deg,rgba(247,239,223,.95),rgba(239,243,223,.78));
}
.section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:28px;
}
.section-title{
  margin:0;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:clamp(1.9rem,3vw,2.7rem);
  line-height:1.35;
}
.section-copy{
  margin:.5rem 0 0;
  color:var(--muted);
  max-width:42rem;
}

/* Service cards */
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:-48px;
  position:relative;
  z-index:5;
}
.service-card{
  background:rgba(255,255,255,.93);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.card-photo{
  height:210px;
  overflow:hidden;
  background:var(--green-100);
}
.card-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.service-card:hover .card-photo img{transform:scale(1.035)}
.card-body{
  padding:26px 26px 28px;
}
.card-title-row{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:8px;
}
.card-icon{
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:var(--green-700);
  font-weight:900;
  font-size:1.05rem;
}
.service-card h2{
  margin:0;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  color:var(--green-950);
  font-size:1.55rem;
  line-height:1.3;
}
.card-sub{
  margin:0 0 .85rem;
  color:var(--green-700);
  font-weight:900;
}
.card-text{
  margin:0 0 1.15rem;
  color:#4d5849;
  font-size:.95rem;
}
.card-body .button{
  min-height:42px;
  padding:.65rem 1.1rem;
  box-shadow:none;
}

/* Mission */
.mission-box{
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(247,239,223,.86));
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  padding:34px;
  display:grid;
  grid-template-columns:.82fr 1.58fr;
  gap:34px;
  align-items:center;
}
.mission-box p{color:#4d5849;margin:0}
.values{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
}
.value{
  text-align:center;
  padding:12px 16px;
  border-left:1px dashed rgba(80,91,64,.24);
}
.value:first-child{border-left:none}
.value-symbol{
  color:var(--green-700);
  font-size:2.05rem;
  line-height:1;
  margin-bottom:9px;
}
.value strong{
  display:block;
  color:var(--green-950);
  line-height:1.45;
  margin-bottom:6px;
}
.value p{
  font-size:.82rem;
  line-height:1.7;
  color:#61705c;
}

/* Audience and land */
.info-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1.05fr;
  gap:22px;
}
.info-card{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  padding:28px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
  overflow:hidden;
}
.info-card.photo-card{
  display:grid;
  grid-template-columns:1fr 124px;
  gap:16px;
  align-items:center;
}
.info-card h2,
.info-card h3{
  margin:0 0 .75rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  color:var(--green-950);
  line-height:1.35;
}
.check-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:7px;
}
.check-list li{
  display:flex;
  gap:8px;
  align-items:flex-start;
  color:#465544;
  font-size:.93rem;
}
.check-list li::before{
  content:"✓";
  flex:0 0 auto;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:.76rem;
  font-weight:900;
  margin-top:.28em;
}
.round-img{
  border-radius:18px;
  width:124px;
  height:170px;
  object-fit:cover;
}
.land-card{
  background:
    linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.88)),
    url("../images/farm-landscape.jpg") center bottom/cover no-repeat;
}
.land-card p{color:#445141;font-weight:600}
.instagram-card{
  background:rgba(255,255,255,.86);
}
.insta-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.insta-head h2{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:2rem;
  color:#1c2d1f;
}
.handle{font-weight:900;color:#2a3d28;margin:.1rem 0 .8rem}
.thumb-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.thumb-grid img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:10px;
}

/* CTA */
.cta-section{
  padding:26px 0 58px;
  background:var(--cream);
}
.cta-box{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:220px 1fr auto;
  align-items:center;
  gap:26px;
  background:linear-gradient(135deg,#f2e6ce,#fff7e7);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:30px 38px;
  box-shadow:0 18px 50px rgba(90,78,50,.1);
}
.cta-box::after{
  content:"";
  position:absolute;
  right:24px;top:20px;
  width:64px;height:64px;
  background:radial-gradient(circle,var(--green-500) 0 46%,transparent 48%);
  opacity:.18;
}
.cta-box img{
  width:220px;
  max-height:120px;
  object-fit:contain;
}
.cta-box h2{
  margin:0 0 .25rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  color:var(--green-950);
  font-size:2rem;
}
.cta-box p{margin:0;color:#475443}

/* Footer */
.site-footer{
  background:#efe4cf;
  border-top:1px solid rgba(78,96,61,.12);
}
.footer-grid{
  padding:44px 0 36px;
  display:grid;
  grid-template-columns:1.25fr .85fr .9fr 1.1fr;
  gap:34px;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:900;
  color:var(--green-950);
  margin-bottom:12px;
  font-size:1.08rem;
}
.footer-brand img{width:42px;height:42px;border-radius:14px}
.footer-grid h3{
  margin:0 0 12px;
  color:var(--green-950);
  font-size:.98rem;
}
.footer-grid p,
.footer-grid li{
  margin:0;
  color:#4d5849;
  font-size:.9rem;
}
.footer-grid ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:7px;
}
.footer-bottom{
  background:var(--green-950);
  color:rgba(255,255,255,.78);
  text-align:center;
  font-size:.84rem;
  padding:14px;
}

/* Responsive */
@media (max-width:1080px){
  .global-nav{display:none}
  .mobile-menu{display:inline-flex}
  .hero{min-height:620px}
  .service-grid{grid-template-columns:1fr;max-width:680px;margin-inline:auto;margin-top:-36px}
  .mission-box{grid-template-columns:1fr}
  .values{grid-template-columns:repeat(2,1fr)}
  .value{border-left:none;border-top:1px dashed rgba(80,91,64,.24)}
  .value:nth-child(-n+2){border-top:none}
  .info-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .cta-box{grid-template-columns:1fr auto}
  .cta-box img{display:none}
}
@media (max-width:680px){
  .container{width:min(100% - 30px,var(--container))}
  .header-inner{min-height:66px}
  .brand-logo{width:42px;height:42px}
  .brand-name{font-size:1.04rem}
  .hero{
    min-height:610px;
    background-image:
      linear-gradient(180deg, rgba(255,250,240,.80) 0%, rgba(255,250,240,.76) 48%, rgba(255,250,240,.48) 100%),
      url("../images/hero-farm-family.jpg");
    background-position:center center;
    align-items:flex-end;
  }
  .hero-content{
    padding:54px 0 92px;
  }
  .hero h1{
    font-size:2.65rem;
    line-height:1.25;
  }
  .hero-lead{
    font-size:.94rem;
    line-height:1.9;
  }
  .hero-actions .button{width:100%}
  .section{padding:48px 0}
  .service-grid{margin-top:-38px}
  .card-photo{height:190px}
  .mission-box{padding:26px}
  .values{grid-template-columns:1fr}
  .value:nth-child(-n+2){border-top:1px dashed rgba(80,91,64,.24)}
  .value:first-child{border-top:none}
  .info-card.photo-card{grid-template-columns:1fr}
  .round-img{width:100%;height:220px}
  .thumb-grid{grid-template-columns:repeat(2,1fr)}
  .cta-box{grid-template-columns:1fr;padding:28px}
  .cta-box .button{width:100%}
  .footer-grid{grid-template-columns:1fr}
}


/* Rental page */
.page-hero{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background-size:cover;
  background-position:center center;
}
.page-hero.rental-hero{
  background-image:
    linear-gradient(90deg, rgba(255,250,240,.97) 0%, rgba(255,250,240,.88) 37%, rgba(255,250,240,.58) 68%, rgba(255,250,240,.18) 100%),
    url("../images/rental/rental-hero.jpg");
}
.page-hero::after{
  content:"";
  position:absolute;
  left:-6%;
  right:-6%;
  bottom:-76px;
  height:148px;
  background:var(--cream);
  border-radius:50% 50% 0 0/100% 100% 0 0;
  z-index:-1;
}
.page-hero-content{
  width:min(640px,100%);
  padding:76px 0 96px;
}
.page-hero h1{
  margin:.48em 0 .32em;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(2.75rem,5.3vw,5.05rem);
  line-height:1.16;
  font-weight:650;
  text-shadow:0 2px 18px rgba(255,250,240,.72);
}
.page-lead{
  margin:0 0 1.75rem;
  color:#26382a;
  font-weight:650;
  font-size:clamp(.98rem,1.2vw,1.08rem);
  line-height:2;
  text-shadow:0 1px 12px rgba(255,250,240,.82);
}
.rental-summary{
  margin-top:-46px;
  position:relative;
  z-index:5;
}
.summary-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.summary-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-lg);
  padding:22px;
  box-shadow:var(--shadow);
}
.summary-card .label{
  display:block;
  color:var(--muted);
  font-size:.86rem;
  font-weight:800;
}
.summary-card .value{
  display:block;
  color:var(--green-950);
  font-weight:950;
  font-size:1.35rem;
  line-height:1.45;
  text-align:left;
  border:0;
  padding:0;
}
.rental-two-col{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:34px;
  align-items:center;
}
.rental-photo{
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(78,96,61,.12);
}
.rental-photo img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
}
.recommend-list{
  list-style:none;
  padding:0;
  margin:24px 0 0;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.recommend-list li{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(78,96,61,.12);
  border-radius:18px;
  padding:13px 15px;
  color:#465544;
  font-weight:800;
}
.recommend-list li::before{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  font-size:.75rem;
  margin-right:8px;
}
.price-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.price-row{
  display:grid;
  grid-template-columns:210px 1fr;
  border-bottom:1px solid rgba(78,96,61,.12);
}
.price-row:last-child{border-bottom:none}
.price-row dt{
  margin:0;
  background:rgba(237,243,223,.75);
  color:var(--green-950);
  font-weight:900;
  padding:17px 20px;
}
.price-row dd{
  margin:0;
  padding:17px 22px;
  color:#3f4c3e;
  font-weight:700;
}
.price-row .em{
  color:var(--terra);
  font-size:1.35rem;
  font-weight:950;
}
.reason-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.reason-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:0 14px 38px rgba(36,68,38,.09);
}
.reason-card img{
  width:100%;
  height:178px;
  object-fit:cover;
}
.reason-body{padding:22px}
.reason-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;height:34px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  font-weight:900;
  margin-bottom:10px;
}
.reason-body h3{
  margin:0 0 .55rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.2rem;
}
.reason-body p{
  margin:0;
  color:#55614f;
  font-size:.92rem;
}
.season-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.season-card{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  padding:28px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.season-card h3{
  margin:0 0 .8rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.35rem;
}
.veggie-tags{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.veggie-tags span{
  background:var(--green-100);
  color:var(--green-900);
  border:1px solid rgba(61,117,66,.18);
  border-radius:999px;
  padding:.35rem .75rem;
  font-weight:800;
  font-size:.9rem;
}
.flow{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  counter-reset:flow;
}
.flow-step{
  counter-increment:flow;
  position:relative;
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  padding:24px 18px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.flow-step::before{
  content:counter(flow, decimal-leading-zero);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;height:42px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  font-weight:900;
  margin-bottom:12px;
}
.flow-step h3{
  margin:0 0 .45rem;
  color:var(--green-950);
  font-size:1.08rem;
}
.flow-step p{
  margin:0;
  color:#55614f;
  font-size:.9rem;
}
.faq-list{
  display:grid;
  gap:12px;
}
.faq-item{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:18px;
  padding:20px 24px;
  box-shadow:0 10px 24px rgba(36,68,38,.06);
}
.faq-item h3{
  margin:0 0 .45rem;
  color:var(--green-950);
  font-size:1.04rem;
}
.faq-item h3::before{
  content:"Q.";
  color:var(--terra);
  margin-right:.45rem;
}
.faq-item p{
  margin:0;
  color:#55614f;
}
.rental-cta{
  background:
    linear-gradient(135deg, rgba(47,97,57,.90), rgba(21,54,31,.94)),
    url("../images/rental/rental-plan-field.jpg") center/cover no-repeat;
  color:#fff;
  border-radius:var(--radius-xl);
  padding:44px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  box-shadow:0 22px 60px rgba(21,54,31,.20);
}
.rental-cta h2{
  margin:0 0 .35rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2.1rem;
}
.rental-cta p{
  margin:0;
  color:rgba(255,255,255,.86);
}
@media (max-width:1080px){
  .summary-grid,.reason-grid{grid-template-columns:repeat(2,1fr)}
  .rental-two-col{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  .page-hero{
    min-height:540px;
    background-position:center center;
  }
  .page-hero.rental-hero{
    background-image:
      linear-gradient(180deg, rgba(255,250,240,.86), rgba(255,250,240,.72)),
      url("../images/rental/rental-hero.jpg");
  }
  .page-hero h1{font-size:2.45rem}
  .summary-grid,.reason-grid,.season-grid,.flow{grid-template-columns:1fr}
  .recommend-list{grid-template-columns:1fr}
  .price-row{grid-template-columns:1fr}
  .price-row dt{padding-bottom:6px}
  .price-row dd{padding-top:8px}
  .rental-cta{grid-template-columns:1fr;padding:30px}
  .rental-cta .button{width:100%}
}


/* Small Farming Lab page */
.page-hero.lab-hero{
  background-image:
    linear-gradient(90deg, rgba(255,250,240,.97) 0%, rgba(255,250,240,.88) 38%, rgba(255,250,240,.48) 68%, rgba(255,250,240,.14) 100%),
    url("../images/lab/lab-hero.jpg");
}

.lab-concept{
  margin-top:-46px;
  position:relative;
  z-index:5;
}
.concept-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.compare-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  padding:30px;
  box-shadow:var(--shadow);
}
.compare-card.highlight{
  background:linear-gradient(135deg,#fffdf7,#eef4df);
  border-color:rgba(61,117,66,.28);
}
.compare-card h2{
  margin:0 0 .6rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.65rem;
}
.compare-card p{
  margin:0 0 .75rem;
  color:#4d5849;
}
.compare-card ul{
  list-style:none;
  margin:1rem 0 0;
  padding:0;
  display:grid;
  gap:8px;
}
.compare-card li{
  display:flex;
  gap:8px;
  align-items:flex-start;
  color:#465544;
  font-weight:750;
}
.compare-card li::before{
  content:"✓";
  flex:0 0 auto;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:.72rem;
  margin-top:.25em;
}
.lab-visual-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:34px;
  align-items:center;
}
.lab-photo-stack{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.lab-photo-stack img{
  width:100%;
  height:210px;
  object-fit:cover;
  border-radius:var(--radius-lg);
  box-shadow:0 14px 36px rgba(36,68,38,.10);
  border:1px solid rgba(78,96,61,.12);
}
.lab-photo-stack img:first-child{
  grid-column:1 / -1;
  height:300px;
}

.lab-process-illustration{
  display:block;
}
.lab-process-illustration img{
  width:100%;
  display:block;
  border-radius:var(--radius-lg);
  box-shadow:0 14px 36px rgba(36,68,38,.10);
  border:1px solid rgba(78,96,61,.12);
}
.lab-service-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
}
.lab-service{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  padding:24px 18px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
  text-align:center;
}
.lab-service .symbol{
  width:54px;height:54px;
  margin:0 auto 13px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:var(--green-100);
  color:var(--green-900);
  font-weight:950;
  font-size:1.25rem;
}
.lab-service h3{
  margin:0 0 .5rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.16rem;
  line-height:1.35;
}
.lab-service p{
  margin:0;
  color:#55614f;
  font-size:.88rem;
}
.lab-needed{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.needed-card{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:30px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.needed-card h3{
  margin:0 0 .8rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.45rem;
}
.needed-card p{
  margin:0;
  color:#4d5849;
}
.needed-card.important{
  background:linear-gradient(135deg,rgba(47,97,57,.95),rgba(21,54,31,.94));
  color:#fff;
}
.needed-card.important h3{color:#fff}
.needed-card.important p{color:rgba(255,255,255,.86)}
.warn-box{
  margin-top:22px;
  background:#fff8ef;
  border:1px solid rgba(207,117,74,.22);
  border-radius:var(--radius-lg);
  padding:22px 24px;
  color:#4f4338;
}
.warn-box strong{
  display:block;
  color:var(--terra-dark);
  margin-bottom:.35rem;
}
.involve-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
}
.involve-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  padding:22px 18px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.involve-card h3{
  margin:0 0 .45rem;
  color:var(--green-950);
  font-size:1.05rem;
}
.involve-card p{
  margin:0;
  color:#55614f;
  font-size:.88rem;
}
.lab-gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.lab-gallery img{
  width:100%;
  aspect-ratio:1.35/1;
  object-fit:cover;
  border-radius:var(--radius-lg);
  box-shadow:0 14px 36px rgba(36,68,38,.08);
  border:1px solid rgba(78,96,61,.12);
}
.lab-cta{
  background:
    linear-gradient(135deg, rgba(47,97,57,.92), rgba(21,54,31,.94)),
    url("../images/lab/lab-work.jpg") center/cover no-repeat;
  color:#fff;
  border-radius:var(--radius-xl);
  padding:44px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  box-shadow:0 22px 60px rgba(21,54,31,.20);
}
.lab-cta h2{
  margin:0 0 .35rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2.1rem;
}
.lab-cta p{
  margin:0;
  color:rgba(255,255,255,.86);
}
@media (max-width:1080px){
  .concept-grid,.lab-visual-grid,.lab-needed{grid-template-columns:1fr}
  .lab-service-grid{grid-template-columns:repeat(2,1fr)}
  .involve-grid{grid-template-columns:repeat(2,1fr)}
  .lab-gallery{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:680px){
  .page-hero.lab-hero{
    background-image:
      linear-gradient(180deg, rgba(255,250,240,.86), rgba(255,250,240,.72)),
      url("../images/lab/lab-hero.jpg");
  }
  .lab-service-grid,.involve-grid,.lab-gallery{grid-template-columns:1fr}
  .lab-photo-stack{grid-template-columns:1fr}
  .lab-photo-stack img,
  .lab-photo-stack img:first-child{height:220px;grid-column:auto}
  .lab-cta{grid-template-columns:1fr;padding:30px}
  .lab-cta .button{width:100%}
}


/* Agri IT page */
.page-hero.agri-it-hero{
  background-image:
    linear-gradient(90deg, rgba(255,250,240,.97) 0%, rgba(255,250,240,.88) 38%, rgba(255,250,240,.54) 68%, rgba(255,250,240,.16) 100%),
    url("../images/agri-it/it-hero.jpg");
}
.it-intro{
  margin-top:-46px;
  position:relative;
  z-index:5;
}
.it-intro-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  padding:34px;
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:34px;
  align-items:center;
}
.it-intro-card img{
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:0 14px 36px rgba(36,68,38,.10);
}
.it-intro-card p{
  color:#4d5849;
}
.problem-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
}
.problem-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  padding:22px 18px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.problem-card strong{
  display:block;
  color:var(--green-950);
  margin-bottom:.45rem;
  line-height:1.45;
}
.problem-card p{
  margin:0;
  color:#55614f;
  font-size:.88rem;
}
.feature-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
.feature-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:0 14px 38px rgba(36,68,38,.09);
}
.feature-card img{
  width:100%;
  height:270px;
  object-fit:cover;
}
.feature-body{
  padding:28px;
}
.feature-body .tag{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.32rem .72rem;
  background:var(--green-100);
  color:var(--green-900);
  font-size:.82rem;
  font-weight:900;
  margin-bottom:10px;
}
.feature-body h3{
  margin:0 0 .65rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.55rem;
  line-height:1.35;
}
.feature-body p{
  margin:0;
  color:#4d5849;
}
.field-table{
  background:#fff;
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.field-row{
  display:grid;
  grid-template-columns:190px 1fr;
  border-bottom:1px solid rgba(78,96,61,.12);
}
.field-row:last-child{border-bottom:none}
.field-row dt{
  margin:0;
  background:rgba(237,243,223,.75);
  color:var(--green-950);
  font-weight:900;
  padding:17px 20px;
}
.field-row dd{
  margin:0;
  padding:17px 22px;
  color:#3f4c3e;
  font-weight:700;
}
.it-philosophy{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:start;
}
.philosophy-card{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:30px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.philosophy-card.important{
  background:linear-gradient(135deg,rgba(47,97,57,.95),rgba(21,54,31,.94));
  color:#fff;
}
.philosophy-card h3{
  margin:0 0 .8rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.45rem;
}
.philosophy-card.important h3{color:#fff}
.philosophy-card p{
  margin:0 0 .8rem;
  color:#4d5849;
}
.philosophy-card.important p{color:rgba(255,255,255,.86)}
.issue-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.issue-item{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:18px;
  padding:18px 20px;
  box-shadow:0 10px 24px rgba(36,68,38,.06);
  color:#465544;
  font-weight:800;
}
.issue-item::before{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  font-size:.72rem;
  margin-right:8px;
}
.dev-note{
  margin-top:22px;
  background:#fff8ef;
  border:1px solid rgba(207,117,74,.22);
  border-radius:var(--radius-lg);
  padding:22px 24px;
  color:#4f4338;
}
.dev-note strong{
  display:block;
  color:var(--terra-dark);
  margin-bottom:.35rem;
}
.it-cta{
  background:
    linear-gradient(135deg, rgba(47,97,57,.92), rgba(21,54,31,.94)),
    url("../images/agri-it/agri-it-illustration.jpg") center/cover no-repeat;
  color:#fff;
  border-radius:var(--radius-xl);
  padding:44px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  box-shadow:0 22px 60px rgba(21,54,31,.20);
}
.it-cta h2{
  margin:0 0 .35rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2.1rem;
}
.it-cta p{
  margin:0;
  color:rgba(255,255,255,.86);
}
@media (max-width:1080px){
  .it-intro-card,.it-philosophy{grid-template-columns:1fr}
  .problem-grid{grid-template-columns:repeat(2,1fr)}
  .feature-grid{grid-template-columns:1fr}
  .issue-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:680px){
  .page-hero.agri-it-hero{
    background-image:
      linear-gradient(180deg, rgba(255,250,240,.88), rgba(255,250,240,.74)),
      url("../images/agri-it/it-hero.jpg");
  }
  .problem-grid,.issue-grid{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  .field-row dt{padding-bottom:6px}
  .field-row dd{padding-top:8px}
  .feature-card img{height:220px}
  .it-cta{grid-template-columns:1fr;padding:30px}
  .it-cta .button{width:100%}
}


/* Company page */
.page-hero.company-hero{
  background-image:
    linear-gradient(90deg, rgba(255,250,240,.97) 0%, rgba(255,250,240,.88) 38%, rgba(255,250,240,.52) 68%, rgba(255,250,240,.16) 100%),
    url("../images/company/company-hero.jpg");
}
.company-intro{
  margin-top:-46px;
  position:relative;
  z-index:5;
}
.company-intro-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  padding:34px;
  display:grid;
  grid-template-columns:1fr 1.08fr;
  gap:34px;
  align-items:center;
}
.company-intro-card img{
  width:100%;
  height:360px;
  object-fit:cover;
  border-radius:var(--radius-lg);
  box-shadow:0 14px 36px rgba(36,68,38,.10);
}
.company-intro-card p{
  color:#4d5849;
}
.business-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.business-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:0 14px 38px rgba(36,68,38,.09);
}
.business-card img{
  width:100%;
  height:170px;
  object-fit:cover;
  background:var(--green-100);
}
.business-card .svg-wrap{
  height:170px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#f7efdf,#eef4df);
}
.business-card .svg-wrap img{
  width:86%;
  height:130px;
  object-fit:contain;
  box-shadow:none;
}
.business-body{
  padding:24px 22px;
}
.business-body h3{
  margin:0 0 .65rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.25rem;
  line-height:1.35;
}
.business-body p{
  margin:0;
  color:#55614f;
  font-size:.92rem;
}
.message-section{
  background:linear-gradient(135deg,rgba(247,239,223,.95),rgba(239,243,223,.78));
}
.message-box{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  padding:44px;
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:36px;
}
.message-label{
  position:sticky;
  top:110px;
  align-self:start;
}
.message-label h2{
  margin:0;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2.35rem;
  line-height:1.35;
}
.message-label p{
  color:var(--muted);
  margin:.8rem 0 0;
}
.message-body p{
  margin:0 0 1.05rem;
  color:#3f4c3e;
}
.message-body .short-lines{
  margin:1.45rem 0;
  padding:1.2rem 1.4rem;
  border-left:5px solid var(--green-700);
  background:var(--green-100);
  border-radius:0 16px 16px 0;
  font-weight:850;
  color:var(--green-950);
}
.signature{
  margin-top:1.6rem;
  color:var(--green-950);
  font-weight:800;
}
.company-two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.company-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:30px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.company-card h2,
.company-card h3{
  margin:0 0 .8rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.55rem;
  line-height:1.35;
}
.company-card p{
  margin:0 0 .8rem;
  color:#4d5849;
}
.partner-list{
  list-style:none;
  padding:0;
  margin:1rem 0 0;
  display:grid;
  gap:8px;
}
.partner-list li{
  display:flex;
  gap:8px;
  align-items:flex-start;
  color:#465544;
  font-weight:750;
}
.partner-list li::before{
  content:"✓";
  flex:0 0 auto;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:.72rem;
  margin-top:.25em;
}
.profile-table{
  background:#fff;
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.profile-row{
  display:grid;
  grid-template-columns:190px 1fr;
  border-bottom:1px solid rgba(78,96,61,.12);
}
.profile-row:last-child{border-bottom:none}
.profile-row dt{
  margin:0;
  background:rgba(237,243,223,.75);
  color:var(--green-950);
  font-weight:900;
  padding:17px 20px;
}
.profile-row dd{
  margin:0;
  padding:17px 22px;
  color:#3f4c3e;
  font-weight:700;
}
.instagram-company{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:24px;
  align-items:center;
}
.instagram-company .thumb-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.instagram-company .thumb-grid img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:10px;
}
.company-cta{
  background:
    linear-gradient(135deg, rgba(47,97,57,.92), rgba(21,54,31,.94)),
    url("../images/company/company-field.jpg") center/cover no-repeat;
  color:#fff;
  border-radius:var(--radius-xl);
  padding:44px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  box-shadow:0 22px 60px rgba(21,54,31,.20);
}
.company-cta h2{
  margin:0 0 .35rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2.1rem;
}
.company-cta p{
  margin:0;
  color:rgba(255,255,255,.86);
}
@media (max-width:1080px){
  .company-intro-card,.message-box,.company-two-col,.instagram-company{grid-template-columns:1fr}
  .business-grid{grid-template-columns:repeat(2,1fr)}
  .message-label{position:static}
}
@media (max-width:680px){
  .page-hero.company-hero{
    background-image:
      linear-gradient(180deg, rgba(255,250,240,.88), rgba(255,250,240,.74)),
      url("../images/company/company-hero.jpg");
  }
  .company-intro-card,.message-box{padding:26px}
  .business-grid{grid-template-columns:1fr}
  .profile-row{grid-template-columns:1fr}
  .profile-row dt{padding-bottom:6px}
  .profile-row dd{padding-top:8px}
  .instagram-company .thumb-grid{grid-template-columns:repeat(2,1fr)}
  .company-cta{grid-template-columns:1fr;padding:30px}
  .company-cta .button{width:100%}
}


/* Contact page */
.page-hero.contact-hero{
  background-image:
    linear-gradient(90deg, rgba(255,250,240,.97) 0%, rgba(255,250,240,.88) 38%, rgba(255,250,240,.52) 68%, rgba(255,250,240,.16) 100%),
    url("../images/contact/contact-hero.jpg");
}
.contact-main{
  margin-top:-46px;
  position:relative;
  z-index:5;
}
.contact-panel{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  padding:34px;
}
.contact-panel-head{
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  margin-bottom:24px;
}
.contact-panel-head h2{
  margin:0;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2rem;
  line-height:1.35;
}
.contact-panel-head p{
  margin:.45rem 0 0;
  color:#4d5849;
}
.contact-methods{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.contact-method{
  background:linear-gradient(135deg,#fffdf7,#f4efdf);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-lg);
  padding:24px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.contact-icon{
  width:52px;
  height:52px;
  border-radius:18px;
  background:var(--green-100);
  color:var(--green-900);
  display:grid;
  place-items:center;
  font-weight:950;
  font-size:1.15rem;
  margin-bottom:14px;
}
.contact-method h3{
  margin:0 0 .4rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.35rem;
}
.contact-value{
  margin:0 0 1rem;
  color:#394737;
  font-weight:900;
  word-break:break-all;
}
.contact-method p{
  margin:0 0 1rem;
  color:#55614f;
  font-size:.92rem;
}
.contact-method .button{
  min-height:42px;
  padding:.65rem 1.1rem;
  box-shadow:none;
}
.inquiry-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.inquiry-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:30px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.inquiry-card h2,
.inquiry-card h3{
  margin:0 0 .8rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.55rem;
  line-height:1.35;
}
.inquiry-card p{
  margin:0 0 .8rem;
  color:#4d5849;
}
.inquiry-list{
  list-style:none;
  padding:0;
  margin:1rem 0 0;
  display:grid;
  gap:8px;
}
.inquiry-list li{
  display:flex;
  gap:8px;
  align-items:flex-start;
  color:#465544;
  font-weight:750;
}
.inquiry-list li::before{
  content:"✓";
  flex:0 0 auto;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--green-700);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:.72rem;
  margin-top:.25em;
}
.tell-list{
  list-style:none;
  padding:0;
  margin:1rem 0 0;
  display:grid;
  gap:10px;
}
.tell-list li{
  background:var(--green-100);
  border:1px solid rgba(61,117,66,.16);
  border-radius:16px;
  padding:12px 14px;
  color:var(--green-950);
  font-weight:850;
}
.contact-info-box{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:24px;
  align-items:stretch;
}
.access-card{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:30px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.access-card h2{
  margin:0 0 .8rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.55rem;
  line-height:1.35;
}
.access-table{
  margin-top:1rem;
  display:grid;
  gap:0;
  border:1px solid rgba(78,96,61,.12);
  border-radius:18px;
  overflow:hidden;
}
.access-row{
  display:grid;
  grid-template-columns:120px 1fr;
  border-bottom:1px solid rgba(78,96,61,.12);
}
.access-row:last-child{border-bottom:none}
.access-row dt{
  margin:0;
  background:rgba(237,243,223,.75);
  color:var(--green-950);
  font-weight:900;
  padding:13px 14px;
}
.access-row dd{
  margin:0;
  padding:13px 16px;
  color:#3f4c3e;
  font-weight:700;
}
.contact-photo{
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(78,96,61,.12);
}
.contact-photo img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
}


.contact-map{
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(78,96,61,.12);
  min-height:360px;
  background:#fff;
}
.contact-map iframe{
  width:100%;
  height:100%;
  min-height:360px;
  border:0;
  display:block;
}
.contact-cta{
  background:
    linear-gradient(135deg, rgba(47,97,57,.92), rgba(21,54,31,.94)),
    url("../images/contact/contact-field.jpg") center/cover no-repeat;
  color:#fff;
  border-radius:var(--radius-xl);
  padding:44px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  box-shadow:0 22px 60px rgba(21,54,31,.20);
}
.contact-cta h2{
  margin:0 0 .35rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2.1rem;
}
.contact-cta p{
  margin:0;
  color:rgba(255,255,255,.86);
}
@media (max-width:1080px){
  .contact-panel-head,.contact-info-box{grid-template-columns:1fr}
  .contact-methods{grid-template-columns:1fr}
  .inquiry-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .page-hero.contact-hero{
    background-image:
      linear-gradient(180deg, rgba(255,250,240,.88), rgba(255,250,240,.74)),
      url("../images/contact/contact-hero.jpg");
  }
  .contact-panel,.inquiry-card,.access-card{padding:26px}
  .access-row{grid-template-columns:1fr}
  .access-row dt{padding-bottom:6px}
  .access-row dd{padding-top:8px}
  .contact-cta{grid-template-columns:1fr;padding:30px}
  .contact-cta .button{width:100%}
}


/* Agri IT revised page */
.agri-revised .page-hero.agri-it-hero{
  background-image:
    linear-gradient(90deg, rgba(255,250,240,.97) 0%, rgba(255,250,240,.88) 38%, rgba(255,250,240,.54) 68%, rgba(255,250,240,.16) 100%),
    url("../images/agri-it/it-hero.jpg");
}
.rootwave-definition{
  margin-top:-46px;
  position:relative;
  z-index:5;
}
.rootwave-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  padding:34px;
  display:grid;
  grid-template-columns:1fr 1.12fr;
  gap:34px;
  align-items:center;
}
.rootwave-card img{
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:0 14px 36px rgba(36,68,38,.10);
}
.rootwave-card p{
  color:#4d5849;
}
.rootwave-features{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
.rootwave-feature{
  background:#fff;
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:0 14px 38px rgba(36,68,38,.09);
}
.rootwave-feature img{
  width:100%;
  height:250px;
  object-fit:cover;
  background:linear-gradient(135deg,#f7efdf,#eef4df);
}
.rootwave-feature svg{
  width:100%;
  height:250px;
  display:block;
}
.rootwave-feature-body{
  padding:28px;
}
.rootwave-feature-body .tag{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.32rem .72rem;
  background:var(--green-100);
  color:var(--green-900);
  font-size:.82rem;
  font-weight:900;
  margin-bottom:10px;
}
.rootwave-feature-body h3{
  margin:0 0 .65rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.52rem;
  line-height:1.35;
}
.rootwave-feature-body p{
  margin:0 0 .8rem;
  color:#4d5849;
}
.rootwave-feature-body p:last-child{margin-bottom:0}
.rootwave-table{
  background:#fff;
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.rootwave-row{
  display:grid;
  grid-template-columns:190px 1fr;
  border-bottom:1px solid rgba(78,96,61,.12);
}
.rootwave-row:last-child{border-bottom:none}
.rootwave-row dt{
  margin:0;
  background:rgba(237,243,223,.75);
  color:var(--green-950);
  font-weight:900;
  padding:17px 20px;
}
.rootwave-row dd{
  margin:0;
  padding:17px 22px;
  color:#3f4c3e;
  font-weight:700;
}
.rootwave-philosophy{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:start;
}
.rootwave-note{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:30px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.rootwave-note.important{
  background:linear-gradient(135deg,rgba(47,97,57,.95),rgba(21,54,31,.94));
  color:#fff;
}
.rootwave-note h3{
  margin:0 0 .8rem;
  color:var(--green-950);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.45rem;
}
.rootwave-note.important h3{color:#fff}
.rootwave-note p{
  margin:0 0 .8rem;
  color:#4d5849;
}
.rootwave-note.important p{color:rgba(255,255,255,.86)}
.rootwave-collab{
  background:#fff8ef;
  border:1px solid rgba(207,117,74,.22);
  border-radius:var(--radius-xl);
  padding:30px;
  color:#4f4338;
  box-shadow:0 14px 36px rgba(36,68,38,.06);
}
.rootwave-collab h2{
  margin:0 0 .8rem;
  color:var(--terra-dark);
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:1.65rem;
}
.rootwave-collab p{
  margin:0 0 .8rem;
}
.rootwave-cta{
  background:
    linear-gradient(135deg, rgba(47,97,57,.92), rgba(21,54,31,.94)),
    url("../images/agri-it/agri-it-illustration.jpg") center/cover no-repeat;
  color:#fff;
  border-radius:var(--radius-xl);
  padding:44px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  box-shadow:0 22px 60px rgba(21,54,31,.20);
}
.rootwave-cta h2{
  margin:0 0 .35rem;
  font-family:"Noto Serif JP","Yu Mincho",serif;
  font-size:2.1rem;
}
.rootwave-cta p{
  margin:0;
  color:rgba(255,255,255,.86);
}
@media (max-width:1080px){
  .rootwave-card,.rootwave-philosophy{grid-template-columns:1fr}
  .rootwave-features{grid-template-columns:1fr}
}
@media (max-width:680px){
  .agri-revised .page-hero.agri-it-hero{
    background-image:
      linear-gradient(180deg, rgba(255,250,240,.88), rgba(255,250,240,.74)),
      url("../images/agri-it/it-hero.jpg");
  }
  .rootwave-card,.rootwave-note,.rootwave-collab{padding:26px}
  .rootwave-feature img{height:220px}
  .rootwave-row{grid-template-columns:1fr}
  .rootwave-row dt{padding-bottom:6px}
  .rootwave-row dd{padding-top:8px}
  .rootwave-cta{grid-template-columns:1fr;padding:30px}
  .rootwave-cta .button{width:100%}
}

@media (max-width:760px){
  .lab-process-illustration img{height:auto}
}


.instagram-collage{
  margin-top: 18px;
}
.instagram-collage img{
  display:block;
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:0 14px 36px rgba(36,68,38,.10);
  border:1px solid rgba(78,96,61,.12);
}




/* Rental page - taste experience */
.taste-experience{
  background:linear-gradient(135deg,rgba(247,239,223,.92),rgba(239,243,223,.72));
}
.taste-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:34px;
  align-items:center;
}
.taste-copy{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:34px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.taste-copy .section-copy{
  margin-bottom:.85rem;
}
.small-note{
  margin:1.1rem 0 0;
  padding:14px 16px;
  border-radius:16px;
  background:#fff8ef;
  border:1px solid rgba(207,117,74,.22);
  color:#5a4b3d;
  font-size:.9rem;
  line-height:1.75;
}
.taste-photo-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.taste-photo-grid img{
  width:100%;
  height:210px;
  object-fit:cover;
  border-radius:var(--radius-lg);
  border:1px solid rgba(78,96,61,.12);
  box-shadow:0 14px 36px rgba(36,68,38,.10);
}
.taste-photo-grid img:first-child{
  grid-column:1 / -1;
  height:300px;
}
@media (max-width:1080px){
  .taste-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .taste-copy{padding:26px}
  .taste-photo-grid{grid-template-columns:1fr}
  .taste-photo-grid img,
  .taste-photo-grid img:first-child{height:220px;grid-column:auto}
}


/* SEO area note */
.area-note-card{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(78,96,61,.12);
  border-radius:var(--radius-xl);
  padding:34px;
  box-shadow:0 14px 36px rgba(36,68,38,.08);
}
.area-note-card p{
  color:#4d5849;
  margin:0 0 .85rem;
}
.area-note-card p:last-child{
  margin-bottom:0;
}


/* Company page - text-only About us */
.company-intro-card.company-intro-text-only{
  display:block;
  max-width:1040px;
  margin:0 auto;
  padding:44px;
}
.company-intro-card.company-intro-text-only .section-title{
  margin-bottom:1rem;
}
.company-intro-card.company-intro-text-only p{
  max-width:880px;
  font-size:1.02rem;
  line-height:2;
}
@media (max-width:680px){
  .company-intro-card.company-intro-text-only{
    padding:30px 26px;
  }
}


/* Company page - layout cleanup */
.company-intro-card.company-intro-text-only{
  display:block;
  max-width:none;
  width:100%;
  margin:0;
  padding:34px;
}
.company-intro-card.company-intro-text-only p{
  max-width:none;
}
.business-card{
  display:flex;
  flex-direction:column;
}
.business-card .business-body{
  padding:28px 24px;
}
.business-card .business-body h3{
  min-height:0;
}
@media (max-width:680px){
  .company-intro-card.company-intro-text-only{
    padding:26px;
  }
}





/* Home page - corrected "こんな方へ" list layout */
.home-for-who-section-fixed .home-for-who-card-fixed{
  width:100%;
}
.home-for-who-section-fixed .home-for-who-card-fixed .home-for-who-list-fixed{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:1rem !important;
  width:100% !important;
  max-width:none !important;
  margin:1.1rem 0 0 !important;
  padding:0 !important;
  columns:auto !important;
  writing-mode:horizontal-tb !important;
}
.home-for-who-section-fixed .home-for-who-card-fixed .home-for-who-list-fixed > li{
  display:flex !important;
  align-items:flex-start !important;
  gap:.65rem !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.75 !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  writing-mode:horizontal-tb !important;
}
.home-for-who-section-fixed .home-for-who-card-fixed .home-for-who-list-fixed > li::before{
  flex:0 0 auto !important;
}
.home-for-who-section-fixed .home-for-who-card-fixed .home-for-who-list-fixed > li > *{
  max-width:none !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  writing-mode:horizontal-tb !important;
}


/* Home page - allow long "こんな方へ" item to wrap inside card */
.home-for-who-section-fixed .home-for-who-card-fixed .home-for-who-list-fixed > li{
  min-width:0 !important;
  overflow-wrap:anywhere !important;
  word-break:normal !important;
}
.home-for-who-section-fixed .home-for-who-card-fixed .home-for-who-list-fixed > li > *{
  min-width:0 !important;
  overflow-wrap:anywhere !important;
  word-break:normal !important;
}


/* Home page - final "こんな方へ" full-width card fix */
.home-for-who-final-section .home-for-who-final-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
}
.home-for-who-final-section .home-for-who-final-card{
  grid-column:1 / -1 !important;
  width:100% !important;
  max-width:none !important;
}
.home-for-who-final-section .home-for-who-final-list{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(240px, 1fr)) !important;
  gap:.9rem 34px !important;
  width:100% !important;
  max-width:none !important;
  margin:1.1rem 0 0 !important;
  padding:0 !important;
  columns:auto !important;
}
.home-for-who-final-section .home-for-who-final-list > li{
  display:flex !important;
  align-items:flex-start !important;
  gap:.65rem !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.75 !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}
.home-for-who-final-section .home-for-who-final-list > li::before{
  flex:0 0 auto !important;
}
.home-for-who-final-section .home-for-who-final-list > li > *{
  min-width:0 !important;
  max-width:none !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}
@media (max-width:760px){
  .home-for-who-final-section .home-for-who-final-list{
    grid-template-columns:1fr !important;
  }
}


/* Home page - remove dirty-looking background from land-card only */
.info-card.land-card.home-farmland-card-clean{
  background:#fff !important;
  background-image:none !important;
}
.info-card.land-card.home-farmland-card-clean::before,
.info-card.land-card.home-farmland-card-clean::after{
  content:none !important;
  display:none !important;
  background:none !important;
  background-image:none !important;
  box-shadow:none !important;
  filter:none !important;
}
.info-card.land-card.home-farmland-card-clean img,
.info-card.land-card.home-farmland-card-clean picture{
  display:none !important;
}


/* Mobile navigation - global-nav/site-nav fix */
.menu-toggle{
  display:none;
}
@media (max-width: 760px){
  .site-header,
  .site-header .container,
  .header-inner{
    position:relative;
  }

  .menu-toggle{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    border:1px solid rgba(30,70,42,.18);
    background:#fff;
    color:#173f28;
    border-radius:999px;
    padding:.68rem 1rem;
    font-weight:700;
    line-height:1;
    box-shadow:0 8px 22px rgba(30,70,42,.08);
    position:relative;
    z-index:3001;
  }

  .global-nav.site-nav,
  .site-nav{
    display:none !important;
  }

  body.nav-open .global-nav.site-nav,
  body.nav-open .site-nav{
    display:flex !important;
    position:fixed !important;
    top:72px !important;
    left:16px !important;
    right:16px !important;
    z-index:3000 !important;
    flex-direction:column !important;
    gap:4px !important;
    background:#fff !important;
    border:1px solid rgba(30,70,42,.16) !important;
    border-radius:20px !important;
    padding:14px !important;
    box-shadow:0 18px 48px rgba(30,70,42,.18) !important;
    max-height:calc(100vh - 92px) !important;
    overflow:auto !important;
  }

  body.nav-open .site-nav a{
    display:block !important;
    padding:12px 14px !important;
    border-radius:12px !important;
    color:#173f28 !important;
    text-decoration:none !important;
    font-weight:700 !important;
  }

  body.nav-open .site-nav a:hover,
  body.nav-open .site-nav a:focus{
    background:rgba(61,119,75,.08) !important;
  }
}
@media (min-width: 761px){
  .menu-toggle{
    display:none !important;
  }
}


/* Mobile menu - dedupe visible menu controls */
@media (max-width: 760px){
  a.menu-toggle,
  span.menu-toggle,
  details.mobile-menu{
    display:none !important;
  }
  button.menu-toggle{
    display:inline-flex !important;
  }
}


/* Mobile responsive typography/layout fix */
@media (max-width: 760px){
  .section,
  .company-intro,
  .cta-section,
  .info-card,
  .taste-experience{
    overflow-x:hidden;
  }

  .section-head,
  .split-section,
  .split-layout,
  .split,
  .two-column,
  .content-grid,
  .feature-split,
  .image-text,
  .about-grid,
  .taste-grid,
  .company-intro-card,
  .hero-grid,
  .intro-grid,
  .service-grid,
  .cards-grid,
  .business-grid,
  .value-grid,
  .process-grid,
  .feature-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .section-head{
    gap:1rem !important;
    align-items:start !important;
  }

  .section-title,
  .section-head h2,
  .info-card h2,
  .company-intro-card h2,
  .hero-copy h1,
  .page-hero h1,
  .lab-hero h1,
  .rental-hero h1{
    font-size:clamp(2rem, 9vw, 3.1rem) !important;
    line-height:1.25 !important;
    letter-spacing:.02em !important;
    writing-mode:horizontal-tb !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    max-width:100% !important;
  }

  .eyebrow,
  .pill,
  .label-pill{
    writing-mode:horizontal-tb !important;
    white-space:normal !important;
    width:auto !important;
    max-width:100% !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:.45rem !important;
    padding:.55rem 1rem !important;
    line-height:1.2 !important;
  }

  .section-head p,
  .lead,
  .intro-text,
  .section-copy,
  .info-card p,
  .company-intro-card p,
  .taste-copy p{
    font-size:1rem !important;
    line-height:1.9 !important;
    max-width:none !important;
    width:100% !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }

  .price-table,
  .table-card,
  .plan-table,
  .overview-table{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
  }

  .price-table th,
  .price-table td,
  .plan-table th,
  .plan-table td,
  .overview-table th,
  .overview-table td{
    font-size:1rem !important;
    line-height:1.6 !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }

  .container{
    width:min(100% - 32px, var(--container, 1120px)) !important;
  }
}

@media (max-width: 420px){
  .section-title,
  .section-head h2,
  .info-card h2,
  .company-intro-card h2,
  .hero-copy h1,
  .page-hero h1,
  .lab-hero h1,
  .rental-hero h1{
    font-size:clamp(1.75rem, 8.5vw, 2.35rem) !important;
    line-height:1.28 !important;
  }

  .section{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}


/* Company About us mobile overflow fix */
@media (max-width: 760px){
  .company-intro .container{
    width:calc(100% - 20px) !important;
    max-width:100% !important;
  }

  .company-intro-card.company-intro-text-only{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:24px 18px !important;
    overflow:hidden !important;
  }

  .company-intro-card.company-intro-text-only .section-title{
    font-size:clamp(1.95rem, 8.6vw, 2.8rem) !important;
    line-height:1.28 !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    max-width:100% !important;
  }

  .company-intro-card.company-intro-text-only p{
    width:100% !important;
    max-width:100% !important;
    margin-right:0 !important;
    padding-right:0 !important;
    font-size:.96rem !important;
    line-height:1.9 !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }
}

@media (max-width: 420px){
  .company-intro .container{
    width:calc(100% - 16px) !important;
  }

  .company-intro-card.company-intro-text-only{
    padding:22px 16px !important;
  }
}


/* Rental page - user voices */
.user-voices-section{
  background:linear-gradient(180deg, rgba(255,250,240,.62), rgba(247,239,223,.55));
}
.voice-grid{
  display:grid;
  gap:24px;
}
.voice-card{
  display:grid;
  grid-template-columns:minmax(260px, .82fr) 1.18fr;
  gap:26px;
  align-items:center;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(78,96,61,.13);
  border-radius:var(--radius-xl);
  box-shadow:0 16px 42px rgba(36,68,38,.10);
  padding:24px;
}
.voice-image{
  background:#eaf2ff;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(36,68,38,.10);
}
.voice-image img{
  width:100%;
  height:auto;
  display:block;
}
.voice-text h3{
  margin:0 0 .85rem;
  color:var(--green-950);
  font-size:1.22rem;
  line-height:1.55;
}
.voice-text blockquote{
  margin:0;
  padding:0;
  color:#35453a;
}
.voice-text blockquote p{
  margin:0 0 .9rem;
  line-height:1.95;
}
.voice-text blockquote p:last-child{
  margin-bottom:0;
}
.voice-meta{
  margin:1.1rem 0 0;
  color:var(--muted);
  font-size:.9rem;
}
@media (max-width:760px){
  .voice-card{
    grid-template-columns:1fr;
    gap:18px;
    padding:18px;
  }
  .voice-text h3{
    font-size:1.05rem;
  }
  .voice-text blockquote p{
    font-size:.96rem;
    line-height:1.85;
  }
}
