/*
Theme Name: FarmSORA
Theme URI: https://farmsora.net/
Author: FarmSORA
Author URI: https://farmsora.net/
Description: 株式会社ファームSORA公式サイト用オリジナルテーマ。らっきょう・梨・ほうれん草の産直通販サイト向けにデザインされています。
Version: 1.1.60
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: farmsora
*/


@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;800&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&family=Yomogi&display=swap');

:root{
  --green-deep:#0E6E3E;
  --green-deep-2:#083F24;
  --green-line:#0E6E3E;
  --cream:#FAFBF3;
  --ivory:#EFF7E6;
  --paper:#FFFFFF;
  --nashi:#4CAF50;
  --nashi-dark:#2E7D32;
  --rakkyo:#F2CB4E;
  --rakkyo-line:#C9971F;
  --nasu:#7B3FA0;
  --soil:#D9480F;
  --soil-light:#F2701D;
  --text:#12210F;
  --text-sub:#12210F;
  --line:#E3E8DC;
  --shadow: 0 18px 40px -20px rgba(14,110,62,0.35);
  --yellow:#FFC93C;
}

/* ============================================
   お客様の声 一覧・詳細
   ============================================ */
.voice-archive-page,
.voice-single-page{
  padding:24px 0 110px;
  background:#fffdf8;
  color:var(--text);
  overflow-x:clip;
}
.voice-page-wrap{width:100%;max-width:980px;min-width:0;}
.voice-page-head{
  text-align:center;
  margin:10px 0 52px;
}
.voice-page-head span{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-bottom:14px;
  color:var(--green-line);
  font-size:12px;
  font-weight:700;
  letter-spacing:.28em;
}
.voice-page-head span::before,
.voice-page-head span::after{
  content:"";
  width:28px;
  height:1px;
  background:currentColor;
}
.voice-page-head h1{
  margin:0;
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:clamp(32px,4vw,44px);
  font-weight:700;
  line-height:1.4;
  color:var(--green-deep-2);
}
.voice-archive-intro{
  margin-bottom:52px;
  font-size:18px;
  line-height:2;
}
.voice-archive-intro p{margin:0 0 10px;}
.voice-archive-list{
  display:grid;
  gap:28px;
}
.voice-archive-card{
  position:relative;
  background:#fff;
  border:1px solid #dce8dc;
  border-radius:14px;
  box-shadow:0 14px 34px rgba(20,76,61,.08);
  overflow:hidden;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.voice-archive-card:hover{
  transform:translateY(-3px);
  border-color:#9bbdab;
  box-shadow:0 20px 42px rgba(20,76,61,.13);
}
.voice-archive-card-link{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  padding:34px 38px 30px;
  color:inherit;
  text-decoration:none;
}
.voice-archive-card h2{
  margin:0 0 18px;
  padding-left:18px;
  border-left:5px solid var(--green-deep);
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:clamp(21px,2.5vw,26px);
  font-weight:700;
  line-height:1.55;
  color:var(--green-deep-2);
}
.voice-archive-excerpt{
  width:100%;
  min-width:0;
  max-width:100%;
  font-size:17px;
  line-height:1.9;
  color:var(--text);
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.voice-archive-excerpt p{max-width:100%;margin:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}
.voice-archive-meta{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:4px;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid #edf1eb;
  color:#5d716b;
  font-size:14px;
}
.voice-card-more{
  display:block;
  margin-top:14px;
  text-align:right;
  color:var(--green-deep);
  font-size:14px;
  font-weight:700;
}
.voice-card-more b{margin-left:5px;transition:margin-left .2s ease;}
.voice-archive-card:hover .voice-card-more b{margin-left:10px;}
.voice-pagination{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:56px;
}
.voice-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:42px;
  padding:0 12px;
  border:1px solid #cbd9cc;
  border-radius:50%;
  background:#fff;
  color:var(--green-deep);
  font-weight:700;
  text-decoration:none;
}
.voice-pagination .page-numbers.current,
.voice-pagination a.page-numbers:hover{
  border-color:var(--green-deep);
  background:var(--green-deep);
  color:#fff;
}
.voice-empty{
  padding:44px 24px;
  border-radius:14px;
  background:#fff;
  text-align:center;
  font-size:17px;
}
.voice-single-card{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  padding:48px 54px;
  border:1px solid #dce8dc;
  border-radius:16px;
  background:#fff;
  box-shadow:0 16px 40px rgba(20,76,61,.09);
  overflow:hidden;
  contain:inline-size;
}
.voice-single-card h2{
  margin:0 0 18px;
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:clamp(25px,3.4vw,34px);
  font-weight:700;
  line-height:1.55;
  color:var(--green-deep-2);
}
.voice-single-meta{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  margin-bottom:30px;
  color:#5d716b;
  font-size:14px;
}
.voice-single-image{margin:0 0 34px;}
.voice-single-image img{
  display:block;
  width:100%;
  max-height:560px;
  object-fit:cover;
  border-radius:12px;
}
.voice-single-body{
  display:block;
  position:relative;
  inset:auto;
  float:none;
  clear:both;
  width:100%;
  min-width:0;
  max-width:100%;
  margin:0;
  padding:0;
  overflow:hidden;
}
.voice-single-card .voice-single-content{
  width:100%;
  min-width:0;
  max-width:100%;
  margin:0!important;
  padding:0!important;
  display:flow-root;
  clear:both;
  font-size:18px;
  line-height:2;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.voice-single-card .voice-single-content > *{
  position:static!important;
  inset:auto!important;
  float:none!important;
  clear:both;
  display:block;
  width:auto!important;
  max-width:100%!important;
  margin-right:0!important;
  margin-left:0!important;
  transform:none!important;
}
.voice-single-card .voice-single-content .alignleft,
.voice-single-card .voice-single-content .alignright,
.voice-single-card .voice-single-content .alignwide,
.voice-single-card .voice-single-content .alignfull{
  float:none!important;
  width:100%!important;
  max-width:100%!important;
  margin-right:0!important;
  margin-left:0!important;
}
.voice-single-card .voice-single-content p,
.voice-single-card .voice-single-content a,
.voice-single-card .voice-single-content li{max-width:100%;overflow-wrap:anywhere;word-break:break-word;}
.voice-single-card .voice-single-content p{width:auto!important;margin:0 0 1.2em!important;padding:0!important;text-indent:0!important;white-space:normal;text-align:left!important;}
.voice-single-content img,
.voice-single-content iframe,
.voice-single-content video{max-width:100%;height:auto;}
.voice-single-back{text-align:center;margin-top:46px;}
.voice-single-back a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:260px;
  min-height:54px;
  padding:12px 30px;
  border:1px solid var(--green-deep);
  border-radius:999px;
  background:var(--green-deep);
  color:#fff;
  font-size:16px;
  font-weight:700;
  text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.voice-single-back a:hover{
  background:#fff;
  color:var(--green-deep);
}
@media (max-width:600px){
  .voice-archive-page,.voice-single-page{padding:8px 0 72px;}
  .voice-page-wrap{padding-right:20px;padding-left:20px;}
  .voice-page-head{margin-bottom:38px;}
  .voice-page-head h1{font-size:30px;}
  .voice-archive-intro{font-size:16px;line-height:1.9;margin-bottom:38px;}
  .voice-archive-card-link{padding:26px 22px 24px;}
  .voice-archive-card h2{padding-left:13px;font-size:21px;}
  .voice-archive-excerpt{font-size:16px;line-height:1.85;}
  .voice-single-card{padding:30px 22px;}
  .voice-single-card h2{font-size:24px;}
  .voice-single-content{position:relative;left:0;font-size:16px;line-height:1.9;text-align:left;}
  .voice-single-back a{width:100%;}
}

/* =========================================================
   Rakkyo feature page
   ========================================================= */
.rakkyo-page{overflow:hidden;background:#fffdf8;color:#143f37;}
.rakkyo-page .wrap{width:min(1180px,calc(100% - 48px));}
.rakkyo-section{position:relative;padding:96px 0;}
.rakkyo-section:nth-of-type(even){background:#f4f7f0;}
.rakkyo-heading{text-align:center;margin-bottom:42px;}
.rakkyo-heading h2{font-family:'Zen Kaku Gothic New',sans-serif;font-size:clamp(28px,3vw,42px);font-weight:700;line-height:1.45;letter-spacing:.04em;color:#154d43;margin:0;}
.rakkyo-heading span{display:block;margin-top:7px;font-size:12px;font-weight:700;letter-spacing:.25em;color:#6b9189;}
.rakkyo-heading-left{text-align:left;margin-bottom:25px;}
.rakkyo-hero{position:relative;min-height:560px;background:#f8f7ee;}
.rakkyo-hero::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(250,249,241,.98) 0%,rgba(250,249,241,.9) 31%,rgba(250,249,241,.5) 49%,rgba(250,249,241,0) 69%);}
.rakkyo-hero-photo{position:absolute;inset:0;background-size:cover;background-position:center;}
.rakkyo-hero::after{content:"";position:absolute;inset:auto 0 -1px;height:100px;background:#fffdf8;clip-path:polygon(0 58%,18% 72%,39% 42%,62% 70%,81% 50%,100% 65%,100% 100%,0 100%);}
.rakkyo-hero-inner{position:relative;z-index:2;min-height:560px;display:flex;align-items:center;}
.rakkyo-hero-copy{width:64%;padding:55px 0 82px;}
.rakkyo-hand{font-family:'Yomogi',cursive!important;font-size:20px!important;font-weight:500;transform:rotate(-3deg);transform-origin:left center;margin:0 0 32px 16px!important;color:#253b36;}
.rakkyo-hero h1{font-family:'Zen Kaku Gothic New',sans-serif;font-size:clamp(35px,3.7vw,50px);font-weight:700;line-height:1.45;letter-spacing:.035em;margin:0 0 25px;color:#103f37;text-shadow:0 1px 1px rgba(255,255,255,.8),0 0 14px rgba(255,255,255,.5);}
.rakkyo-hero h1 span{display:block;white-space:nowrap;}
.rakkyo-hero-description{font-size:18px;line-height:2;}
.rakkyo-hero-purchase{display:inline-flex;align-items:center;justify-content:center;margin-top:24px;padding:14px 34px;border:2px solid #b82f2f;border-radius:6px;background:#b82f2f;color:#fff;text-decoration:none;font-size:16px;font-weight:700;line-height:1.4;box-shadow:0 7px 18px rgba(120,25,25,.2);transition:background-color .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease;}
.rakkyo-hero-purchase:hover,.rakkyo-hero-purchase:focus-visible{background:#fff;color:#b82f2f;transform:translateY(-2px);box-shadow:0 10px 22px rgba(120,25,25,.24);}
.rakkyo-split{display:flex;align-items:center;gap:8%;}
.rakkyo-split-reverse{flex-direction:row-reverse;}
.rakkyo-copy{flex:1;font-size:17px;line-height:2;position:relative;}
.rakkyo-copy p+p{margin-top:12px;}
.rakkyo-organic-photo{flex:0 0 46%;position:relative;margin:0;}
.rakkyo-organic-photo img{width:100%;height:390px;object-fit:cover;border-radius:48% 52% 46% 54% / 48% 44% 56% 52%;}
.rakkyo-about-mobile-photo{display:none;}
.rakkyo-location{min-height:300px;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;}
.rakkyo-reasons{grid-template-columns:1fr;}
.rakkyo-reasons .nashi-reason-card h3{font-family:'Zen Kaku Gothic New',sans-serif;}
.rakkyo-season{background-image:linear-gradient(rgba(250,251,247,.78),rgba(250,251,247,.78)),url('images/rakkyo-flower-field.webp')!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;}
.rakkyo-season>.wrap{position:relative;}
.rakkyo-season-copy{width:100%;max-width:none;}
.rakkyo-season-copy p{margin:0 0 1em;}
.rakkyo-season-copy p:last-child{margin-bottom:0;}
.rakkyo-calendar-outer{position:relative;margin-top:38px;}
.rakkyo-calendar-scroll{width:100%;}
.rakkyo-calendar{background:#fff;border:1px solid #e1e9e2;}
.rakkyo-months,.rakkyo-calendar-bars{display:grid;grid-template-columns:repeat(12,minmax(64px,1fr));min-width:768px;}
.rakkyo-months span{text-align:center;padding:12px 3px;border-right:1px solid #e7ece6;font-size:14px;}
.rakkyo-calendar-bars{min-height:54px;border-top:1px solid #e1e9e2;align-items:center;}
.rakkyo-bar{grid-row:1;align-self:center;padding:8px;text-align:center;color:#fff;border-radius:20px;font-size:14px;z-index:1;}
.rakkyo-bar-plant{grid-column:8 / span 2;background:#4e9d76;}
.rakkyo-bar-flower{grid-column:10 / span 2;background:#c46b93;}
.rakkyo-bar-harvest{grid-column:5 / span 2;background:#c68b00;}
.rakkyo-photo-collage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,250px);gap:8px;width:100%;padding:8px;background:#fffdf8;}
.rakkyo-photo-collage-item{position:relative;overflow:hidden;margin:0;background:#e9eee7;}
.rakkyo-photo-collage-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.rakkyo-photo-collage-item:hover img{transform:scale(1.025);}
.rakkyo-photo-collage-item-1{grid-column:1 / 4;grid-row:1;}
.rakkyo-photo-collage-item-2{grid-column:4 / 9;grid-row:1 / 3;}
.rakkyo-photo-collage-item-3{grid-column:9 / 13;grid-row:1;}
.rakkyo-photo-collage-item-4{grid-column:1 / 4;grid-row:2;}
.rakkyo-photo-collage-item-5{grid-column:9 / 11;grid-row:2;}
.rakkyo-photo-collage-item-6{grid-column:11 / 13;grid-row:2;}
.rakkyo-photo-collage-item-2 img{object-position:center 72%;}
.rakkyo-photo-collage-item-3 img{object-position:center 42%;}
.rakkyo-photo-collage-item-5 img{object-position:center 35%;}
.rakkyo-photo-collage-item-6 img{object-position:center 70%;}
@media (max-width:760px){
  .rakkyo-calendar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .rakkyo-calendar{min-width:768px;}
  .rakkyo-calendar-outer .guide-scroll-hint{display:flex;}
}
.rakkyo-lineup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;width:100%;margin:auto;}
.rakkyo-lineup-lead{max-width:900px;margin:-18px auto 38px;text-align:left;font-size:18px;line-height:2;}
.rakkyo-lineup article{background:#fff;border-radius:9px;overflow:hidden;box-shadow:0 10px 30px rgba(18,76,67,.1);}
.rakkyo-lineup img{width:100%;height:220px;object-fit:cover;}
.rakkyo-lineup article>div{padding:24px 28px 28px;}
.rakkyo-lineup h3{font-family:'Zen Kaku Gothic New',sans-serif;font-size:23px;font-weight:700;margin-bottom:8px;color:#26332f;}
.rakkyo-lineup p{font-size:15px;line-height:1.75;min-height:53px;}
.rakkyo-lineup a,.rakkyo-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:18px;padding:10px 32px;border-radius:999px;background:#176353;color:#fff;font-weight:700;text-decoration:none;}
.rakkyo-products{background:#fbfaf5!important;}
.product-grid.rakkyo-product-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:40px !important;
}

.rakkyo-product-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:40px !important;
}
.rakkyo-product-grid .product-card{border-radius:36px 10px 36px 10px;box-shadow:6px 6px 0 var(--peach);}
.rakkyo-product-grid .product-card:not(:first-child){border-radius:36px 10px 36px 10px;box-shadow:6px 6px 0 var(--peach);}
.rakkyo-product-grid .product-card:first-child{
  grid-column:1 / -1;
  display:flex !important;
  flex-direction:row !important;
  align-items:stretch;
  gap:40px;
  border-radius:12px;
  border:2px solid #b82f2f;
  box-shadow:0 12px 36px rgba(14,110,62,0.18), 0 4px 12px rgba(14,110,62,0.12) !important;
  padding:0 !important;
}
.rakkyo-product-grid .product-card:first-child .product-photo{
  width:45% !important;
  height:auto !important;
  min-height:350px !important;
  flex-shrink:0;
  border-radius:12px;
  margin:0 !important;
  flex:0 0 45%;
  position:relative;
}
.rakkyo-product-grid .product-card:first-child .product-photo::before{
  content:'おすすめ';
  position:absolute;
  top:20px;
  left:20px;
  width:80px;
  height:80px;
  background:#b82f2f;
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:18px;
  font-family:'Zen Kaku Gothic New', sans-serif;
  box-shadow:0 4px 12px rgba(184,47,47,0.3);
  z-index:10;
}
.rakkyo-product-grid .product-card:first-child .product-body{
  width:55% !important;
  flex:1 1 55% !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
  padding:40px !important;
  grid-template-rows:unset !important;
  grid-template-columns:unset !important;
  align-content:unset !important;
  gap:0 !important;
  margin:0 !important;
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
}
.rakkyo-product-grid .product-card:first-child h3{
  font-size:28px !important;
  margin:0 0 20px 0 !important;
  align-self:auto !important;
}
.rakkyo-product-grid .product-card:first-child p{
  font-size:16px !important;
  margin:0 0 20px 0 !important;
  line-height:1.8 !important;
  align-self:auto !important;
}
.rakkyo-product-grid .product-card:first-child .product-price{
  font-size:32px !important;
  margin:0 0 30px 0 !important;
  align-self:auto !important;
  font-weight:900 !important;
  color:#b82f2f;
}
.rakkyo-product-grid .product-card:first-child .product-body-foot{
  margin-top:auto !important;
}
.rakkyo-product-grid .product-card:first-child .product-link{
  font-size:18px !important;
  font-weight:900 !important;
  padding:12px 24px;
  background:#176353;
  color:#fff;
  border-radius:8px;
  display:inline-flex;
  transition:background .25s ease, color .25s ease, transform .25s ease;
}
.rakkyo-product-grid .product-card:first-child .product-link:hover{
  background:#fff;
  color:#176353;
  transform:translateY(-2px);
}
.rakkyo-product-grid .product-card:first-child:hover{
  box-shadow:0 20px 50px rgba(14,110,62,0.25), 0 8px 20px rgba(14,110,62,0.15) !important;
}
.rakkyo-product-grid .product-card:nth-child(n+2){
  grid-column:span 1 !important;
}
.rakkyo-product-grid .product-card:nth-child(n+2) .product-body{
  display:flex !important;
  flex-direction:column !important;
  grid-template-rows:unset !important;
  grid-template-columns:unset !important;
  align-content:unset !important;
  gap:0 !important;
}
.rakkyo-product-grid .product-card:nth-child(n+2) .product-photo{
  height:220px !important;
}
.rakkyo-outline-btn{display:flex;width:max-content;max-width:100%;margin:38px auto 0;padding:12px 55px;border:1px solid #176353;border-radius:999px;color:#176353;text-decoration:none;font-weight:700;}
.rakkyo-products .rakkyo-outline-btn,.rakkyo-faq-layout>.rakkyo-outline-btn{display:flex;width:max-content;max-width:100%;margin:38px auto 0;padding:12px 55px;border:2px solid #176353;border-radius:999px;background:#176353;color:#fff;text-decoration:none;font-weight:700;transition:background-color .25s ease,color .25s ease,transform .25s ease;}
.rakkyo-products .rakkyo-outline-btn:hover,.rakkyo-products .rakkyo-outline-btn:focus-visible,.rakkyo-faq-layout>.rakkyo-outline-btn:hover,.rakkyo-faq-layout>.rakkyo-outline-btn:focus-visible{background:#fff;color:#176353;transform:translateY(-2px);}
.rakkyo-voices{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.rakkyo-voice-lead{max-width:900px;margin:-18px auto 38px;text-align:left;font-size:18px;line-height:2;}
.rakkyo-voices blockquote{margin:0;padding:34px 30px;background:var(--paper);border:0;box-shadow:6px 6px 0 var(--sky-deep);display:flex;flex-direction:column;}
.rakkyo-voices strong{display:block;min-height:55px;font-family:'Zen Kaku Gothic New',sans-serif;font-size:18px;font-weight:700;line-height:1.5;}
.rakkyo-voices p{font-size:15px;line-height:1.75;margin:15px 0;}
.rakkyo-voices cite{font-style:normal;font-size:13px;color:#5d716b;}
.rakkyo-voice-more{align-self:flex-end;margin-top:auto;padding-top:18px;color:var(--green-deep);font-size:14px;font-weight:700;text-decoration:none;}
.rakkyo-voice-more:hover,.rakkyo-voice-more:focus-visible{color:var(--green-deep-2);text-decoration:underline;}
.rakkyo-recipe{background:linear-gradient(100deg,#f2f6ef,#fffdf8)!important;}
.rakkyo-recipe-heading{position:relative;}
.rakkyo-recipe-heading-image{position:absolute;top:-105px;left:calc(50% + 255px);width:190px;height:auto;z-index:1;pointer-events:none;filter:drop-shadow(0 8px 9px rgba(38,78,67,.12));}
.rakkyo-recipe-lead{max-width:900px;margin:-18px auto 38px;text-align:left;font-size:18px;line-height:2;}
.rakkyo-recipe-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:980px;margin:0 auto;overflow:hidden;background:#fff;border-radius:30px 8px 30px 8px;box-shadow:5px 5px 0 var(--peach);}
.rakkyo-recipe-card>img{width:100%;height:100%;min-height:400px;object-fit:cover;display:block;}
.rakkyo-recipe-content{padding:28px 32px 30px;}
.rakkyo-recipe-content h3{font-family:'Zen Kaku Gothic New',sans-serif;font-size:25px;font-weight:900;color:var(--green-deep);margin-bottom:8px;}
.rakkyo-recipe-content h4{font-family:'Zen Kaku Gothic New',sans-serif;font-size:20px;font-weight:900;color:var(--green-deep);margin:16px 0 6px;padding-bottom:5px;border-bottom:2px solid var(--leaf-line);}
.rakkyo-recipe-intro{font-size:18px;line-height:1.7;}
.rakkyo-ingredients{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:0;}
.rakkyo-ingredients>div{display:flex;justify-content:space-between;gap:16px;padding:4px 0;border-bottom:1px dotted var(--line);font-size:18px;}
.rakkyo-ingredients dd{margin:0;white-space:nowrap;font-weight:700;}
.rakkyo-recipe-steps{margin:0;padding-left:1.5em;}
.rakkyo-recipe-steps li{padding-left:4px;margin-bottom:5px;font-size:18px;line-height:1.65;}
.rakkyo-bottom-cta .nashi-cta-overlay{background:linear-gradient(180deg,rgba(250,251,243,.78) 0%,rgba(250,251,243,.68) 60%,rgba(250,251,243,.78) 100%);}
.rakkyo-faq-section{background:#fff!important;}
.rakkyo-faq-layout{display:block;}
.rakkyo-faq{margin:0 auto;}
.rakkyo-faq .faq-q{width:100%;border:0;background:transparent;text-align:left;font-family:'Zen Kaku Gothic New',sans-serif;font-size:18px;font-weight:700;line-height:1.7;color:inherit;cursor:pointer;}
.rakkyo-faq-layout>.rakkyo-outline-btn{margin:34px auto 0;}
.rakkyo-page p{font-size:18px;}
@media(max-width:900px){
  .rakkyo-hero{min-height:540px;}
  .rakkyo-hero-copy{width:72%;}
  .rakkyo-recipe-card{grid-template-columns:1fr;}
  .rakkyo-recipe-card>img{height:auto;min-height:0;aspect-ratio:3/2;}
  .rakkyo-faq-layout{grid-template-columns:1fr;gap:20px;}
  .rakkyo-faq-layout>.rakkyo-outline-btn{margin:0 auto;}
}
@media(max-width:640px){
  .rakkyo-page .wrap{width:min(100% - 32px,1180px);}
  .rakkyo-section{padding:64px 0;}
  .rakkyo-heading{margin-bottom:30px;}
  .rakkyo-heading h2{font-size:26px;}
  .rakkyo-hero{min-height:590px;background:#faf8ef;}
  .rakkyo-hero::before{background:linear-gradient(180deg,rgba(250,249,241,.05) 0%,rgba(250,249,241,.16) 35%,rgba(250,249,241,.92) 63%,#faf8ef 88%);}
  .rakkyo-hero-photo{height:100%;background-image:url('images/rakkyo-hero-mobile.webp')!important;background-position:center top;background-size:cover;}
  .rakkyo-hero-inner{min-height:590px;align-items:flex-end;}
  .rakkyo-hero-copy{width:100%;padding:300px 0 74px;}
  .rakkyo-hand{font-size:16px!important;margin:0 0 18px 12px!important;}
  .rakkyo-hero h1{font-size:clamp(21px,6.4vw,27px);line-height:1.5;letter-spacing:0;}
  .rakkyo-hero h1 span:last-child{font-size:.96em;}
  .rakkyo-hero-description{font-size:15px;}
  .rakkyo-hero-purchase{width:100%;margin-top:20px;padding:14px 20px;}
  .rakkyo-photo-collage{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:180px 130px 180px 130px;gap:5px;padding:5px;}
  .rakkyo-photo-collage-item-1{grid-column:1;grid-row:2;}
  .rakkyo-photo-collage-item-2{grid-column:1 / 3;grid-row:1;}
  .rakkyo-photo-collage-item-3{grid-column:2;grid-row:2;}
  .rakkyo-photo-collage-item-4{grid-column:1 / 3;grid-row:3;}
  .rakkyo-photo-collage-item-5{grid-column:1;grid-row:4;}
  .rakkyo-photo-collage-item-6{grid-column:2;grid-row:4;}
  .rakkyo-split,.rakkyo-split-reverse{flex-direction:column;gap:35px;}
  .rakkyo-about .rakkyo-split{display:block;}
  .rakkyo-about-mobile-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;margin:0 0 28px;border-radius:22px;}
  .rakkyo-about .rakkyo-organic-photo{display:none;}
  .rakkyo-organic-photo{width:100%;flex:auto;}
  .rakkyo-organic-photo img{height:280px;border-radius:35% 65% 46% 54% / 45% 44% 56% 55%;}
  .rakkyo-location{min-height:200px;background-position:center!important;}
  .rakkyo-lineup,.rakkyo-product-grid,.rakkyo-voices{grid-template-columns:1fr;}
  .rakkyo-product-grid .product-body{grid-template-rows:auto auto auto auto;gap:12px;}
  .rakkyo-lineup p{min-height:0;}
  .rakkyo-product img{height:220px;}
  .rakkyo-product span{top:170px;}
  .rakkyo-outline-btn{width:100%;padding:12px 20px;justify-content:center;text-align:center;}
  .rakkyo-recipe-content{padding:24px 20px 26px;}
  .rakkyo-recipe-heading{padding-top:55px;}
  .rakkyo-recipe-heading-image{top:-65px;left:auto;right:0;width:108px;}
  .rakkyo-recipe-heading h2{padding-right:0;font-size:clamp(20px,6.4vw,26px);white-space:nowrap;letter-spacing:0;}
  .rakkyo-recipe-content h3{font-size:24px;}
  .rakkyo-ingredients{grid-template-columns:1fr;}
  .rakkyo-faq-layout>.rakkyo-outline-btn{margin:42px auto 0!important;}
  .rakkyo-bottom-cta .nashi-cta-inner h2{font-size:clamp(15px,4.5vw,20px);letter-spacing:-.03em;white-space:nowrap;}
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Zen Kaku Gothic New', sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.85;
  font-size:18px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:1100px; margin:0 auto; padding:0 32px;}
.wrap-full{width:100%; margin:0 auto; padding:0 40px;}
.mincho{font-family:'Zen Kaku Gothic New', sans-serif; font-weight:900;}
.eyebrow{
  font-size:12.5px; letter-spacing:0.32em; color:var(--green-line);
  font-weight:700; display:flex; align-items:center; gap:12px; margin-bottom:18px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--green-line);}
.section{padding:108px 0;}
.section-head{max-width:640px; margin:0 0 56px;}
.section-title{font-size:clamp(30px,3.8vw,46px); font-weight:900; letter-spacing:0.01em; line-height:1.4;}
.section-title .hl{
  position:relative; display:inline-block; z-index:1; padding:0 2px;
}
.section-title .hl::before{
  content:""; position:absolute; left:-4px; right:-4px; bottom:0.06em; height:0.4em;
  background:var(--yellow); z-index:-1; transform:rotate(-1.5deg);
}
.section-title .hl-alt::before{background:var(--rakkyo); transform:rotate(1.2deg);}
.section-title .accent-word{color:var(--soil);}
.section-title .full-underline{
  position:relative; display:inline-block; z-index:1; padding:0 2px;
}
.section-title .full-underline::before{
  content:""; position:absolute; left:-4px; right:-4px; bottom:0.06em; height:0.4em;
  background:var(--yellow); z-index:-1; transform:rotate(-1deg);
}
.section-title .big-num{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  color:#D9291C; font-size:1.7em; font-weight:900; margin:0 6px;
  width:1.5em; height:1.5em; border:5px solid #D9291C; border-radius:50%;
  transform:rotate(-6deg); vertical-align:middle;
}
.title-nowrap{white-space:nowrap;}
.section-head{position:relative;}
.section-head .deco-leaf{
  display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
  background:var(--green-deep); border-radius:50% 50% 50% 4px; margin-right:10px; transform:rotate(-8deg);
  vertical-align:middle;
}
.section-sub{color:var(--text-sub); font-size:18px; margin-top:16px;}
.btn{
  display:inline-flex; align-items:center; gap:10px; padding:16px 34px;
  font-size:14.5px; letter-spacing:0.08em; font-weight:700; border-radius:2px;
  transition:all .25s ease; border:1px solid transparent; cursor:pointer;
}
.btn-primary{background:var(--green-deep); color:var(--paper);}
.btn-primary:hover{background:var(--green-deep-2); transform:translateY(-2px);}
.btn-outline{border-color:rgba(255,255,255,0.55); color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,0.12);}
.btn-ghost{background:var(--green-deep); color:#fff; border:1.5px solid var(--green-deep);}
.btn-ghost:hover{background:#fff; color:var(--green-deep);}

/* ===== Header ===== */
.utility-bar{background:var(--ivory); border-bottom:1px solid var(--line);}
.utility-bar .wrap-full{display:flex; justify-content:flex-end; padding:8px 40px;}
.utility-links{display:flex; align-items:center; gap:22px; font-size:12.5px; color:var(--text-sub);}
.utility-links a{color:var(--text-sub); white-space:nowrap;}
.utility-links a:hover{color:var(--green-deep);}
.utility-cart{display:flex; align-items:center; gap:5px; font-weight:700; color:var(--green-deep) !important;}
.cart-count{
  background:var(--green-deep); color:#fff; font-size:10px; font-weight:700; border-radius:999px;
  min-width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; padding:0 4px;
}
header.main{
  background:var(--paper); position:sticky; top:0; z-index:50;
  border-bottom:1px solid var(--line);
}
header.main .wrap-full{display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap:24px;}
.logo{display:flex; align-items:center; flex-shrink:0;}
.logo-text{line-height:1;}
.logo-text .en{font-family:'Zen Kaku Gothic New',sans-serif; font-size:34px; font-weight:900; letter-spacing:0.02em; color:var(--green-deep); white-space:nowrap;}
nav.primary{display:flex; gap:22px; font-size:18px; font-weight:700; flex-wrap:nowrap; white-space:nowrap;}
nav.primary a{position:relative; padding:4px 0;}
nav.primary a::after{content:""; position:absolute; left:0; bottom:-3px; width:0; height:1.5px; background:var(--green-deep); transition:width .25s;}
nav.primary a:hover::after{width:100%;}
.header-actions{display:flex; align-items:center; gap:20px; font-size:14px; flex-shrink:0;}
.header-actions .icon-btn{display:flex; align-items:center; gap:6px; color:var(--text-sub); font-size:13px; white-space:nowrap;}
.header-phone{display:flex; align-items:center; gap:10px; white-space:nowrap;}
.header-phone .ico{
  font-size:22px; color:var(--green-deep); flex-shrink:0; line-height:1;
}
.header-phone .num{font-family:'Zen Kaku Gothic New',sans-serif; font-size:26px; font-weight:900; color:var(--green-deep); line-height:1;}
.header-cta{padding:14px 30px; font-size:14px; white-space:nowrap; border-radius:999px; background:#C1272D; border-color:#C1272D;}
.header-cta:hover{background:#9E1F24; border-color:#9E1F24;}

/* ===== Hero ===== */
.hero{
  position:relative; min-height:760px; display:flex; align-items:center;
  color:#fff; overflow:hidden;
}
.hero-slides{position:absolute; inset:0;}
.hero-slide{
  position:absolute; inset:0; opacity:0; transition:opacity 1s ease;
  background-size:cover; background-position:center;
  display:flex; align-items:center; justify-content:center; text-align:center;
}
.hero-slide.active{opacity:1;}
.hero-slide::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.05) 70%, rgba(0,0,0,0.28) 100%);
}
.hero-slide-1{background-image:url('images/home-hero.webp'); background-size:cover; background-position:78% center;}
.hero-slide-2{background-image:url('https://images.pexels.com/photos/32754341/pexels-photo-32754341.jpeg'); background-size:cover; background-position:82% center;}
.hero-photo-caption{
  position:relative; z-index:2; border:1px dashed rgba(255,255,255,0.5); border-radius:4px;
  padding:22px 34px; font-size:13px; letter-spacing:0.1em; color:rgba(255,255,255,0.85);
  background:rgba(0,0,0,0.15); backdrop-filter:blur(2px);
}
.hero .wrap-full{position:relative; z-index:3; padding-top:90px; padding-bottom:110px; width:100%;}
.hero h1{
  font-size:clamp(42px,6.8vw,84px); line-height:1.32; font-weight:900; max-width:920px;
  color:#fff; letter-spacing:0.01em;
  -webkit-text-stroke:1.5px rgba(0,0,0,0.55); paint-order:stroke fill;
  text-shadow:0 2px 4px rgba(0,0,0,0.5), 0 6px 24px rgba(0,0,0,0.4);
}
.hero h1 span{display:block;}
.hero h1 .accent{color:var(--yellow);}
.hero h1 .small{font-size:0.36em; letter-spacing:0.3em; font-weight:700; color:var(--yellow); display:block; margin-bottom:20px; -webkit-text-stroke:1px rgba(0,0,0,0.5);}
.hero-desc{
  margin-top:34px; max-width:520px; font-size:18px; color:#fff; border-top:1px solid rgba(255,255,255,0.6); padding-top:24px;
  text-shadow:0 2px 6px rgba(0,0,0,0.55); font-weight:700;
}
.hero-slider-ui{
  position:absolute; left:40px; bottom:40px; z-index:4; display:flex; align-items:center; gap:18px;
}
.hero-dots{display:flex; gap:10px;}
.hero-dots span{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,0.4); display:block; cursor:pointer;}
.hero-dots span.active{background:#fff; width:26px; border-radius:5px;}
.hero-arrows{position:absolute; right:40px; bottom:40px; z-index:4; display:flex; gap:12px;}
.hero-arrows button{
  width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,0.5); background:rgba(255,255,255,0.08);
  color:#fff; font-size:16px; cursor:pointer;
}
.hero-divider{position:absolute; left:0; bottom:-1px; width:100%; height:70px; z-index:5; display:block;}

/* ===== こだわり ===== */
.kodawari{background:var(--paper);}
.feature-block{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  padding:70px 0; border-bottom:1px solid var(--line);
}
.feature-block:last-child{border-bottom:none; padding-bottom:0;}
.feature-block.reverse .feature-photo{order:2;}
.feature-block.reverse .feature-text{order:1;}
.feature-photo{
  aspect-ratio:4/3; background-color:#1c3327; background-size:cover; background-position:center;
  border-radius:38px; box-shadow:0 20px 40px -18px rgba(14,110,62,0.4);
}
.feature-num{
  font-family:'Yomogi', sans-serif; font-weight:400; font-size:52px; line-height:1; color:#fff;
  background:var(--green-deep); width:100px; height:100px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:24px;
}
.feature-block .feature-num{transform:rotate(-6deg);}
.feature-block.reverse .feature-num{transform:rotate(5deg);}
.feature-text h3{font-size:26px; font-weight:900; margin-bottom:20px; line-height:1.5;}
.feature-text p{font-size:18px; color:var(--text); margin-bottom:16px;}
.feature-text p:last-child{margin-bottom:0;}
@media(max-width:900px){
  .feature-block, .feature-block.reverse{grid-template-columns:1fr;}
  .feature-block.reverse .feature-photo, .feature-block.reverse .feature-text{order:initial;}
}

/* ===== 商品一覧 ===== */
.products{background:var(--cream);}
.product-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.product-card{
  background:var(--paper); border:1px solid var(--line); position:relative; overflow:hidden;
  box-shadow:0 8px 24px rgba(14,110,62,0.12), 0 3px 8px rgba(14,110,62,0.08); 
  transition:transform .3s ease, box-shadow .3s ease; 
  display:flex; 
  flex-direction:column;
  border-radius:12px;
}
.product-card:hover{
  transform:translateY(-8px);
  box-shadow:0 16px 40px rgba(14,110,62,0.2), 0 6px 16px rgba(14,110,62,0.12);
}

.product-photo{
  height:190px; position:relative; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,0.85); font-size:12px; letter-spacing:0.1em; flex-shrink:0;
}
.product-photo.rakkyo{background:linear-gradient(150deg,#C7BB92,var(--rakkyo));}
.product-photo.nashi{background:linear-gradient(150deg,#9DBE5C,var(--nashi-dark));}
.product-photo.hourenso{background:linear-gradient(150deg,#4C7A3E,#28421F);}
.product-limited-tag{
  position:absolute; top:12px; left:12px; z-index:2; background:#C1272D; color:#fff;
  font-size:11.5px; font-weight:700; padding:5px 12px; letter-spacing:0.06em; border-radius:2px;
}
.product-body{padding:20px 22px 24px; display:flex; flex-direction:column; flex:1;}
.product-body .cat{font-size:11.5px; color:var(--text-sub); letter-spacing:0.08em;}
.product-body h3{font-family:'Zen Kaku Gothic New',sans-serif; font-size:21px; margin:6px 0 10px; font-weight:900;}
.product-body p{font-size:14px; color:var(--text); margin-bottom:12px;}
.product-price{font-size:16px; font-weight:900; color:#C1272D; margin:auto 0 14px; text-align:right;}
.product-body-foot{display:flex; justify-content:flex-end;}
.product-link{font-size:13.5px; font-weight:700; color:var(--green-deep); display:inline-flex; align-items:center; gap:6px;}
.products-all{text-align:center; margin-top:54px;}
@media(max-width:1100px){.product-grid{grid-template-columns:repeat(2,1fr);}}

/* ===== 季節ごよみ（シグネチャー）===== */
.calendar-section{background:var(--paper); color:var(--text); position:relative; overflow:hidden;}
.calendar-section .section-head{max-width:640px;}
.calendar-section .section-title{color:var(--text);}
.calendar-section .section-sub{color:var(--text-sub);}
.harvest-wrap{position:relative; z-index:2;}
.cal-table{border-top:2px solid var(--green-deep);}
.cal-row{display:grid; grid-template-columns:190px 1fr; align-items:center; border-bottom:1px solid var(--line); min-height:56px;}
.cal-header{border-bottom:2px solid var(--green-deep); min-height:36px;}
.cal-name{font-size:20px; font-weight:700; padding:10px 14px 10px 0; line-height:1.3; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.cal-name small{display:inline; font-size:13px; color:var(--text-sub); font-weight:400; margin-left:4px; white-space:nowrap;}
.cal-months{display:grid; grid-template-columns:repeat(36,1fr); height:100%; position:relative;}
.cal-months span{
  text-align:center; font-size:15px; font-weight:700; color:var(--green-deep); padding:8px 0; border-left:1px solid var(--line);
  white-space:nowrap; grid-column:span 3;
}
.cal-months i{
  grid-row:1; height:22px; align-self:center; border-radius:3px; background:#C1580D;
  margin:0 2px; display:block;
}
.cal-months i.rakkyo{background:#B7A876;}
.cal-months i.spinach{background:var(--nashi-dark);}
.cal-group-label{
  font-size:26px; font-weight:900; color:var(--green-deep); margin:44px 0 8px; padding-bottom:8px;
  border-bottom:1px solid var(--line);
}
.cal-note{font-size:13px; color:var(--text-sub); margin-top:18px; text-align:right;}
@media(max-width:700px){
  .cal-name{font-size:15px;} .cal-months span{font-size:12px;}
}

/* お客様の声 */
.voices{background:var(--paper);}
.voice-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.voice-card{background:var(--ivory); padding:34px 30px; border-left:3px solid var(--green-deep);}
.voice-stars{color:var(--soil-light); font-size:13px; letter-spacing:2px; margin-bottom:16px;}
.voice-card p{font-size:18px; color:var(--text); margin-bottom:22px;}
.voice-name{font-size:12.5px; color:var(--text-sub); display:flex; justify-content:space-between;}

/* ===== お知らせ + 会社概要 ===== */
.split-section{background:var(--cream);}
.split-grid{display:flex; flex-direction:column; gap:160px;}
.news-list{border-top:1px solid var(--line);}
.news-item{display:flex; gap:22px; padding:22px 0; border-bottom:1px solid var(--line); align-items:baseline;}
.news-date{font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:14px; color:var(--text-sub); flex-shrink:0; width:110px;}
.news-item p{font-size:18px;}
.news-more{margin-top:28px; text-align:right;}

.about-card{
  background:var(--green-deep); color:#fff; padding:0; position:relative; overflow:hidden;
  max-width:1100px; margin:0 auto; border-radius:2px;
  display:grid; grid-template-columns:1.15fr 1fr; align-items:stretch;
}
.about-photo-row{width:100%; height:100%; min-height:340px; object-fit:cover; display:block;}
.about-card-body{padding:50px;}
.about-info-list{list-style:none; margin:22px 0 0; border-top:1px solid rgba(255,255,255,0.2);}
.about-info-list li{
  display:flex; gap:20px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.2); font-size:15px;
}
.about-info-list .label{width:88px; flex-shrink:0; color:#C9D9A6; font-weight:700; letter-spacing:0.05em;}
.about-card h3{font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:24px; margin-bottom:16px;}
.about-card p{font-size:18px; color:#D9D3BC; margin-bottom:0;}
@media(max-width:800px){.about-card{grid-template-columns:1fr;}}
.map-section{width:100%; line-height:0;}
.map-section iframe{width:100%; height:520px; border:0; display:block;}
.full-bleed-photo{width:100%; line-height:0;}
.full-bleed-photo img{width:100%; height:560px; object-fit:cover; display:block;}
@media(max-width:700px){.full-bleed-photo img{height:320px;}}

/* ===== FAQ ===== */
.faq{background:var(--paper);}
.faq-list{max-width:820px; margin:0 auto;}
.faq-list-page{max-width:1100px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:26px 4px; cursor:pointer; font-weight:700; font-size:18px;
}
.faq-q .q-mark{font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; color:var(--green-line); font-size:18px; margin-right:14px;}
.faq-plus{font-size:20px; color:var(--green-deep); font-weight:400; transition:transform .25s;}
.faq-item.open .faq-plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-item.open .faq-a{max-height:260px;}
.faq-a p{font-size:18px; color:var(--text-sub); padding:0 4px 26px 40px;}

@media (max-width:600px){
  .faq-wrap{padding-left:16px !important; padding-right:16px !important;}
  .faq-list-page{
    max-width:none;
    background:#fff !important;
    border-radius:0 !important;
    box-shadow:none !important;
    padding:0 !important;
  }
  .faq-list-page .faq-item{padding-left:12px; padding-right:12px;}
  .faq-list-page .faq-q{padding:22px 2px; font-size:16px; gap:12px; align-items:flex-start;}
  .faq-list-page .faq-q > span:first-child{
    display:flex;
    align-items:flex-start;
    flex:1;
    min-width:0;
  }
  .faq-list-page .faq-q .q-mark{
    flex-shrink:0;
    margin-right:8px;
  }
  .faq-list-page .faq-a p{padding:0 2px 22px 30px; font-size:15px; line-height:1.8;}
}

/* ===== CTA バナー ===== */
.cta-banner{
  background:var(--yellow);
  color:var(--green-deep-2); text-align:center; padding:90px 0;
}
.cta-banner h2{font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:clamp(24px,3vw,32px); margin-bottom:34px; color:var(--green-deep-2);}
.cta-actions{display:flex; gap:24px; justify-content:center; flex-wrap:wrap; align-items:center;}
.cta-phone{
  display:flex; align-items:center; gap:16px; background:#fff;
  border:1px solid var(--line); padding:18px 34px; border-radius:2px; box-shadow:var(--shadow);
}
.cta-phone .ico{width:46px; height:46px; display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--green-deep);}
.cta-phone .num-block{text-align:left; line-height:1.3;}
.cta-phone .num-block .lbl{font-size:12px; color:var(--text-sub); letter-spacing:0.06em;}
.cta-phone .num-block .num{font-family:'Zen Kaku Gothic New',sans-serif; font-weight:900; font-size:32px; color:var(--green-deep);}
.cta-form-btn{
  background:#C1272D; color:#fff; font-size:18px; font-weight:900; padding:20px 40px;
  border-radius:2px; box-shadow:var(--shadow);
}
.cta-form-btn:hover{background:#9E1F24 !important;}

/* ===== Footer ===== */
footer{background:var(--green-deep-2); color:#C6BFA3; padding-top:80px;}
.back-to-top{
  position:fixed; right:26px; bottom:26px; z-index:60; width:52px; height:52px; border-radius:50%;
  background:var(--green-deep); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:22px; box-shadow:0 8px 24px rgba(0,0,0,0.25); transition:background .25s, transform .25s;
}
.back-to-top:hover{background:var(--green-deep-2); transform:translateY(-3px);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,0.12);}
.footer-brand .logo-text .en{color:#fff; font-size:26px;}
.footer-col ul li{margin-bottom:13px; font-size:18px;}
.footer-col ul li a{color:#fff; white-space:nowrap;}
.footer-col ul li a:hover{opacity:0.7;}
.footer-bottom{display:flex; justify-content:center; align-items:center; padding:26px 0 76px; font-size:12.5px; flex-wrap:wrap; gap:14px; color:#fff; text-align:center;}
.footer-bottom .credit{display:flex; flex-direction:column; gap:4px; align-items:center;}

@media(max-width:1024px){
  .kodawari-grid{grid-template-columns:repeat(2,1fr);}
  .product-grid{grid-template-columns:1fr;}
  .voice-grid{grid-template-columns:1fr;}
  .split-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:repeat(2,1fr);}
  .footer-brand{grid-column:1 / -1;}
  nav.primary{display:none;}
  .hero-photo-note{display:none;}
  .cal-name{font-size:11px;}
}



/* =========================================================
   Design Pattern E: 遊び心のあるナチュラル&ポップデザイン
   参考: coco-terrace はばたき農場LP のトンマナ
   ※HTML構成・文章・文字サイズは変更せず、見た目のみ全面刷新
========================================================= */
:root{
  --sky:#EAF6FC;      --sky-deep:#8BD1EE;      --sky-line:#4FB3DA;
  --leaf:#EEF8E6;     --leaf-deep:#9FD98A;     --leaf-line:#5CB25A;
  --cream:#FFFBEF;    --yellow:#FFD966;        --yellow-deep:#F5B942;
  --peach:#FFE3C7;    --pink:#FFF1D6;          --lilac:#E9E1F7;
  --green-deep:#2F8F52; --green-deep-2:#1F6E3C;
  --ink:#31402F;      --text-sub:#5B6B57;
  --paper:#FFFFFF;
  --yellow-line:#F2CB4E;
  --soil:#F2914A;     --soil-light:#FFAD6B;
  --nashi:#8BC97B;    --nashi-dark:#5CA24E;
  --rakkyo:#FFE9A8;   --rakkyo-line:#F2CB4E;
}

body{background:var(--sky); color:var(--ink);}

/* ---------- 共通の遊び心パーツ ---------- */
.section{position:relative; overflow:hidden;}
.eyebrow{
  color:var(--green-deep); font-weight:800; letter-spacing:0.24em;
}
.eyebrow::before{background:var(--yellow-deep); height:2px;}
.section-title{color:var(--ink);}
.section-title .hl::before,
.section-title .hl-alt::before,
.section-title .full-underline::before{
  background:var(--yellow); opacity:1; height:0.42em; border-radius:999px;
  transform:rotate(-1.4deg);
}
.section-title .accent-word{color:var(--green-deep);}
.section-head .deco-leaf{
  background:var(--leaf-deep); border-radius:0% 70% 70% 70%;
  box-shadow:none; transform:rotate(20deg);
}
.section-title .big-num{
  background:var(--yellow); color:var(--green-deep-2); border:none;
  box-shadow:0 0 0 4px var(--paper), 0 0 0 6px var(--yellow-deep);
  transform:rotate(-8deg);
}
.btn-primary,.btn-ghost{background:var(--green-deep); border-color:var(--green-deep); border-radius:999px;}
.btn-primary:hover,.btn-ghost:hover{background:var(--green-deep-2); border-color:var(--green-deep-2);}

/* 浮遊するパステル装飾ドット（confetti） */
.section::before{
  content:""; position:absolute; width:26px; height:26px; border-radius:50%;
  background:var(--peach); opacity:0.8; top:10%; left:4%; z-index:0;
}
.section::after{
  content:""; position:absolute; width:18px; height:18px; border-radius:50%;
  background:var(--pink); opacity:0.75; bottom:12%; right:6%; z-index:0;
}
.section > .wrap,.section > .wrap-full{position:relative; z-index:1;}

/* ---------- ヘッダー ---------- */
.utility-bar{background:var(--cream); border-bottom:1px solid var(--rakkyo-line);}
.utility-cart{color:var(--green-deep) !important;}
.cart-count{background:var(--soil);}
header.main{border-bottom:none; box-shadow:0 4px 0 var(--yellow);}
.logo-text .en{color:var(--green-deep);}
nav.primary a::after{background:var(--yellow-deep); border-radius:999px; height:3px;}
nav.primary a:hover{color:var(--green-deep);}
.header-phone .ico,.header-phone .num{color:var(--green-deep);}
.header-cta{
  background:var(--yellow); color:var(--green-deep-2) !important; border-color:var(--yellow);
  border-radius:999px; font-weight:800;
}
.header-cta:hover{background:var(--yellow-deep); border-color:var(--yellow-deep);}

/* ---------- ヒーロー：遊び心たっぷりに刷新 ---------- */
.hero{
  background:linear-gradient(180deg, var(--sky) 0%, #D8EFF9 100%);
  min-height:800px; color:var(--ink); overflow:visible;
}
/* パステルの紙吹雪装飾（複数の点をbox-shadowでばらまく） */
.hero::before{
  content:""; position:absolute; z-index:1; width:14px; height:14px; border-radius:50%;
  background:var(--peach); top:14%; left:6%;
  box-shadow:
    40px 30px 0 4px var(--pink),
    90px -10px 0 2px var(--yellow),
    140px 50px 0 0 var(--leaf-deep),
    -20px 90px 0 2px var(--sky-deep),
    720px -20px 0 4px var(--pink),
    780px 40px 0 0 var(--yellow),
    840px 100px 0 2px var(--peach),
    920px -30px 0 0 var(--leaf-deep);
  opacity:0.9;
}
.hero::after{
  content:""; position:absolute; z-index:1; width:120px; height:120px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff 0%, var(--sky) 70%, transparent 72%);
  border:3px dashed var(--sky-deep); top:6%; right:8%; opacity:0.8;
}
.hero .wrap-full{position:relative; z-index:3;}
.hero h1{color:var(--green-deep-2); text-shadow:none; -webkit-text-stroke:0;}
.hero h1 .small{
  display:inline-flex; background:var(--yellow); color:var(--green-deep-2);
  padding:5px 16px; border-radius:999px; font-size:0.32em; letter-spacing:0.18em;
  text-shadow:none; transform:rotate(-3deg); margin-bottom:6px;
}
.hero h1 .accent{
  color:var(--green-deep); background:linear-gradient(transparent 58%, var(--yellow) 58%);
}
.hero-desc{
  color:var(--ink); background:var(--paper); border:none; text-shadow:none;
  padding:18px 24px; border-radius:26px 8px 26px 8px;
  box-shadow:6px 6px 0 var(--peach);
  max-width:440px;
}
.hero-slides{
  left:auto; right:4%; top:10%; width:50%; height:78%; inset:auto;
  border-radius:44% 56% 63% 37% / 55% 45% 55% 45%;
  overflow:hidden; z-index:2;
  box-shadow:0 0 0 10px var(--paper), 0 0 0 16px var(--yellow);
  transform:rotate(-2deg);
}
.hero-slide::before{background:linear-gradient(200deg, rgba(255,255,255,0.10) 0%, rgba(46,143,82,0.16) 100%);}
.hero-slider-ui{left:6%; bottom:10%;}
.hero-dots span{background:rgba(47,143,82,0.25);}
.hero-dots span.active{background:var(--green-deep);}
.hero-arrows{right:6%; bottom:6%;}
.hero-arrows button{background:var(--paper); color:var(--green-deep); border:2px solid var(--yellow); box-shadow:3px 3px 0 var(--sky-deep);}
.hero-divider path{fill:var(--cream);}

/* ---------- こだわり：写真の後ろに大きなブロブ ---------- */
.kodawari{background:var(--cream);}
.feature-block{border-bottom:none; margin-bottom:60px; position:relative;}
.feature-block:last-child{margin-bottom:0;}
.feature-photo{
  position:relative; border-radius:42% 58% 60% 40% / 48% 40% 60% 52%;
  box-shadow:0 0 0 8px var(--paper);
}
.feature-block::before{
  content:""; position:absolute; width:88%; height:110%; top:-5%; left:-4%;
  background:var(--leaf-deep); border-radius:62% 38% 46% 54% / 40% 60% 40% 60%;
  z-index:0; opacity:0.55;
}
.feature-block.reverse::before{left:auto; right:-4%;}
.feature-photo{z-index:1;}
.feature-text{position:relative; z-index:1;}
.feature-num{
  background:var(--yellow); color:var(--green-deep-2);
  box-shadow:0 0 0 4px var(--cream), 0 0 0 6px var(--yellow-deep);
}
.feature-text h3{color:var(--green-deep-2);}

/* ---------- 商品 ---------- */
.products{background:var(--pink);}
.products .eyebrow{color:var(--soil);}
.products .eyebrow::before{background:var(--soil);}
.products .section-title .accent-word{color:var(--soil);}
.products .deco-leaf{background:var(--soil-light);}
.product-card{
  border:none; border-radius:36px 10px 36px 10px; background:var(--paper);
  box-shadow:6px 6px 0 var(--peach);
}
.product-card:hover{transform:translateY(-4px) rotate(-1deg);}
.product-price{color:var(--soil) !important;}
.product-limited-tag{background:var(--soil); border-radius:999px;}
.product-link{color:var(--green-deep);}
.products .products-all .btn-ghost{background:var(--paper); color:var(--green-deep); border:2px solid var(--green-deep);}

/* ---------- 出荷カレンダー ---------- */
.calendar-section{background:var(--sky);}
.harvest-wrap{
  background:var(--paper); border-radius:34px; padding:30px;
  box-shadow:0 0 0 3px var(--sky-deep) inset, 8px 8px 0 var(--peach);
}
.cal-header{background:var(--leaf-deep); color:var(--green-deep-2); border-radius:0;}
.cal-header .cal-months span{color:var(--green-deep-2);}
.cal-name{color:var(--green-deep-2);}
.cal-months span{color:var(--green-deep);}
.cal-months i{background:var(--soil-light); border-radius:999px;}
.cal-months i.rakkyo{background:var(--yellow-deep);}
.cal-months i.spinach{background:var(--leaf-line);}
.cal-group-label{color:var(--green-deep); border-bottom:3px dashed var(--yellow-deep);}

/* ---------- お客様の声：吹き出し風カード ---------- */
.voices{background:var(--leaf);}
.voice-card{
  background:var(--paper); border:none; border-radius:8px 30px 30px 30px;
  box-shadow:6px 6px 0 var(--sky-deep); position:relative;
}
.voice-card::after{
  content:""; position:absolute; left:26px; bottom:-12px; width:22px; height:22px;
  background:var(--paper); clip-path:polygon(0 0, 100% 0, 0 100%);
}
.voice-stars{color:var(--soil);}

/* ---------- お知らせ + 会社概要 ---------- */
.split-section{background:var(--peach);}
.news-list{
  background:var(--paper); border-radius:30px; padding:10px 30px;
  box-shadow:6px 6px 0 var(--sky-deep);
}
.news-date{background:var(--leaf-deep); color:var(--green-deep-2); border-radius:999px; padding:4px 12px;}
.about-card{
  background:var(--green-deep); border:none; border-radius:12px 42px 12px 42px;
  box-shadow:8px 8px 0 var(--yellow);
}
.about-info-list .label{color:var(--yellow);}
.about-card p{color:#fff;}

/* ---------- FAQ ---------- */
.faq{background:var(--cream);}
.faq-list{
  background:var(--paper); border-radius:30px; padding:8px 30px;
  box-shadow:6px 6px 0 var(--peach);
}
.faq-item{border-bottom:2px dashed var(--sky-deep);}
.faq-q .q-mark,.faq-plus{color:var(--soil);}

/* ---------- CTA / footer ---------- */
.cta-banner{
  background:var(--yellow) !important; border:none; border-radius:12px 44px 12px 44px;
  box-shadow:8px 8px 0 var(--green-deep);
}
.cta-form-btn{background:var(--soil) !important; color:#fff !important;}
footer{background:var(--green-deep-2); border-top:6px solid var(--yellow);}
.back-to-top{background:var(--yellow); color:var(--green-deep-2); box-shadow:3px 3px 0 var(--sky-deep);}
.back-to-top:hover{background:var(--yellow-deep);}

@media(max-width:960px){
  .hero-slides{right:auto; left:50%; transform:translateX(-50%) rotate(0deg); width:82%; top:6%; height:46%;}
  .hero .wrap-full{max-width:100%; padding-top:50%;}
  .hero-desc{max-width:100%;}
  .hero::before{display:none;}
  .hero::after{width:70px; height:70px;}
  .feature-block::before{display:none;}
}

/* =========================================================
   Farm SORA requested revision
   - Hero text/image separation
   - No pink backgrounds
   - Red contact buttons
   - Commitment/About design closer to reference screenshots
========================================================= */

/* ---------- 色味調整：ピンク背景を使わない ---------- */
:root{
  --pink:#FFF1D6;
  --sky:#F5F8F2;
  --sky-deep:#DCEFE3;
  --peach:#FFE9C8;
  --leaf:#EEF8EF;
  --leaf-deep:#BFE4A8;
  --yellow:#FFD84A;
}

body{
  background:#FFFBEF !important;
}

/* セクションの小さな丸装飾もピンクではなくベージュ・葉色に */
.section::after{
  background:#FFE9C8 !important;
}

.products,
.calendar-section{
  background:#FFFBEF !important;
}

.split-section{
  background:#FFFBEF !important;
}

.faq{
  background:#FFFFFF !important;
}

.voices{
  background:#EEF8EF !important;
}

/* ---------- お問い合わせボタン：赤 ---------- */
.header-cta,
.cta-form-btn{
  background:#C1272D !important;
  border-color:#C1272D !important;
  color:#fff !important;
}
.header-cta:hover,
.cta-form-btn:hover{
  background:#9E1F24 !important;
  border-color:#9E1F24 !important;
  color:#fff !important;
}

/* ---------- メインビジュアル：画像は右、コピーは左に分離 ---------- */
.hero{
  min-height:760px !important;
  display:block !important;
  background:
    radial-gradient(circle at 6% 18%, rgba(255,216,74,.22) 0 72px, transparent 73px),
    radial-gradient(circle at 92% 10%, rgba(14,110,62,.08) 0 120px, transparent 121px),
    #FFFBEF !important;
  color:var(--text) !important;
  overflow:hidden !important;
}

.hero::before{
  background:#FFE9C8 !important;
  box-shadow:
    40px 30px 0 4px #FFF1D6,
    90px -10px 0 2px var(--yellow),
    140px 50px 0 0 var(--leaf-deep),
    -20px 90px 0 2px var(--sky-deep),
    720px -20px 0 4px #FFF1D6,
    780px 40px 0 0 var(--yellow),
    840px 100px 0 2px #FFE9C8,
    920px -30px 0 0 var(--leaf-deep) !important;
}

.hero::after{
  background:var(--leaf-deep) !important;
}

.hero-slides{
  position:absolute !important;
  left:auto !important;
  right:0 !important;
  top:0 !important;
  bottom:0 !important;
  width:58% !important;
  height:100% !important;
  transform:none !important;
  border-radius:48% 0 0 48% / 38% 0 0 38% !important;
  overflow:hidden !important;
  box-shadow:0 22px 54px -30px rgba(14,110,62,.35) !important;
  z-index:1 !important;
}

.hero-slide{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  background-size:cover !important;
  background-position:center right !important;
}

.hero-slide::before{
  background:linear-gradient(90deg, rgba(255,251,239,.08), rgba(255,251,239,0)) !important;
}

.hero .wrap-full{
  position:relative !important;
  z-index:3 !important;
  max-width:1180px !important;
  margin:0 auto !important;
  padding:150px 40px 130px !important;
}

.hero h1{
  max-width:470px !important;
  color:var(--green-deep-2) !important;
  text-shadow:none !important;
  -webkit-text-stroke:0 !important;
  paint-order:normal !important;
  line-height:1.28 !important;
}

.hero h1 .small{
  color:var(--green-deep) !important;
  -webkit-text-stroke:0 !important;
  text-shadow:none !important;
  letter-spacing:.22em !important;
}

.hero h1 .accent{
  display:inline-block !important;
  color:var(--green-deep-2) !important;
  background:var(--yellow) !important;
  padding:.04em .18em !important;
  border-radius:999px !important;
  box-shadow:0 7px 0 rgba(242,203,78,.35) !important;
}

.hero-desc{
  max-width:430px !important;
  color:#31402F !important;
  font-weight:700 !important;
  text-shadow:none !important;
  border-top:2px dashed rgba(14,110,62,.35) !important;
}

/* 左右ボタンが写真にかかりすぎないよう調整 */
.hero-slider-ui{
  left:40px !important;
}
.hero-arrows{
  right:32px !important;
}

/* ---------- ファームSORAの3つのこだわり：参考画像風 ---------- */
.kodawari{
  background:#F7F7F1 !important;
  overflow:hidden !important;
}

.kodawari::before{
  content:"";
  position:absolute;
  left:-30px;
  top:30px;
  width:150px;
  height:48px;
  background:#fff;
  border-radius:999px;
  box-shadow:
    58px 12px 0 -10px #fff,
    1080px 24px 0 -8px #fff,
    1020px 8px 0 -14px #fff;
  opacity:.85;
}

.kodawari .section-head{
  max-width:none !important;
  text-align:center !important;
  margin:0 auto 74px !important;
}

.kodawari .eyebrow{
  justify-content:center !important;
  color:var(--green-deep) !important;
}
.kodawari .eyebrow::before{
  display:none !important;
}

.kodawari .section-title{
  font-size:clamp(28px,3.5vw,44px) !important;
  letter-spacing:.06em !important;
}

.kodawari .section-title .full-underline::before{
  display:none !important;
}

.kodawari .section-title .big-num{
  color:#fff !important;
  background:var(--green-deep) !important;
  border:none !important;
  width:1.45em !important;
  height:1.45em !important;
  box-shadow:0 6px 0 var(--yellow) !important;
}

.feature-block,
.kodawari .feature-block{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(310px,.82fr) minmax(460px,1.18fr) !important;
  gap:0 !important;
  align-items:center !important;
  border:none !important;
  padding:78px 0 118px !important;
  overflow:visible !important;
}

.feature-block.reverse .feature-photo,
.feature-block.reverse .feature-text{
  order:initial !important;
}

.kodawari .feature-text{
  position:relative !important;
  z-index:3 !important;
  background:linear-gradient(135deg,#07A875 0%,#008F68 100%) !important;
  color:#fff !important;
  padding:64px 78px 68px 58px !important;
  min-height:390px !important;
  margin-right:-96px !important;
  border-radius:48% 52% 56% 44% / 44% 58% 42% 56% !important;
  box-shadow:none !important;
}

.kodawari .feature-text::before{
  content:"";
  position:absolute;
  left:-46px;
  top:24px;
  width:92px;
  height:128px;
  background:#FFE9C8;
  border-radius:50%;
  opacity:.95;
  z-index:-1;
  box-shadow:
    78px -30px 0 -18px #FFF1D6,
    890px 24px 0 -16px #FFF1D6,
    930px 130px 0 -24px #FFE9C8;
}

.kodawari .feature-num{
  position:absolute !important;
  right:-44px !important;
  top:52px !important;
  width:92px !important;
  height:92px !important;
  margin:0 !important;
  background:var(--yellow) !important;
  color:#fff !important;
  border-radius:50% 50% 50% 8px !important;
  box-shadow:0 12px 0 rgba(0,0,0,.05) !important;
  transform:rotate(-8deg) !important;
  font-size:48px !important;
  z-index:5 !important;
}

.kodawari .feature-text h3{
  color:#fff !important;
  font-size:clamp(24px,2.2vw,34px) !important;
  line-height:1.55 !important;
  letter-spacing:.04em !important;
}

.kodawari .feature-text h3::after{
  content:"";
  display:block;
  width:54px;
  height:4px;
  background:var(--yellow);
  border-radius:999px;
  margin:20px 0 0;
}

.kodawari .feature-text p{
  color:#fff !important;
  font-size:15.5px !important;
  line-height:2.2 !important;
}

.kodawari .feature-photo{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  min-height:470px !important;
  aspect-ratio:auto !important;
  border-radius:44% 56% 52% 48% / 42% 44% 56% 58% !important;
  box-shadow:none !important;
  border:none !important;
  background-size:cover !important;
  background-position:center !important;
  overflow:hidden !important;
}

.kodawari .feature-photo::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 10px rgba(255,255,255,.8);
  pointer-events:none;
}

/* ---------- 会社概要：参考画像風 ---------- */
#about{
  background:#F7F7F1 !important;
  padding-top:120px !important;
  padding-bottom:120px !important;
  overflow:hidden !important;
}

#about .wrap{
  position:relative;
}

#about .wrap::before{
  content:"ファームSORA";
  display:block;
  text-align:center;
  color:var(--green-deep-2);
  font-size:clamp(26px,3vw,40px);
  font-weight:900;
  letter-spacing:.08em;
  margin-bottom:34px;
}

.about-card{
  display:block !important;
  max-width:980px !important;
  margin:0 auto !important;
  background:transparent !important;
  color:var(--text) !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.about-photo-row{
  width:min(860px,100%) !important;
  height:360px !important;
  min-height:0 !important;
  margin:0 auto 54px !important;
  border-radius:24px !important;
  object-fit:cover !important;
  box-shadow:none !important;
}

.about-card-body{
  display:grid !important;
  grid-template-columns:280px 1fr !important;
  gap:16px 58px !important;
  padding:0 !important;
  max-width:900px !important;
  margin:0 auto !important;
  color:var(--text) !important;
}

.about-card-body .eyebrow{
  grid-column:1 !important;
  color:var(--green-deep) !important;
  margin-bottom:0 !important;
}

.about-card-body .eyebrow::before{
  background:var(--green-deep) !important;
}

.about-card-body h3{
  grid-column:1 !important;
  color:var(--green-deep-2) !important;
  font-size:clamp(28px,3vw,42px) !important;
  line-height:1.4 !important;
  margin:0 !important;
}

.about-info-list{
  grid-column:2 !important;
  grid-row:1 / span 4 !important;
  margin:0 !important;
  border-top:none !important;
  color:var(--text) !important;
}

.about-info-list li{
  border-bottom:1px solid rgba(14,110,62,.18) !important;
  color:var(--text) !important;
  font-size:16px !important;
  padding:12px 0 !important;
}

.about-info-list .label{
  color:#2772B4 !important;
  font-weight:900 !important;
  width:92px !important;
}

.about-card-body .btn{
  grid-column:1 !important;
  width:max-content !important;
  color:var(--green-deep) !important;
  border:2px solid var(--green-deep) !important;
  background:#fff !important;
  border-radius:999px !important;
}

/* ---------- CTA：黄色背景＋赤ボタン ---------- */
.cta-banner{
  background:#FFD84A !important;
  color:var(--green-deep-2) !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.cta-phone{
  border-radius:999px !important;
}

.cta-form-btn{
  border-radius:999px !important;
}

/* ---------- レスポンシブ ---------- */
@media(max-width:960px){
  .hero{
    min-height:auto !important;
    padding-bottom:50px !important;
  }
  .hero-slides{
    position:relative !important;
    width:calc(100% - 32px) !important;
    height:360px !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    margin:28px auto 0 !important;
    border-radius:34px !important;
  }
  .hero .wrap-full{
    padding:70px 28px 20px !important;
  }
  .hero h1,
  .hero-desc{
    max-width:100% !important;
  }
  .feature-block,
  .kodawari .feature-block{
    grid-template-columns:1fr !important;
    padding:56px 0 76px !important;
  }
  .kodawari .feature-text{
    margin:0 !important;
    border-radius:34px !important;
    padding:44px 30px 40px !important;
    min-height:auto !important;
    order:2 !important;
  }
  .kodawari .feature-photo{
    min-height:320px !important;
    border-radius:34px !important;
    order:1 !important;
    margin-bottom:-20px !important;
  }
  .kodawari .feature-num{
    right:24px !important;
    top:-46px !important;
  }
  .about-card-body{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .about-info-list,
  .about-card-body .eyebrow,
  .about-card-body h3,
  .about-card-body .btn{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  .about-photo-row{
    height:280px !important;
  }
}

/* ============================================
   グローバルメニュー「こだわり」ドロップダウン
   ============================================ */
nav.primary .primary-menu{
  display:flex;
  align-items:center;
  gap:22px;
  margin:0;
  padding:0;
  list-style:none;
}
nav.primary .primary-menu > li{
  position:relative;
  margin:0;
  padding:0;
  list-style:none;
}
nav.primary .primary-menu > li > .sub-menu{
  position:absolute;
  z-index:100;
  top:calc(100% + 14px);
  left:50%;
  width:210px;
  margin:0;
  padding:10px;
  list-style:none;
  background:#fff;
  border:1px solid rgba(14,110,62,.14);
  border-radius:14px;
  box-shadow:0 16px 34px rgba(8,63,36,.18);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,-6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
nav.primary .primary-menu > li > .sub-menu::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:100%;
  width:22px;
  height:14px;
  transform:translateX(-50%);
}
nav.primary .primary-menu > li:hover > .sub-menu,
nav.primary .primary-menu > li:focus-within > .sub-menu{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}
nav.primary .sub-menu li{
  margin:0;
  list-style:none;
}
nav.primary .sub-menu a{
  display:block;
  padding:11px 14px;
  color:var(--text);
  font-size:15px;
  line-height:1.5;
  white-space:nowrap;
  border-radius:9px;
}
nav.primary .sub-menu a:hover,
nav.primary .sub-menu a:focus{
  color:var(--green-deep);
  background:var(--ivory);
}
nav.primary .sub-menu a::after{
  display:none;
}

/* スマホメニューでは子ページを常時表示 */
.mobile-nav .mobile-menu,
.mobile-nav .mobile-menu ul{
  margin:0;
  padding:0;
  list-style:none;
}
.mobile-nav .mobile-menu{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.mobile-nav .mobile-menu > li{
  margin:0;
  list-style:none;
}
.mobile-nav .sub-menu{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px !important;
  padding:12px 0 0 18px !important;
  border-top:1px dashed rgba(14,110,62,.28);
}
.mobile-nav .sub-menu a{
  position:relative;
  font-size:.88em;
  font-weight:600;
}
.mobile-nav .sub-menu a::before{
  content:"└";
  margin-right:8px;
  color:var(--green-deep);
}

@media (max-width:1200px) and (min-width:1025px){
  nav.primary .primary-menu{gap:14px;}
}


/* =========================================================
   Additional requested revisions 2026-07-21
========================================================= */

/* ---------- メインビジュアル：キャッチコピーの変な改行を防ぎ、左詰め ---------- */
@media(min-width:961px){
  .hero .wrap-full{
    max-width:1320px !important;
    padding-left:24px !important;
    padding-right:24px !important;
  }

  .hero h1{
    max-width:680px !important;
    width:48% !important;
    font-size:clamp(46px,5.2vw,78px) !important;
    letter-spacing:.01em !important;
  }

  .hero h1 span:not(.small){
    white-space:nowrap !important;
  }

  .hero-desc{
    max-width:540px !important;
    width:46% !important;
    font-size:19px !important;
  }

  .hero-slides{
    width:54% !important;
  }
}

/* ---------- こだわり：画像を大きく、緑背景を広げて読みやすく ---------- */
.kodawari .wrap{
  max-width:1360px !important;
}

.kodawari .feature-block{
  grid-template-columns:minmax(560px,1.25fr) minmax(500px,1fr) !important;
  gap:60px !important;
  padding:86px 0 132px !important;
}

.kodawari .feature-photo{
  min-height:660px !important;
  width:100% !important;
  border-radius:46% 54% 52% 48% / 42% 44% 56% 58% !important;
  transform:scale(1.04) !important;
  transform-origin:center !important;
}

.kodawari .feature-text{
  min-height:620px !important;
  width:100% !important;
  margin-right:0 !important;
  padding:78px 76px 78px 76px !important;
  border-radius:92px 140px 92px 132px / 120px 92px 132px 92px !important;
  background:linear-gradient(135deg,#08A875 0%,#008F68 100%) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.kodawari .feature-text p{
  font-size:18px !important;
  line-height:2.05 !important;
  color:#fff !important;
}

.kodawari .feature-text h3{
  font-size:clamp(26px,2.3vw,36px) !important;
  color:#fff !important;
}

.kodawari .feature-text::before{
  z-index:-1 !important;
}

.kodawari .feature-num{
  right:auto !important;
  left:-38px !important;
  top:54px !important;
  width:104px !important;
  height:104px !important;
  font-size:54px !important;
}

/* 交互レイアウトの場合も画像を大きく見せる */
.kodawari .feature-block.reverse{
  grid-template-columns:minmax(560px,1.25fr) minmax(500px,1fr) !important;
}

.kodawari .feature-block.reverse .feature-photo{
  order:1 !important;
}

.kodawari .feature-block.reverse .feature-text{
  order:2 !important;
}

/* ---------- 会社概要：見出しを「会社概要」に変更 ---------- */
#about .wrap::before{
  content:"会社概要" !important;
}

/* ---------- レスポンシブ調整 ---------- */
@media(max-width:960px){
  .hero h1{
    width:100% !important;
  }

  .hero h1 span:not(.small){
    white-space:normal !important;
  }

  .hero-desc{
    width:100% !important;
  }

  .kodawari .feature-block,
  .kodawari .feature-block.reverse{
    grid-template-columns:1fr !important;
    gap:0 !important;
    padding:64px 0 88px !important;
  }

  .kodawari .feature-photo{
    min-height:420px !important;
    transform:none !important;
    border-radius:42px !important;
  }

  .kodawari .feature-text{
    min-height:auto !important;
    padding:52px 34px 44px !important;
    border-radius:42px !important;
    margin-top:-18px !important;
  }

  .kodawari .feature-text p{
    font-size:17px !important;
    line-height:2 !important;
  }

  .kodawari .feature-num{
    left:24px !important;
    top:-52px !important;
  }
}

@media(max-width:600px){

  .company-history-timeline{
    margin-top:36px;
  }
  .company-history-timeline::before{
    left:8px;
  }
  .company-history-item{
    display:block;
    padding:0 0 34px 34px;
  }
  .company-history-item::before{
    left:0;
    top:5px;
    width:18px;
    height:18px;
  }
  .company-history-year{
    margin:0 0 6px;
    padding:0;
    font-size:18px;
    text-align:left;
  }
  .company-history-content h3{
    font-size:20px;
    margin-bottom:8px;
  }
  .company-history-content p{
    font-size:17px;
    line-height:1.85;
  }

  .kodawari .feature-photo{
    min-height:300px !important;
  }

  .kodawari .feature-text{
    padding:48px 24px 36px !important;
  }
}


/* =========================================================
   Additional requested revisions 2026-07-21 rev3
========================================================= */

/* ---------- こだわり：縦幅をコンパクトに ---------- */
.kodawari .feature-block,
.kodawari .feature-block.reverse{
  grid-template-columns:minmax(500px,1.08fr) minmax(480px,.92fr) !important;
  gap:42px !important;
  padding:56px 0 82px !important;
}

.kodawari .feature-photo{
  min-height:500px !important;
  transform:scale(1.02) !important;
}

.kodawari .feature-text{
  min-height:430px !important;
  padding:50px 58px 52px 62px !important;
  border-radius:78px 116px 78px 108px / 98px 76px 108px 78px !important;
  justify-content:center !important;
}

.kodawari .feature-text h3{
  font-size:clamp(24px,2.1vw,32px) !important;
  margin-bottom:16px !important;
}

.kodawari .feature-text h3::after{
  margin-top:14px !important;
}

.kodawari .feature-text p{
  font-size:18px !important;
  line-height:1.82 !important;
  margin-bottom:10px !important;
}

.kodawari .feature-num{
  top:38px !important;
  width:92px !important;
  height:92px !important;
  font-size:48px !important;
}

/* ---------- 会社概要：重複見出しを削除し、情報を中央寄せ ---------- */
#about .wrap::before{
  content:"会社概要" !important;
}

.about-card-body .eyebrow,
.about-card-body h3{
  display:none !important;
}

.about-card-body{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  max-width:760px !important;
  margin:0 auto !important;
  padding:0 !important;
  text-align:center !important;
  gap:0 !important;
}

.about-info-list{
  width:100% !important;
  max-width:640px !important;
  margin:0 auto !important;
  border-top:1px solid rgba(14,110,62,.16) !important;
  grid-column:auto !important;
  grid-row:auto !important;
}

.about-info-list li{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:22px !important;
  text-align:center !important;
  padding:15px 0 !important;
  border-bottom:1px solid rgba(14,110,62,.16) !important;
}

.about-info-list .label{
  width:auto !important;
  min-width:86px !important;
  color:#2772B4 !important;
  font-weight:900 !important;
  text-align:center !important;
}

.about-info-list li span:last-child{
  text-align:center !important;
}

.about-card-body .btn{
  display:inline-flex !important;
  margin:32px auto 0 !important;
  grid-column:auto !important;
  width:auto !important;
  justify-content:center !important;
  border-radius:999px !important;
}

/* ---------- SP調整 ---------- */
@media(max-width:960px){
  .kodawari .feature-block,
  .kodawari .feature-block.reverse{
    grid-template-columns:1fr !important;
    gap:0 !important;
    padding:46px 0 68px !important;
  }

  .kodawari .feature-photo{
    min-height:360px !important;
    transform:none !important;
  }

  .kodawari .feature-text{
    min-height:auto !important;
    padding:48px 30px 38px !important;
    border-radius:34px !important;
  }

  .kodawari .feature-text p{
    font-size:17px !important;
    line-height:1.9 !important;
  }

  .about-info-list li{
    flex-direction:column !important;
    gap:4px !important;
  }
}




/* =========================================================
   2026-07-22 User requested refinements
   Header / Hero layout and visual structure remain unchanged.
========================================================= */

:root{
  --revision-text:#000000;
  --revision-green:#0E6E3E;
  --revision-green-dark:#083F24;
  --revision-red:#C1272D;
  --revision-red-dark:#9E1F24;
  --revision-pale-yellow:#FFF4C7;
}

/* 通常テキスト：18px・ブラック（ヘッダーとメインビジュアルは既存デザイン維持） */
.section,
.section p,
.section li,
.section .section-sub,
.section .news-item p,
.section .voice-card p,
.section .faq-q,
.section .faq-a p,
.section .about-info-list,
.section .about-info-list li{
  color:var(--revision-text);
  font-size:18px;
}

/* 各見出し下の説明文は左寄せ */
.section .section-sub{
  text-align:left !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* 商品カード：画像を枠いっぱいに表示 */
.product-grid{
  align-items:stretch;
}
.product-card{
  height:100%;
}
.product-photo{
  width:100% !important;
  height:220px !important;
  margin:0 !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  flex-shrink:0;
}
.product-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  height:100%;
}
.product-body h3{
  margin-bottom:10px;
}
.product-body p{
  margin-bottom:18px;
}
.product-price{
  margin-top:auto !important;
  margin-bottom:14px !important;
  color:var(--revision-red) !important;
  font-family:'Zen Kaku Gothic New', sans-serif !important;
  font-size:20px !important;
  font-weight:900 !important;
  line-height:1.4;
  text-align:left !important;
}
.product-body-foot{
  margin-top:0 !important;
  min-height:28px;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:flex-end !important;
}
.product-link{
  font-size:15px !important;
  font-weight:700 !important;
}

/* 下層ページへのリンクボタン：緑→ホバー時に反転 */
.section .products-all .btn,
#about .btn-outline{
  background:var(--revision-green) !important;
  color:#fff !important;
  border:2px solid var(--revision-green) !important;
  box-shadow:none !important;
}
.section .products-all .btn:hover,
#about .btn-outline:hover{
  background:#fff !important;
  color:var(--revision-green) !important;
  border-color:var(--revision-green) !important;
  transform:translateY(-2px);
}

/* お知らせ・会社概要：それぞれ1カラムで表示 */
.split-section .wrap,
#about .wrap{
  display:block !important;
}

/* 会社概要：見出し → 大きなスタッフ集合写真 → 会社名 の順 */
#about .about-card{
  display:block !important;
}
#about .about-card-body{
  max-width:980px !important;
  margin:0 auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
}
#about .about-photo-row{
  width:100% !important;
  max-width:920px !important;
  height:440px !important;
  min-height:0 !important;
  object-fit:cover !important;
  margin:30px auto 46px !important;
  border-radius:22px !important;
}
#about .about-info-list{
  width:100% !important;
  max-width:760px !important;
  margin:0 auto !important;
}

/* 出荷カレンダーのカテゴリ見出しを強調 */
.cal-group-label{
  font-size:30px !important;
  font-weight:900 !important;
  line-height:1.35 !important;
  color:var(--revision-green) !important;
}

/* お問い合わせエリア：薄いイエロー */
.cta-banner{
  background:var(--revision-pale-yellow) !important;
  color:var(--revision-green-dark) !important;
}

/* ヘッダー・フッター直前CTAのお問い合わせボタン：赤 */
.header-cta,
.cta-form-btn{
  background:var(--revision-red) !important;
  border-color:var(--revision-red) !important;
  color:#fff !important;
}
.header-cta:hover,
.cta-form-btn:hover{
  background:var(--revision-red-dark) !important;
  border-color:var(--revision-red-dark) !important;
  color:#fff !important;
}

@media(max-width:760px){
  .product-photo{height:240px !important;}
  #about .about-photo-row{height:300px !important; margin:24px auto 34px !important;}
  .cal-group-label{font-size:26px !important;}
}


/* =========================================================
   Additional requested revisions 2026-07-22 v2
========================================================= */

/* ヘッダー上部リンク：やや大きく・黒文字 */
.utility-links{
  font-size:15px !important;
  font-weight:700 !important;
  color:#111 !important;
}
.utility-links a,
.utility-cart{
  color:#111 !important;
}
.utility-links a:hover,
.utility-cart:hover{
  color:var(--green-deep) !important;
}

/* メインビジュアル：キャッチコピーをより左へ */
@media(min-width:961px){
  .hero .wrap-full{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding-left:clamp(20px,3vw,52px) !important;
    padding-right:32px !important;
  }
  .hero h1{
    max-width:650px !important;
    width:44% !important;
  }
  .hero-desc{
    max-width:520px !important;
    width:42% !important;
  }
}

/* 農作物の手描き風イラスト装飾 */
.farm-deco{
  position:absolute;
  z-index:1;
  pointer-events:none;
  opacity:.82;
  transform:rotate(var(--deco-rotate,0deg));
  filter:drop-shadow(0 8px 12px rgba(47,143,82,.08));
}
.farm-deco svg{width:100%;height:100%;display:block;overflow:visible;}
.farm-deco.pear{width:112px;height:126px;color:#8BC97B;}
.farm-deco.rakkyo{width:118px;height:120px;color:#F3C95D;}
.farm-deco.spinach{width:124px;height:124px;color:#61AD6F;}
.kodawari .deco-pear{top:72px;right:3%;--deco-rotate:12deg;}
.kodawari .deco-rakkyo{bottom:70px;left:2%;--deco-rotate:-12deg;}
.products .deco-spinach{top:90px;right:2%;--deco-rotate:10deg;}
.calendar-section .deco-rakkyo{bottom:58px;right:3%;--deco-rotate:12deg;}
.voices .deco-pear{top:80px;left:2%;--deco-rotate:-10deg;}
.split-section .deco-spinach{top:70px;right:2%;--deco-rotate:14deg;}
.faq .deco-rakkyo{bottom:44px;left:2%;--deco-rotate:-8deg;}
#about .deco-pear{top:48px;right:2%;--deco-rotate:9deg;}

@media(max-width:900px){
  .farm-deco{opacity:.42;transform:scale(.72) rotate(var(--deco-rotate,0deg));}
  .kodawari .deco-pear,.products .deco-spinach,.voices .deco-pear,.split-section .deco-spinach,#about .deco-pear{right:-24px;}
  .kodawari .deco-rakkyo,.faq .deco-rakkyo{left:-24px;}
}

/* 3つのこだわり：POINTカード型に変更 */
.kodawari{
  background:#F8FAF3 !important;
}
.kodawari .wrap{
  max-width:1180px !important;
}
.kodawari .section-head{
  margin-bottom:76px !important;
}
.kodawari .feature-block,
.kodawari .feature-block.reverse{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:34px !important;
  align-items:stretch !important;
  background:#fff !important;
  border:2px solid rgba(47,143,82,.42) !important;
  padding:28px 28px 52px !important;
  margin:0 0 110px !important;
  box-shadow:0 16px 34px -26px rgba(20,70,38,.28) !important;
  overflow:visible !important;
}
.kodawari .feature-block:last-of-type{
  margin-bottom:28px !important;
}
.kodawari .feature-block::after{
  content:"FARM SORA'S COMMITMENT";
  position:absolute;
  left:28px;
  right:28px;
  bottom:-1px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--green-deep) !important;
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.22em;
}
.kodawari .feature-photo{
  min-height:390px !important;
  width:100% !important;
  height:100% !important;
  border-radius:0 !important;
  transform:none !important;
  box-shadow:none !important;
  order:initial !important;
}
.kodawari .feature-block.reverse .feature-photo{
  order:2 !important;
}
.kodawari .feature-block.reverse .feature-text{
  order:1 !important;
}
.kodawari .feature-text{
  min-height:390px !important;
  margin:0 !important;
  padding:38px 34px 34px !important;
  border-radius:0 !important;
  background:#fff !important;
  color:#111 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  position:relative !important;
  box-shadow:none !important;
}
.kodawari .feature-text h3{
  color:#111 !important;
  font-size:26px !important;
  line-height:1.55 !important;
  margin-bottom:24px !important;
  padding:15px 18px !important;
  background:#F2F8ED !important;
  border-left:6px solid var(--green-deep) !important;
}
.kodawari .feature-text p{
  color:#111 !important;
  font-size:18px !important;
  line-height:1.9 !important;
  margin-bottom:12px !important;
}
.kodawari .feature-num{
  position:absolute !important;
  top:-48px !important;
  right:34px !important;
  left:auto !important;
  width:auto !important;
  height:auto !important;
  padding:0 16px !important;
  background:#F8FAF3 !important;
  color:var(--green-deep) !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  font-family:'Yomogi','Zen Kaku Gothic New',sans-serif !important;
  font-size:48px !important;
  font-weight:400 !important;
  line-height:1 !important;
  transform:none !important;
  z-index:4 !important;
  display:flex !important;
  align-items:flex-end !important;
  gap:10px !important;
}
.kodawari .feature-num::before{
  content:"POINT";
  font-size:18px;
  line-height:1.2;
  letter-spacing:.12em;
  padding-bottom:6px;
}
.kodawari .feature-block.reverse .feature-num{
  right:auto !important;
  left:34px !important;
}

@media(max-width:900px){
  .kodawari .section-head{margin-bottom:64px !important;}
  .kodawari .feature-block,
  .kodawari .feature-block.reverse{
    grid-template-columns:1fr !important;
    gap:0 !important;
    padding:20px 20px 50px !important;
    margin-bottom:94px !important;
  }
  .kodawari .feature-block.reverse .feature-photo,
  .kodawari .feature-block.reverse .feature-text{
    order:initial !important;
  }
  .kodawari .feature-photo{
    min-height:320px !important;
  }
  .kodawari .feature-text{
    min-height:auto !important;
    padding:30px 12px 28px !important;
  }
  .kodawari .feature-text h3{
    font-size:22px !important;
  }
  .kodawari .feature-num,
  .kodawari .feature-block.reverse .feature-num{
    top:-40px !important;
    right:20px !important;
    left:auto !important;
    font-size:40px !important;
  }
  .kodawari .feature-num::before{font-size:15px;}
  .kodawari .feature-block::after{left:20px;right:20px;}
}

/* 会社概要：中央寄せを解除し、項目と内容の開始位置を揃える */
#about .about-card-body{
  align-items:stretch !important;
  text-align:left !important;
}
#about .about-card-body > .eyebrow,
#about .about-card-body > h3,
#about .about-card-body > .btn{
  align-self:flex-start !important;
  text-align:left !important;
}
#about .about-info-list{
  width:100% !important;
  max-width:900px !important;
  margin:0 !important;
}
#about .about-info-list li{
  display:grid !important;
  grid-template-columns:140px minmax(0,1fr) !important;
  gap:32px !important;
  align-items:start !important;
  text-align:left !important;
  font-size:18px !important;
}
#about .about-info-list .label{
  width:auto !important;
  min-width:0 !important;
  font-weight:900 !important;
}
#about .about-info-list li > span:last-child{
  text-align:left !important;
}
#about .about-photo-row{
  margin-left:0 !important;
  margin-right:0 !important;
  max-width:none !important;
}

@media(max-width:640px){
  #about .about-info-list li{
    grid-template-columns:96px minmax(0,1fr) !important;
    gap:16px !important;
    font-size:16px !important;
  }
}





/* =========================================================
   2026-07-22 v3 requested refinements
========================================================= */

/* 1. カート番号を見やすく */
.cart-count{
  font-size:14px !important;
  font-weight:900 !important;
  min-width:23px !important;
  height:23px !important;
  padding:0 6px !important;
  line-height:23px !important;
}

/* 2. メインビジュアル：右画像を広げ、コピーとの隙間を縮小 */
@media(min-width:961px){
  .hero-slides{
    width:61% !important;
  }
  .hero h1{
    width:41% !important;
    max-width:620px !important;
  }
  .hero-desc{
    width:39% !important;
    max-width:500px !important;
  }
}

/* 3. 各セクション見出しの先頭に農園らしいイラストアイコン */
.section-title{
  position:relative !important;
}
.section-title::before{
  content:"";
  display:inline-block;
  width:44px;
  height:44px;
  margin-right:14px;
  vertical-align:-8px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='30' fill='%23EFF7E6'/%3E%3Cpath d='M31 49V27' fill='none' stroke='%230E6E3E' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M31 31C19 30 13 23 13 13c10 0 18 5 20 15' fill='%2379BF79' stroke='%230E6E3E' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M32 27c3-11 11-16 21-16 0 10-7 18-20 20' fill='%23A7D98B' stroke='%230E6E3E' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='32' cy='50' r='5' fill='%23F2CB4E'/%3E%3C/svg%3E") !important;
}

/* 会社概要のCSS生成見出しにも同じイラスト */
#about .wrap::before{
  display:block !important;
  width:max-content !important;
  max-width:100% !important;
  margin:0 auto 34px !important;
  padding-left:58px !important;
  background-repeat:no-repeat !important;
  background-position:left center !important;
  background-size:44px 44px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='30' fill='%23EFF7E6'/%3E%3Cpath d='M31 49V27' fill='none' stroke='%230E6E3E' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M31 31C19 30 13 23 13 13c10 0 18 5 20 15' fill='%2379BF79' stroke='%230E6E3E' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M32 27c3-11 11-16 21-16 0 10-7 18-20 20' fill='%23A7D98B' stroke='%230E6E3E' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='32' cy='50' r='5' fill='%23F2CB4E'/%3E%3C/svg%3E") !important;
  text-align:left !important;
}

/* お問い合わせ見出しにもアイコン */
.cta-banner h2::before{
  content:"";
  display:inline-block;
  width:38px;
  height:38px;
  margin-right:12px;
  vertical-align:-9px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='30' fill='%23FFFFFF' fill-opacity='.72'/%3E%3Cpath d='M31 49V27' fill='none' stroke='%230E6E3E' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M31 31C19 30 13 23 13 13c10 0 18 5 20 15' fill='%2379BF79' stroke='%230E6E3E' stroke-width='2'/%3E%3Cpath d='M32 27c3-11 11-16 21-16 0 10-7 18-20 20' fill='%23A7D98B' stroke='%230E6E3E' stroke-width='2'/%3E%3C/svg%3E");
}

/* 4. 3つのこだわり：参考サイトの「強み」風
      大きな写真 + 01/02/03 + 見出し + 説明の連続レイアウト */
.kodawari{
  background:#F8FAF3 !important;
}
.kodawari .wrap{
  max-width:1240px !important;
}
.kodawari .section-head{
  margin-bottom:88px !important;
}
.kodawari .feature-block,
.kodawari .feature-block.reverse{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.16fr) minmax(390px,.84fr) !important;
  gap:64px !important;
  align-items:center !important;
  padding:0 0 24px !important;
  margin:0 0 24px !important;
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.kodawari .feature-block:not(:last-of-type)::after{
  content:"" !important;
  position:absolute !important;
  left:8% !important;
  right:8% !important;
  bottom:0 !important;
  height:1px !important;
  background:rgba(14,110,62,.18) !important;
  display:block !important;
}
.kodawari .feature-block:last-of-type{
  margin-bottom:8px !important;
  padding-bottom:0 !important;
}
.kodawari .feature-block:last-of-type::after{
  display:none !important;
}
.kodawari .feature-photo{
  width:100% !important;
  min-height:510px !important;
  height:510px !important;
  border-radius:34px 8px 34px 8px !important;
  transform:none !important;
  box-shadow:0 24px 54px -34px rgba(14,110,62,.42) !important;
  order:1 !important;
  background-size:cover !important;
  background-position:center !important;
}
.kodawari .feature-block.reverse .feature-photo{
  order:2 !important;
  border-radius:8px 34px 8px 34px !important;
}
.kodawari .feature-text,
.kodawari .feature-block.reverse .feature-text{
  order:2 !important;
  position:relative !important;
  min-height:0 !important;
  margin:0 !important;
  padding:34px 10px !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#111 !important;
  box-shadow:none !important;
  display:block !important;
}
.kodawari .feature-block.reverse .feature-text{
  order:1 !important;
  padding-left:18px !important;
  padding-right:18px !important;
}
.kodawari .feature-num,
.kodawari .feature-block.reverse .feature-num{
  position:relative !important;
  top:auto !important;
  right:auto !important;
  left:auto !important;
  width:auto !important;
  height:auto !important;
  padding:0 !important;
  margin:0 0 14px !important;
  background:none !important;
  color:var(--soil) !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
  font-family:'Zen Kaku Gothic New',sans-serif !important;
  font-size:14px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.22em !important;
  opacity:1 !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
}
.kodawari .feature-num::before{
  content:"FEATURE.0" !important;
  font-size:1em !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  padding:0 !important;
  color:inherit !important;
}
.kodawari .feature-text h3{
  color:#111 !important;
  font-size:clamp(25px,2.2vw,34px) !important;
  line-height:1.5 !important;
  margin:0 0 26px !important;
  padding:0 0 20px !important;
  background:transparent !important;
  border-left:none !important;
  border-bottom:4px solid var(--green-deep) !important;
}
.kodawari .feature-text h3::after{
  display:none !important;
}
.kodawari .feature-text p{
  color:#111 !important;
  font-size:18px !important;
  line-height:1.95 !important;
  margin:0 0 12px !important;
}
.kodawari .feature-text::before,
.kodawari .feature-block::before{
  display:none !important;
}
.kodawari .products-all{
  margin-top:0 !important;
}

/* 5. 会社概要：ブロック自体は中央、文字は左揃えのまま */
#about .about-card-body{
  max-width:900px !important;
  margin:0 auto !important;
  align-items:stretch !important;
  text-align:left !important;
}
#about .about-photo-row{
  width:100% !important;
  max-width:900px !important;
  margin:30px auto 46px !important;
}
#about .about-info-list{
  width:100% !important;
  max-width:760px !important;
  margin:0 auto !important;
}
#about .about-info-list li{
  text-align:left !important;
}
#about .about-info-list .label,
#about .about-info-list li > span:last-child{
  text-align:left !important;
}
#about .about-card-body .btn{
  align-self:center !important;
}

@media(max-width:900px){
  .section-title::before{
    width:36px;
    height:36px;
    margin-right:10px;
    vertical-align:-7px;
  }
  .kodawari .feature-block,
  .kodawari .feature-block.reverse{
    grid-template-columns:1fr !important;
    gap:28px !important;
    padding-bottom:78px !important;
    margin-bottom:78px !important;
  }
  .kodawari .feature-block.reverse .feature-photo,
  .kodawari .feature-block.reverse .feature-text,
  .kodawari .feature-photo,
  .kodawari .feature-text{
    order:initial !important;
  }
  .kodawari .feature-photo{
    height:360px !important;
    min-height:360px !important;
    border-radius:28px !important;
  }
  .kodawari .feature-text,
  .kodawari .feature-block.reverse .feature-text{
    padding:12px 4px !important;
  }
  .kodawari .feature-num,
  .kodawari .feature-block.reverse .feature-num{
    font-size:70px !important;
  }
}

@media(max-width:640px){
  .cart-count{
    font-size:12px !important;
    min-width:20px !important;
    height:20px !important;
    line-height:20px !important;
  }
  #about .wrap::before{
    padding-left:46px !important;
    background-size:36px 36px !important;
  }
}




/* ===== 2026-07-22 v4 requested adjustments ===== */

/* 1. セクション見出し：指定の秀英丸ゴシック系 */
.section-title,
#about .wrap::before,
.cta-banner h2{
  font-family:"Shuei MaruGo B","A-OTF 秀英丸ゴシック Std B","Zen Maru Gothic","Zen Kaku Gothic New",sans-serif !important;
}

/* 2. メインビジュアル：画像領域をさらに広げ、コピー側へ少し重ねる */
@media(min-width:961px){
  .hero-slides{
    width:72% !important;
    left:auto !important;
    right:0 !important;
    inset-block:0 !important;
    z-index:1 !important;
  }
  .hero .wrap-full{
    z-index:3 !important;
  }
  .hero h1{
    position:relative !important;
    z-index:4 !important;
    width:47% !important;
    max-width:680px !important;
  }
  .hero-desc{
    position:relative !important;
    z-index:4 !important;
    width:42% !important;
    max-width:540px !important;
  }
  /* 左端はコピーの背面まで入り込ませ、隙間をなくす */
  .hero-slides::after{
    content:"";
    position:absolute;
    inset:0 auto 0 -9vw;
    width:10vw;
    background:linear-gradient(90deg,rgba(0,0,0,.13),rgba(0,0,0,0));
    pointer-events:none;
  }
}

/* 3. 3つのこだわり：IC GROUP採用サイトの「強み」風
      手書き風の大番号 + 画像を左右の画面端いっぱいに */
.kodawari{
  overflow:hidden !important;
}
.kodawari .wrap{
  max-width:1180px !important;
  overflow:visible !important;
}
.kodawari .section-head{
  position:relative !important;
  z-index:4 !important;
  margin-bottom:110px !important;
}

.kodawari .feature-block,
.kodawari .feature-block.reverse{
  width:100vw !important;
  max-width:none !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  display:grid !important;
  gap:0 !important;
  align-items:center !important;
  padding:0 0 150px !important;
  margin-bottom:150px !important;
  border:none !important;
  background:transparent !important;
  overflow:visible !important;
}

/* 1・3：テキスト左、写真を右端まで */
.kodawari .feature-block:not(.reverse){
  grid-template-columns:minmax(360px,42vw) 58vw !important;
  grid-template-areas:"text photo" !important;
}
/* 2：写真を左端まで、テキスト右 */
.kodawari .feature-block.reverse{
  grid-template-columns:58vw minmax(360px,42vw) !important;
  grid-template-areas:"photo text" !important;
}
.kodawari .feature-photo,
.kodawari .feature-block.reverse .feature-photo{
  grid-area:photo !important;
  width:100% !important;
  height:clamp(520px,48vw,720px) !important;
  min-height:520px !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
  order:initial !important;
  background-size:cover !important;
  background-position:center !important;
  overflow:hidden !important;
  position:relative !important;
  -webkit-clip-path:polygon(12% 0,100% 0,100% 86%,88% 100%,0 100%,0 14%) !important;
  clip-path:polygon(12% 0,100% 0,100% 86%,88% 100%,0 100%,0 14%) !important;
}
.kodawari .feature-block:nth-of-type(2) .feature-photo,
.kodawari .feature-block:nth-of-type(4) .feature-photo{
  background-position:center !important;
}
.kodawari .feature-block.reverse .feature-photo{
  -webkit-clip-path:polygon(0 0,88% 0,100% 14%,100% 100%,12% 100%,0 86%) !important;
  clip-path:polygon(0 0,88% 0,100% 14%,100% 100%,12% 100%,0 86%) !important;
}
.kodawari .feature-text,
.kodawari .feature-block.reverse .feature-text{
  grid-area:text !important;
  order:initial !important;
  position:relative !important;
  z-index:3 !important;
  width:min(100%,620px) !important;
  padding:70px clamp(38px,5vw,90px) !important;
  margin:0 !important;
  background:#F8FAF3 !important;
  color:#111 !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.kodawari .feature-block:not(.reverse) .feature-text{
  justify-self:end !important;
}
.kodawari .feature-block.reverse .feature-text{
  justify-self:start !important;
}

/* 手書き風 1・2・3：参考CSSの大きさ・傾き・透け感を反映 */
.kodawari .feature-num,
.kodawari .feature-block.reverse .feature-num{
  position:absolute !important;
  top:-88px !important;
  left:18px !important;
  right:auto !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:#79B98A !important;
  font-family:'Yomogi','Comic Sans MS',cursive !important;
  font-size:clamp(118px,11vw,176px) !important;
  font-weight:500 !important;
  line-height:.82 !important;
  letter-spacing:.02em !important;
  opacity:.62 !important;
  transform:rotate(-20deg) !important;
  transform-origin:center !important;
  z-index:5 !important;
  display:block !important;
}
.kodawari .feature-num::before{
  content:none !important;
}
.kodawari .feature-block.reverse .feature-num{
  left:auto !important;
  right:20px !important;
  transform:rotate(18deg) !important;
  color:#E6B85A !important;
}
.kodawari .feature-block:nth-of-type(4) .feature-num{
  color:#D99BB8 !important;
  transform:rotate(-16deg) !important;
}

/* こだわり見出しも指定フォント */
.kodawari .feature-text h3{
  font-family:"Shuei MaruGo B","A-OTF 秀英丸ゴシック Std B","Zen Maru Gothic","Zen Kaku Gothic New",sans-serif !important;
  font-size:clamp(27px,2.35vw,38px) !important;
  font-weight:700 !important;
  line-height:1.5 !important;
  color:#111 !important;
  margin:0 0 26px !important;
  padding:0 !important;
  border:none !important;
  background:transparent !important;
}
.kodawari .feature-text h3::after{
  content:"" !important;
  display:block !important;
  width:72px !important;
  height:4px !important;
  margin-top:22px !important;
  background:var(--green-deep) !important;
  border-radius:999px !important;
}
.kodawari .feature-text p{
  font-size:18px !important;
  line-height:2 !important;
  color:#111 !important;
}
.kodawari .feature-block:not(:last-of-type)::after,
.kodawari .feature-block:last-of-type::after{
  display:none !important;
}

@media(max-width:960px){
  .hero-slides{
    width:100% !important;
    left:0 !important;
    right:0 !important;
  }
  .kodawari .feature-block,
  .kodawari .feature-block.reverse,
  .kodawari .feature-block:not(.reverse){
    width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    grid-template-columns:1fr !important;
    grid-template-areas:"photo" "text" !important;
    padding:0 0 90px !important;
    margin-bottom:90px !important;
  }
  .kodawari .feature-photo,
  .kodawari .feature-block.reverse .feature-photo{
    height:62vw !important;
    min-height:320px !important;
    -webkit-clip-path:polygon(10% 0,100% 0,100% 90%,90% 100%,0 100%,0 10%) !important;
    clip-path:polygon(10% 0,100% 0,100% 90%,90% 100%,0 100%,0 10%) !important;
  }
  .kodawari .feature-text,
  .kodawari .feature-block.reverse .feature-text{
    width:calc(100% - 36px) !important;
    margin:-36px auto 0 !important;
    padding:70px 26px 32px !important;
    justify-self:center !important;
  }
  .kodawari .feature-num,
  .kodawari .feature-block.reverse .feature-num{
    top:-62px !important;
    left:18px !important;
    right:auto !important;
    font-size:104px !important;
  }
}


/* ===== v6: 秀英丸ゴシック + 曲線型のこだわり写真 ===== */
.section-title,
.section-title.mincho,
.section-title .full-underline,
.section-title .accent-word,
.section-title .hl,
#about .about-card-body > h3,
.cta-section h2{
  font-family:'秀英丸ゴシック B','Shuei MaruGo B','A-OTF 秀英丸ゴシック Std B','Zen Maru Gothic','Zen Kaku Gothic New',sans-serif !important;
  font-weight:700 !important;
}

.kodawari .feature-text h3{
  font-family:'秀英丸ゴシック B','Shuei MaruGo B','A-OTF 秀英丸ゴシック Std B','Zen Maru Gothic','Zen Kaku Gothic New',sans-serif !important;
  font-weight:700 !important;
}

.kodawari .feature-text h3.feature-h3-tight{
  font-size:clamp(22px,1.9vw,30px) !important;
  line-height:1.5 !important;
}

@media(max-width:900px){
  .kodawari .feature-text h3.feature-h3-tight{
    font-size:clamp(20px,4.6vw,24px) !important;
  }
}

/* 1・3：右へ広がる、丸みのある有機的な切り抜き */
.kodawari .feature-photo,
.kodawari .feature-block:not(.reverse) .feature-photo{
  -webkit-clip-path:none !important;
  clip-path:none !important;
  border-radius:42% 0 0 54% / 18% 0 0 22% !important;
  overflow:hidden !important;
}

/* 2：左へ広がる、反転した曲線シルエット */
.kodawari .feature-block.reverse .feature-photo{
  -webkit-clip-path:none !important;
  clip-path:none !important;
  border-radius:0 46% 58% 0 / 0 20% 24% 0 !important;
  overflow:hidden !important;
}

@media(max-width:960px){
  .kodawari .feature-photo,
  .kodawari .feature-block:not(.reverse) .feature-photo,
  .kodawari .feature-block.reverse .feature-photo{
    -webkit-clip-path:none !important;
    clip-path:none !important;
    border-radius:34% 34% 18% 18% / 16% 16% 12% 12% !important;
  }
}

/* ===== 2026-07-24: こだわり最終調整（余白半減 + FEATURE.01スタイルの見出し） ===== */
.kodawari{
  overflow:visible !important;
}
.kodawari .feature-block,
.kodawari .feature-block.reverse{
  width:auto !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  grid-template-areas:"text photo" !important;
  gap:56px !important;
  align-items:center !important;
  padding:0 0 24px !important;
  margin:0 0 24px !important;
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.kodawari .feature-block.reverse{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  grid-template-areas:"photo text" !important;
}
.kodawari .feature-block:last-of-type{
  margin-bottom:8px !important;
  padding-bottom:0 !important;
}
.kodawari .feature-photo{
  grid-area:photo !important;
  width:100% !important;
  height:420px !important;
  min-height:420px !important;
  box-shadow:0 24px 54px -34px rgba(14,110,62,.35) !important;
  background-size:cover !important;
  background-position:center !important;
}
@media(min-width:961px){
  .kodawari .feature-block.reverse .feature-photo{
    margin-left:calc(-1 * (max(0px,(100vw - 1180px) / 2) + 32px)) !important;
    width:calc(100% + max(0px,(100vw - 1180px) / 2) + 32px) !important;
  }
}
.kodawari .feature-text,
.kodawari .feature-block.reverse .feature-text{
  grid-area:text !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  justify-self:auto !important;
  box-shadow:none !important;
}
.kodawari .feature-num,
.kodawari .feature-block.reverse .feature-num{
  position:static !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  opacity:1 !important;
  font-family:'Zen Kaku Gothic New',sans-serif !important;
  font-size:clamp(40px,4vw,56px) !important;
  font-weight:900 !important;
  letter-spacing:.03em !important;
  line-height:1 !important;
  color:rgb(193,48,66) !important;
  display:block !important;
  gap:0 !important;
  margin:0 0 18px !important;
}
.kodawari .feature-num::before{
  content:"0" !important;
  font-size:1em !important;
  color:inherit !important;
}
.kodawari .feature-text h3{
  font-size:clamp(24px,2.1vw,32px) !important;
  margin:0 0 20px !important;
}
.kodawari .feature-text h3::after{
  display:none !important;
}
.kodawari .feature-text p{
  font-size:17px !important;
  line-height:1.9 !important;
}

@media(max-width:960px){
  .kodawari .feature-block,
  .kodawari .feature-block.reverse{
    grid-template-columns:1fr !important;
    grid-template-areas:"photo" "text" !important;
    gap:24px !important;
    padding:0 0 16px !important;
    margin:0 0 16px !important;
  }
  .kodawari .feature-photo{
    height:280px !important;
    min-height:280px !important;
  }
}




/* ===== 2026-07-24 v10: 03番号統一 + FEATURE風の斜めカット ===== */

/* 01・02・03の番号を完全に同じ見た目へ統一
   ※過去の nth-of-type(4) による03専用の色・傾き指定も明示的に上書き */
.kodawari .feature-block .feature-num,
.kodawari .feature-block.reverse .feature-num,
.kodawari .feature-block:nth-of-type(4) .feature-num{
  color:rgb(193,48,66) !important;
  transform:none !important;
  opacity:1 !important;
  font-family:'Zen Kaku Gothic New',sans-serif !important;
  font-size:clamp(40px,4vw,56px) !important;
  font-weight:900 !important;
  letter-spacing:.03em !important;
  line-height:1 !important;
}
.kodawari .feature-block .feature-num::before,
.kodawari .feature-block.reverse .feature-num::before,
.kodawari .feature-block:nth-of-type(4) .feature-num::before{
  content:"0" !important;
  color:inherit !important;
  font-size:1em !important;
}

/* 参考サイトのFEATURE画像を意識し、左右で斜め方向を切り替える */
.kodawari .feature-block:not(.reverse) .feature-photo{
  -webkit-clip-path:polygon(0 0,100% 0,90% 100%,0 100%) !important;
  clip-path:polygon(0 0,100% 0,90% 100%,0 100%) !important;
  border-radius:0 !important;
}
.kodawari .feature-block.reverse .feature-photo{
  -webkit-clip-path:polygon(10% 0,100% 0,100% 100%,0 100%) !important;
  clip-path:polygon(10% 0,100% 0,100% 100%,0 100%) !important;
  border-radius:0 !important;
}

@media(max-width:960px){
  .kodawari .feature-block:not(.reverse) .feature-photo,
  .kodawari .feature-block.reverse .feature-photo{
    -webkit-clip-path:polygon(0 0,100% 0,94% 100%,6% 100%) !important;
    clip-path:polygon(0 0,100% 0,94% 100%,6% 100%) !important;
    border-radius:0 !important;
  }
}


/* =========================================================
   こだわりセクション：全面リデザイン（v11）
   既存の有機的な吹き出し風から、
   「白いカード × 斜めカット写真」の上品で整理されたデザインへ変更
   ========================================================= */
.kodawari{
  position:relative !important;
  background:linear-gradient(180deg,#F7F4EC 0%, #F3F7EF 100%) !important;
  overflow:hidden !important;
}

.kodawari::before,
.kodawari::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}

.kodawari::before{
  width:360px;
  height:360px;
  top:-130px;
  left:-120px;
  background:radial-gradient(circle, rgba(14,110,62,.08) 0%, rgba(14,110,62,0) 72%);
}

.kodawari::after{
  width:420px;
  height:420px;
  right:-140px;
  bottom:-160px;
  background:radial-gradient(circle, rgba(242,203,78,.16) 0%, rgba(242,203,78,0) 70%);
}

.kodawari .wrap{
  max-width:1240px !important;
  position:relative;
  z-index:1;
}

.kodawari .section-head{
  text-align:left !important;
  margin:0 0 56px !important;
  max-width:780px !important;
}

.kodawari .eyebrow{
  justify-content:flex-start !important;
  color:var(--green-deep) !important;
  font-size:13px !important;
  letter-spacing:.22em !important;
}

.kodawari .eyebrow::before{
  display:block !important;
  width:42px !important;
  background:var(--green-deep) !important;
}

.kodawari .section-title{
  font-size:clamp(30px,3.6vw,46px) !important;
  letter-spacing:.04em !important;
  line-height:1.5 !important;
}

.kodawari .section-title .full-underline::before{
  display:block !important;
  height:.42em !important;
  background:#E7F0D9 !important;
  bottom:.1em !important;
}

.kodawari .section-title .big-num{
  width:1.45em !important;
  height:1.45em !important;
  background:var(--green-deep) !important;
  color:#fff !important;
  border:none !important;
  transform:rotate(-8deg) !important;
  box-shadow:0 10px 22px rgba(14,110,62,.18) !important;
}

.kodawari .feature-block,
.kodawari .feature-block.reverse,
.feature-block,
.feature-block.reverse{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(360px, 0.95fr) minmax(420px, 1.05fr) !important;
  gap:46px !important;
  align-items:stretch !important;
  padding:0 !important;
  margin:0 0 42px !important;
  border:none !important;
  overflow:visible !important;
}

.kodawari .feature-block:last-of-type{
  margin-bottom:0 !important;
}

.kodawari .feature-block::before,
.kodawari .feature-block.reverse::before{
  display:none !important;
}

.kodawari .feature-photo,
.kodawari .feature-block.reverse .feature-photo{
  order:1 !important;
  min-height:400px !important;
  width:100% !important;
  border-radius:30px !important;
  background-size:cover !important;
  background-position:center !important;
  box-shadow:0 22px 50px rgba(18,33,15,.12) !important;
  border:8px solid rgba(255,255,255,.92) !important;
  transform:none !important;
  clip-path:polygon(0 0, 90% 0, 100% 12%, 100% 100%, 10% 100%, 0 88%) !important;
  overflow:hidden !important;
}

.kodawari .feature-block.reverse .feature-photo{
  order:2 !important;
  clip-path:polygon(10% 0, 100% 0, 100% 88%, 90% 100%, 0 100%, 0 12%) !important;
}

.kodawari .feature-photo::after{
  content:"" !important;
  position:absolute !important;
  inset:auto 0 0 0 !important;
  height:45% !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.18) 100%) !important;
  pointer-events:none !important;
}

.kodawari .feature-text,
.kodawari .feature-block.reverse .feature-text{
  order:2 !important;
  position:relative !important;
  min-height:400px !important;
  width:100% !important;
  margin:0 !important;
  padding:42px 42px 38px 42px !important;
  background:rgba(255,255,255,.96) !important;
  color:var(--text) !important;
  border:1px solid rgba(14,110,62,.10) !important;
  border-top:8px solid var(--green-deep) !important;
  border-radius:28px !important;
  box-shadow:0 18px 40px rgba(18,33,15,.08) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.kodawari .feature-block.reverse .feature-text{
  order:1 !important;
}

.kodawari .feature-text::before{
  content:"POINT" !important;
  position:absolute !important;
  left:42px !important;
  top:18px !important;
  font-size:12px !important;
  letter-spacing:.26em !important;
  font-weight:800 !important;
  color:rgba(14,110,62,.42) !important;
  background:none !important;
  width:auto !important;
  height:auto !important;
  border-radius:0 !important;
  box-shadow:none !important;
  z-index:2 !important;
}

.kodawari .feature-num,
.kodawari .feature-block.reverse .feature-num,
.kodawari .feature-block:nth-of-type(4) .feature-num{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  width:auto !important;
  height:auto !important;
  margin:0 0 22px !important;
  background:none !important;
  border:none !important;
  box-shadow:none !important;
  color:var(--green-deep) !important;
  font-size:clamp(44px,4.4vw,68px) !important;
  font-weight:900 !important;
  line-height:1 !important;
  transform:none !important;
  z-index:2 !important;
}

.kodawari .feature-num::before,
.kodawari .feature-block.reverse .feature-num::before,
.kodawari .feature-block:nth-of-type(4) .feature-num::before{
  content:"0" !important;
  font-size:.6em !important;
}

.kodawari .feature-text h3{
  color:var(--green-deep-2) !important;
  font-size:clamp(24px,2.2vw,34px) !important;
  line-height:1.6 !important;
  letter-spacing:.04em !important;
  margin-bottom:18px !important;
}

.kodawari .feature-text h3::after{
  content:"" !important;
  display:block !important;
  width:58px !important;
  height:4px !important;
  margin:18px 0 0 !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, var(--green-deep) 0%, #9CCB73 100%) !important;
}

.kodawari .feature-text p{
  font-size:16.5px !important;
  line-height:2.05 !important;
  color:#31402F !important;
  margin-bottom:12px !important;
}

.kodawari .products-all{
  margin-top:34px !important;
}

@media(max-width:1100px){
  .kodawari .feature-block,
  .kodawari .feature-block.reverse,
  .feature-block,
  .feature-block.reverse{
    grid-template-columns:1fr !important;
    gap:24px !important;
    margin-bottom:28px !important;
  }

  .kodawari .feature-photo,
  .kodawari .feature-block.reverse .feature-photo{
    order:1 !important;
    min-height:330px !important;
  }

  .kodawari .feature-text,
  .kodawari .feature-block.reverse .feature-text{
    order:2 !important;
    min-height:auto !important;
    padding:34px 28px 30px !important;
  }

  .kodawari .feature-text::before{
    left:28px !important;
  }
}

@media(max-width:767px){
  .kodawari .section-head{
    margin-bottom:34px !important;
  }

  .kodawari .section-title{
    line-height:1.6 !important;
  }

  .kodawari .feature-photo,
  .kodawari .feature-block.reverse .feature-photo{
    min-height:260px !important;
    border-width:6px !important;
    clip-path:polygon(0 0, 88% 0, 100% 10%, 100% 100%, 12% 100%, 0 90%) !important;
  }

  .kodawari .feature-text,
  .kodawari .feature-block.reverse .feature-text{
    padding:30px 22px 24px !important;
    border-top-width:6px !important;
    border-radius:22px !important;
  }

  .kodawari .feature-text::before{
    left:22px !important;
    top:16px !important;
    font-size:11px !important;
  }

  .kodawari .feature-num,
  .kodawari .feature-block.reverse .feature-num,
  .kodawari .feature-block:nth-of-type(4) .feature-num{
    font-size:40px !important;
    margin-bottom:16px !important;
  }

  .kodawari .feature-text h3{
    font-size:22px !important;
  }

  .kodawari .feature-text p{
    font-size:15px !important;
    line-height:1.95 !important;
  }
}



/* =========================================================
   こだわりセクション：3カラムカードへ全面刷新（v12）
   画像比率・高さ・横幅を完全統一
   ========================================================= */
#kodawari{
  background:#F6F2E8 !important;
  padding-top:118px !important;
  padding-bottom:118px !important;
}

#kodawari .wrap{
  max-width:1280px !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:28px !important;
  align-items:stretch !important;
}

#kodawari .section-head{
  grid-column:1 / -1 !important;
  max-width:760px !important;
  margin:0 auto 44px !important;
  text-align:center !important;
}

#kodawari .eyebrow{
  justify-content:center !important;
  color:var(--green-deep) !important;
}

#kodawari .eyebrow::before{
  display:none !important;
}

#kodawari .section-title{
  font-size:clamp(30px,3.5vw,46px) !important;
  line-height:1.55 !important;
}

#kodawari .section-title .full-underline::before{
  display:block !important;
  background:#DDEBCF !important;
  height:.38em !important;
}

#kodawari .section-title .big-num{
  background:var(--green-deep) !important;
  color:#fff !important;
  border:none !important;
  box-shadow:none !important;
  transform:none !important;
}

#kodawari .feature-block,
#kodawari .feature-block.reverse{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  min-width:0 !important;
  height:100% !important;
  gap:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:#fff !important;
  border:1px solid rgba(14,110,62,.10) !important;
  border-radius:28px !important;
  overflow:hidden !important;
  box-shadow:0 18px 45px rgba(18,33,15,.09) !important;
  transform:none !important;
}

#kodawari .feature-block::before,
#kodawari .feature-block.reverse::before{
  display:none !important;
}

#kodawari .feature-photo,
#kodawari .feature-block.reverse .feature-photo{
  order:1 !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:4 / 3 !important;
  flex:0 0 auto !important;
  background-size:cover !important;
  background-position:center !important;
  border:none !important;
  border-radius:0 !important;
  clip-path:none !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:hidden !important;
}

#kodawari .feature-photo::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.18) 100%) !important;
  pointer-events:none !important;
}

#kodawari .feature-photo::after{
  display:none !important;
}

#kodawari .feature-text,
#kodawari .feature-block.reverse .feature-text{
  order:2 !important;
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  justify-content:flex-start !important;
  width:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:54px 30px 32px !important;
  background:#fff !important;
  color:var(--text) !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

#kodawari .feature-text::before{
  content:"FARM SORA" !important;
  position:absolute !important;
  top:25px !important;
  left:30px !important;
  width:auto !important;
  height:auto !important;
  background:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:#8AA878 !important;
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.22em !important;
  z-index:1 !important;
}

#kodawari .feature-num,
#kodawari .feature-block.reverse .feature-num,
#kodawari .feature-block:nth-of-type(4) .feature-num{
  position:absolute !important;
  top:-42px !important;
  right:24px !important;
  left:auto !important;
  width:82px !important;
  height:82px !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:var(--green-deep) !important;
  color:#fff !important;
  border:6px solid #fff !important;
  border-radius:50% !important;
  box-shadow:0 12px 28px rgba(14,110,62,.20) !important;
  font-size:34px !important;
  font-weight:900 !important;
  line-height:1 !important;
  transform:none !important;
  z-index:3 !important;
}

#kodawari .feature-num::before,
#kodawari .feature-block.reverse .feature-num::before,
#kodawari .feature-block:nth-of-type(4) .feature-num::before{
  content:"0" !important;
  font-size:1em !important;
}

#kodawari .feature-block:nth-of-type(2){
  border-top:7px solid #0E6E3E !important;
}
#kodawari .feature-block:nth-of-type(3){
  border-top:7px solid #D6A51F !important;
}
#kodawari .feature-block:nth-of-type(4){
  border-top:7px solid #C96B3C !important;
}

#kodawari .feature-block:nth-of-type(3) .feature-num{
  background:#D6A51F !important;
}
#kodawari .feature-block:nth-of-type(4) .feature-num{
  background:#C96B3C !important;
}

#kodawari .feature-text h3{
  min-height:108px !important;
  margin:0 0 18px !important;
  color:var(--green-deep-2) !important;
  font-size:clamp(22px,2vw,29px) !important;
  line-height:1.55 !important;
  letter-spacing:.02em !important;
}

#kodawari .feature-text h3::after{
  content:"" !important;
  display:block !important;
  width:48px !important;
  height:3px !important;
  margin-top:16px !important;
  border-radius:999px !important;
  background:var(--green-deep) !important;
}

#kodawari .feature-block:nth-of-type(3) .feature-text h3::after{
  background:#D6A51F !important;
}
#kodawari .feature-block:nth-of-type(4) .feature-text h3::after{
  background:#C96B3C !important;
}

#kodawari .feature-text p{
  color:#354235 !important;
  font-size:15.5px !important;
  line-height:1.95 !important;
  margin:0 0 10px !important;
}

#kodawari .products-all{
  grid-column:1 / -1 !important;
  margin-top:22px !important;
  text-align:center !important;
}

@media(max-width:1020px){
  #kodawari .wrap{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #kodawari .feature-block:nth-of-type(4){
    grid-column:1 / -1 !important;
    max-width:calc(50% - 14px) !important;
    width:100% !important;
    justify-self:center !important;
  }
}

@media(max-width:720px){
  #kodawari{
    padding-top:88px !important;
    padding-bottom:88px !important;
  }

  #kodawari .wrap{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }

  #kodawari .feature-block,
  #kodawari .feature-block.reverse,
  #kodawari .feature-block:nth-of-type(4){
    grid-column:auto !important;
    max-width:none !important;
  }

  #kodawari .feature-photo,
  #kodawari .feature-block.reverse .feature-photo{
    aspect-ratio:16 / 10 !important;
  }

  #kodawari .feature-text{
    padding:50px 24px 26px !important;
  }

  #kodawari .feature-text::before{
    left:24px !important;
  }

  #kodawari .feature-num,
  #kodawari .feature-block.reverse .feature-num,
  #kodawari .feature-block:nth-of-type(4) .feature-num{
    top:-36px !important;
    right:20px !important;
    width:72px !important;
    height:72px !important;
    font-size:29px !important;
  }

  #kodawari .feature-text h3{
    min-height:0 !important;
    font-size:22px !important;
  }
}


#kodawari .feature-photo{background:none !important; overflow:hidden !important;}
#kodawari .feature-photo img{display:block !important; width:100% !important; height:100% !important; object-fit:cover !important; object-position:center center !important;}




/* こだわり見出し：3項目とも2行以内に統一 */
#kodawari .feature-text h3,
#kodawari .feature-text h3.feature-h3-tight{
  min-height:90px !important;
  font-size:clamp(19px,1.6vw,22px) !important;
  line-height:1.55 !important;
  letter-spacing:0 !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}
#kodawari .feature-photo,
#kodawari .feature-block.reverse .feature-photo{
  margin:0 !important;
}
#kodawari .feature-title-phrase{
  white-space:nowrap !important;
}
@media(max-width:720px){
  #kodawari .feature-text h3,
  #kodawari .feature-text h3.feature-h3-tight{
    min-height:0 !important;
    font-size:clamp(17px,5vw,21px) !important;
  }
}



:root{
  --soft-beige:#f5f1e6;
  --soft-green:#0f8a69;
  --soft-green-dark:#355e55;
  --soft-red:#d86e63;
  --soft-blue:#3d91a7;
  --soft-yellow:#c8b032;
  --soft-text:#4b514a;
}
body{
  background:var(--soft-beige) !important;
}
/* ===== Design pattern v14: kodomo.nacsj.or.jp風 ===== */
.hero{
  min-height:740px !important;
  padding:70px 0 90px !important;
  background:var(--soft-beige) !important;
  color:var(--soft-green) !important;
  align-items:flex-start !important;
  overflow:hidden !important;
}
.hero::before{
  content:"";
  position:absolute;
  left:-90px;
  bottom:48px;
  width:240px;
  height:240px;
  background:rgba(213,204,183,0.38);
  border-radius:52% 48% 44% 56% / 62% 41% 59% 38%;
  z-index:0;
}
.hero::after{
  content:"";
  position:absolute;
  right:-26px;
  top:126px;
  width:124px;
  height:360px;
  background:radial-gradient(circle at 16px 16px, rgba(203,194,171,0.72) 0 9px, transparent 10px) 0 0 / 42px 42px;
  opacity:0.82;
  z-index:0;
}
.hero .wrap-full{
  position:relative;
  z-index:2;
  width:100%;
  max-width:1280px;
  margin:0 auto;
  padding:36px 56px 0 !important;
}
.hero h1{
  max-width:580px;
  font-family:'Yomogi','Zen Kaku Gothic New',sans-serif !important;
  font-weight:400 !important;
  letter-spacing:0.03em !important;
  line-height:1.12 !important;
  color:var(--soft-green) !important;
  margin-top:10px;
}
.hero h1 .small{
  display:block;
  margin-bottom:16px;
  font-family:'Zen Kaku Gothic New',sans-serif !important;
  font-size:13px !important;
  letter-spacing:0.28em !important;
  color:var(--soft-green-dark) !important;
}
.hero h1 span{display:block;}
.hero h1 span:not(.small){
  font-size:clamp(42px,6vw,82px) !important;
}
.hero h1 .accent{
  color:var(--soft-green) !important;
}
.hero-desc{
  max-width:510px;
  margin-top:28px !important;
  font-size:18px !important;
  line-height:2 !important;
  color:var(--soft-text) !important;
  text-shadow:none !important;
}
.hero-slides{
  position:absolute !important;
  top:146px;
  right:7%;
  width:min(44vw,650px);
  height:min(34vw,470px);
  z-index:1;
}
.hero-slides::before{
  content:"";
  position:absolute;
  left:-8%;
  bottom:-10%;
  width:48%;
  height:48%;
  background:#e0b9ae;
  border-radius:55% 45% 58% 42% / 44% 52% 48% 56%;
  z-index:0;
}
.hero-slide{
  opacity:0 !important;
  position:absolute;
  inset:0;
  display:block !important;
  overflow:hidden;
  border-radius:48% 52% 44% 56% / 42% 35% 65% 58%;
  box-shadow:0 18px 40px rgba(0,0,0,0.10);
  z-index:1;
}
.hero-slide.active,
.hero-slide-1{
  opacity:1 !important;
}
.hero-slide-2{display:none !important;}
.hero-slide::before{
  background:linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(0,0,0,0.12) 100%) !important;
}
.hero-slide-1{background-position:center center !important;}
.hero-slider-ui,
.hero-arrows,
.hero-divider{display:none !important;}

#kodawari{
  background:var(--soft-beige) !important;
  padding:108px 0 82px !important;
  position:relative;
  overflow:hidden;
}
#kodawari::before{
  content:"";
  position:absolute;
  left:-110px;
  top:42%;
  width:210px;
  height:210px;
  background:rgba(213,204,183,0.28);
  border-radius:56% 44% 61% 39% / 42% 58% 42% 58%;
}
#kodawari .wrap{
  display:block !important;
  max-width:1180px !important;
}
#kodawari .section-head{
  max-width:none !important;
  margin:0 auto 76px !important;
  text-align:center !important;
}
#kodawari .eyebrow{
  justify-content:center !important;
  color:var(--soft-green-dark) !important;
  font-size:12px !important;
  letter-spacing:0.24em !important;
}
#kodawari .eyebrow::before{display:none !important;}
#kodawari .section-title{
  font-family:'Yomogi','Zen Kaku Gothic New',sans-serif !important;
  font-weight:400 !important;
  color:var(--soft-green) !important;
  font-size:clamp(38px,4.7vw,66px) !important;
  line-height:1.24 !important;
}
#kodawari .section-title .full-underline::before{display:none !important;}
#kodawari .section-title .big-num{
  width:auto !important;
  height:auto !important;
  border:none !important;
  color:var(--soft-green) !important;
  transform:none !important;
  margin:0 0.14em !important;
  font-size:1.05em !important;
}
#kodawari .feature-block,
#kodawari .feature-block.reverse,
#kodawari .feature-block:nth-of-type(4){
  display:grid !important;
  grid-template-columns:minmax(280px,1fr) minmax(320px,1fr);
  gap:56px !important;
  align-items:center !important;
  margin:0 0 90px !important;
  max-width:none !important;
  background:none !important;
}
#kodawari .feature-block.reverse .feature-photo{order:1;}
#kodawari .feature-block.reverse .feature-text{order:2;}
#kodawari .feature-photo,
#kodawari .feature-block.reverse .feature-photo{
  margin:0 !important;
  background:none !important;
  aspect-ratio:1.24 / 1 !important;
  border-radius:47% 53% 43% 57% / 41% 34% 66% 59% !important;
  overflow:visible !important;
  box-shadow:0 14px 34px rgba(0,0,0,0.09) !important;
  position:relative;
}
#kodawari .feature-photo img{
  border-radius:inherit !important;
  object-fit:cover !important;
}
#kodawari .feature-photo::before{
  content:"";
  position:absolute;
  left:-9%;
  top:-10%;
  width:54%;
  height:58%;
  border-radius:54% 46% 57% 43% / 42% 55% 45% 58%;
  background:#e0b9ae;
  z-index:-1;
}
#kodawari .feature-block.reverse .feature-photo::before{
  left:auto;
  right:-10%;
  top:-10%;
  background:#b9dce6;
}
#kodawari .feature-block:nth-of-type(4) .feature-photo::before{
  left:-7%;
  top:-6%;
  background:#e6d98d;
}
#kodawari .feature-text{
  background:none !important;
  box-shadow:none !important;
  padding:0 !important;
  color:var(--soft-text) !important;
  position:relative;
}
#kodawari .feature-text::before{display:none !important;}
#kodawari .feature-num,
#kodawari .feature-block.reverse .feature-num,
#kodawari .feature-block:nth-of-type(4) .feature-num{
  position:static !important;
  width:auto !important;
  height:auto !important;
  border:none !important;
  background:none !important;
  font-size:clamp(82px,10vw,134px) !important;
  line-height:1 !important;
  margin:0 0 8px !important;
  font-family:'Zen Kaku Gothic New',sans-serif !important;
  font-weight:700 !important;
  letter-spacing:0.02em !important;
}
#kodawari .feature-block:nth-of-type(2) .feature-num{color:var(--soft-red) !important;}
#kodawari .feature-block:nth-of-type(3) .feature-num{color:var(--soft-blue) !important;}
#kodawari .feature-block:nth-of-type(4) .feature-num{color:var(--soft-yellow) !important;}
#kodawari .feature-text h3,
#kodawari .feature-text h3.feature-h3-tight{
  min-height:0 !important;
  margin:0 0 18px !important;
  font-family:'Yomogi','Zen Kaku Gothic New',sans-serif !important;
  font-weight:400 !important;
  font-size:clamp(28px,3vw,44px) !important;
  line-height:1.38 !important;
  letter-spacing:0.01em !important;
}
#kodawari .feature-block:nth-of-type(2) .feature-text h3{color:var(--soft-red) !important;}
#kodawari .feature-block:nth-of-type(3) .feature-text h3{color:var(--soft-blue) !important;}
#kodawari .feature-block:nth-of-type(4) .feature-text h3{color:var(--soft-yellow) !important;}
#kodawari .feature-title-phrase{white-space:normal !important;}
#kodawari .feature-text p{
  max-width:430px;
  font-size:16px !important;
  line-height:2 !important;
  margin:0 0 12px !important;
}
#kodawari .products-all{
  text-align:center;
  margin-top:4px !important;
}
#kodawari .products-all .btn-ghost{
  background:#b4564d !important;
  color:#fff !important;
  border:none !important;
  border-radius:999px !important;
  padding:18px 34px 18px 22px !important;
  letter-spacing:0.08em !important;
  box-shadow:none !important;
}
#kodawari .products-all .btn-ghost::before{
  content:"›";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(255,255,255,0.18);
  margin-right:14px;
  font-size:18px;
  line-height:1;
}
#kodawari .deco-pear{
  top:54px !important;
  right:110px !important;
  transform:scale(0.8) rotate(10deg) !important;
}
#kodawari .deco-rakkyo{
  left:76px !important;
  bottom:122px !important;
  transform:scale(0.74) rotate(-12deg) !important;
}

@media (max-width: 1080px){
  .hero{
    min-height:auto !important;
    padding:46px 0 72px !important;
  }
  .hero .wrap-full{
    padding:30px 24px 0 !important;
  }
  .hero-slides{
    position:relative !important;
    top:auto;
    right:auto;
    width:100%;
    height:min(70vw,460px);
    margin:34px 0 0;
  }
  .hero h1,
  .hero-desc{max-width:none;}
}
@media (max-width: 860px){
  #kodawari{
    padding:86px 0 66px !important;
  }
  #kodawari .section-head{
    margin-bottom:56px !important;
  }
  #kodawari .feature-block,
  #kodawari .feature-block.reverse,
  #kodawari .feature-block:nth-of-type(4){
    grid-template-columns:1fr !important;
    gap:26px !important;
    margin-bottom:60px !important;
  }
  #kodawari .feature-block.reverse .feature-photo,
  #kodawari .feature-block.reverse .feature-text{
    order:initial;
  }
  #kodawari .feature-text p{max-width:none;}
  #kodawari .feature-text h3,
  #kodawari .feature-text h3.feature-h3-tight{
    font-size:clamp(24px,6.4vw,36px) !important;
  }
  #kodawari .deco-pear,
  #kodawari .deco-rakkyo{display:none !important;}
}




/* 「3」：白文字＋赤背景 */
#kodawari .section-title .big-num{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:1.36em !important;
  height:1.36em !important;
  margin:0 0.12em !important;
  padding:0 !important;
  color:#fff !important;
  background:#d85f55 !important;
  border:none !important;
  border-radius:50% !important;
  line-height:1 !important;
  transform:rotate(-5deg) !important;
  vertical-align:middle !important;
}

/* 01・02・03周辺の四角い枠を完全に削除 */
#kodawari .feature-block,
#kodawari .feature-block.reverse,
#kodawari .feature-block:nth-of-type(4),
#kodawari .feature-text,
#kodawari .feature-photo{
  background-color:transparent !important;
  border:none !important;
  outline:none !important;
}
#kodawari .feature-block,
#kodawari .feature-block.reverse,
#kodawari .feature-block:nth-of-type(4),
#kodawari .feature-text{
  box-shadow:none !important;
  border-radius:0 !important;
}
#kodawari .feature-block::before,
#kodawari .feature-block::after,
#kodawari .feature-text::before,
#kodawari .feature-text::after,
#kodawari .feature-num::before,
#kodawari .feature-num::after{
  display:none !important;
  content:none !important;
}
#kodawari .feature-num,
#kodawari .feature-block.reverse .feature-num,
#kodawari .feature-block:nth-of-type(4) .feature-num{
  background:none !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  outline:none !important;
  padding:0 !important;
}

/* 3つの見出し：太字ゴシック */
#kodawari .feature-text h3,
#kodawari .feature-text h3.feature-h3-tight{
  font-family:'Zen Kaku Gothic New','Noto Sans JP','Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1.45 !important;
}




/* 01・02・03の画像枠サイズを統一 */
#kodawari .feature-photo,
#kodawari .feature-block.reverse .feature-photo,
#kodawari .feature-block:nth-of-type(4) .feature-photo{
  width:100% !important;
  max-width:540px !important;
  aspect-ratio:1.24 / 1 !important;
  justify-self:center !important;
}

/* 01・03は写真全体が見えるよう、02と同程度の見え方に調整 */
#kodawari .feature-block:nth-of-type(2) .feature-photo img,
#kodawari .feature-block:nth-of-type(4) .feature-photo img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
}

/* 余白部分をページ背景となじませる */
#kodawari .feature-block:nth-of-type(2) .feature-photo,
#kodawari .feature-block:nth-of-type(4) .feature-photo{
  background:#f5f1e6 !important;
}




/* 01・03の画像表示を02と同じサイズ感に統一 */
#kodawari .feature-block,
#kodawari .feature-block.reverse,
#kodawari .feature-block:nth-of-type(4){
  grid-template-columns:minmax(280px,540px) minmax(300px,540px) !important;
  justify-content:center !important;
  column-gap:42px !important;
}
#kodawari .feature-photo,
#kodawari .feature-block.reverse .feature-photo,
#kodawari .feature-block:nth-of-type(4) .feature-photo{
  width:100% !important;
  max-width:540px !important;
  aspect-ratio:1.24 / 1 !important;
  justify-self:center !important;
  align-self:center !important;
  overflow:hidden !important;
  background:#f5f1e6 !important;
}
#kodawari .feature-text,
#kodawari .feature-block.reverse .feature-text{
  width:100% !important;
  max-width:540px !important;
  justify-self:center !important;
}
#kodawari .feature-block:nth-of-type(2) .feature-photo img,
#kodawari .feature-block:nth-of-type(4) .feature-photo img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:none !important;
}
@media (max-width: 860px){
  #kodawari .feature-block,
  #kodawari .feature-block.reverse,
  #kodawari .feature-block:nth-of-type(4){
    grid-template-columns:1fr !important;
    row-gap:26px !important;
  }
  #kodawari .feature-photo,
  #kodawari .feature-block.reverse .feature-photo,
  #kodawari .feature-block:nth-of-type(4) .feature-photo,
  #kodawari .feature-text,
  #kodawari .feature-block.reverse .feature-text{
    max-width:540px !important;
  }
}




/* 02と同じ白い背景枠を01・03にも統一 */
#kodawari .feature-photo,
#kodawari .feature-block.reverse .feature-photo,
#kodawari .feature-block:nth-of-type(4) .feature-photo{
  background:#fff !important;
  padding:12px !important;
  box-sizing:border-box !important;
}

#kodawari .feature-photo img,
#kodawari .feature-block.reverse .feature-photo img,
#kodawari .feature-block:nth-of-type(4) .feature-photo img{
  width:100% !important;
  height:100% !important;
  border-radius:inherit !important;
  object-fit:cover !important;
}




/* v18で画像側に付けた白枠は解除 */
#kodawari .feature-photo,
#kodawari .feature-block.reverse .feature-photo,
#kodawari .feature-block:nth-of-type(4) .feature-photo{
  background:transparent !important;
  padding:0 !important;
}

/* 02と同じイメージで、見出し・文章側に白い背景枠を付与 */
#kodawari .feature-text,
#kodawari .feature-block.reverse .feature-text,
#kodawari .feature-block:nth-of-type(4) .feature-text{
  width:100% !important;
  max-width:540px !important;
  padding:42px 44px !important;
  background:#fff !important;
  border:none !important;
  border-radius:26px !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
}

/* 白枠内の文章幅をそろえる */
#kodawari .feature-text p,
#kodawari .feature-block.reverse .feature-text p,
#kodawari .feature-block:nth-of-type(4) .feature-text p{
  max-width:none !important;
}

@media (max-width:860px){
  #kodawari .feature-text,
  #kodawari .feature-block.reverse .feature-text,
  #kodawari .feature-block:nth-of-type(4) .feature-text{
    padding:32px 26px !important;
    border-radius:20px !important;
  }
}




/* 見出し下の下線を削除 */
#kodawari .section-title .full-underline::before,
#kodawari .section-title .full-underline::after,
#kodawari .full-underline::before,
#kodawari .full-underline::after{
  display:none !important;
  content:none !important;
}




/* 「ファームSORAの3つのこだわり」周辺の緑色の下線を完全に削除 */
#kodawari .section-title,
#kodawari .section-title .full-underline{
  border-bottom:none !important;
  background-image:none !important;
  text-decoration:none !important;
  box-shadow:none !important;
}
#kodawari .section-title::after,
#kodawari .section-title .full-underline::before,
#kodawari .section-title .full-underline::after,
#kodawari .full-underline::before,
#kodawari .full-underline::after{
  content:none !important;
  display:none !important;
  width:0 !important;
  height:0 !important;
  background:none !important;
  border:none !important;
}
/* 各こだわり見出し下に残っていた緑線も削除 */
#kodawari .feature-text h3,
#kodawari .feature-text h3.feature-h3-tight{
  border-bottom:none !important;
}
#kodawari .feature-text h3::after,
#kodawari .feature-text h3.feature-h3-tight::after{
  content:none !important;
  display:none !important;
  background:none !important;
}




/* 01の上に残っていた緑の線を削除 */
#kodawari .feature-block:nth-of-type(2){
  border-top:none !important;
  border:none !important;
}



/* ============================================
   メインビジュアル：センターピークカルーセル
   （参考: yachiyo-egg.com 風レイアウト）
   ============================================ */
.phero{
  position:relative;
  padding:36px 0 64px;
  background:var(--cream);
  overflow:hidden;
}
.phero-viewport{
  position:relative;
  width:100%;
  height:calc(min(92vw, 1180px) * 0.46 + 24px);
  overflow:hidden;
}
.phero-track{
  position:absolute;
  top:0; left:0;
  height:100%;
  display:flex;
  align-items:center;
  gap:14px;
  will-change:transform;
  transition:transform .65s cubic-bezier(.22,.68,.2,1);
}
.phero-slide{
  position:relative;
  flex:0 0 auto;
  width:min(92vw, 1180px);
  aspect-ratio:16/7.4;
  border-radius:22px;
  background-size:cover;
  background-position:center;
  box-shadow:0 24px 50px -20px rgba(14,110,62,0.35);
  cursor:pointer;
  opacity:.4;
  filter:saturate(.7);
  transform:scale(.94);
  transition:transform .65s cubic-bezier(.22,.68,.2,1), opacity .65s ease, filter .65s ease;
}
.phero-slide::after{
  content:"";
  position:absolute; inset:0;
  border-radius:22px;
  background:linear-gradient(200deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.28) 100%);
  opacity:0;
  transition:opacity .5s ease;
}
.phero-slide.is-active{
  opacity:1;
  filter:saturate(1);
  transform:scale(1);
}
.phero-slide.is-active::after{opacity:.16;}
.phero-copy{
  position:relative;
  z-index:6;
  display:flex;
  justify-content:flex-end;
  margin-top:-172px;
  padding:0 6% 0 0;
  pointer-events:none;
}
.phero-copy-inner{
  background:var(--paper);
  padding:30px 42px;
  border-radius:6px 30px 6px 30px;
  box-shadow:0 20px 46px -18px rgba(14,110,62,0.4);
  text-align:right;
  max-width:min(84vw, 700px);
}
.phero-copy-eyebrow{
  display:block;
  font-size:13px;
  letter-spacing:.28em;
  color:var(--green-line);
  font-weight:700;
  margin-bottom:10px;
}
.phero-copy-text{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-weight:900;
  font-size:56px;
  line-height:1.35;
  color:var(--green-deep-2);
  margin:0;
}
.phero-copy-text .hl{
  position:relative;
  display:inline-block;
  z-index:1;
  padding:0 4px;
}
.phero-copy-text .hl::before{
  content:"";
  position:absolute; left:-4px; right:-4px; bottom:0.06em; height:0.34em;
  background:var(--yellow);
  z-index:-1;
  transform:rotate(-1.5deg);
}
.phero-nav{
  position:relative;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin-top:26px;
}
.phero-arrow{
  width:44px; height:44px;
  border-radius:50%;
  border:2px solid var(--yellow);
  background:var(--paper);
  color:var(--green-deep);
  font-size:20px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  box-shadow:3px 3px 0 rgba(14,110,62,0.15);
  transition:all .2s ease;
}
.phero-arrow:hover{background:var(--green-deep); color:#fff;}
.phero-dots{display:flex; gap:9px;}
.phero-dot{
  width:9px; height:9px; border-radius:50%;
  background:rgba(14,110,62,0.25);
  cursor:pointer;
  transition:all .25s ease;
}
.phero-dot.is-active{width:26px; border-radius:5px; background:var(--green-deep);}

@media (max-width:760px){
  .phero{padding:24px 0 44px;}
  .phero-viewport{height:calc(min(94vw, 640px) * 0.5 + 16px);}
  .phero-slide{width:min(94vw, 640px); aspect-ratio:16/8;}
  .phero-copy{margin-top:-78px; padding:0 5% 0 0;}
  .phero-copy-inner{padding:16px 22px;}
  .phero-copy-text{font-size:clamp(28px, 8vw, 40px); line-height:1.45;}
  .phero-nav{margin-top:18px; gap:16px;}
}

/* ============================================
   3つのこだわり：番号を 01 / 02 / 03 表記に
   （参考: kodomo.nacsj.or.jp 風のナンバリング）
   ============================================ */
#kodawari .feature-num,
#kodawari .feature-block.reverse .feature-num,
#kodawari .feature-block:nth-of-type(3) .feature-num,
#kodawari .feature-block:nth-of-type(4) .feature-num{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif !important;
  font-weight:800 !important;
  font-size:clamp(64px, 7.2vw, 96px) !important;
  line-height:1 !important;
  letter-spacing:.02em !important;
  color:var(--green-deep) !important;
  opacity:.82;
  position:relative;
  display:inline-block;
  margin-bottom:14px;
}
#kodawari .feature-block.reverse .feature-num{
  color:var(--soft-blue) !important;
}
#kodawari .feature-block.reverse + .feature-block .feature-num{
  color:var(--soft-yellow) !important;
}
#kodawari .feature-num::after,
#kodawari .feature-block.reverse .feature-num::after,
#kodawari .feature-block:nth-of-type(3) .feature-num::after,
#kodawari .feature-block:nth-of-type(4) .feature-num::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:2px; bottom:-14px;
  width:46px; height:3px;
  background:var(--yellow) !important;
  border-radius:2px;
  opacity:1 !important;
}

/* 各見出し下のリード文フォントサイズ */
#kodawari .feature-text h3 .feature-title-phrase{
  font-size:30px !important;
  line-height:1.65 !important;
}
#kodawari .feature-text p{
  font-size:18px !important;
}

/* よくある質問：背景色に薄い緑 */
#faq{
  background:var(--ivory) !important;
}

/* 「こだわりをもっとみる」ボタン：背景を緑に */
#kodawari .products-all .btn-ghost{
  background:var(--green-deep) !important;
}
#kodawari .products-all .btn-ghost:hover{
  background:var(--green-deep-2) !important;
}



/* ============================================
   プライバシーポリシー等・固定ページ共通スタイル
   ============================================ */
.breadcrumb{
  padding:22px 0;
  font-size:14px;
  color:var(--text-sub);
}
.breadcrumb a{color:var(--green-deep); font-weight:700;}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb .sep{margin:0 8px; color:#B7C2AC;}

.policy-page{padding:20px 0 100px;}
.policy-head{
  text-align:center;
  margin-bottom:56px;
}
.policy-head .eyebrow{
  font-size:12.5px; letter-spacing:0.32em; color:var(--green-line);
  font-weight:700; display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:18px;
}
.policy-head .eyebrow::before,
.policy-head .eyebrow::after{content:""; width:26px; height:1px; background:var(--green-line);}
.policy-head h1{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:clamp(28px,4vw,40px);
  font-weight:900;
  color:var(--green-deep-2);
  letter-spacing:0.02em;
}

@media (max-width:480px){
  .policy-head h1{
    font-size:26px;
    letter-spacing:0.01em;
  }
}

.policy-intro{
  background:var(--paper);
  border-radius:16px;
  padding:32px 36px;
  margin-bottom:48px;
  box-shadow:0 18px 40px -28px rgba(14,110,62,0.35);
  font-size:18px;
  line-height:1.9;
}

.policy-article{
  margin-bottom:44px;
}
.policy-article h2{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:clamp(19px,2.2vw,22px);
  font-weight:800;
  color:var(--green-deep-2);
  border-left:5px solid var(--green-deep);
  padding-left:16px;
  margin-bottom:16px;
  line-height:1.5;
}
.policy-article p{
  font-size:18px;
  line-height:1.95;
  color:var(--text);
  margin-bottom:12px;
}
.policy-article ol{
  margin:12px 0 0 0;
  padding-left:1.4em;
  font-size:18px;
  line-height:2;
}
.policy-article ol li{
  margin-bottom:4px;
}

/* ============================================
   特定商取引法に基づく表記：定義テーブル
   ============================================ */
.tokushoho-table{
  border-top:1px solid var(--line);
}
.tokushoho-row{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:24px;
  padding:26px 4px;
  border-bottom:1px solid var(--line);
}
.tokushoho-label{
  font-weight:800;
  color:var(--green-deep-2);
  font-size:18px;
  letter-spacing:.02em;
}
.tokushoho-value{
  font-size:18px;
  line-height:1.9;
  color:var(--text);
}

@media (max-width:760px){
  .tokushoho-row{
    grid-template-columns:1fr;
    gap:8px;
    padding:20px 2px;
  }
  .tokushoho-label{font-size:18px;}
  .tokushoho-value{font-size:16px; line-height:1.8;}
}

/* WordPress page content (the_content) styling — matches the policy-article look
   without requiring the author to add any custom classes in the block editor. */
.policy-page .entry-content{font-size:18px;}
.policy-page .entry-content > p:first-child{
  background:var(--paper);
  border-radius:16px;
  padding:32px 36px;
  margin-bottom:48px;
  box-shadow:0 18px 40px -28px rgba(14,110,62,0.35);
  font-size:18px;
  line-height:1.9;
}
.policy-page .entry-content h2{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:clamp(19px,2.2vw,22px);
  font-weight:800;
  color:var(--green-deep-2);
  border-left:5px solid var(--green-deep);
  padding-left:16px;
  margin:44px 0 16px;
  line-height:1.5;
}
.policy-page .entry-content p{
  font-size:18px;
  line-height:1.95;
  color:var(--text);
  margin-bottom:12px;
}
.policy-page .entry-content ol,
.policy-page .entry-content ul{
  margin:12px 0 20px 0;
  padding-left:1.4em;
  font-size:18px;
  line-height:2;
}
.policy-page .entry-content ol li,
.policy-page .entry-content ul li{
  margin-bottom:4px;
  list-style:decimal;
}
.policy-page .entry-content ul li{list-style:disc;}

@media (max-width:760px){
  .policy-page .entry-content > p:first-child{padding:24px 22px;}
}

/* ============================================
   ヘッダー・フッター スマートフォン対応
   （ハンバーガーメニュー）
   ============================================ */
.hamburger-btn{
  display:none;
  flex-direction:column;
  align-items:center;
  gap:3px;
  background:none;
  border:none;
  cursor:pointer;
  padding:4px 2px;
  flex-shrink:0;
}
.hamburger-icon{
  position:relative;
  width:26px;
  height:18px;
}
.hamburger-icon span{
  position:absolute;
  left:0;
  width:100%;
  height:2.5px;
  border-radius:2px;
  background:var(--green-deep);
  transition:transform .25s ease, opacity .25s ease, top .25s ease;
}
.hamburger-icon span:nth-child(1){top:0;}
.hamburger-icon span:nth-child(2){top:8px;}
.hamburger-icon span:nth-child(3){top:16px;}
.hamburger-btn.is-active .hamburger-icon span:nth-child(1){top:8px; transform:rotate(45deg);}
.hamburger-btn.is-active .hamburger-icon span:nth-child(2){opacity:0;}
.hamburger-btn.is-active .hamburger-icon span:nth-child(3){top:8px; transform:rotate(-45deg);}
.hamburger-label{
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--green-deep);
  line-height:1;
}

.mobile-nav-overlay{
  position:fixed;
  inset:0;
  background:rgba(8,63,36,0.4);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s ease, visibility 0s linear .3s;
  z-index:190;
}
.mobile-nav-overlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .3s ease, visibility 0s linear 0s;
}
.mobile-nav{
  position:fixed;
  top:0;
  right:0;
  width:80%;
  max-width:320px;
  height:100%;
  background:var(--paper, #fff);
  box-shadow:none;
  transform:translateX(100%);
  visibility:hidden;
  transition:transform .32s ease, visibility 0s linear .32s;
  z-index:200;
  padding:88px 30px 40px;
  overflow-y:auto;
}
.mobile-nav.is-open{
  transform:translateX(0);
  visibility:visible;
  box-shadow:-14px 0 40px rgba(0,0,0,0.18);
  transition:transform .32s ease, visibility 0s linear 0s;
}
.mobile-nav-close{
  position:absolute;
  top:20px;
  right:20px;
  width:38px;
  height:38px;
  border:none;
  border-radius:50%;
  background:var(--ivory, #EFF7E6);
  color:var(--green-deep);
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
.mobile-nav nav{
  display:flex;
  flex-direction:column;
  gap:24px;
  font-size:17px;
  font-weight:700;
}
.mobile-nav nav a{color:var(--text);}
.mobile-nav nav a:hover{color:var(--green-deep);}
.mobile-nav-phone{
  margin-top:8px;
  color:var(--green-deep) !important;
  font-size:20px !important;
  font-weight:900 !important;
}
.mobile-nav-cta{
  margin-top:12px;
  justify-content:center;
  background:#C1272D;
  border-color:#C1272D;
  color:#fff !important;
}

/* ============================================
   タブレット横向き（1025px〜1200px）：
   デスクトップナビは維持しつつ、間隔とサイズを詰める
   ============================================ */
@media (min-width:1025px) and (max-width:1200px){
  header.main .wrap-full{gap:16px;}
  nav.primary{gap:14px; font-size:15px;}
  .header-phone .num{font-size:20px;}
  .header-cta{padding:12px 22px; font-size:13px;}
  .logo-text .en{font-size:28px;}
}

/* ============================================
   タブレット縦向き＋横向き＋スマホ（1200px以下）：
   ハンバーガーメニューに切り替え
   ============================================ */
@media (max-width:1200px){
  nav.primary{display:none !important;}
  .hamburger-btn{display:flex !important;}
  .header-phone{display:none !important;}
  .header-cta{display:none !important;}
  .header-actions{display:none !important;}
  header.main .wrap-full{gap:10px; flex-wrap:nowrap; padding-left:18px; padding-right:18px;}
  .logo-text .en{font-size:24px !important; white-space:normal !important; line-height:1.2;}
  .utility-bar .wrap-full{padding-left:14px; padding-right:14px;}
  .utility-links{gap:12px !important; font-size:11.5px !important;}
  .mobile-nav{width:52%; max-width:380px;}
}

/* タブレット（761px〜1200px）はやや広めのサイズに */
@media (min-width:761px) and (max-width:1200px){
  .logo-text .en{font-size:26px !important;}
  .utility-links{font-size:12.5px !important;}
  .hamburger-btn .hamburger-icon{width:30px; height:20px;}
  .hamburger-label{font-size:11px;}
  .mobile-nav{width:44%; max-width:400px;}
  .mobile-nav nav{font-size:19px; gap:28px;}
}

/* スマホ（760px以下） */
@media (max-width:760px){
  .logo-text .en{font-size:20px !important;}
  .utility-links{gap:10px !important; font-size:10.5px !important;}
  .mobile-nav{width:80%; max-width:320px;}
}

@media (max-width:400px){
  .logo-text .en{font-size:17px !important;}
  .utility-links{gap:7px !important; font-size:9.5px !important;}
}

/* フッターのスマホ対応強化 */
@media (max-width:600px){
  .footer-grid{grid-template-columns:repeat(2,1fr) !important; gap:20px 16px !important; text-align:left;}
  .footer-brand{grid-column:1 / -1; text-align:left;}
  .footer-col ul{padding:0;}
  .footer-col ul li{font-size:12px !important; margin-bottom:10px !important;}
  .footer-bottom .credit{text-align:center;}
}

.footer-bottom .credit a{text-decoration:none;}
.footer-bottom .credit a:hover{text-decoration:underline;}

html{overflow-x:hidden;}
body{max-width:100%;}

/* ============================================
   最終セーフガード（タブレット等で「↑」ボタンが
   見えない／ページ最下部までスクロールできない対策）
   ============================================ */
html, body{
  height:auto !important;
  min-height:100% !important;
  overflow-y:visible !important;
}
.back-to-top{
  display:flex !important;
  position:fixed !important;
  right:20px !important;
  bottom:20px !important;
  z-index:99999 !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
@media (max-width:1200px){
  .back-to-top{
    right:max(16px, env(safe-area-inset-right)) !important;
    bottom:max(16px, env(safe-area-inset-bottom)) !important;
    width:46px !important;
    height:46px !important;
    font-size:19px !important;
  }
}
footer{overflow:visible !important;}
.footer-bottom{overflow:visible !important; padding-bottom:100px !important;}

/* ============================================
   ご利用ガイド
   ============================================ */
.guide-section{
  margin-bottom:64px;
}
.guide-section-title{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:clamp(20px,2.2vw,24px);
  font-weight:800;
  color:var(--green-deep-2);
  border-left:5px solid var(--green-deep);
  padding-left:16px;
  margin-bottom:28px;
  line-height:1.5;
}
.guide-lead{
  font-size:18px;
  line-height:1.9;
  margin-bottom:24px;
}

/* ---- 商品注文までの流れ ---- */
.guide-steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.guide-step{
  position:relative;
  background:var(--paper);
  border-radius:16px;
  padding:36px 22px 24px;
  box-shadow:0 14px 32px -20px rgba(14,110,62,0.3);
  text-align:center;
}
.guide-step-num{
  position:absolute;
  top:-22px;
  left:50%;
  transform:translateX(-50%);
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--green-deep);
  color:#fff;
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-weight:800;
  font-size:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 18px -6px rgba(14,110,62,0.5);
}
.guide-step p{
  font-size:18px;
  line-height:1.8;
  color:var(--text);
  margin:0;
  text-align:left;
}
.guide-step:not(:last-child)::after{
  content:"›";
  position:absolute;
  top:50%;
  left:calc(100% + 12px);
  transform:translate(-50%, -50%);
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--yellow);
  color:var(--green-deep-2);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  font-weight:900;
  line-height:1;
  padding-bottom:3px;
  box-sizing:border-box;
  box-shadow:0 6px 14px -6px rgba(14,110,62,0.6);
  z-index:2;
}

/* ---- お支払い方法について ---- */
.guide-payment-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.guide-payment-card{
  background:var(--paper);
  border-radius:16px;
  padding:30px 32px;
  box-shadow:0 14px 32px -20px rgba(14,110,62,0.3);
}
.guide-payment-label{
  display:inline-block;
  font-weight:800;
  font-size:16px;
  color:#fff;
  background:var(--green-deep);
  border-radius:999px;
  padding:6px 20px;
  margin-bottom:16px;
}
.guide-payment-card p{
  font-size:16px;
  line-height:1.85;
  margin:0;
}
.guide-bank-list{
  margin:0 0 16px;
  padding:0;
  list-style:none;
}
.guide-bank-list li{
  display:flex;
  gap:16px;
  font-size:16px;
  line-height:2;
  border-bottom:1px dashed var(--line);
  padding:4px 0;
}
.guide-bank-list li span{
  flex-shrink:0;
  width:88px;
  font-weight:700;
  color:var(--green-deep-2);
}
.guide-note{
  font-size:14px;
  color:var(--text-sub);
  margin-top:8px;
}
.guide-scroll-hint{
  display:none;
}

@media (max-width:760px){
  .guide-table-outer{
    position:relative;
  }
  .guide-scroll-hint{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    position:absolute;
    inset:0;
    background:rgba(8,63,36,0.55);
    color:#fff;
    font-size:14px;
    font-weight:700;
    letter-spacing:.04em;
    border-radius:14px;
    z-index:5;
    opacity:1;
    transition:opacity .4s ease;
    cursor:pointer;
  }
  .guide-scroll-hint.is-hidden{
    opacity:0;
    pointer-events:none;
  }
}
.guide-scroll-arrows{
  display:inline-block;
  font-size:18px;
  font-weight:900;
  animation:guide-scroll-point 1.1s ease-in-out infinite;
}
.guide-scroll-arrows:first-child{animation-direction:normal;}
.guide-scroll-arrows:last-child{animation-direction:reverse;}
@keyframes guide-scroll-point{
  0%, 100%{transform:translateX(0);}
  50%{transform:translateX(4px);}
}

/* ---- 送料について ---- */
.guide-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:14px;
  box-shadow:0 14px 32px -20px rgba(14,110,62,0.3);
}
.guide-shipping-table{
  width:100%;
  min-width:760px;
  border-collapse:collapse;
  background:var(--paper);
  font-size:15px;
}
.guide-shipping-table th,
.guide-shipping-table td{
  padding:14px 12px;
  text-align:center;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}
.guide-shipping-table thead th{
  background:var(--green-deep);
  color:#fff;
  font-weight:700;
  font-size:14px;
  line-height:1.4;
  white-space:normal;
}
.guide-shipping-table tbody tr:nth-child(even){
  background:var(--ivory);
}
.guide-shipping-table tbody td:first-child{
  font-weight:700;
  color:var(--green-deep-2);
}
.guide-shipping-table th:nth-child(3),
.guide-shipping-table td:nth-child(3){
  border-right:2px solid var(--green-deep-2);
}
.guide-note-right{
  text-align:right;
}

@media (max-width:900px){
  .guide-steps{grid-template-columns:repeat(2,1fr);}
  .guide-step:not(:last-child)::after{display:none;}
  .guide-payment-grid{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .guide-steps{grid-template-columns:1fr;}
  .guide-step{padding:32px 20px 22px;}
}

/* ============================================
   お問い合わせ
   ============================================ */
.contact-intro{
  background:var(--paper);
  border-radius:16px;
  padding:32px 36px;
  margin-bottom:56px;
  box-shadow:0 18px 40px -28px rgba(14,110,62,0.35);
  font-size:18px;
  line-height:1.95;
}
.contact-intro p{margin-bottom:14px;}
.contact-intro p:last-child{margin-bottom:0;}

.contact-phone-card{
  background:var(--paper);
  border-radius:16px;
  padding:40px 32px;
  text-align:center;
  box-shadow:0 14px 32px -20px rgba(14,110,62,0.3);
}
.contact-phone-link{
  display:inline-flex;
  align-items:center;
  gap:14px;
  color:var(--green-deep);
}
.contact-phone-icon{font-size:32px;}
.contact-phone-num{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-weight:900;
  font-size:clamp(28px,4vw,38px);
  color:var(--green-deep);
}
.contact-hours{
  font-size:15px;
  color:var(--text-sub);
  margin-top:4px;
}

.contact-form-wrap{
  background:var(--paper);
  border-radius:16px;
  padding:40px 36px;
  box-shadow:0 14px 32px -20px rgba(14,110,62,0.3);
}
.contact-form-notice{
  font-size:15px;
  color:var(--text-sub);
  background:var(--ivory);
  border-radius:10px;
  padding:20px;
}

/* ---- Contact Form 7 のデザイン調整 ---- */
.contact-form-wrap .wpcf7-form p{
  margin-bottom:30px !important;
  line-height:1.3 !important;
}
.contact-form-wrap .wpcf7-form label,
.contact-form-wrap .wpcf7-form > p{
  font-size:16px;
  font-weight:700;
  color:var(--green-deep-2);
}
.contact-form-wrap .wpcf7-form .title-contactform7{
  display:inline-block !important;
  font-size:16px;
  font-weight:700;
  line-height:1.3 !important;
  color:var(--green-deep-2);
}
.contact-form-wrap .wpcf7-form br{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
  line-height:0 !important;
}
.cf7-required{
  display:inline-block;
  background:#C1272D;
  color:#fff;
  font-size:11px;
  font-weight:700;
  border-radius:4px;
  padding:2px 8px;
  margin-left:8px;
  vertical-align:middle;
}
.cf7-optional{
  display:inline-block;
  background:var(--line);
  color:var(--text-sub);
  font-size:11px;
  font-weight:700;
  border-radius:4px;
  padding:2px 8px;
  margin-left:8px;
  vertical-align:middle;
}
.contact-form-wrap .wpcf7-form input[type="text"],
.contact-form-wrap .wpcf7-form input[type="email"],
.contact-form-wrap .wpcf7-form input[type="tel"],
.contact-form-wrap .wpcf7-form textarea{
  display:block !important;
  width:100% !important;
  margin-top:10px !important;
  padding:14px 16px;
  font-size:16px;
  font-family:inherit;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--cream);
  color:var(--text);
  transition:border-color .2s ease;
}
.contact-form-wrap .wpcf7-form input:focus,
.contact-form-wrap .wpcf7-form textarea:focus{
  outline:none;
  border-color:var(--green-deep);
  background:#fff;
}
.contact-form-wrap .wpcf7-form textarea{
  min-height:160px;
  resize:vertical;
}
.cf7-submit-row{
  display:flex !important;
  justify-content:center !important;
  text-align:center !important;
  margin-top:36px !important;
  position:relative;
}
.cf7-submit-row .wpcf7-spinner{
  position:absolute !important;
  margin:0 !important;
}
.cf7-submit-row .wpcf7-form-control-wrap{
  display:flex !important;
  justify-content:center !important;
  width:auto !important;
  flex:none !important;
}
.contact-form-wrap .wpcf7-form input[type="submit"],
.contact-form-wrap .wpcf7-form button[type="submit"]{
  display:table !important;
  margin-left:auto !important;
  margin-right:auto !important;
  width:auto !important;
  text-align:center;
  background:var(--green-deep);
  color:#fff;
  border:none;
  border-radius:999px;
  padding:16px 48px;
  font-size:16px;
  font-weight:700;
  letter-spacing:.06em;
  cursor:pointer;
  transition:background .25s ease;
}
.contact-form-wrap .wpcf7-form input[type="submit"]:hover,
.contact-form-wrap .wpcf7-form button[type="submit"]:hover{
  background:var(--green-deep-2);
}
.contact-form-wrap .wpcf7-not-valid-tip{
  color:#C1272D;
  font-size:13px;
  font-weight:700;
  margin-top:6px;
}
.contact-form-wrap .wpcf7-response-output{
  border-radius:10px;
  padding:16px 20px;
  font-size:14px;
}

/* ---- Confirm Plus Contact Form 7：確認画面 ---- */
.contact-form-wrap,
.contact-form-wrap .wpcf7,
.contact-form-wrap .wpcf7-form,
.contact-form-wrap #wpcf7cpcnf{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
.contact-form-wrap #wpcf7cpcnf{
  margin-top:8px;
}
.contact-form-wrap #wpcf7cpcnf table{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  margin-bottom:36px;
}
.contact-form-wrap #wpcf7cpcnf table tr{
  border-bottom:1px solid var(--line);
}
.contact-form-wrap #wpcf7cpcnf table th,
.contact-form-wrap #wpcf7cpcnf table td{
  padding:18px 12px;
  text-align:left;
  vertical-align:top;
  height:auto !important;
  overflow:visible !important;
}
.contact-form-wrap #wpcf7cpcnf table th{
  width:180px;
  font-size:16px;
  font-weight:700;
  color:var(--green-deep-2);
  white-space:nowrap;
}
.contact-form-wrap #wpcf7cpcnf table th p,
.contact-form-wrap #wpcf7cpcnf table td p{
  margin:0;
  font-size:16px;
  line-height:1.7;
  height:auto !important;
  max-height:none !important;
}
.contact-form-wrap #wpcf7cpcnf table td p{
  color:var(--text);
  white-space:pre-wrap;
  overflow-wrap:break-word;
  word-break:break-word;
}
.contact-form-wrap .wpcf7cp-btns{
  display:flex;
  justify-content:center;
  gap:20px;
  flex-wrap:wrap;
}
.contact-form-wrap .wpcf7cp-btns button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:none;
  border-radius:999px;
  padding:16px 44px;
  font-size:16px;
  font-weight:700;
  letter-spacing:.06em;
  cursor:pointer;
  transition:background .25s ease, color .25s ease;
}
.contact-form-wrap .wpcf7cp-cfm-edit-btn{
  background:var(--paper);
  color:var(--green-deep-2);
  border:2px solid var(--line) !important;
}
.contact-form-wrap .wpcf7cp-cfm-edit-btn:hover{
  background:var(--ivory);
  border-color:var(--green-deep) !important;
}
.contact-form-wrap .wpcf7cp-cfm-submit-btn{
  background:var(--green-deep);
  color:#fff;
}
.contact-form-wrap .wpcf7cp-cfm-submit-btn:hover{
  background:var(--green-deep-2);
}

@media (max-width:600px){
  .contact-form-wrap #wpcf7cpcnf table,
  .contact-form-wrap #wpcf7cpcnf table tbody,
  .contact-form-wrap #wpcf7cpcnf table tr{
    display:block;
    width:100%;
  }
  .contact-form-wrap #wpcf7cpcnf table th,
  .contact-form-wrap #wpcf7cpcnf table td{
    display:block;
    width:100%;
    padding:6px 2px;
  }
  .contact-form-wrap #wpcf7cpcnf table th{
    padding-top:16px;
  }
  .contact-form-wrap #wpcf7cpcnf table td{
    padding-bottom:16px;
  }
  .contact-form-wrap .wpcf7cp-btns{
    flex-direction:column;
    align-items:stretch;
  }
  .contact-form-wrap .wpcf7cp-btns button{
    width:100%;
  }
}

@media (max-width:600px){
  .contact-intro,
  .contact-phone-card,
  .contact-form-wrap{padding:26px 22px;}
  .contact-phone-icon{font-size:26px;}
  .cf7-submit-row{
    display:flex !important;
    justify-content:center !important;
    text-align:center !important;
    position:relative;
  }
  .cf7-submit-row .wpcf7-spinner{
    position:absolute !important;
    margin:0 !important;
  }
  .cf7-submit-row .wpcf7-form-control-wrap{
    display:flex !important;
    justify-content:center !important;
    width:auto !important;
  }
  .contact-form-wrap .wpcf7-form input[type="submit"],
  .contact-form-wrap .wpcf7-form button[type="submit"]{
    display:table !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* ============================================
   お知らせ一覧・詳細
   ============================================ */
.news-tabs{
  display:flex;
  gap:12px;
  margin-bottom:36px;
  flex-wrap:wrap;
}
.news-tab{
  display:inline-flex;
  align-items:center;
  padding:10px 26px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--text-sub);
  font-size:14px;
  font-weight:700;
  transition:all .2s ease;
}
.news-tab:hover{
  border-color:var(--green-deep);
  color:var(--green-deep);
}
.news-tab.is-active{
  background:var(--green-deep);
  border-color:var(--green-deep);
  color:#fff;
}

.news-list{
  border-top:1px solid var(--line);
}
.news-row{
  display:flex;
  align-items:center;
  gap:22px;
  padding:22px 4px;
  border-bottom:1px solid var(--line);
  color:var(--text);
  transition:background .2s ease;
}
.news-row:hover{
  background:var(--ivory);
}
.news-date{
  flex-shrink:0;
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:15px;
  font-weight:700;
  color:var(--text-sub);
  width:100px;
  background:none !important;
  border-radius:0 !important;
  padding:0 !important;
}
.news-cats{
  flex-shrink:0;
  display:flex;
  gap:8px;
  width:120px;
}
.news-cat{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  padding:4px 12px;
  border-radius:999px;
  white-space:nowrap;
}
.news-cat-news{
  background:#D0E8B3;
  color:#4a7c3f;
}
.news-cat-shukka{
  background:#FFF3D6;
  color:#B8791A;
}
.news-title{
  flex:1;
  font-size:16px;
  line-height:1.6;
}

.news-empty{
  padding:60px 0;
  text-align:center;
  color:var(--text-sub);
  font-size:16px;
}

.news-pagination{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:48px;
  flex-wrap:wrap;
}
.news-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--text);
  font-size:14px;
  font-weight:700;
}
.news-pagination .page-numbers:hover{
  border-color:var(--green-deep);
  color:var(--green-deep);
}
.news-pagination .page-numbers.current{
  background:var(--green-deep);
  border-color:var(--green-deep);
  color:#fff;
}
.news-pagination .page-numbers.dots{
  border:none;
  background:none;
}

/* ---- 詳細ページ ---- */
.news-single{
  margin-bottom:48px;
}
.news-single-meta{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
}
.news-single-title{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:clamp(22px,3vw,30px);
  font-weight:800;
  color:var(--green-deep-2);
  line-height:1.5;
  margin-bottom:32px;
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.news-single-thumb{
  margin-bottom:32px;
  border-radius:16px;
  overflow:hidden;
}
.news-single-thumb img{
  width:100%;
  height:auto;
  display:block;
}
.news-single-content{
  font-size:16px;
  line-height:1.95;
}
.news-single-content p{
  margin-bottom:1.4em;
}
.news-single-content img{
  max-width:100%;
  height:auto;
  border-radius:12px;
}

.news-single-nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:16px;
  border-top:1px solid var(--line);
  padding-top:28px;
  font-size:15px;
  font-weight:700;
}
.news-single-nav a{
  display:inline-flex;
  align-items:center;
  color:#fff;
  background:var(--green-deep);
  padding:12px 28px;
  border-radius:999px;
  transition:background .2s ease;
}
.news-single-nav a:hover{
  background:var(--green-deep-2);
  text-decoration:none;
}
.news-single-nav-list a{
  color:var(--green-deep-2);
  background:var(--paper);
  border:1px solid var(--line);
}
.news-single-nav-list a:hover{
  border-color:var(--green-deep);
  color:var(--green-deep);
  background:var(--ivory);
}
.news-single-nav-prev{text-align:left; flex:1;}
.news-single-nav-next{text-align:right; flex:1; justify-content:flex-end;}
.news-single-nav-prev,
.news-single-nav-next{display:flex;}
.news-single-nav-next{justify-content:flex-end;}

@media (max-width:600px){
  .news-row{
    flex-wrap:wrap;
    gap:8px 12px;
  }
  .news-date{width:auto;}
  .news-cats{width:auto;}
  .news-title{
    width:100%;
    flex:none;
  }
  .news-single-nav{
    flex-wrap:wrap;
    gap:14px;
    justify-content:center;
    text-align:center;
  }
  .news-single-nav-item{flex:none; width:100%; text-align:center;}
}

/* ============================================
   梨ページ
   ============================================ */
.nashi-page{overflow-x:hidden;}
.nashi-section{padding:80px 0;}
.nashi-section-alt{background:var(--ivory);}
.nashi-section-title{
  text-align:center;
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:40px;
  font-weight:800;
  color:var(--green-deep-2);
  margin-bottom:48px;
}
.nashi-section-title .leaf{
  font-size:0.7em;
  margin:0 10px;
  vertical-align:middle;
}
.nashi-section-title-left{
  text-align:left;
  margin-bottom:24px;
}
.nashi-section-title-left .leaf{display:none;}
.nashi-section-intro{
  max-width:1100px;
  margin:0 auto 20px;
  text-align:left;
  font-size:18px;
  line-height:1.9;
  color:var(--text);
}
.nashi-section-intro:last-of-type{
  margin-bottom:48px;
}

/* ---- Hero ---- */
.nashi-hero{
  position:relative;
  min-height:560px;
  overflow:hidden;
  background:#edf3e4;
}
.nashi-hero-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center center;
}
.nashi-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(250,251,243,0.96) 0%, rgba(250,251,243,0.9) 30%, rgba(250,251,243,0.55) 48%, rgba(250,251,243,0.08) 68%, rgba(250,251,243,0) 82%);
}
.nashi-hero-inner{
  position:relative;
  z-index:2;
  min-height:560px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.nashi-hero-eyebrow{
  font-family:'Yomogi',cursive;
  font-size:20px;
  font-weight:500;
  color:var(--text);
  margin:0 0 32px 16px;
  transform:rotate(-3deg);
  transform-origin:left center;
}
.nashi-hero-title{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:clamp(35px,3.7vw,50px);
  font-weight:700;
  color:var(--green-deep-2);
  margin:0 0 25px;
  line-height:1.45;
  letter-spacing:.035em;
  -webkit-text-stroke:2px rgba(255,255,255,.96);
  paint-order:stroke fill;
  text-shadow:0 2px 10px rgba(255,255,255,.78);
}
.nashi-hero-title .hl{color:var(--green-deep);}
.nashi-hero-desc{
  font-size:18px;
  line-height:2;
  color:var(--text);
  max-width:520px;
}

/* ---- 写真＋テキスト（梨とは／手間を惜しまず） ---- */
.nashi-photo-text{
  display:flex;
  align-items:center;
  gap:56px;
}
.nashi-photo-text-reverse{flex-direction:row-reverse;}
.nashi-photo-text-img{
  flex:0 0 42%;
  aspect-ratio:4/3;
  border-radius:18px;
  background-size:cover;
  background-position:center;
  box-shadow:0 20px 44px -22px rgba(14,110,62,0.35);
}
.nashi-photo-text-body{flex:1;}
.nashi-photo-text-body p{
  font-size:18px;
  line-height:1.95;
  margin-bottom:16px;
}
.nashi-photo-text-body p:last-child{margin-bottom:0;}

/* ---- 旬ごとに楽しめる：品種カード ---- */
.nashi-variety-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.nashi-variety-grid-7{
  grid-template-columns:repeat(4,1fr);
}
.nashi-variety-card{
  background:var(--paper);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 18px 40px -24px rgba(14,110,62,0.3);
}
.nashi-variety-img{
  aspect-ratio:4/3;
  background-size:cover;
  background-position:center;
}
.nashi-variety-card > h3,
.nashi-variety-card > p,
.nashi-variety-card > .nashi-variety-tag{
  padding-left:26px;
  padding-right:26px;
}
.nashi-variety-name{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:20px;
  font-weight:800;
  color:var(--green-deep);
  text-align:center;
  margin:20px 0 12px;
  border-bottom:2px solid var(--yellow);
  padding-bottom:14px;
  margin-left:26px;
  margin-right:26px;
}
.nashi-variety-card > p{
  font-size:18px;
  line-height:1.85;
  color:var(--text);
  margin-bottom:14px;
}
.nashi-variety-tag{
  display:inline-block;
  margin-left:26px;
  background:var(--ivory);
  color:var(--green-deep);
  font-size:12px;
  font-weight:700;
  border-radius:6px;
  padding:4px 12px;
  margin-bottom:8px;
}
.nashi-variety-note{
  padding-bottom:26px !important;
  font-size:18px !important;
  color:var(--text-sub) !important;
}

/* ---- おいしい理由：写真＋番号カード ---- */
.nashi-reason-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
}
.nashi-reason-card{
  position:relative;
  background:var(--paper);
  border-radius:18px;
  padding:32px;
  text-align:left;
  box-shadow:0 18px 40px -24px rgba(14,110,62,0.3);
  display:grid;
  grid-template-columns:500px 1fr;
  grid-template-rows:auto auto;
  column-gap:32px;
  row-gap:4px;
  align-items:start;
}
.nashi-reason-photo{
  position:relative;
  width:500px;
  height:375px;
  background-size:cover;
  background-position:center;
  border-radius:12px;
  grid-row:1/3;
  grid-column:1;
}
.nashi-reason-num{
  position:absolute;
  top:-16px;
  left:-16px;
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--yellow);
  color:var(--green-deep-2);
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-weight:800;
  font-size:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 18px -6px rgba(14,110,62,0.5);
}
.nashi-reason-card h3{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:28px;
  font-weight:800;
  color:var(--green-deep-2);
  line-height:1.4;
  margin:0;
  padding:0;
  grid-column:2;
  grid-row:1;
  white-space:normal;
  align-self:center;
}
.nashi-reason-card p{
  font-size:18px;
  line-height:1.8;
  color:var(--text-sub);
  text-align:left;
  padding:0;
  margin:0;
  grid-column:2;
  grid-row:2;
}
  margin-bottom:14px;
}
.nashi-reason-card p:last-child{
  margin-bottom:0;
}

/* ---- 収穫時期の目安 ---- */
.nashi-timeline{
  background:var(--paper);
  border-radius:16px;
  padding:32px 28px;
  box-shadow:0 18px 40px -24px rgba(14,110,62,0.3);
}
.nashi-timeline-header,
.nashi-timeline-row{
  display:grid;
  grid-template-columns:160px 1fr;
  align-items:center;
  gap:16px;
}
.nashi-timeline-header{
  padding-bottom:14px;
  margin-bottom:10px;
  border-bottom:1px solid var(--line);
}
.nashi-timeline-header .nashi-timeline-month{
  flex:1;
  text-align:left;
  font-size:13px;
  font-weight:700;
  color:var(--text-sub);
}
.nashi-timeline-header{
  grid-template-columns:160px repeat(4, 1fr);
}
.nashi-timeline-row{
  padding:10px 0;
}
.nashi-timeline-label{
  font-size:14px;
  font-weight:700;
  color:var(--green-deep-2);
}
.nashi-timeline-track{
  position:relative;
  height:34px;
  background:var(--cream);
  border-radius:8px;
}
.nashi-timeline-bar{
  position:absolute;
  top:0;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--green-deep);
  color:#fff;
  font-size:12px;
  font-weight:700;
  border-radius:8px;
  white-space:nowrap;
  padding:0 10px;
}
.nashi-timeline-bar-amber{
  background:var(--yellow);
  color:var(--green-deep-2);
}
.nashi-timeline-note{
  text-align:center;
  font-size:18px;
  color:var(--text-sub);
  margin-top:20px;
  line-height:1.8;
}

/* ---- 商品一覧 ---- */
.nashi-product-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.nashi-product-card{
  background:var(--paper);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 16px 36px -22px rgba(14,110,62,0.3);
}
.nashi-product-img{
  aspect-ratio:4/3;
  background-size:cover;
  background-position:center;
}
.nashi-product-body{padding:20px;}
.nashi-product-name{
  font-size:16px;
  font-weight:800;
  color:var(--green-deep-2);
  margin-bottom:10px;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.nashi-product-badge{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  background:var(--ivory);
  color:var(--green-deep);
  border-radius:6px;
  padding:3px 9px;
}
.nashi-product-badge-yellow{background:var(--yellow); color:var(--green-deep-2);}
.nashi-product-badge-outline{background:none; border:1px solid var(--line); color:var(--text-sub);}
.nashi-product-card p{
  font-size:18px;
  line-height:1.75;
  color:var(--text-sub);
  margin-bottom:16px;
  min-height:70px;
}
.nashi-product-btn{
  display:inline-flex;
  width:100%;
  justify-content:center;
  background:var(--green-deep);
  color:#fff;
  border-radius:999px;
  padding:11px 0;
  font-size:14px;
  font-weight:700;
}
.nashi-product-btn:hover{background:var(--green-deep-2);}

/* ---- FAQ (既存のfaq-listデザインを流用) ---- */
.nashi-faq{max-width:820px; margin:0 auto;}

/* ---- 下部CTAバンド ---- */
.nashi-cta{
  position:relative;
  padding:80px 0;
  min-height:320px;
  overflow:hidden;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
}
.nashi-cta-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
}
.nashi-cta-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(250,251,243,0.94) 0%, rgba(250,251,243,0.85) 60%, rgba(250,251,243,0.94) 100%);
  display:none;
}
.nashi-cta-inner{position:relative; z-index:2;}
.nashi-cta-inner h2{
  font-family:'Zen Kaku Gothic New', sans-serif;
  font-size:clamp(28px,5vw,48px);
  font-weight:800;
  color:var(--green-deep-2);
  margin-bottom:20px;
  -webkit-text-stroke:3px #ffffff;
  text-stroke:3px #ffffff;
  paint-order:stroke fill;
}
.nashi-cta-inner p{
  font-size:18px;
  line-height:1.9;
  color:var(--text);
  margin-bottom:50px;
}
.nashi-cta-btn{
  display:inline-flex;
  background:#ffffff;
  color:#b82f2f;
  border-radius:999px;
  padding:24px 56px;
  font-size:22px;
  font-weight:800;
  transition:background .25s ease, color .25s ease, box-shadow .25s ease, transform .25s ease, border-color .25s ease;
  box-shadow:0 20px 50px rgba(255,255,255,0.5), 0 10px 25px rgba(255,255,255,0.3);
  border:3px solid #b82f2f;
}
.nashi-cta-btn:hover{
  background:#b82f2f;
  color:#ffffff;
  transform:translateY(-3px);
  box-shadow:0 28px 60px rgba(255,255,255,0.6), 0 14px 32px rgba(255,255,255,0.4);
  border-color:#b82f2f;
}
}

/* ---- らっきょう特集：タブレット表示 ---- */
@media (min-width:641px) and (max-width:1024px){
  .rakkyo-page .wrap{
    width:min(100% - 48px,1100px);
    padding-left:0;
    padding-right:0;
  }
  .rakkyo-section{padding:78px 0;}
  .rakkyo-hero,
  .rakkyo-hero-inner{min-height:520px;}
  .rakkyo-hero::before{
    background:linear-gradient(90deg,rgba(250,249,241,.96) 0%,rgba(250,249,241,.84) 43%,rgba(250,249,241,.28) 68%,rgba(250,249,241,0) 100%);
  }
  .rakkyo-hero-photo{background-position:58% center;}
  .rakkyo-hero-copy{width:70%;padding:58px 0 86px;}
  .rakkyo-hand{font-size:18px!important;margin-bottom:24px!important;}
  .rakkyo-hero h1{font-size:clamp(28px,4.1vw,38px);letter-spacing:0;}
  .rakkyo-hero-description{font-size:16px;line-height:1.85;}
  .rakkyo-split{gap:5%;}
  .rakkyo-organic-photo{flex-basis:43%;}
  .rakkyo-organic-photo img{height:320px;}
  .rakkyo-location{min-height:240px;}
  .rakkyo-lineup,
  .rakkyo-product-grid,
  .rakkyo-voices{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
  .rakkyo-lineup article:last-child,
  .rakkyo-product-grid .product-card:last-child,
  .rakkyo-voices blockquote:last-child{
    grid-column:1 / -1;
    width:calc(50% - 14px);
    justify-self:center;
  }
  .rakkyo-calendar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .rakkyo-calendar{min-width:768px;}
  .rakkyo-calendar-outer .guide-scroll-hint{display:flex;}
  .rakkyo-recipe-heading{padding-right:150px;}
  .rakkyo-recipe-heading-image{top:-80px;left:auto;right:0;width:145px;}
  .rakkyo-recipe-card{max-width:760px;}
  .rakkyo-bottom-cta .nashi-cta-inner h2{white-space:nowrap;}
}

@media (max-width:900px){
  .nashi-variety-grid{grid-template-columns:repeat(2,1fr);}
  .nashi-reason-grid{grid-template-columns:1fr;}
  .nashi-reason-card{margin-top:22px;}
  .nashi-product-grid{grid-template-columns:repeat(2,1fr);}
  .nashi-photo-text{flex-direction:column;}
  .nashi-photo-text-reverse{flex-direction:column;}
  .nashi-photo-text-img{flex:none; width:100%;}
}
@media (max-width:600px){
  .nashi-section{padding:56px 0;}
  .nashi-variety-grid{grid-template-columns:1fr;}
  .nashi-section-title{font-size:26px;}
  .nashi-hero{height:auto; aspect-ratio:auto; min-height:590px;}
  .nashi-hero-bg{background-position:64% center;}
  .nashi-hero-overlay{background:linear-gradient(180deg,rgba(250,249,241,.05) 0%,rgba(250,249,241,.16) 35%,rgba(250,249,241,.92) 63%,#faf8ef 88%);}
  .nashi-hero-inner{min-height:590px; justify-content:flex-end; padding-bottom:74px;}
  .nashi-hero-eyebrow{font-size:18px; margin-bottom:24px;}
  .nashi-hero-title{font-size:clamp(23px,7vw,30px); line-height:1.5; letter-spacing:.025em;}
  .nashi-hero-desc{font-size:15px; line-height:2;}
  .nashi-timeline-header,
  .nashi-timeline-row{grid-template-columns:1fr;}
  .nashi-timeline-header{display:none;}
  .nashi-timeline-label{margin-bottom:6px; display:block;}
  .nashi-product-grid{grid-template-columns:1fr;}
}

/* ============================================
   出荷カレンダー：スマホ時は横スクロール
   ============================================ */
.nashi-cal-outer{
  position:relative;
}
.nashi-cal-scroll{
  width:100%;
}

@media (max-width:760px){
  .nashi-cal-scroll{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .nashi-cal-scroll .cal-table{
    min-width:640px;
  }
  .nashi-cal-outer .guide-scroll-hint{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    position:absolute;
    inset:0;
    background:rgba(8,63,36,0.55);
    color:#fff;
    font-size:14px;
    font-weight:700;
    letter-spacing:.04em;
    border-radius:14px;
    z-index:5;
    opacity:1;
    transition:opacity .4s ease;
    cursor:pointer;
  }
  .nashi-cal-outer .guide-scroll-hint.is-hidden{
    opacity:0;
    pointer-events:none;
  }
}
/* =========================================================
   会社概要ページ
========================================================= */
.company-page{
  --company-green:#0e6e3e;
  --company-deep:#07512f;
  --company-pale:#f2f7ef;
  background:#fff;
  color:var(--text);
}
.company-page-head{
  text-align:center;
  margin:30px 0 0;
  padding:20px 0;
}
.company-page-en{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-bottom:14px;
  color:var(--company-green);
  font-size:12px;
  font-weight:700;
  letter-spacing:.28em;
}
.company-page-en::before,
.company-page-en::after{
  content:"";
  width:28px;
  height:1px;
  background:currentColor;
}
.company-section-heading > p{
  margin:0 0 10px;
  color:var(--company-green);
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:13px;
  font-weight:800;
  letter-spacing:.18em;
}
.company-page-head h1{
  margin:0;
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:clamp(32px,4vw,44px);
  font-weight:900;
  line-height:1.4;
  color:var(--green-deep-2);
}
.company-section{padding:110px 0;}
.company-section-heading{text-align:center;margin-bottom:42px;}
.company-section-heading-left{text-align:left;}
.company-section-heading h2{
  margin:0;
  color:var(--company-deep);
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-size:clamp(28px,3.2vw,40px);
  font-weight:900;
  line-height:1.45;
}
.company-section-lead{
  max-width:850px;
  margin:-14px auto 48px;
  text-align:center;
}
.company-staff .company-section-lead,
.company-history .company-section-lead{
  text-align:left;
}
.company-section-lead p{font-size:18px;line-height:2;margin:0 0 6px;}
.company-message{background:#fff;}
.company-message-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:72px;
  align-items:start;
}
.company-message-photo{
  position:sticky;
  top:130px;
  margin:0;
}
.company-message-photo img{
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center;
  border-radius:28px 28px 110px 28px;
  box-shadow:0 24px 55px -30px rgba(8,63,36,.45);
}
.company-message-body{padding-top:2px;}
.company-message-body p{
  margin:0 0 22px;
  font-size:18px;
  line-height:2.05;
}
.company-message-sign{
  margin-top:42px !important;
  text-align:right;
  line-height:1.8 !important;
}
.company-message-sign strong{font-size:20px;}
.company-staff{background:var(--company-pale);}
.company-staff-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}
.company-staff-card{
  overflow:hidden;
  background:transparent;
  border-radius:22px;
  box-shadow:none;
}
.company-staff-card img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.company-staff-card-body{padding:12px 26px 26px;background:transparent;}
.company-staff-card-body span{
  color:var(--company-green);
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
}
.company-staff-card-body h3{
  margin:7px 0 12px;
  color:var(--company-deep);
  font-size:21px;
  font-weight:900;
}
.company-staff-card-body p{margin:0;font-size:16px;line-height:1.85;}
.company-history{background:#fff;}
.company-narrow{max-width:960px;}
.company-history-pending{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  max-width:680px;
  margin:46px auto 0;
  padding:28px 32px;
  color:var(--company-deep);
  background:#f8f7f1;
  border-left:4px solid var(--company-green);
  border-radius:0 14px 14px 0;
}
.company-history-pending span{color:#97be5b;font-size:18px;}
.company-history-pending p{margin:0;font-size:18px;font-weight:700;}

.company-history-timeline{
  position:relative;
  max-width:820px;
  margin:48px auto 0;
}
.company-history-timeline::before{
  content:"";
  position:absolute;
  top:16px;
  bottom:16px;
  left:132px;
  width:2px;
  background:rgba(23,99,83,.20);
}
.company-history-item{
  position:relative;
  display:grid;
  grid-template-columns:110px 1fr;
  gap:44px;
  padding:0 0 42px;
}
.company-history-item:last-child{padding-bottom:0;}
.company-history-item::before{
  content:"";
  position:absolute;
  top:7px;
  left:124px;
  width:18px;
  height:18px;
  border:4px solid #fff;
  border-radius:50%;
  background:var(--company-green);
  box-shadow:0 0 0 2px rgba(23,99,83,.16);
}
.company-history-year{
  padding-top:2px;
  color:var(--company-green);
  font-size:20px;
  font-weight:900;
  line-height:1.5;
  text-align:right;
}
.company-history-content{
  padding:0 0 2px 0;
}
.company-history-content h3{
  margin:0 0 10px;
  color:var(--company-deep);
  font-size:22px;
  font-weight:900;
  line-height:1.5;
}
.company-history-content p{
  margin:0;
  font-size:18px;
  line-height:1.9;
}

.company-profile{background:#f8f7f1;}
.company-profile-list{
  margin:0;
  border-top:2px solid var(--company-deep);
}
.company-profile-list > div{
  display:grid;
  grid-template-columns:210px 1fr;
  border-bottom:1px solid rgba(8,63,36,.18);
}
.company-profile-list dt,
.company-profile-list dd{
  margin:0;
  padding:23px 26px;
  font-size:18px;
  line-height:1.75;
}
.company-profile-list dt{
  color:var(--company-deep);
  background:rgba(151,190,91,.12);
  font-weight:800;
}
.company-profile-list dd a{color:var(--company-green);font-weight:700;}
.company-sp-only{display:none;}
.company-access{line-height:0;}
.company-access iframe{display:block;width:100%;height:500px;border:0;}

@media(max-width:900px){
  .company-section{padding:84px 0;}
  .company-message-grid{grid-template-columns:1fr;gap:42px;}
  .company-message-photo{position:static;max-width:640px;margin:0 auto;}
  .company-message-photo img{aspect-ratio:16/10;border-radius:24px 24px 80px 24px;}
  .company-section-heading-left{text-align:center;}
  .company-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media(max-width:600px){
  .company-page-head{padding:56px 0 60px;}
  .company-page-head h1{font-size:29px;}
  .company-page-head .wrap > p:last-child{font-size:16px;line-height:1.8;}
  .company-section{padding:68px 0;}
  .company-section-heading{margin-bottom:30px;}
  .company-section-heading h2{font-size:27px;}
  .company-section-lead{margin:-8px 0 34px;text-align:left;}
  .company-section-lead p,
  .company-message-body p{font-size:16px;line-height:1.9;}
  .company-message-photo img{aspect-ratio:4/3;border-radius:18px 18px 56px 18px;}
  .company-message-sign strong{font-size:18px;}
  .company-staff-grid{grid-template-columns:1fr;gap:22px;}
  .company-staff-card-body{padding:22px 22px 25px;}
  .company-staff-card-body h3{font-size:20px;}
  .company-history-pending{justify-content:flex-start;padding:22px;}
  .company-history-pending p{font-size:16px;}
  .company-profile-list > div{grid-template-columns:1fr;}
  .company-profile-list dt{padding:14px 18px 8px;background:rgba(151,190,91,.12);}
  .company-profile-list dd{padding:10px 18px 17px;font-size:16px;}
  .company-sp-only{display:block;}
  .company-access iframe{height:360px;}
}

/* 商品一覧・詳細（Welcart） */
.farm-shop{padding:24px 0 110px;background:#fffdf8;font-family:'Zen Kaku Gothic New',sans-serif;color:var(--text)}
.farm-shop .wrap{max-width:1200px}
.farm-shop-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 46px;font-size:13px;line-height:1.7;color:#586454}
.farm-shop-crumb a{color:var(--green-deep);text-decoration:none}
.farm-shop-heading{text-align:center;margin:0 0 50px}
.farm-shop-heading>span{color:var(--green-deep);font-size:13px;font-weight:700;letter-spacing:.24em}
.farm-shop-heading h1{font-size:clamp(30px,4vw,44px);margin:9px 0 14px}
.farm-shop-heading p{margin:0;color:#586454;font-size:16px}
.farm-shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.farm-shop-card{min-width:0;overflow:hidden;background:#fff;border:1px solid #e4eadf;border-radius:14px;box-shadow:0 10px 28px rgba(12,54,28,.06)}
.farm-shop-card-image{display:flex;aspect-ratio:1.18;align-items:center;justify-content:center;background:#f3f5ed;overflow:hidden}
.farm-shop-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.farm-shop-card:hover img{transform:scale(1.04)}
.farm-shop-no-image{color:#7b8878;font-size:14px}
.farm-shop-card-body{padding:22px 24px 26px}
.farm-shop-card h2{font-size:21px;line-height:1.45;margin:0 0 16px}
.farm-shop-card h2 a{text-decoration:none;color:var(--text)}
.farm-shop-card-price{font-size:29px;font-weight:800;color:#bc292b;margin:0 0 18px}
.farm-shop-card-price small,.farm-shop-detail-price small{font-size:13px;color:#566157;font-weight:500}
.farm-shop-card-link{display:flex;justify-content:flex-end;gap:5px;font-size:15px;font-weight:700;color:var(--green-deep);text-decoration:none}
.farm-shop-pages{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:54px}
.farm-shop-pages .page-numbers{min-width:40px;padding:8px 12px;border:1px solid #ccdacb;border-radius:5px;text-align:center;text-decoration:none;color:var(--green-deep)}
.farm-shop-pages .current{color:#fff;background:var(--green-deep)}
.farm-shop-empty{text-align:center;padding:70px 20px}
.farm-shop-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,78px);align-items:start}
.farm-shop-main-image{display:flex;align-items:center;justify-content:center;aspect-ratio:1.15;background:#f3f5ed;border-radius:8px;overflow:hidden}
.farm-shop-main-image img{display:block;width:100%;height:100%;object-fit:contain}
.farm-shop-thumbnails{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.farm-shop-thumb{aspect-ratio:1;background:#f3f5ed;border:2px solid transparent;border-radius:5px;padding:0;overflow:hidden;cursor:pointer}
.farm-shop-thumb.is-active,.farm-shop-thumb:focus-visible{border-color:var(--green-deep)}
.farm-shop-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.farm-shop-detail-info h1{font-size:clamp(27px,3vw,38px);line-height:1.45;margin:0 0 18px}
.farm-shop-detail-price{font-size:27px;font-weight:800;color:#c3272d;margin:0 0 18px}
.farm-shop-cart-form{padding:15px 0 22px;border-top:1px solid #e4eadf;border-bottom:1px solid #e4eadf}
.farm-shop-sku+.farm-shop-sku{border-top:1px solid #e4eadf;margin-top:22px;padding-top:20px}
.farm-shop-sku h2{font-size:17px;margin:0 0 8px}
.farm-shop-option{margin-bottom:14px}
.farm-shop-option label{display:grid;gap:7px;font-size:15px;font-weight:700}
.farm-shop-option select,.farm-shop-option input{max-width:100%;padding:8px;border:1px solid #cbd4c6;border-radius:4px}
.farm-shop-cart-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.farm-shop-cart-controls label{display:flex;align-items:center;gap:9px;font-size:15px}
.farm-shop-cart-controls input[type=number],.farm-shop-cart-controls input[type=text]{width:65px;min-height:44px;padding:6px;border:1px solid #cbd4c6;border-radius:4px;text-align:center}
.farm-shop-cart-controls .skubutton{min-height:46px;padding:9px 25px;border:0;border-radius:5px;background:var(--green-deep);color:#fff;font:700 16px 'Zen Kaku Gothic New',sans-serif;cursor:pointer}
.farm-shop-cart-controls .skubutton:hover{background:var(--green-deep-2)}
.farm-shop-soldout{font-weight:700;color:#9c3333}
.farm-shop-description{margin-top:28px;font-size:16px;line-height:1.9;overflow-wrap:anywhere}
.farm-shop-description p{margin-bottom:1.2em}
.farm-shop-back{text-align:center;margin-top:85px}
.farm-shop-back a{display:inline-flex;justify-content:center;gap:24px;min-width:280px;padding:14px 30px;background:#234a1c;border-radius:5px;color:#fff;text-decoration:none;font-size:16px;font-weight:700}
.farm-shop-back a:hover{background:var(--green-deep)}
@media(max-width:800px){.farm-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.farm-shop-detail-grid{gap:28px}}
@media(max-width:640px){.farm-shop{padding:18px 0 70px}.farm-shop-crumb{margin-bottom:26px}.farm-shop-grid,.farm-shop-detail-grid{grid-template-columns:1fr}.farm-shop-grid{gap:18px}.farm-shop-thumbnails{gap:8px}.farm-shop-detail-info h1{margin-top:4px}.farm-shop-back{margin-top:55px}}


/* ===== Front page styles imported from デザイン②(5).html ===== */

/* farm-sora-static-hero-pattern-b */

/* ============================================
   メインビジュアル（別デザインパターンB）：
   スライダーなしの静止画1枚
   ============================================ */
.phero-static{
  position:relative;
  background:var(--cream);
  overflow:hidden;
}
.phero-static-wrap{
  width:100%;
  line-height:0;
}
.phero-static-img{
  display:block;
  width:100%;
  height:auto;
}

/* ============================================
   3つのこだわり（別デザインパターンB／参考画像レイアウト）：
   画像を画面いっぱいの背景にし、上にカード＋丸バッジの01/02/03を重ねる
   ============================================ */
#kodawari .feature-full-item{
  position:relative;
  margin-bottom:0;
}
#kodawari .feature-full-item:last-of-type{
  margin-bottom:160px;
}
#kodawari .feature-full-media{
  position:relative;
  width:100vw;
  left:50%;
  transform:translateX(-50%);
  height:clamp(380px, 46vw, 620px);
  background-size:cover;
  background-position:center;
  background-color:var(--cream);
  border-radius:0;
}
#kodawari .feature-full-item:first-of-type .feature-full-media{
  border-radius:28px 28px 0 0;
}
#kodawari .feature-full-item:last-of-type .feature-full-media{
  border-radius:0 0 28px 28px;
}
#kodawari .feature-full-card{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:min(92%, 1120px);
  background:var(--paper);
  border-radius:20px;
  padding:44px 56px 42px;
  box-shadow:0 24px 54px -20px rgba(14,110,62,0.35);
}
#kodawari .feature-full-num{
  position:absolute;
  top:-48px;
  left:44px;
  width:104px;
  height:104px;
  border-radius:50%;
  background:var(--fnum-color, var(--green-deep));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  font-weight:800;
  font-size:40px;
  letter-spacing:.02em;
  box-shadow:0 12px 26px -8px rgba(14,110,62,0.45);
  z-index:2;
}
#kodawari .feature-full-card h3{
  font-size:clamp(24px, 2.1vw, 34px) !important;
  line-height:1.4 !important;
  color:var(--green-deep-2) !important;
  font-weight:800 !important;
  margin:24px 0 16px !important;
  min-height:0 !important;
}
#kodawari .feature-full-rule{
  width:50px;
  height:2px;
  background:var(--green-line, #a9c9a4);
  margin:0 0 14px;
}
#kodawari .feature-full-card p{
  font-size:18px !important;
  line-height:1.75 !important;
  color:#3d3a33 !important;
  margin:0 0 7px !important;
  max-width:none !important;
  text-align:left;
}

@media (max-width:900px){
  #kodawari .feature-full-media{
    height:auto;
    aspect-ratio:4/3;
  }
  #kodawari .feature-full-item:first-of-type .feature-full-media{
    border-radius:20px 20px 0 0;
  }
  #kodawari .feature-full-item:last-of-type .feature-full-media{
    border-radius:0 0 20px 20px;
  }
  #kodawari .feature-full-card{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    transform:none;
    width:88%;
    max-width:none;
    margin:-56px auto 0;
    padding:34px 26px 28px;
  }
  #kodawari .feature-full-num{
    top:-36px;
    left:24px;
    width:80px;
    height:80px;
    font-size:30px;
  }
  #kodawari .feature-full-item{margin-bottom:0;}
  #kodawari .feature-full-item:last-of-type{margin-bottom:120px;}
}


/* farm-sora-kodawari-button-gap-rev */

  #kodawari .products-all{
    margin-top:100px !important;
  }
  @media(max-width:720px){
    #kodawari .products-all{
      margin-top:72px !important;
    }
  }


/* farm-sora-merge-override */

  .phero-static{display:block !important;}
  .phero-static-img{width:100% !important; height:auto !important;}
  #kodawari .feature-full-media{width:100vw !important; max-width:100vw !important;}
  #kodawari .feature-full-card{z-index:2;}
  #kodawari .products-all{margin-top:100px !important;}
  @media(max-width:720px){#kodawari .products-all{margin-top:72px !important;}}


/* farm-sora-kodawari-title-adjust-20260727 */

  /* タイトル上の装飾イラストを小さく調整 */
  #kodawari{
    position:relative;
    overflow:hidden;
  }
  #kodawari .farm-deco{
    position:absolute;
    z-index:1;
    pointer-events:none;
    opacity:.78;
    line-height:0;
  }
  #kodawari .farm-deco svg{
    width:56px !important;
    height:auto !important;
    display:block;
  }
  #kodawari .deco-pear{
    top:38px;
    left:min(7vw, 96px);
  }
  #kodawari .deco-rakkyo{
    top:46px;
    right:min(7vw, 96px);
  }
  /* 見出しと01背景画像の間に80pxの余白を確保 */
  #kodawari .section-head{
    position:relative;
    z-index:2;
    margin-bottom:80px !important;
  }
  #kodawari .feature-full-item:first-of-type{
    margin-top:0 !important;
  }
  @media(max-width:720px){
    #kodawari .farm-deco svg{
      width:42px !important;
    }
    #kodawari .deco-pear{
      top:24px;
      left:18px;
    }
    #kodawari .deco-rakkyo{
      top:28px;
      right:18px;
    }
    #kodawari .section-head{
      margin-bottom:56px !important;
    }
  }



/* Front page WordPress adaptations */
.home-main .faq-q{
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  font-family:inherit;
  text-align:left;
}
.home-main .news-item{color:inherit;text-decoration:none;}
.home-main .product-photo{display:block;background-color:#eef3e8;}
.home-main .product-photo:not([style])::after{content:"写真を準備中";display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-sub);font-size:13px;}


/* Top page NEWS: show post categories like /news */
.home-main .news-item .news-cats{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  width:auto;
  flex-shrink:0;
}
.home-main .news-item .news-cat{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  padding:4px 10px;
  border-radius:999px;
  background:#eef2e9;
  color:#52604e;
  font-size:12px;
  font-weight:700;
  line-height:1.4;
  white-space:nowrap;
}
.home-main .news-item .news-title{
  flex:1;
  min-width:0;
}
@media (max-width: 767px){
  .home-main .news-item{
    align-items:flex-start;
    flex-wrap:wrap;
    gap:8px 12px;
  }
  .home-main .news-item .news-date{width:auto;}
  .home-main .news-item .news-title{
    flex-basis:100%;
    width:100%;
  }
}


/* ===== v24: TOPこだわり スマホレスポンシブ調整 ===== */
@media (max-width:720px){
  /* 見出しが画面外へはみ出さないよう、1行固定を解除 */
  #kodawari .section-title.title-nowrap{
    white-space:normal !important;
    width:100% !important;
    max-width:100% !important;
    font-size:clamp(26px,8.4vw,34px) !important;
    line-height:1.45 !important;
    text-align:center !important;
    overflow-wrap:anywhere;
  }
  #kodawari .section-title .full-underline{
    display:inline !important;
    white-space:normal !important;
    padding:0 !important;
  }
  #kodawari .section-title .big-num{
    display:inline-flex !important;
    width:1.38em !important;
    height:1.38em !important;
    margin:0 .10em !important;
    border-width:3px !important;
    font-size:1.42em !important;
    transform:rotate(-6deg) translateY(.04em) !important;
  }

  /* 01/02/03は画像と本文を分離せず、各コンテンツ全体を背景画像にする */
  #kodawari .feature-full-item,
  #kodawari .feature-full-item.reverse{
    width:100vw !important;
    max-width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    padding:72px 20px 64px !important;
    background-image:
      linear-gradient(rgba(250,248,240,.22), rgba(250,248,240,.22)),
      var(--commit-bg) !important;
    background-size:cover !important;
    background-position:center !important;
    background-repeat:no-repeat !important;
    overflow:visible !important;
  }
  #kodawari .feature-full-item:first-of-type{
    border-radius:20px 20px 0 0 !important;
  }
  #kodawari .feature-full-item:last-of-type{
    margin-bottom:100px !important;
    border-radius:0 0 20px 20px !important;
  }
  #kodawari .feature-full-media{
    display:none !important;
  }
  #kodawari .feature-full-card{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    width:100% !important;
    max-width:540px !important;
    margin:0 auto !important;
    padding:42px 24px 28px !important;
    background:rgba(255,255,255,.93) !important;
    border-radius:20px !important;
    box-shadow:0 16px 40px -22px rgba(14,63,45,.45) !important;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
  }
  #kodawari .feature-full-num{
    top:-36px !important;
    left:20px !important;
  }
}


/* ===== v25: TOP出荷カレンダー スマホ横スクロール ===== */
.home-cal-outer{
  position:relative;
}
.home-cal-scroll{
  width:100%;
}
@media (max-width:720px){
  .home-cal-outer{
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    width:100vw;
    overflow:hidden;
  }
  .home-cal-scroll{
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    padding:0 18px 10px;
  }
  .home-cal-scroll .cal-table{
    width:980px !important;
    min-width:980px !important;
    max-width:none !important;
  }
  .home-cal-outer .guide-scroll-hint{
    display:flex;
  }
}

/* ===== v26: TOP出荷カレンダー 枠内スクロール修正 ===== */
@media (max-width:720px){
  .harvest-wrap{
    overflow:hidden !important;
  }
  .home-cal-outer{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    overflow:hidden !important;
  }
  .home-cal-scroll{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    box-sizing:border-box !important;
    padding:0 0 10px !important;
  }
  .home-cal-scroll .cal-table{
    width:980px !important;
    min-width:980px !important;
    max-width:none !important;
  }
}

/* ===== v27: 会社概要 代表写真 スマホ表示修正 ===== */
@media(max-width:600px){
  .company-message-photo img{
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    object-position:center top !important;
    border-radius:18px 18px 56px 18px !important;
  }
}


/* ===== v28: らっきょう「選ばれる理由」スマホ表示修正 ===== */
@media (max-width:760px){
  .rakkyo-page .rakkyo-reasons{
    width:100%;
    max-width:100%;
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  .rakkyo-page .rakkyo-reasons .nashi-reason-card{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:18px !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }
  .rakkyo-page .rakkyo-reasons .nashi-reason-photo{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    aspect-ratio:4/3 !important;
    margin:0 0 22px !important;
    border-radius:12px !important;
    background-size:cover !important;
    background-position:center !important;
  }
  .rakkyo-page .rakkyo-reasons .nashi-reason-num{
    top:12px !important;
    left:12px !important;
    width:56px !important;
    height:56px !important;
    font-size:26px !important;
    box-sizing:border-box !important;
  }
  .rakkyo-page .rakkyo-reasons .nashi-reason-card h3{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 0 12px !important;
    padding:0 !important;
    font-size:23px !important;
    line-height:1.5 !important;
    overflow-wrap:anywhere !important;
  }
  .rakkyo-page .rakkyo-reasons .nashi-reason-card p{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 0 10px !important;
    padding:0 !important;
    font-size:16px !important;
    line-height:1.9 !important;
    overflow-wrap:anywhere !important;
  }
}


/* ===== v29: らっきょう商品一覧 スマホ1カラム修正 ===== */
@media (max-width:640px){
  .rakkyo-products .product-grid.rakkyo-product-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:26px !important;
    width:100% !important;
    max-width:100% !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card,
  .rakkyo-products .rakkyo-product-grid .product-card:first-child,
  .rakkyo-products .rakkyo-product-grid .product-card:nth-child(n+2){
    grid-column:1 !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child{
    display:block !important;
    gap:0 !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child .product-photo{
    width:100% !important;
    max-width:100% !important;
    height:240px !important;
    min-height:0 !important;
    flex:none !important;
    border-radius:12px 12px 0 0 !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child .product-photo::before{
    top:14px !important;
    left:14px !important;
    width:64px !important;
    height:64px !important;
    font-size:14px !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child .product-body{
    width:100% !important;
    max-width:100% !important;
    padding:24px 20px 26px !important;
    display:flex !important;
    flex-direction:column !important;
    box-sizing:border-box !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child h3{
    font-size:23px !important;
    margin-bottom:12px !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child p{
    font-size:16px !important;
    margin-bottom:16px !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child .product-price{
    font-size:26px !important;
    margin-bottom:20px !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:first-child .product-link{
    width:100% !important;
    justify-content:center !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }

  .rakkyo-products .rakkyo-product-grid .product-card:nth-child(n+2) .product-photo{
    width:100% !important;
    height:220px !important;
  }
}


/* ===== v30: らっきょう 商品一覧ボタン スマホ文言調整 ===== */
.rakkyo-product-link-sp{display:none;}
@media (max-width:640px){
  .rakkyo-product-link-pc{display:none !important;}
  .rakkyo-product-link-sp{display:inline !important;}
  .rakkyo-products .rakkyo-outline-btn,
  .rakkyo-bottom-cta .nashi-cta-btn{
    white-space:nowrap !important;
  }
}


/* ===== v31: 梨「おいしい理由」スマホレスポンシブ対応 ===== */
@media (max-width:760px){
  .nashi-page .nashi-reason-grid{
    width:100%;
    max-width:100%;
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .nashi-page .nashi-reason-grid .nashi-reason-card{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:18px !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  .nashi-page .nashi-reason-grid .nashi-reason-photo{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    aspect-ratio:4/3 !important;
    margin:0 0 22px !important;
    border-radius:12px !important;
    background-size:cover !important;
    background-position:center !important;
  }

  .nashi-page .nashi-reason-grid .nashi-reason-num{
    top:12px !important;
    left:12px !important;
    width:56px !important;
    height:56px !important;
    font-size:26px !important;
    box-sizing:border-box !important;
  }

  .nashi-page .nashi-reason-grid .nashi-reason-card h3{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 0 12px !important;
    padding:0 !important;
    font-size:23px !important;
    line-height:1.5 !important;
    overflow-wrap:anywhere !important;
  }

  .nashi-page .nashi-reason-grid .nashi-reason-card p{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 0 10px !important;
    padding:0 !important;
    font-size:16px !important;
    line-height:1.9 !important;
    overflow-wrap:anywhere !important;
  }
}


/* v39: 梨「おいしい理由」の複数段落が同じグリッド行で重ならないよう調整 */
@media (min-width:761px){
  .nashi-page .nashi-reason-card{
    grid-template-rows:auto auto auto;
  }
  .nashi-page .nashi-reason-photo{
    grid-row:1 / 4;
  }
  .nashi-page .nashi-reason-card > p:first-of-type{
    grid-column:2;
    grid-row:2;
  }
  .nashi-page .nashi-reason-card > p:nth-of-type(2){
    grid-column:2;
    grid-row:3;
    margin-top:8px;
  }
}
@media (max-width:760px){
  .nashi-page .nashi-reason-card > p + p{
    margin-top:8px;
  }
}
