/* =====================================================
   まっちゃん農園／長野・松川町 専用スタイル
   Vineyard Green & Muscat Wine / White Base
   ===================================================== */

:root {
  --mc-green: #2f4a34;
  --mc-green-2: #3c5c40;
  --mc-green-soft: #52765a;
  --mc-wine: #7a2f4f;
  --mc-wine-deep: #611f3d;
  --mc-wine-light: #eccfda;
  --mc-ivory: #f8faf7;
  --mc-ivory-2: #eef3ea;
  --mc-ink: #26302a;
  --mc-muted: #5f6d62;
  --mc-line: #dde6da;
}

.serif { font-family: 'Shippori Mincho', serif; }
.text-gold { color: var(--mc-wine-deep) !important; }
.bg-gold {
  background-color: var(--mc-wine) !important;
  background-image: linear-gradient(135deg, #8a3a5c 0%, #611f3d 100%) !important;
}
.border-gold { border-color: var(--mc-wine) !important; }

body { color: var(--mc-ink); background: #fff; }

/* Header */
header {
  border-bottom: 1px solid #e5e7eb;
  box-shadow: 0 4px 18px rgba(13,31,58,.07) !important;
}

header > .bg-gray-100 {
  background: #f3f4f6 !important;
  color: #4b5563 !important;
  border-color: #e5e7eb !important;
}

header > .bg-gray-100 a {
  color: #4b5563 !important;
}

header > .bg-gray-100 a:hover {
  color: var(--mc-wine-deep) !important;
}

header > .bg-gray-100 .text-gray-300 {
  color: #d1d5db !important;
}

header > .bg-gray-100 .text-gray-700 {
  color: #374151 !important;
}

header .container > a .text-gray-800 {
  color: var(--mc-green) !important;
}

header .container > a .text-gray-500 {
  color: #5c6d5f !important;
}

header nav {
  color: #47564a !important;
}

header nav a:hover {
  color: var(--mc-wine-deep) !important;
}

header nav a.text-gold {
  color: var(--mc-green) !important;
  border-color: var(--mc-wine) !important;
  font-weight: 700;
}

#mobile-menu {
  border-top-color: var(--mc-line) !important;
  box-shadow: 0 14px 28px rgba(47,74,52,.12) !important;
}

#mobile-menu a:hover {
  background: var(--mc-ivory) !important;
  color: var(--mc-green) !important;
}

#mobile-menu-button {
  color: var(--mc-green) !important;
}

/* Hero / TOP */
.page-top .hero-gradient {
  background-color: var(--mc-green);
  background-image:
    linear-gradient(115deg, rgba(15,28,18,.08) 0%, rgba(47,74,52,.03) 46%, rgba(12,22,15,.07) 100%),
    url('img/n_top1.jpg');
  background-size: cover;
  background-position: center;
  box-shadow: inset 0 -1px 0 rgba(236,207,218,.28);
}
.page-top .hero-gradient h1 { text-shadow: 0 2px 18px rgba(0,0,0,.34); }
.page-top .hero-gradient h1 span { color: #f6e3ec; }
.page-top .hero-gradient > div > p:first-child { color: var(--mc-wine-light); }
.page-top .hero-gradient .bg-gold {
  color: #fff !important;
  box-shadow: 0 8px 26px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.18);
  font-weight: 700;
}
.page-top .hero-gradient .bg-gold:hover { filter: brightness(1.06); transform: translateY(-1px); }
.page-top .animate-fade-in-up { animation: fadeInUp 1s ease-out forwards; }
@keyframes fadeInUp { from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }

/* Typography */
h1.text-gray-800, h2.text-gray-800, h3.text-gray-800,
.serif.text-gray-800, .font-bold.text-gray-800 { color: var(--mc-green) !important; }
.bg-gray-50 { background-color: var(--mc-ivory) !important; }
.bg-gray-100 { background-color: var(--mc-ivory-2) !important; }
.border-gray-100, .border-gray-200, .border-gray-300 { border-color: var(--mc-line) !important; }
.page-top section[id="products"] { background: linear-gradient(180deg, var(--mc-ivory) 0%, #fff 100%) !important; }

.page-top #products .bg-white,
.cart-system-container { border-color: var(--mc-line) !important; }
.page-top #products .bg-white {
  border: 1px solid var(--mc-line);
  box-shadow: 0 7px 22px rgba(47,74,52,.055) !important;
}
.page-top #products .bg-white:hover {
  border-color: rgba(122,47,79,.5) !important;
  box-shadow: 0 15px 34px rgba(47,74,52,.11) !important;
}
.page-top #products a.border-gray-300,
main a.border-gray-300 { border-color: rgba(47,74,52,.24) !important; color: var(--mc-green) !important; }
.page-top #products a.border-gray-300:hover,
main a.border-gray-300:hover {
  border-color: var(--mc-wine) !important; background: var(--mc-ivory) !important; color: var(--mc-wine-deep) !important;
}

/* Breadcrumb */
body > header + .bg-white { border-bottom: 1px solid var(--mc-line); background: #fff !important; }
body > header + .bg-white a { color: var(--mc-wine-deep); }
body > header + .bg-white .text-gray-800 { color: var(--mc-green) !important; }

main section:first-of-type img { box-shadow: 0 14px 34px rgba(47,74,52,.12) !important; }
main .border-l-4.border-gold {
  background: linear-gradient(90deg, var(--mc-ivory-2), #fff) !important;
  border-left-color: var(--mc-wine) !important; color: #4c5a4f !important;
}

/* Product summary panel */
.product-summary-panel {
  background: var(--mc-ivory);
  border: 1px solid var(--mc-line);
  border-left: 3px solid var(--mc-wine);
  border-radius: .4rem;
  padding: 1.1rem 1.3rem;
  margin-bottom: 1.5rem;
}
.product-summary-title { font-weight: 700; color: var(--mc-green); font-size: .92rem; margin-bottom: .5rem; }
.product-summary-list { margin: 0; padding: 0; list-style: none; }
.product-summary-list li { position: relative; padding-left: 1.1rem; margin-bottom: .35rem; color: var(--mc-muted); font-size: .87rem; line-height: 1.6; }
.product-summary-list li::before { content: "・"; position: absolute; left: 0; color: var(--mc-wine); }
.product-summary-common { font-size: .82rem; color: var(--mc-muted); margin-top: .6rem; }
@media (max-width: 640px) { .product-summary-panel { padding: 1rem; } }

.product-hold-notice {
  background: #f5f5f4; border: 1px dashed #c7c7c2; border-radius: .4rem;
  padding: 1rem 1.2rem; color: #6b6b64; font-size: .88rem; line-height: 1.7;
}
.product-hold-notice strong { color: #4b4b45; }

/* Coming soon badge (りんご準備中) */
.coming-soon-card {
  position: relative;
  filter: grayscale(.15);
}
.coming-soon-badge {
  position: absolute; top: .75rem; right: .75rem;
  background: rgba(38,48,42,.82); color: #fff; font-size: .72rem; font-weight: 700;
  padding: .3rem .7rem; border-radius: 999px; letter-spacing: .05em;
}

/* Purchase cards */
.cart-system-container {
  background: #fff !important; border: 1px solid var(--mc-line) !important;
  border-top: 3px solid var(--mc-wine-light) !important; box-shadow: 0 7px 20px rgba(47,74,52,.055) !important;
}
.cart-system-container:hover { border-top-color: var(--mc-wine) !important; box-shadow: 0 14px 30px rgba(47,74,52,.10) !important; }
.cart-system-container .text-gold { color: var(--mc-wine-deep) !important; }

.cart-system-container input[type="submit"],
.cart-system-container input[type="button"],
.cart-system-container button {
  background-color: var(--mc-wine) !important;
  background-image: linear-gradient(135deg, #8a3a5c 0%, #611f3d 100%) !important;
  color: #fff !important; font-family: 'Noto Sans JP', sans-serif !important; font-weight: 700 !important;
  font-size: .92rem !important; letter-spacing: .03em; padding: .62rem 1.15rem !important;
  min-width: 118px !important; border-radius: .25rem !important; border: 1px solid rgba(83,25,50,.34) !important;
  cursor: pointer !important; transition: transform .18s ease, filter .18s ease, box-shadow .18s ease !important;
  display: inline-block !important; appearance: none; -webkit-appearance: none;
  box-shadow: 0 4px 12px rgba(47,74,52,.12) !important;
}
.cart-system-container input[type="submit"]:hover,
.cart-system-container input[type="button"]:hover,
.cart-system-container button:hover {
  filter: brightness(1.05); transform: translateY(-1px); box-shadow: 0 7px 17px rgba(47,74,52,.17) !important;
}
.cart-system-container select,
.cart-system-container input[type="text"] {
  font-size: .92rem !important; padding: .45rem !important; min-height: 40px;
  border: 1px solid #cfd9cd !important; border-radius: .25rem !important; background: #fff !important;
  color: var(--mc-green) !important; max-width: 100% !important; box-sizing: border-box !important;
}
.cart-system-container select:focus,
.cart-system-container input[type="text"]:focus {
  outline: 2px solid rgba(122,47,79,.2) !important; border-color: var(--mc-wine) !important;
}

/* e-shops price decoration */
.live-price-label { margin: 0 0 .35rem; color: #7a6470; font-size: .72rem; font-weight: 700; letter-spacing: .08em; }
.eshop-live-price { color: var(--mc-wine-deep) !important; font-weight: 800 !important; font-size: 1.06em; letter-spacing: .015em; white-space: nowrap; }
.eshop-live-price-suffix { font-size: .78rem; color: #7a6470; margin-left: .3rem; font-weight: 500; }
.cart-system-container select.eshop-live-price-select {
  color: var(--mc-wine-deep) !important; font-weight: 700 !important;
  border-color: rgba(122,47,79,.4) !important; background-color: #fdf8fa !important;
}
.cart-system-container select.eshop-live-price-select option { color: var(--mc-ink); font-weight: 500; }

/* 数量とカゴボタンを2段にする（てらミート方式） */
.cart-system-container .eshop-controls-stack {
  display: grid !important; grid-template-columns: auto auto !important; gap: .5rem !important;
  align-items: center !important; width: 100% !important; margin-top: .5rem !important; justify-content: start !important;
}
.cart-system-container .eshop-qty-label { font-size: .8rem; color: var(--mc-muted); font-weight: 600; white-space: nowrap; }
.cart-system-container .eshop-controls-stack input[type="submit"],
.cart-system-container .eshop-controls-stack input[type="button"],
.cart-system-container .eshop-controls-stack button {
  grid-column: 1 / -1 !important; justify-self: start !important; margin-top: .25rem !important;
}

/* Harvest calendar (販売スケジュール) */
.schedule-section {
  background: linear-gradient(180deg, #f7faf4 0%, #fffdf8 100%);
}

.schedule-card {
  position: relative;
  overflow: hidden;
  border: 1px solid #dbe6d6;
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 9% 12%, rgba(198,220,113,.22), transparent 25%),
    radial-gradient(circle at 91% 6%, rgba(151,83,125,.12), transparent 24%),
    linear-gradient(135deg, #fffef8 0%, #f7fbf2 58%, #fff8f5 100%);
  box-shadow: 0 20px 48px rgba(47,74,52,.12);
}

.schedule-card::before,
.schedule-card::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}
.schedule-card::before { width: 180px; height: 180px; right: -70px; top: -90px; background: rgba(122,47,79,.07); }
.schedule-card::after { width: 150px; height: 150px; left: -65px; bottom: -90px; background: rgba(112,151,65,.09); }

.schedule-card-inner { position: relative; z-index: 1; padding: 2.5rem 3rem 2.7rem; }
.schedule-heading { margin-bottom: 2rem; }
.schedule-kicker {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #7a2f4f;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.schedule-kicker::before { content: ""; width: 22px; height: 2px; border-radius: 999px; background: #9bbf5a; }
.schedule-title { margin-top: .5rem; color: var(--mc-green); font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 700; line-height: 1.45; }
.schedule-lead { margin-top: .65rem; color: #667265; font-size: .92rem; line-height: 1.8; }

.harvest-calendar { width: 100%; border-collapse: separate; }
.harvest-calendar .hc-months {
  display: grid;
  grid-template-columns: 150px repeat(12, 1fr);
  margin-bottom: .65rem;
  padding: 0 .15rem;
}
.harvest-calendar .hc-month-label {
  text-align: center;
  color: #667265;
  font-size: .7rem;
  font-weight: 700;
  padding-bottom: .25rem;
}

.harvest-calendar .hc-row {
  display: grid;
  grid-template-columns: 150px repeat(12, 1fr);
  align-items: center;
  padding: .8rem .7rem .75rem;
  margin-bottom: .75rem;
  border: 1px solid rgba(207,220,202,.9);
  border-radius: .85rem;
  background: rgba(255,255,255,.78);
  box-shadow: 0 7px 18px rgba(47,74,52,.055);
}
.harvest-calendar .hc-row:last-child { margin-bottom: 0; }

.harvest-calendar .hc-name {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-width: 0;
  padding-right: .85rem;
  color: var(--mc-green);
  font-size: .87rem;
  font-weight: 800;
  line-height: 1.35;
}
.harvest-calendar .hc-icon { flex: 0 0 auto; font-size: .68rem; }
.hc-asparagus .hc-icon { color: #73a63f; }
.hc-grape .hc-icon { color: #7a2f69; }
.hc-apple .hc-icon { color: #d7664f; }

.harvest-calendar .hc-track {
  position: relative;
  height: 30px;
  grid-column: 2 / -1;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  overflow: hidden;
  border: 1px solid #e2e9df;
  border-radius: 999px;
  background: #f7f9f5;
}
.harvest-calendar .hc-cell { border-left: 1px solid rgba(91,111,92,.12); height: 100%; }
.harvest-calendar .hc-cell:first-child { border-left: 0; }

.harvest-calendar .hc-bar {
  position: absolute;
  top: 3px;
  height: 22px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  padding: 0 .65rem;
  color: #fff;
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
  overflow: visible;
  box-shadow: 0 4px 10px rgba(47,74,52,.13);
}
.harvest-calendar .hc-bar.hc-fixed { background: linear-gradient(90deg, #9ac45d 0%, #5f983e 100%); }
.harvest-calendar .hc-bar.hc-open { background: linear-gradient(90deg, #a65487 0%, #763164 100%); }
.harvest-calendar .hc-bar.hc-pending { background: linear-gradient(90deg, #ef9a65 0%, #d85f50 100%); color: #fff; border: 0; }

.harvest-calendar .hc-varieties {
  grid-column: 2 / -1;
  margin-top: .45rem;
  padding: 0 .2rem;
  color: #6b756b;
  font-size: .74rem;
  line-height: 1.55;
  letter-spacing: .01em;
}
.hc-grape .hc-varieties { color: #73566b; }
.hc-apple .hc-varieties { color: #8a6257; }

.schedule-note {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px dashed #d9e2d5;
  color: #778277;
  font-size: .76rem;
  line-height: 1.75;
}

@media (max-width: 767px) {
  .schedule-card-inner { padding: 1.7rem 1.05rem 1.9rem; }
  .schedule-heading { margin-bottom: 1.5rem; }
  .harvest-calendar .hc-months,
  .harvest-calendar .hc-row { grid-template-columns: 100px repeat(12, minmax(31px,1fr)); }
  .harvest-calendar .hc-row { padding: .7rem .5rem .65rem; }
  .harvest-calendar .hc-name { font-size: .75rem; padding-right: .5rem; }
  .harvest-calendar .hc-bar span { display: none; }
  .harvest-calendar .hc-varieties { font-size: .7rem; }
}

footer {
  background-color: var(--mc-green) !important;
  background-image: linear-gradient(145deg, #101c12 0%, #24391f 100%) !important;
  border-top: 3px solid var(--mc-wine) !important;
}
footer .text-gray-300 { color: rgba(255,255,255,.78) !important; }
footer .text-gray-400 { color: rgba(255,255,255,.62) !important; }
footer .text-gray-500 { color: rgba(255,255,255,.40) !important; }
footer .border-gray-700 { border-color: rgba(236,207,218,.16) !important; }
footer .text-gold { color: var(--mc-wine-light) !important; }
footer h3 { color: #fff; }

img.rounded-lg, img.rounded, img.rounded-sm { outline: 1px solid rgba(47,74,52,.035); }
::selection { background: var(--mc-wine-light); color: var(--mc-green); }

/* TOP editorial refinement */
.page-top .hero-gradient {
  min-height: 520px;
  background-position: center 42%;
}
.page-top .hero-gradient::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13,28,17,.68) 0%, rgba(20,38,24,.42) 50%, rgba(13,28,17,.18) 100%);
  pointer-events: none;
}
.page-top .hero-copy { position: relative; z-index: 2; text-align: left; }
.page-top .hero-kicker {
  margin-bottom: .9rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .22em;
  color: #f0dbe4;
}
.page-top .hero-title {
  margin: 0;
  font-size: clamp(2.5rem, 6vw, 4.8rem);
  line-height: 1.22;
  font-weight: 600;
  letter-spacing: .02em;
  text-shadow: 0 3px 24px rgba(0,0,0,.25);
}
.page-top .hero-brand {
  margin-top: 1rem;
  padding-left: .9rem;
  border-left: 2px solid rgba(236,207,218,.72);
  font-family: 'Shippori Mincho', serif;
  font-size: clamp(1.2rem, 2.4vw, 1.65rem);
  letter-spacing: .08em;
}
.page-top .hero-lead {
  max-width: 42rem;
  margin-top: 1.4rem;
  color: rgba(255,255,255,.88);
  font-size: 1.08rem;
  line-height: 2;
}
.section-kicker {
  display: block;
  margin-bottom: .7rem;
  color: var(--mc-wine-deep);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.section-title {
  margin-bottom: 1.7rem;
  color: var(--mc-green);
  font-size: clamp(1.75rem, 3.3vw, 2.45rem);
  line-height: 1.5;
  font-weight: 600;
}
.story-text {
  margin-bottom: 1.15rem;
  color: #566459;
  font-size: 1.08rem;
  line-height: 2;
}
.matsukawa-story { border-bottom: 1px solid var(--mc-line); }
.matsukawa-visual {
  position: relative;
  min-height: 380px;
  overflow: hidden;
  border-radius: 1rem;
  background: var(--mc-ivory-2);
  box-shadow: 0 18px 42px rgba(47,74,52,.12);
}
.matsukawa-visual > img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  object-position: center;
  display: block;
}
.location-overlay {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  width: min(330px, calc(100% - 2.5rem));
  padding: 1rem 1.1rem .9rem;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: .75rem;
  background: rgba(255,255,255,.91);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 12px 30px rgba(30,50,34,.18);
  color: var(--mc-green);
}
.location-heading {
  display: flex;
  align-items: baseline;
  gap: .55rem;
  margin-bottom: .25rem;
}
.location-heading span { font-size: .72rem; color: var(--mc-muted); letter-spacing: .12em; }
.location-heading strong { font-family: 'Shippori Mincho', serif; font-size: 1.3rem; color: var(--mc-green); }
.location-overlay svg { width: 100%; height: auto; display: block; }
.location-note { padding-top: .35rem; border-top: 1px solid rgba(47,74,52,.12); font-size: .68rem; line-height: 1.6; color: #6c796e; }
.farm-intro { background: linear-gradient(180deg, #f8faf7 0%, #fff 100%); }
.farm-photo-wrap { position: relative; padding: 1.1rem; }
.farm-photo-wrap::before {
  content: "";
  position: absolute;
  inset: 0 14% 8% 0;
  border-radius: .85rem;
  background: #e8efe4;
}
.farm-photo {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 285px;
  object-fit: cover;
  object-position: center;
  border-radius: .8rem;
  box-shadow: 0 18px 36px rgba(47,74,52,.12);
}
.visit-story { border-top: 1px solid rgba(221,230,218,.65); }
.visit-layout {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  grid-template-areas:
    "main copy"
    "sub copy";
  gap: 1.1rem 3.5rem;
  align-items: start;
}
.visit-photo-main { grid-area: main; }
.visit-photo-sub { grid-area: sub; align-self: stretch; }
.visit-photo-main img,
.visit-photo-sub img {
  width: 100%;
  display: block;
  object-fit: cover;
  border-radius: .75rem;
  box-shadow: 0 12px 30px rgba(47,74,52,.10);
}
.visit-photo-main img { height: 320px; object-position: center 36%; }
.visit-photo-sub img { height: 190px; }
.visit-copy { grid-area: copy; padding-top: .35rem; color: #566459; font-size: 1.06rem; line-height: 2; }
.visit-copy p { margin-bottom: 1.2rem; }
.visit-story .text-gray-500 { font-size: 1.06rem; line-height: 2; }
.visit-copy p:first-child { font-family: 'Shippori Mincho', serif; font-size: 1.13rem; color: var(--mc-green); line-height: 1.9; }
.visit-sign {
  display: inline-block;
  margin-top: .35rem;
  padding-top: .8rem;
  border-top: 1px solid var(--mc-line);
  color: #7a6470;
  font-size: .78rem;
  letter-spacing: .08em;
}
.schedule-section { background: #f8faf7; }

@media (max-width: 767px) {
  .page-top .hero-gradient { min-height: 560px; background-position: 56% center; }
  .page-top .hero-gradient::after { background: linear-gradient(90deg, rgba(13,28,17,.76) 0%, rgba(13,28,17,.48) 100%); }
  .page-top .hero-lead { font-size: 1rem; line-height: 1.9; }
  .matsukawa-visual { min-height: 360px; }
  .matsukawa-visual > img { height: 360px; }
  .location-overlay { right: .8rem; bottom: .8rem; width: calc(100% - 1.6rem); padding: .85rem .9rem .75rem; }
  .farm-photo-wrap { padding: .8rem 0 0 .8rem; }
  .farm-photo-wrap::before { inset: 0 12% 8% 0; }
  .farm-photo { min-height: 235px; }
  .story-text { font-size: 1.02rem; line-height: 1.95; }
  .visit-story .text-gray-500, .visit-copy { font-size: 1.02rem; }
  .visit-layout {
    grid-template-columns: 1fr;
    grid-template-areas: "main" "copy" "sub";
    gap: 1.25rem;
  }
  .visit-photo-main img { height: 300px; }
  .visit-photo-sub img { height: 190px; }
}

/* =====================================================
   ぶどう販売ページ：説明文・商品紹介レイアウト調整
   2026-09-25
   ===================================================== */

/* ページ冒頭の説明を、途中で切れたように見せず読み物としてまとめる */
.grape-page-intro {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 0 .35rem;
}

.grape-page-intro h1 {
  margin-bottom: 1.35rem !important;
}

.grape-page-lead {
  color: #4f5e52 !important;
  font-size: 1.12rem;
  line-height: 2.05;
  letter-spacing: .012em;
}

.grape-page-lead + .grape-page-lead {
  margin-top: .95rem !important;
}

/* 各品種：写真と説明を1つの紹介ブロックとして見せる */
.product-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 0;
  align-items: center;
  margin: 1.15rem 0 2.25rem;
  overflow: hidden;
  border: 1px solid var(--mc-line);
  border-radius: .85rem;
  background: #fff;
  box-shadow: 0 12px 30px rgba(47,74,52,.07);
}

.product-intro-visual {
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.15rem;
  background: #fff;
}

.product-intro-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 430px;
  object-fit: contain;
  border-radius: .6rem;
  box-shadow: 0 10px 24px rgba(47,74,52,.09);
}

.product-intro-copy {
  position: relative;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.55rem, 3.3vw, 2.7rem);
  border-left: 1px solid rgba(221,230,218,.9);
  background: linear-gradient(135deg, #f8faf7 0%, #fff 100%);
}

.product-intro-copy::before {
  content: "";
  position: absolute;
  left: -1px;
  top: 2rem;
  width: 3px;
  height: 3.5rem;
  background: var(--mc-wine);
  border-radius: 999px;
}


.product-intro-copy p {
  margin: 0;
  color: #4e5c51;
  font-size: 1.12rem;
  line-height: 2.05;
  letter-spacing: .01em;
}

/* 共通案内も本文に負けないサイズへ */
.product-summary-title {
  font-size: 1.02rem;
}

.product-summary-list li {
  font-size: .98rem;
  line-height: 1.8;
  margin-bottom: .5rem;
}

@media (max-width: 767px) {
  .grape-page-lead {
    font-size: 1.05rem;
    line-height: 1.95;
  }

  .product-intro-grid {
    grid-template-columns: 1fr;
    margin-top: 1rem;
    margin-bottom: 2rem;
  }

  .product-intro-visual {
    padding: .85rem .85rem 0;
  }

  .product-intro-image {
    max-height: none;
  }

  .product-intro-copy {
    padding: 1.35rem 1.2rem 1.55rem;
    border-left: 0;
    border-top: 1px solid rgba(221,230,218,.9);
  }

  .product-intro-copy::before {
    left: 1.2rem;
    top: -1px;
    width: 3.5rem;
    height: 3px;
  }

  .product-intro-copy p {
    font-size: 1.04rem;
    line-height: 1.95;
  }

  .product-summary-list li {
    font-size: .94rem;
    line-height: 1.75;
  }
}



/* =====================================================
   アスパラガス販売ページ専用
   2026-09-25
   ===================================================== */

/* ぶどうページのワイン色を持ち込まず、アスパラガスは緑を差し色にする */
body.page-asparagus {
  --mc-wine: #4f7a4f;
  --mc-wine-deep: #315f38;
  --mc-wine-light: #dcebd7;
}

/* ページ冒頭：タイトル直下を左写真・右文章に */
.page-asparagus .asparagus-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 0;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--mc-line);
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 14px 34px rgba(47,74,52,.08);
}

.page-asparagus .asparagus-intro-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: #fff;
}

.page-asparagus .asparagus-intro-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  max-height: 470px;
  object-fit: cover;
  object-position: center;
  border-radius: .65rem;
  box-shadow: 0 10px 26px rgba(47,74,52,.10);
}

.page-asparagus .asparagus-intro-copy {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.6rem, 3.2vw, 2.7rem);
  border-left: 1px solid rgba(221,230,218,.9);
  background: linear-gradient(135deg, #f8faf7 0%, #fff 100%);
}

.page-asparagus .asparagus-intro-copy::before {
  content: "";
  position: absolute;
  left: -1px;
  top: 2rem;
  width: 3px;
  height: 3.8rem;
  background: var(--mc-wine);
  border-radius: 999px;
}

.page-asparagus .asparagus-intro-copy p {
  margin: 0 0 1rem;
  color: #4f5e52;
  font-size: 1.08rem;
  line-height: 2;
  letter-spacing: .01em;
}

.page-asparagus .asparagus-intro-copy p:last-child { margin-bottom: 0; }

/* アスパラガスページの購入UIも緑で統一 */
.page-asparagus .live-price-label { color: #5f735f; }
.page-asparagus .eshop-live-price-suffix { color: #5f735f; }
.page-asparagus .cart-system-container select.eshop-live-price-select {
  background-color: #f5faf3 !important;
  border-color: rgba(49,95,56,.38) !important;
}
.page-asparagus .cart-system-container select:focus,
.page-asparagus .cart-system-container input[type="text"]:focus {
  outline-color: rgba(49,95,56,.18) !important;
}

@media (max-width: 767px) {
  .page-asparagus .asparagus-intro-grid {
    grid-template-columns: 1fr;
  }
  .page-asparagus .asparagus-intro-visual {
    padding: .85rem .85rem 0;
  }
  .page-asparagus .asparagus-intro-image {
    height: auto;
    min-height: 0;
    max-height: none;
  }
  .page-asparagus .asparagus-intro-copy {
    padding: 1.35rem 1.2rem 1.55rem;
    border-left: 0;
    border-top: 1px solid rgba(221,230,218,.9);
  }
  .page-asparagus .asparagus-intro-copy::before {
    left: 1.2rem;
    top: -1px;
    width: 3.8rem;
    height: 3px;
  }
  .page-asparagus .asparagus-intro-copy p {
    font-size: 1.02rem;
    line-height: 1.95;
  }
}


/* =====================================================
   ぶどう販売ページ：冒頭2カラム
   2026-09-25
   ===================================================== */
.grape-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 0;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--mc-line);
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 14px 34px rgba(47,74,52,.08);
}

.grape-intro-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: #fff;
}

.grape-intro-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  max-height: 470px;
  object-fit: cover;
  object-position: center;
  border-radius: .65rem;
  box-shadow: 0 10px 26px rgba(47,74,52,.10);
}

.grape-intro-copy {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.6rem, 3.2vw, 2.7rem);
  border-left: 1px solid rgba(221,230,218,.9);
  background: linear-gradient(135deg, #f8faf7 0%, #fff 100%);
}

.grape-intro-copy::before {
  content: "";
  position: absolute;
  left: -1px;
  top: 2rem;
  width: 3px;
  height: 3.8rem;
  background: var(--mc-wine);
  border-radius: 999px;
}

.grape-intro-copy p {
  margin: 0 0 1rem;
  color: #4f5e52;
  font-size: 1.08rem;
  line-height: 2;
  letter-spacing: .01em;
}

.grape-intro-copy p:last-child { margin-bottom: 0; }

@media (max-width: 767px) {
  .grape-intro-grid { grid-template-columns: 1fr; }
  .grape-intro-visual { padding: .85rem .85rem 0; }
  .grape-intro-image { height: auto; min-height: 0; max-height: none; }
  .grape-intro-copy {
    padding: 1.35rem 1.2rem 1.55rem;
    border-left: 0;
    border-top: 1px solid rgba(221,230,218,.9);
  }
  .grape-intro-copy::before {
    left: 1.2rem;
    top: -1px;
    width: 3.8rem;
    height: 3px;
  }
  .grape-intro-copy p { font-size: 1.02rem; line-height: 1.95; }
}


/* =====================================================
   ぶどう販売ページ：常時表示の品種ナビ
   品種名を常時表示し、現在位置を強調
   2026-09-28
   ===================================================== */
.page-grape .grape-sticky-nav {
  border-top: 1px solid rgba(221,230,218,.75);
  border-bottom: 1px solid var(--mc-line);
  background: rgba(255,255,255,.97);
  box-shadow: 0 7px 18px rgba(47,74,52,.055);
}

.page-grape .grape-sticky-nav-inner {
  display: flex;
  align-items: center;
  gap: .85rem;
  max-width: 1280px;
  margin: 0 auto;
  padding: .48rem 1.25rem .55rem;
}

.page-grape .grape-nav-label {
  flex: 0 0 auto;
  color: var(--mc-green);
  font-family: 'Shippori Mincho', serif;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .06em;
  white-space: nowrap;
}

.page-grape .grape-nav-scroll {
  display: flex;
  align-items: stretch;
  gap: .42rem;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(47,74,52,.24) transparent;
  -webkit-overflow-scrolling: touch;
  padding: .05rem .1rem .08rem;
}

.page-grape .grape-nav-scroll::-webkit-scrollbar { height: 4px; }
.page-grape .grape-nav-scroll::-webkit-scrollbar-thumb { background: rgba(47,74,52,.22); border-radius: 999px; }

.page-grape .grape-nav-item {
  flex: 0 0 auto;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: .38rem .72rem .34rem;
  border: 1px solid rgba(47,74,52,.16);
  border-radius: 999px;
  background: #fff;
  color: #405047;
  font-size: .74rem;
  font-weight: 600;
  line-height: 1.15;
  white-space: nowrap;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, color .18s ease;
}

.page-grape .grape-nav-item:hover,
.page-grape .grape-nav-item.is-current {
  border-color: rgba(122,47,79,.42);
  background: #fdf8fa;
  color: var(--mc-wine-deep);
  box-shadow: 0 4px 12px rgba(47,74,52,.07);
}

.page-grape .grape-nav-name { font-size: .76rem; }

.page-grape .grape-nav-status {
  display: block;
  margin-top: .18rem;
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .02em;
}

.page-grape .grape-nav-item[data-sale-status="on"] .grape-nav-status::before {
  content: "● 販売中";
  color: #3c6b45;
}

.page-grape .grape-nav-item[data-sale-status="off"] .grape-nav-status::before {
  content: "販売期間外";
  color: #8b918d;
}


.page-grape #shine,
.page-grape #rouge,
.page-grape #shine-rouge,
.page-grape #pione,
.page-grape #nagano,
.page-grape #queen,
.page-grape #nagano-shine {
  scroll-margin-top: 176px;
}

@media (max-width: 1279px) {
  .page-grape .grape-sticky-nav-inner { padding-left: .8rem; padding-right: .8rem; }
  .page-grape .grape-nav-label { display: none; }
  .page-grape .grape-nav-scroll { width: 100%; }
}

@media (max-width: 767px) {
  .page-grape .grape-sticky-nav-inner { padding: .42rem .65rem .48rem; }
  .page-grape .grape-nav-item { min-height: 46px; padding: .34rem .58rem .3rem; gap: 0; }
  .page-grape .grape-nav-name { font-size: .71rem; }
  .page-grape .grape-nav-status { font-size: .6rem; }
  .page-grape #shine,
  .page-grape #rouge,
  .page-grape #shine-rouge,
  .page-grape #pione,
  .page-grape #nagano,
  .page-grape #queen,
  .page-grape #nagano-shine {
    scroll-margin-top: 198px;
  }
}

/* =====================================================
   アスパラガス販売ページ：グリーンアスパラ上部 3枚写真枠
   2026-09-28
   ===================================================== */
.page-asparagus .asparagus-image-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 0 2.4rem;
}

.page-asparagus .asparagus-image-card {
  overflow: hidden;
  border: 1px solid var(--mc-line);
  border-radius: .8rem;
  background: #fff;
  box-shadow: 0 10px 24px rgba(47,74,52,.07);
}

.page-asparagus .asparagus-image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  min-height: 0;
  background: linear-gradient(135deg, #f8faf7 0%, #eef3ea 100%);
  color: #7d8c80;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
}

/* 実画像へ差し替える場合は、placeholder 内を下記のような img に変更
   <img class="asparagus-strip-image" src="img/xxxx.jpg" alt="..."> */
.page-asparagus .asparagus-strip-image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 767px) {
  .page-asparagus .asparagus-image-strip {
    grid-template-columns: 1fr;
    gap: .8rem;
    margin-bottom: 2rem;
  }
}

/* =====================================================
   アスパラガス販売ページ：カゴボタンをグリーンで統一
   2026-09-28
   ===================================================== */
.page-asparagus .cart-system-container input[type="submit"],
.page-asparagus .cart-system-container input[type="button"],
.page-asparagus .cart-system-container button {
  background-color: #3c5c40 !important;
  background-image: linear-gradient(135deg, #52765a 0%, #315f38 100%) !important;
  border-color: rgba(35, 76, 43, .42) !important;
  box-shadow: 0 4px 12px rgba(49, 95, 56, .16) !important;
}

.page-asparagus .cart-system-container input[type="submit"]:hover,
.page-asparagus .cart-system-container input[type="button"]:hover,
.page-asparagus .cart-system-container button:hover {
  filter: brightness(1.06);
  box-shadow: 0 7px 17px rgba(49, 95, 56, .24) !important;
}


/* =====================================================
   ぶどう販売ページ：ぶどうをイメージしたグレープ紫のカゴボタン
   2026-09-28
   ===================================================== */
.page-grape .cart-system-container input[type="submit"],
.page-grape .cart-system-container input[type="button"],
.page-grape .cart-system-container button {
  background-color: #63335f !important;
  background-image: linear-gradient(135deg, #7b3f75 0%, #64305f 52%, #4f244d 100%) !important;
  border-color: rgba(73, 31, 70, .48) !important;
  box-shadow: 0 4px 12px rgba(87, 43, 83, .18) !important;
  color: #fff !important;
}

.page-grape .cart-system-container input[type="submit"]:hover,
.page-grape .cart-system-container input[type="button"]:hover,
.page-grape .cart-system-container button:hover {
  filter: brightness(1.08) saturate(1.05);
  box-shadow: 0 7px 17px rgba(87, 43, 83, .26) !important;
}

/* =====================================================
   ぶどう販売ページ：シャインマスカット入り商品だけマスカット色
   対象：シャインマスカット／シャイン×クイーンルージュ／ナガノ×シャイン
   2026-09-28
   ===================================================== */
.page-grape #shine .cart-system-container input[type="submit"],
.page-grape #shine .cart-system-container input[type="button"],
.page-grape #shine .cart-system-container button,
.page-grape #shine-rouge .cart-system-container input[type="submit"],
.page-grape #shine-rouge .cart-system-container input[type="button"],
.page-grape #shine-rouge .cart-system-container button,
.page-grape #nagano-shine .cart-system-container input[type="submit"],
.page-grape #nagano-shine .cart-system-container input[type="button"],
.page-grape #nagano-shine .cart-system-container button {
  background-color: #6f923f !important;
  background-image: linear-gradient(135deg, #91ad52 0%, #759946 52%, #587a35 100%) !important;
  border-color: rgba(75, 111, 43, .48) !important;
  box-shadow: 0 4px 12px rgba(100, 137, 61, .20) !important;
  color: #fff !important;
}

.page-grape #shine .cart-system-container input[type="submit"]:hover,
.page-grape #shine .cart-system-container input[type="button"]:hover,
.page-grape #shine .cart-system-container button:hover,
.page-grape #shine-rouge .cart-system-container input[type="submit"]:hover,
.page-grape #shine-rouge .cart-system-container input[type="button"]:hover,
.page-grape #shine-rouge .cart-system-container button:hover,
.page-grape #nagano-shine .cart-system-container input[type="submit"]:hover,
.page-grape #nagano-shine .cart-system-container input[type="button"]:hover,
.page-grape #nagano-shine .cart-system-container button:hover {
  filter: brightness(1.07) saturate(1.04);
  box-shadow: 0 7px 17px rgba(100, 137, 61, .28) !important;
}

/* =====================================================
   ぶどう販売ページ：各品種の商品説明下 3枚イメージ写真枠
   2026-09-29
   ===================================================== */
.page-grape .grape-image-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: -0.85rem 0 2.2rem;
}

.page-grape .grape-image-card {
  overflow: hidden;
  border: 1px solid var(--mc-line);
  border-radius: .8rem;
  background: #fff;
  box-shadow: 0 8px 22px rgba(47,74,52,.07);
}

.page-grape .grape-image-card img,
.page-grape .grape-image-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
}

.page-grape .grape-image-card img {
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.page-grape .grape-image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(135deg, rgba(248,250,247,.98), rgba(238,243,234,.82));
  color: #819083;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
}

@media (max-width: 767px) {
  .page-grape .grape-image-strip {
    grid-template-columns: 1fr;
    gap: .8rem;
    margin: -0.55rem 0 1.8rem;
  }
}

