:root {
  --cream:#F2EBE0; --warm-white:#FDFAF4; --forest:#2C3E2D;
  --sage:#4A7A52; --apple-red:#A83030; --apple-red-light:#C45050;
  --ochre:#B07840; --dark:#1A2018; --mid:#2C3A2C; --light-sage:#DDE8D8;
  --granny:#3A7030; --grape:#5A3A7A; --grape-light:#8A6AAF;
}
* { margin:0; padding:0; box-sizing:border-box; }
body {
  background:var(--warm-white); color:var(--dark);
  font-family:'Zen Kaku Gothic New',sans-serif; font-weight:400;
  line-height:1.8; overflow-x:hidden; font-size:16px;
  -webkit-text-size-adjust:100%;
}

/* ── NAV ── */
nav {
  position:sticky; top:0; z-index:1000;
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 48px;
  background:rgba(253,250,244,0.97); backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(44,62,45,0.15);
}
.nav-logo { font-family:'Shippori Mincho',serif; font-weight:800; font-size:22px; color:var(--forest); text-decoration:none; }
.nav-logo span { color:var(--apple-red); }
.nav-links { display:flex; gap:36px; list-style:none; align-items:center; }
.nav-links a { font-size:15px; color:var(--mid); text-decoration:none; letter-spacing:0.08em; transition:color 0.2s; font-weight:500; }
.nav-links a:hover, .nav-links a.active { color:var(--forest); }
.nav-links a.active { border-bottom:1px solid var(--forest); }
.nav-cta { background:var(--apple-red) !important; color:white !important; padding:10px 22px; border-radius:2px; border-bottom:none !important; font-weight:600 !important; }
.nav-cta:hover { background:var(--apple-red-light) !important; }
.nav-hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px; background:none; border:none; }
.nav-hamburger span { display:block; width:26px; height:2px; background:var(--forest); transition:all 0.3s; }

/* ── BREADCRUMB ── */
.breadcrumb { padding:16px 80px; font-size:14px; color:var(--mid); display:flex; gap:8px; align-items:center; border-bottom:1px solid rgba(44,62,45,0.1); flex-wrap:wrap; font-weight:500; }
.breadcrumb a { color:var(--sage); text-decoration:none; font-weight:600; }
.breadcrumb span { opacity:0.5; }

/* ── BUTTONS ── */
.btn-primary { background:var(--forest); color:white; padding:16px 36px; font-size:15px; letter-spacing:0.12em; text-decoration:none; border-radius:2px; transition:background 0.2s; display:inline-block; font-weight:600; }
.btn-primary:hover { background:var(--sage); }
.btn-secondary { color:var(--forest); font-size:15px; letter-spacing:0.08em; text-decoration:none; border-bottom:2px solid var(--forest); padding-bottom:2px; font-weight:600; }
.btn-white { background:white; color:var(--forest); padding:16px 40px; font-size:15px; text-decoration:none; border-radius:2px; font-weight:600; display:inline-block; }
.btn-outline { border:1px solid rgba(255,255,255,0.4); color:white; padding:16px 36px; font-size:15px; text-decoration:none; border-radius:2px; display:inline-block; font-weight:500; }

/* ── HERO（トップ） ── */
.hero { display:grid; grid-template-columns:1fr 1fr; min-height:100vh; }
.hero-left { display:flex; flex-direction:column; justify-content:center; padding:80px 64px 80px 80px; }
.hero-eyebrow { font-size:13px; letter-spacing:0.2em; color:var(--sage); text-transform:uppercase; margin-bottom:32px; display:flex; align-items:center; gap:12px; font-weight:600; }
.hero-eyebrow::before { content:''; display:block; width:32px; height:1px; background:var(--sage); }
.hero-title { font-family:'Shippori Mincho',serif; font-size:clamp(42px,5vw,68px); font-weight:800; line-height:1.25; color:var(--forest); margin-bottom:28px; }
.hero-title em { font-style:italic; color:var(--apple-red); font-family:'DM Serif Display',serif; }
.hero-desc { font-size:16px; color:var(--mid); max-width:400px; line-height:2.1; margin-bottom:48px; }
.hero-actions { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.hero-right { position:relative; overflow:hidden; }
.hero-visual { width:100%; height:100%; display:flex; align-items:flex-end; justify-content:center; background:linear-gradient(160deg,#EAF0E6,#C8DDB8); overflow:hidden; }
.hero-badge { position:absolute; bottom:48px; left:48px; background:white; padding:20px 28px; border-radius:4px; box-shadow:0 8px 32px rgba(0,0,0,0.15); }
.hero-badge-num { font-family:'DM Serif Display',serif; font-size:36px; color:var(--apple-red); line-height:1; font-style:italic; }
.hero-badge-label { font-size:13px; color:var(--mid); letter-spacing:0.12em; margin-top:4px; font-weight:600; }

/* ── VARIETY STRIP ── */
.variety-strip { background:var(--forest); padding:24px 80px; display:flex; gap:48px; align-items:center; overflow-x:auto; }
.variety-label { font-size:12px; color:rgba(255,255,255,0.6); letter-spacing:0.2em; text-transform:uppercase; white-space:nowrap; flex-shrink:0; font-weight:600; }
.variety-item { display:flex; align-items:center; gap:10px; white-space:nowrap; flex-shrink:0; transition:opacity 0.2s; }
.variety-item:hover { opacity:0.7; }
.variety-dot { width:8px; height:8px; border-radius:50%; background:var(--apple-red-light); }
.variety-name { font-family:'Shippori Mincho',serif; font-size:16px; color:white; letter-spacing:0.08em; }
.variety-en { font-family:'DM Serif Display',serif; font-size:14px; color:rgba(255,255,255,0.6); font-style:italic; }

/* ── FEATURES ── */
.features { padding:120px 80px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:2px; background:rgba(44,62,45,0.1); }
.feature-card { background:var(--warm-white); padding:56px 48px; position:relative; overflow:hidden; transition:transform 0.3s; }
.feature-card:hover { transform:translateY(-4px); }
.feature-num { font-family:'DM Serif Display',serif; font-size:72px; color:var(--light-sage); position:absolute; top:24px; right:32px; line-height:1; font-style:italic; }
.feature-icon { font-size:32px; margin-bottom:24px; }
.feature-title { font-family:'Shippori Mincho',serif; font-size:21px; font-weight:600; color:var(--forest); margin-bottom:16px; }
.feature-text { font-size:15px; color:var(--mid); line-height:2.1; font-weight:400; }

/* ── SECTION HEADER ── */
.section-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:64px; }
.section-eyebrow { font-size:13px; letter-spacing:0.2em; color:var(--sage); text-transform:uppercase; margin-bottom:16px; font-weight:600; }
.section-title { font-family:'Shippori Mincho',serif; font-size:38px; font-weight:800; color:var(--forest); line-height:1.3; }
.section-link { font-size:15px; color:var(--apple-red); text-decoration:none; border-bottom:1px solid var(--apple-red); padding-bottom:2px; white-space:nowrap; font-weight:600; }

/* ── RECIPE SECTION（トップ） ── */
.recipe-section { padding:120px 80px; }
.recipe-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.recipe-card { background:white; border-radius:4px; overflow:hidden; cursor:pointer; transition:transform 0.25s,box-shadow 0.25s; border:1px solid rgba(44,62,45,0.1); }
.recipe-card:hover { transform:translateY(-4px); box-shadow:0 16px 48px rgba(44,62,45,0.15); }
.recipe-thumb { aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; font-size:56px; position:relative; overflow:hidden; }
.recipe-thumb img { width:100%; height:100%; object-fit:cover; }
.recipe-thumb.red-bg { background:linear-gradient(135deg,#EEBCAC,#B86868); }
.recipe-thumb.green-bg { background:linear-gradient(135deg,#BEDAB0,#6A9860); }
.recipe-thumb.ochre-bg { background:linear-gradient(135deg,#EAD8B0,#B08848); }
.variety-badge { position:absolute; top:12px; left:12px; padding:5px 12px; border-radius:20px; font-size:12px; font-weight:700; }
.variety-badge.red { background:var(--apple-red); color:white; }
.variety-badge.green { background:var(--granny); color:white; }
.recipe-body { padding:20px 24px; }
.recipe-category { font-size:12px; letter-spacing:0.15em; color:var(--sage); text-transform:uppercase; margin-bottom:8px; font-weight:600; }
.recipe-name { font-family:'Shippori Mincho',serif; font-size:18px; font-weight:600; color:var(--forest); line-height:1.5; margin-bottom:10px; }
.recipe-name a { text-decoration:none; color:inherit; }
.recipe-footer { display:flex; justify-content:space-between; align-items:center; padding-top:12px; border-top:1px solid var(--light-sage); }
.recipe-meta { display:flex; gap:12px; font-size:14px; color:var(--mid); font-weight:500; }

/* ── BLOG SECTION（トップ） ── */
.blog-section { padding:120px 80px; background:var(--cream); }
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:64px; }
.blog-card { background:white; border-radius:4px; overflow:hidden; transition:box-shadow 0.3s; border:1px solid rgba(44,62,45,0.1); }
.blog-card:hover { box-shadow:0 12px 40px rgba(0,0,0,0.12); }
.blog-thumb { width:100%; aspect-ratio:16/9; background:linear-gradient(135deg,var(--light-sage),var(--sage)); display:flex; align-items:center; justify-content:center; font-size:48px; overflow:hidden; }
.blog-thumb img { width:100%; height:100%; object-fit:cover; }
.blog-body { padding:28px 32px; }
.blog-date { font-size:13px; color:var(--sage); letter-spacing:0.12em; margin-bottom:12px; font-weight:600; }
.blog-title { font-family:'Shippori Mincho',serif; font-size:18px; font-weight:600; color:var(--forest); line-height:1.6; margin-bottom:12px; }
.blog-title a { text-decoration:none; color:inherit; }
.blog-excerpt { font-size:15px; color:var(--mid); line-height:2; font-weight:400; }

/* ── SHOP CTA ── */
.shop-cta { padding:120px 80px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.shop-cta-text h2 { font-family:'Shippori Mincho',serif; font-size:44px; font-weight:800; color:var(--forest); line-height:1.3; margin-bottom:24px; }
.shop-cta-text p { font-size:16px; color:var(--mid); line-height:2.1; margin-bottom:40px; font-weight:400; }
.shop-cta-visual { background:var(--forest); border-radius:8px; padding:64px; text-align:center; position:relative; overflow:hidden; }
.shop-cta-visual::before { content:'🍎'; position:absolute; font-size:200px; opacity:0.08; top:-40px; right:-40px; }
.shop-cta-price { font-size:14px; color:rgba(255,255,255,0.8); margin-bottom:16px; font-weight:500; }
.shop-cta-item { font-family:'Shippori Mincho',serif; font-size:28px; color:white; font-weight:600; margin-bottom:8px; }
.shop-cta-note { font-size:14px; color:rgba(255,255,255,0.75); margin-bottom:40px; }

/* ── POST CARD（ブログ一覧） ── */
.post-card { display:grid; grid-template-columns:120px 1fr; gap:24px; padding:24px 0; border-bottom:1px solid rgba(44,62,45,0.1); text-decoration:none; transition:opacity 0.2s; align-items:start; }
.post-card:hover { opacity:0.75; }
.post-card:last-child { border-bottom:none; }
.post-thumb { aspect-ratio:4/3; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:32px; overflow:hidden; }
.post-thumb img { width:100%; height:100%; object-fit:cover; }
.post-thumb.red { background:linear-gradient(135deg,#EEBCAC,#B86868); }
.post-thumb.green { background:linear-gradient(135deg,#BEDAB0,#6A9860); }
.post-card-meta { display:flex; gap:8px; align-items:center; margin-bottom:8px; flex-wrap:wrap; }
.post-card-date { font-size:13px; color:var(--sage); font-weight:600; }
.post-card-tag { font-size:12px; padding:3px 12px; border-radius:20px; font-weight:600; }
.post-card-tag.red { background:var(--apple-red); color:white; }
.post-card-tag.green { background:var(--granny); color:white; }
.post-card-tag.neutral { border:1px solid rgba(44,62,45,0.25); color:var(--mid); }
.post-card-title { font-family:'Shippori Mincho',serif; font-size:18px; font-weight:600; color:var(--forest); line-height:1.5; margin-bottom:8px; transition:color 0.2s; }
.post-card:hover .post-card-title { color:var(--apple-red); }
.post-card-excerpt { font-size:15px; color:var(--mid); line-height:2; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-weight:400; }

/* ── PAGINATION ── */
.pagination { display:flex; justify-content:center; gap:8px; padding:64px 0 48px; flex-wrap:wrap; }
.page-btn { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(44,62,45,0.2); border-radius:2px; font-size:15px; color:var(--mid); cursor:pointer; background:none; text-decoration:none; font-weight:500; }
.page-btn.active, .page-btn:hover { background:var(--forest); color:white; border-color:var(--forest); }

/* ── SECTION LABEL ── */
.section-label { font-size:12px; letter-spacing:0.2em; color:var(--sage); text-transform:uppercase; margin-bottom:24px; display:flex; align-items:center; gap:12px; font-weight:600; }
.section-label::after { content:''; flex:1; height:1px; background:rgba(44,62,45,0.15); }

/* ── AFFILIATE ── */
.affiliate-link { display:inline-flex; align-items:center; gap:6px; font-size:14px; color:var(--ochre); text-decoration:none; margin-top:12px; border:1px solid var(--ochre); padding:8px 16px; border-radius:2px; font-weight:600; }

/* ── FOOTER ── */
footer { background:var(--dark); padding:64px 80px 24px; }
.footer-inner { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.1); margin-bottom:24px; }
.footer-brand-name { font-family:'Shippori Mincho',serif; font-size:22px; font-weight:800; color:white; margin-bottom:16px; }
.footer-brand-name span { color:#E07070; }
.footer-brand-text { font-size:14px; color:rgba(255,255,255,0.7); line-height:2; max-width:220px; }
.footer-col h4 { font-size:12px; letter-spacing:0.2em; color:rgba(255,255,255,0.6); text-transform:uppercase; margin-bottom:20px; font-weight:600; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:12px; }
.footer-col ul a { font-size:15px; color:rgba(255,255,255,0.75); text-decoration:none; }
.footer-col ul a:hover { color:white; }
.footer-copy { font-size:13px; color:rgba(255,255,255,0.45); text-align:center; }

/* ── POST CONTENT ── */
.post-content h2 { font-family:'Shippori Mincho',serif; font-size:24px; font-weight:800; color:var(--forest); margin:48px 0 20px; padding-left:16px; border-left:3px solid var(--apple-red); line-height:1.5; }
.post-content h3 { font-family:'Shippori Mincho',serif; font-size:20px; font-weight:600; color:var(--forest); margin:32px 0 12px; }
.post-content p { font-size:16px; color:var(--mid); line-height:2.2; margin-bottom:20px; }
.post-content strong { color:var(--forest); font-weight:700; }
.post-content blockquote { border-left:4px solid var(--sage); padding:20px 28px; background:var(--light-sage); border-radius:0 8px 8px 0; margin:32px 0; font-family:'Shippori Mincho',serif; font-size:18px; color:var(--forest); line-height:1.9; }
.post-content img { max-width:100%; border-radius:8px; margin:24px 0; }
.post-content a { color:var(--apple-red); text-decoration:underline; }

/* モバイル用ブログアイキャッチ */
.mobile-eyecatch { display:none; }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
.hero-left > * { animation:fadeUp 0.8s ease forwards; opacity:0; }
.hero-eyebrow{animation-delay:.1s} .hero-title{animation-delay:.25s} .hero-desc{animation-delay:.4s} .hero-actions{animation-delay:.55s}

/* ══════════════════════════════
   TABLET (max-width: 1024px)
══════════════════════════════ */
@media (max-width:1024px) {
  nav { padding:20px 24px; }
  .nav-hamburger { display:flex; }
  .nav-links {
    display:none; position:fixed;
    top:65px; left:0; right:0;
    background:rgba(253,250,244,0.99);
    backdrop-filter:blur(16px);
    flex-direction:column;
    padding:0 24px 24px;
    border-bottom:2px solid rgba(44,62,45,0.12);
    z-index:9999;
    box-shadow:0 8px 32px rgba(0,0,0,0.12);
    list-style:none;
    gap:0;
  }
  .nav-links.open { display:flex; }
  .nav-links li {
    border-bottom:1px solid rgba(44,62,45,0.1);
  }
  .nav-links li:last-child {
    border-bottom:none;
    padding-top:16px;
  }
  .nav-links a {
    display:block;
    font-size:18px; font-weight:500;
    padding:20px 0;
    color:#1E2E1E;
    letter-spacing:0.05em;
    border-bottom:none !important;
    border-radius:0 !important;
  }
  .nav-links li:last-child a,
  .nav-cta {
    display:block !important;
    text-align:center;
    background:#A83030 !important;
    color:white !important;
    border-radius:6px !important;
    padding:18px 20px !important;
    font-size:17px !important;
    font-weight:600 !important;
    border:none !important;
    margin:0 !important;
    letter-spacing:0.08em !important;
  }
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-right { display:none; }
  .hero-left { padding:72px 32px 56px; }
  .features { grid-template-columns:1fr; padding:64px 32px; }
  .recipe-section { padding:64px 32px; }
  .blog-section { padding:64px 32px; }
  .shop-cta { padding:64px 32px; grid-template-columns:1fr; gap:40px; }
  .section-header { flex-direction:column; gap:16px; align-items:flex-start; }
  .recipe-grid { grid-template-columns:repeat(2,1fr); gap:16px; }
  .blog-grid { grid-template-columns:1fr; gap:20px; }
  .breadcrumb { padding:12px 24px; }
  .variety-strip { padding:20px 24px; gap:24px; }
  footer { padding:48px 32px 24px; }
  .footer-inner { grid-template-columns:1fr 1fr; gap:32px; }
}

/* ══════════════════════════════
   MOBILE (max-width: 640px)
══════════════════════════════ */
@media (max-width:640px) {
  body { font-size:16px; }

  /* NAV */
  nav { padding:14px 20px; }
  .nav-logo { font-size:20px; }
  .nav-links { top:60px; padding:4px 20px 16px; }
  .nav-links a { font-size:17px; padding:15px 4px; }

  /* BREADCRUMB */
  .breadcrumb { padding:12px 20px; font-size:13px; }

  /* HERO（トップ） */
  .hero-left { padding:48px 20px 40px; }
  .hero-title { font-size:36px; line-height:1.3; margin-bottom:20px; }
  .hero-desc { font-size:14px; max-width:100%; margin-bottom:32px; line-height:1.9; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:12px; }
  .btn-primary { text-align:center; font-size:16px; padding:18px; }
  .btn-secondary { text-align:center; font-size:16px; display:block; padding:12px 0; }

  /* VARIETY STRIP */
  .variety-strip { padding:16px 20px; gap:20px; }
  .variety-name { font-size:15px; }

  /* FEATURES */
  .features { padding:48px 20px; }
  .feature-card { padding:32px 20px; }
  .feature-title { font-size:20px; }
  .feature-text { font-size:16px; }

  /* SECTIONS */
  .recipe-section { padding:48px 20px; }
  .blog-section { padding:48px 20px; }
  .shop-cta { padding:48px 20px; }
  .section-title { font-size:28px; }
  .section-header { margin-bottom:32px; }
  .recipe-grid { grid-template-columns:1fr; }
  .blog-body { padding:20px; }
  .blog-title { font-size:17px; }
  .blog-excerpt { font-size:14px; }
  .shop-cta-visual { padding:40px 20px; }
  .shop-cta-text h2 { font-size:32px; }
  .shop-cta-text p { font-size:16px; }

  /* POST CARD（ブログ一覧） */
  .post-card { grid-template-columns:80px 1fr; gap:14px; padding:18px 0; }
  .post-card-title { font-size:16px; }
  .post-card-excerpt { font-size:13px; }

  /* FOOTER */
  footer { padding:40px 20px 20px; }
  .footer-inner { grid-template-columns:1fr; gap:24px; }
  .footer-brand-text { max-width:100%; }

  /* PAGE CONTENT */
  .post-content h2 { font-size:21px; }
  .post-content h3 { font-size:18px; }
  .post-content p { font-size:16px; }

  /* モバイル用ブログアイキャッチ */
  .mobile-eyecatch { display:block; }
  .mobile-eyecatch img { width:100%; max-height:240px; object-fit:cover; display:block; }

  /* ── 農園・品種ページ（クラスベース） ── */
  .about-hero { grid-template-columns:1fr !important; min-height:auto !important; height:auto !important; }
  .about-hero-left { padding:48px 20px 40px !important; }
  .about-hero-right { display:none !important; }
  .about-stat-grid { grid-template-columns:1fr 1fr !important; }
  .about-section { padding:48px 20px !important; grid-template-columns:1fr !important; gap:28px !important; }
  .about-section-dark { padding:48px 20px !important; }
  .about-varieties { grid-template-columns:1fr !important; gap:16px !important; }
  .about-varieties-small { grid-template-columns:1fr !important; gap:16px !important; }
  .about-grid-3 { grid-template-columns:1fr !important; gap:2px !important; }
  .about-cta { padding:48px 20px !important; grid-template-columns:1fr !important; gap:24px !important; }
  .about-timeline { padding-left:20px !important; }

  .cultivar-section { padding:40px 20px !important; }
  .cultivar-section-dark { padding:40px 20px !important; }
  .cultivar-feature { grid-template-columns:1fr !important; min-height:auto !important; }
  .cultivar-feature > div:first-child { min-height:200px !important; font-size:80px !important; }
  .cultivar-feature-text { padding:28px 20px !important; }
  .cultivar-small { grid-template-columns:1fr !important; }
  .cultivar-compare { grid-template-columns:1fr !important; gap:16px !important; }
  .cultivar-grape-grid { grid-template-columns:1fr !important; gap:16px !important; }
  .cultivar-grape-small { grid-template-columns:1fr !important; gap:16px !important; }
  .cultivar-calendar { padding:40px 20px !important; overflow-x:auto; }
  .cultivar-cta { padding:48px 20px !important; }
}
