/*!
Theme Name: miyaworks-child
Template: miyaworks
Author: miya
Description: Description
Version: 1.0.0
*/
/**PCとスマホの表示切り替え**/
@media screen and (min-width: 960px) {
  /* PC */
  .sp { display: none !important; }
  .br-sp { display: none; }
}
@media screen and (max-width: 959px) {
  /* スマホ/タブレット */
  .pc { display: none !important; }
  .br-pc { display: none; }
}

/**** 共通 ****/
/* ベース */
:root {
  --brand: #9b7585;   /* ボタン・背景・アクセント */
  --text: #3c3a3a;    /* 指示にあったベース色 */
  --header-opacity: .85;
  --container: 1200px;
}
html, body {
  height: 100vh;
  overflow-x: hidden;
}
html{ scroll-behavior:smooth; }
    body{
      margin:0;
      color:var(--text);
      font-family:"ryo-text-plusn","Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
      font-size:15px; /* p 15px 指示に合わせる */
      line-height:1.7;
    }
    a{ color:inherit; text-decoration:none; }
    img{ max-width:100%; height:auto; display:block; }

/* その他 */
.center {
  text-align: center;
}
.entry-header,.entry-footer {
	display: none;
}

/**** header ****/

/* コンテナ */
    .container{
      width: min(100%, var(--container));
      margin-inline:auto;
      padding-inline:20px;
    }
/* 固定ヘッダー */
    .site-header{
      position:fixed; inset:0 0 auto 0;
      z-index:1000;
      background:rgba(255,255,255,var(--header-opacity));
      -webkit-backdrop-filter:saturate(180%) blur(10px);
      backdrop-filter:saturate(180%) blur(10px);
      border-bottom:1px solid rgba(0,0,0,.06);
      transition: box-shadow .25s ease;
    }
    .site-header.scrolled{
      box-shadow:0 6px 18px rgba(0,0,0,.08);
    }

    .nav{
      display:flex; align-items:center; gap:24px;
      min-height:74px;
    }

    /* ロゴ */
    .logo{
		display:flex;
		align-items:center;
		gap:12px;
     }
    .logo img{ width:60px; height:auto; }
/* ナビ */
    .nav__spacer{ flex:1; } /* ロゴとメニューの間を押し広げる */
    .nav__list{
      display:flex; align-items:center; gap:22px;
      list-style:none; margin:0; padding:0;
      font-size:15px;
    }
    .nav__link{
      position:relative; padding:10px 2px;
    }
    /*
    .nav__link::after{
      content:""; position:absolute; left:0; right:0; bottom:2px;
      height:2px; transform:scaleX(0); transform-origin:left;
      background:var(--brand); transition:transform .25s ease;
    }
    .nav__link:hover::after,
    .nav__link:focus-visible::after{ transform:scaleX(1); }
    */
    /* CTA */
    .cta{
      display:inline-flex; align-items:center; justify-content:center;
      height:40px; padding:0 16px; border-radius:999px;
      background: #8d366a; color:#fff; font-weight:600;
      box-shadow:0 6px 14px rgba(201,137,163,.28);
      transition: filter .2s ease, transform .02s ease-in-out;
      white-space:nowrap;
    }
    .cta:active{ transform:translateY(1px); }
    .cta:hover{ filter:brightness(1.03); }
　　.cta .icon{ flex-shrink:0; }

    /* モバイル */
    .menu-toggle{
      appearance:none; border:0; background:transparent; padding:8px;
      margin-left:6px; cursor:pointer; display:none;
    }
    .menu-toggle svg{ width:26px; height:26px; }

    @media (max-width: 960px){
      .nav{ min-height:66px; }
      .nav__list{
        position:fixed; left:0; right:0; top:66px;
        display:grid; gap: 32px;
        max-height:0; overflow:hidden;
        background:rgba(255,255,255,var(--header-opacity));
        -webkit-backdrop-filter:saturate(180%) blur(8px);
        backdrop-filter:saturate(180%) blur(8px);
        border-bottom:1px solid rgba(0,0,0,.06);
        padding:0 20px; transition:max-height .28s ease;
		  font-size: 18px;
      }
      .nav__list.is-open{ max-height:70vh; padding:48px 20px; text-align: center; }
      .menu-toggle{ display:inline-flex; }
		.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
		.logo img{ width:220px; }
    }

/**** footer ****/
.site-footer {
  background: var(--brand);
  color: #fff;
  text-align: center;
  padding: 20px 0;
  font-size: 13px;
  letter-spacing:0.05em;
}

.site-footer p {
  margin: 0;
}

/**** main ホーム****/
 /* ホーム共通 */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease-out;
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

 /* TOP画像 */
.hero {
  position: relative;
  overflow: hidden;
}

.hero__image img {
  width: 100%;
  height: auto;
  display: block;
}

/* 縦書きコピー */
.hero{ position:relative; overflow:hidden; }
.hero__image img{ width:100%; height:auto; display:block; }
.hero__copy {
  position:absolute; inset:0;
  pointer-events:none; /* 画像下のリンクをブロックしない */
  top: 20%;
  left: 5%;
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  color: #fff;
  font-size: 25px;
  font-family:"ryo-text-plusn","Yu Mincho","Hiragino Mincho ProN",serif;
  writing-mode: vertical-rl;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}
/* 縦書きの見た目 */
.vcopy{
  position:absolute;
  writing-mode: vertical-rl;
  color:#fff;
  font-family:"ryo-text-plusn","Yu Mincho","Hiragino Mincho ProN",serif;
  font-size: clamp(16px, 2.2vw, 32px);   /* 画面に応じて可変 */
  line-height: 2;                        /* 縦書きの行間 */
  letter-spacing: .08em;
  text-shadow: 
  0 2px 8px rgba(0,0,0,.6),
  0 2px 12px rgba(0,0,0,.8);
}

/* 位置（左右端から少し内側へ寄せる） */
.vcopy--left  { left: 23%; top: 23%; }
.vcopy--right { right: 28%; top: -3%; }

/* フェードイン共通 */
.fadein{ opacity:0; transform:translateY(30px);
  transition: opacity 1s ease, transform 1s ease; }
.fadein.active{ opacity:1; transform:translateY(0); }
.fadein.delay{ transition-delay:.3s; }

/* タブレット以下での調整 */
@media (max-width: 959px){
	.hero__image{
    position: relative;
    width: 100%;
    height: clamp(55vh, 78vw, 85vh);  /* 端末に応じて伸縮：縦長端末=高め、横長端末=控えめ */
    overflow: hidden;
  }
  .hero__image img{
    width: 100%;
    height: 100%;
    object-fit: cover;           /* 縦横比を保って拡大 */
    object-position: 50% 50%;    /* 中心を起点にトリミング */
    display:block;
  }
  .vcopy--left  { left: 20%; top: 14%; }
  .vcopy--right { right: 20%; top: 10%; }
}

/* ====== Concept ====== */
.concept {
  background: var(--brand);
  color: #fff;
  text-align: center;
  padding: 80px 20px;
}

.section-title {
  font-family: 'Italianno', cursive;
  font-size: 38px;
  font-weight: normal;
  letter-spacing: 0.05em;
  text-align: center;
}

.concept__text {
  line-height: 2.5;
	letter-spacing: 0.05em;
  max-width: 700px;
  margin: 32px auto 0;
}
/* タブレット以下での調整 */
@media (max-width: 959px){
	.concept__text {
		line-height: 1.8;
	}
}

/* ====== Overlap ====== */
.overlap-block{ background:#fff; }

/* 2カラムの基本 */
.overlap-row{
  display:grid;
  grid-template-columns: 1.2fr 1fr; /* 画像広め */
  align-items:center;
  padding:64px 0;
  position: relative;
}

.overlap-row.row-rev{
  grid-template-columns: 1fr 1.2fr; /* 右画像 */
}

/* 画像 */
.ov-img{ margin:0; position:relative; z-index:0; }
.ov-img img{ width:100%; height:auto; display:block;}

/* テキスト側 */
.ov-text{ position:relative; z-index:1; } /* ← テキストを上に */
.ov-panel{
  font-size:15px; line-height: 2.5; letter-spacing:.05em;
  font-family:"ryo-text-plusn","Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  color:#3c3a3a;
  background:rgba(255,255,255,.85);
	padding: 42px 20px;
  max-width: 56ch;
  position:relative;
	text-align: center;
}

/* --- 重なり量（PC） --- */
.overlap-row .ov-panel{ transform: translateX(-8%); }           /* 1段目：右テキスト→左に寄せて画像と重ねる */
.overlap-row.row-rev .ov-panel{ transform: translateX(18%); }     /* 2段目：左テキスト→右に寄せて画像と重ねる */

/* タブレット以下での調整 */
@media (max-width: 959px){
  .overlap-row,
  .overlap-row.row-rev{
    display: flex;              /* grid から flex に切替 */
    flex-direction: column;     /* 縦積み */
    gap: 0px;
    padding: 0px 0;
  }
	
  /* 1段目：テキストを下、画像を上 */
  .overlap-row .ov-text { order: 2; }
  .overlap-row .ov-img  { order: 1; }

  /* 2段目（row-rev）：もともとテキスト→画像なのでそのまま */
  .overlap-row.row-rev .ov-text { order: 2; }
  .overlap-row.row-rev .ov-img  { order: 1; }

  /* 重なり解除 */
  .overlap-row .ov-panel,
  .overlap-row.row-rev .ov-panel{
    transform: translateX(0);
    margin-inline: auto;
  }

  /* 装飾角は圧迫感が出るので非表示 */
  .ov-panel::before{ display: none; }
}

/* ====== Facilities ====== */
.facilities{
  background:#efeedd; /* 淡いベージュ背景（必要なら調整） */
  padding:72px 0 96px;
}
.section-sub{
  text-align:center;
  margin:-12px 0 28px;
  font-size:13px;        /* span=13px ルール */
  letter-spacing:.05em;
  color:#7a7770;
}
/* ▼PC & タブレット：4列 */
.facilities__grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:0;
  max-width:820px;
  margin:0 auto;
  background:#fff;
  border:1px solid #e7e3d9;   /* 外枠 */
  border-right:none; 
  border-bottom:none;
}
/* タイル */
.facilities__item{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding: 44px 12px 24px; text-align:center;
  border-right:1px solid #e7e3d9;
  border-bottom:1px solid #e7e3d9;
}
.facilities__item:nth-child(4n){ border-right:none; }         /* 4列目 右線消す */
.facilities__item:nth-last-child(-n+4){ border-bottom:none; } /* 最下段 */


.facilities__icon{ width:72px; height:72px; object-fit:contain; }
.facilities__label{
  display:block;
  margin-top:12px;
  font-size:13px;          /* span 13px ルール */
  letter-spacing:.05em;
  color:var(--text);
}

/* ▼スマホ：2列（～599px） */
@media (max-width: 599px){
  .facilities__grid{
    grid-template-columns: repeat(2, 1fr);
    max-width:420px;
  }
  /* まずリセット */
  .facilities__item{ border-right:1px solid #e7e3d9; border-bottom:1px solid #e7e3d9; }
  /* 2列用の線を調整 */
  .facilities__item:nth-child(2n){ border-right:none; }       /* 2列目 右線消す */
  .facilities__item:nth-last-child(-n+4){ border-bottom:1px solid #e7e3d9; } /* 最下段 */
  /* スマホのアイコンは小さめ推奨（任意） */
  .facilities__icon{ width:56px; height:56px; margin-bottom:6px; }
}

/* ====== スライダー ====== */
/* スライダーの余白（左右の見切れを作る） */
.gallery {
    padding: 150px 6vw 110px;
    margin-bottom: 40px;
}
/* スライドは“自動幅”にして3枚見せ。幅は端末に応じて可変 */
.gallery .swiper-slide{
  width: clamp(220px, 28vw, 560px);   /* ← ここだけ調整すればOK */
  transition: transform .35s ease, opacity .35s ease;
  opacity: .6;
  transform: scale(.92);
}
.gallery .swiper-slide img{ width:100%; height:auto; display:block; }

/* 中央（アクティブ）は拡大＆不透明 */
.gallery .swiper-slide-active{ transform: scale(1.2); opacity: 1; }

/* 隣のスライドは少しだけ大きくして段階表現 */
.gallery .swiper-slide-next,
.gallery .swiper-slide-prev{ transform: scale(.98); opacity: .85; }

/* スライドボタン */
.swiper-button-prev.br-pc,
.swiper-button-next.br-pc {
  color: #9b7585;        /* 矢印の色 */
  width: 40px;           /* 当たり判定のサイズ */
  height: 40px;
}

.swiper-button-prev.br-pc::after,
.swiper-button-next.br-pc::after {
  font-size: 28px;       /* 矢印アイコンのサイズ */
}

/* ===== ドット（ページネーション、PCのみ） ===== */
.swiper-pagination.br-pc .swiper-pagination-bullet {
  background: #ccc;      /* 非アクティブ色 */
  opacity: 1;            /* デフォルトだと薄いので明示 */
}

.swiper-pagination.br-pc .swiper-pagination-bullet-active {
  background: #9b7585;   /* アクティブ色（ブランドカラー） */
}

/* スマホでの調整 */
@media (max-width: 599px){
	.gallery {
		padding: 67px 6vw;
		margin-bottom: 0;
	}
}

/* ===== Price ===== */
.price{ background:#efeedd; padding:72px 0 96px; }
.section-sub{ text-align:center; margin:-12px 0 28px; font-size:13px; letter-spacing:.05em; color:#7a7770; }

/* テーブル */
.price-table{
  width:min(760px, 100%);
  margin:0 auto 28px;
  border-collapse:collapse;
  background:#fff;
  box-shadow:0 2px 0 rgba(0,0,0,.02) inset;
}
.price-table th, .price-table td{
  font-size:15px; letter-spacing:.05em;
  padding:24px 28px;
  text-align:center;
  border-bottom:1px solid #e7e3d9;
  border-right:1px solid #e7e3d9;
}
.price-table th{ width:38%; font-weight:400; color:#3c3a3a; }
.price-table tr:last-child th, .price-table tr:last-child td{ border-bottom:none; }
.price-table tr th:last-child, .price-table tr td:last-child{ border-right:none; }

/* 追加テキスト */
.price-add {
	text-align: center;
	margin-bottom: 50px;
}

/* アコーディオンボタン */
/* ボタン本体：中央寄せ＋右端に矢印用の余白を確保 */
.acc-btn{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;     /* ← ラベルを中央に */
  width: min(760px, 100%);
  height: 56px;
  margin: 18px auto 0;
  padding-right: 56px;          /* ← 右の矢印ぶんの余白を確保 */
  background: var(--brand);
  color: #fff;
  font-weight: 600;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 6px 14px rgba(201,137,163,.28);
  transition: filter .2s ease, transform .02s ease-in-out;
  letter-spacing: 0.1em;
}
.acc-btn:active{ transform: translateY(1px); }
.acc-btn:hover{ filter: brightness(1.03); }

/* ラベルはそのまま中央でOK（重なり防止のためクリック透過） */
.acc-label{
	pointer-events: none;
	margin-left: 50px;
}

/* 矢印を右端に固定配置、縦センター */
.acc-btn .chev{
  position: absolute;
  right: 20px;                  /* ← 右端位置 */
  top: 50%;
  transform: translateY(-50%);
  width: 20px; height: 20px;
}
.acc-btn .chev::before{
  content: "";
  position: absolute; inset: 0;
  border: solid #fff; border-width: 0 3px 3px 0;
  display: inline-block; padding: 4px;
  width: 10px; height: 10px; margin: auto;
  transform: rotate(45deg);     /* ▼ */
}
.acc-btn[aria-expanded="true"] .chev::before{
  transform: rotate(-135deg);   /* ▲ */
}

/* パネル */
.acc-panel{
  overflow:hidden;
  transition:max-height .35s ease;
  max-height:0;
  width:min(760px, 100%);
  margin:10px auto 0;
}
.acc-panel[hidden]{ display:block; } /* hiddenでも高さアニメ可 */

.terms__body{
  padding:24px 22px;
  font-size:15px; line-height:2; letter-spacing:.05em; color:#3c3a3a;
}
.terms__body p{ margin:0 0 1em; }
.terms__body h3{ font-size:16px; font-weight:600; margin:0 0 1em; }
.terms__body h4{ font-size:15px; font-weight:600; margin:1.8em 0 .6em; }
.terms__body ul{ padding-left:1.2em; margin:0 0 1.2em; }
.terms__body ol{ padding-left:1.4em; margin:0 0 1.2em; }
.terms__body li{ margin-bottom:.4em; line-height:1.9; }

/* スマホでの調整 */
@media (max-width: 599px){
	.acc-label {
    margin-left: 50px;
	}
	.price-add {
	 font-size: 13px;
	}
}

/* ===== Members Benefit Banner ===== */
.cmu-members-benefit {
  text-align: center;     /* 画像を中央寄せ */
  padding: 100px 0;        /* 上下の余白 */
}

.cmu-members-benefit__img {
  display: inline-block;
  max-width: 760px;
  width: 100%;            /* 画面が狭い時は縮む */
  height: auto;
}

/* ---- SP 調整 ---- */
@media (max-width: 959px) {
  .cmu-members-benefit {
    padding: 16px 0;
  }
}

/* ===== FAQ ===== */
.faq { padding: 72px 0 96px; }
.faq .container { display: flex; flex-direction: column; align-items: center; }

/* リストは最大820pxで中央寄せ（画像と統一） */
.faq__list { width: 100%; max-width: 820px; }
.faq__item + .faq__item { margin-top: 18px; }

/* —— ボタン：既存 .acc-btn をベースに幅のみ上書き。影は既存を継承して「利用規約」と揃える —— */
.acc-btn--faq {
  width: 100%;
  max-width: 760px;
  /* 色は既存 .acc-btn の var(--brand) をそのまま利用（変更したい場合は下を解除）
  background: var(--brand, #9b7585);
  */
}

/* —— パネル：既存の開閉アニメを流用。見た目だけ調整 —— */
.acc-panel--faq {
  width: 100%;
  max-width: 820px;
  margin: 10px auto 0;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 14px rgba(201,137,163,.12); /* ほんのり影（ボタンと相性良く） */
}

/* 本文の内側スタイル */
.faq__body{
  padding: 20px 24px;
  font-size: 15px;
  line-height: 1.9;
  color:#3c3a3a;
  letter-spacing: .05em;
}

/* SP微調整（既存のスマホ調整と自然に共存） */
@media (max-width: 599px){
  .acc-btn--faq { font-size: 14px; }
  .faq__body { padding: 16px 18px; border-radius: 12px; }
}


/* ===== Access ===== */
.access-wrap {
	max-width: 820px;
    margin: 0 auto;
}
.access{ padding:72px 0 96px; background:#fff; }

.access__addr{
  color: var(--text);
	margin: 80px 10px 40px;
}
.access__addr p{
  font-size:15px;
  line-height:2;
  letter-spacing:.05em;
  margin:0;
}
.access__addr .access__note{
  margin-top:6px;
}

/* マップ：レスポンシブ（角丸＋影） */
.map-wrap{
  width:min(960px, 100%);
  margin: 0 auto;
  overflow:hidden;
  background:#f5f5f5;
  aspect-ratio: 16 / 9;
}
.map-wrap iframe{
  width:100%; height:100%; border:0; display:block;
}
/* スマホでの調整 */
@media (max-width: 599px){
	.access__addr {
    margin: 40px 10px 20px;
	}
}

/* ===== Reservation ===== */
.reservation{ background:#efeedd; padding:72px 0 110px; }
.section-sub{ text-align:center; margin:-12px 0 28px; font-size:13px; letter-spacing:.05em; color:#7a7770; }

/* グリッド（PC 2列 / SP 1列） */
.res-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:40px;
  width:min(1040px, 100%);
  margin: 60px auto 0;
}
@media (max-width: 959px){
  .res-grid{ grid-template-columns: 1fr; gap:28px; }
}

/* 共通カード */
.res-card{
  background:#fff;
  border:2px solid var(--brand);
  padding:40px 44px;
  min-height:240px;
  box-shadow:0 10px 22px rgba(0,0,0,.05);
}

/* 左カード：中央寄せ */
.res-card--cta{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:20px;
}

/* ピルCTA */
.res-cta{
  display:inline-flex; align-items:center; justify-content:center;
  min-width: min(420px, 100%);
  height:64px; padding: 52px 28px;
  background:var(--brand); color:#fff; font-weight:600;
  box-shadow:0 8px 18px rgba(201,137,163,.28);
  letter-spacing:.05em; font-size:20px;
  transition:filter .2s ease, transform .02s ease-in-out;
}
.res-cta:hover{ filter:brightness(1.04); }
.res-cta:active{ transform:translateY(1px); }

.res-note{
  margin:0; font-size:15px; letter-spacing:.05em; color:#3c3a3a; opacity:.9;
}

/* 右カード：左テキスト + 右QR */
.res-line-copy {
	text-align: center;
}
.res-card--line{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:28px;
}
.res-line-title{
  margin: 0 0 6px; font-size:20px; letter-spacing:.05em; color:#3c3a3a;
}
.res-line-sub{
  margin:0; font-size:15px; letter-spacing:.05em; color:#3c3a3a; opacity:.9;
}

.res-qr img{
  width:160px; height:160px; object-fit:contain; display:block;
  border:1px solid #e7e3d9; border-radius:6px; background:#fff;
}

/* タブレット以下のQRサイズ調整 */
@media (max-width: 959px){
  .res-card--line{ grid-template-columns: 1fr; justify-items:center; text-align:center; }
  .res-qr img{ width:148px; height:148px; }
}
/* スマホ圧縮時もう少し小さく */
@media (max-width: 599px){
  .res-card{ padding:28px 22px; }
  .res-cta{ height:58px; font-size: 18px; }
  .res-qr img{ width:132px; height:132px; }
}

/**** wine-tasting ワイン試飲会 ****/
/* ===== ワイン試飲会専用 ===== */
.hero--wine .vcopy {
  position: absolute;
  writing-mode: vertical-rl;
  font-size: clamp(16px, 2.3vw, 28px);
  letter-spacing: .12em;
  color: #fff;
  text-shadow: 0 3px 14px rgba(0,0,0,.55);
  padding-inline: .2em;
  top: 34%;                     /* 上から中央 */
  transform: translateY(-50%);  /* 縦方向中央 */
	white-space: nowrap;
}

/* 左テキスト：画面の中央よりちょい左 */
.hero--wine .vcopy--left {
    left: 20%;
    transform: translate(-120%, -30%);
}

/* 右テキスト：画面の中央よりちょい右 */
.hero--wine .vcopy--right {
  left: 50%;
  transform: translate(20%, -50%);
  /* X方向を中央から右へ寄せ、Yは中央 */
}

@media (max-width: 959px){
  .hero--wine .vcopy {
    font-size: clamp(14px, 4.2vw, 20px);
  }
  .hero--wine .vcopy--left  { transform: translate(-110%, 0%); }
  .hero--wine .vcopy--right { transform: translate(44%, -40%); }
}

/* ===== wine page base section ===== */
.wine-page-font {
	font-family: "Noto Sans JP","ヒラギノ角ゴ Pro W3","游ゴシック",
               "Yu Gothic","游ゴシック体","YuGothic",
               "Hiragino Kaku Gothic Pro",sans-serif;
}
.wine-page{
  position: relative;
  overflow: hidden;
  background:#faf7f0;
  padding: 80px 0 120px;
}
.wp-hero {
	position: relative;
	z-index: 2;
}
/* 装飾 */
.wine-page .deco{
  position:absolute; z-index: 1; pointer-events:none; opacity:.9;
  width: var(--w, auto);
  top: var(--top, auto); right: var(--right, auto);
  bottom: var(--bottom, auto); left: var(--left, auto);
}
.deco-ellipse-right01 { --w: 620px; --top: -5%; --right: -10%; }
.deco-ellipse-left  { --w: 560px; --top: 26%; --left: -14%; }
.deco-ellipse-right { --w: 620px; --bottom: -10%; --right: -10%; }
.deco-grape         { --w: 190px; --top: 40px;  --right: 8%;  }
.deco-bottle        { --w: 110px; --top: 255px;  --right: 8%;  }
.deco-cork          { --w: 140px; --top: 570px; --right: 10%; }
.deco-wine          { --w: 70px; --top: 110px; --left: 10%;  }
.deco-barrel        { --w: 220px; --top: 320px; --left: 3%;  }
.deco-white-grapes  { --w: 120px; --top: 480px; --left: 13%;  }
/* 見出し・サブ */
.wine-section-title{
  font-size:32px; letter-spacing:.05em;
  text-align:center;
  font-weight:400;
  color: #54344e;
	margin-bottom: 10px;
}
.section-sub{
  text-align:center; margin: -13px 0 45px;
  font-size:13px; letter-spacing:.05em;
}
/* --- スマホ以下 --- */
@media (max-width: 599px) {
	.section-sub{
  text-align:center; margin: -13px 0 25px;
	}
}


/* --- intro --- */
.intro{
  width:min(720px, 100%);
  margin: 0 auto 56px;
  text-align:center; line-height:2; letter-spacing:.05em; font-size:15px;
}
.intro p{ margin:0 0 1.2em; }

/* --- profile block（左白パネル×右写真を少し重ね） --- */
.wp-profile{
  position:relative;
	z-index: 2;
  display:grid; grid-template-columns: 1fr 1.1fr;
  align-items: flex-start; gap: 0px;
	margin: 113px 0 120px;
}
.profile-panel{
  background: rgba(255,255,255,.85);
  padding: 35px; line-height:2; letter-spacing:.05em;
  position:relative; z-index:2;
	margin: 70px -70px 0 33px;
}
.profile-name{ margin:0 0 .6em; font-weight:600; font-size:15px; letter-spacing:.05em; }
.profile-text{ margin:0; }

.profile-photo{
  margin:0; position:relative; top: 22px; /* すこし上下をずらして重なり感 */
}
.profile-photo img{
  width:100%; height:auto; display:block;
}

/* --- voices --- */
.wp-voices{
	margin-top: 40px;
	position: relative;
	z-index: 2;
}
.voices-title{
  text-align:center; font-size:32px; letter-spacing:.05em;
	margin-bottom: 10px;
}
.voice-list{
  width:min(760px, 100%); margin:18px auto 0;
  display:grid; gap:30px;
}
.voice{
  display:grid; grid-template-columns: 110px 1fr; gap:14px; align-items:start;
}
.voice-icon img{ width:100%; height:auto; object-fit:contain; display:block; }
.voice-balloon{
  background:#fff; border-radius:20px;
  padding:14px 16px; line-height:1.5; font-size:15px; letter-spacing:.05em;
}
.voice-meta{ margin:0 0 4px; font-size:13px; opacity:.9; }

/* --- タブレット以下 --- */
@media (max-width: 959px){
  .deco-ellipse-right01{ --w: 520px; --right: -18%; }
  .deco-ellipse-left  { --w: 440px; --left: -20%; }
  .deco-ellipse-right { --w: 520px; --right: -18%; }
  .deco-barrel        { --w: 180px; --left: 0; }
  .deco-bottle        { --w: 140px; }
  .deco-grape         { --w: 160px; }
  .wp-profile{ grid-template-columns: 1fr; gap:20px; }
  .wp-profile .profile-photo {
    order: -1; /* 写真を先に表示 */
    justify-self: center; /* 写真を中央寄せ */
    margin-bottom: 24px;  /* テキストとの間隔 */
  }
  .wp-profile .profile-photo img {
    max-width: 100%;
    height: auto;
  }
	.profile-panel {
		margin: 0;
	}
}
/* --- スマホ以下 --- */
@media (max-width: 599px){
  .wine-page{ padding: 80px 0 90px; }
  .intro{ margin-bottom:40px; }
  .deco-ellipse-right01{ --w: 360px; --top: -5%; --right: -24%; }
  .deco-ellipse-left  { --w: 320px; --top: 20%; --left: -28%; }
  .deco-ellipse-right { --w: 360px; --bottom: -18%; --right: -24%; }
  .deco-barrel        { --w: 120px; --top: 12%; }
  .deco-bottle        { --w: 80px; --top: 12%; }
  .deco-grape         { --w: 130px; --top: 20px; }
	.deco-cork { --w: 100px; --top: 21%; }
	.deco-wine {
    --w: 60px;
    --top: 110px;
    --left: 6%;
}
	.deco-white-grapes {
    --w: 91px;
    --top: 16%;
    --left: 11%;
}
	.voice{ grid-template-columns: 1fr; gap: 0;}
  .voice-icon img{ width:56px; height:56px; }
	.wine-section-title {
		font-size: 28px;
	}
	.voices-title { font-size: 28px; }
	.voice-balloon{ border-radius:6px; }
}

/* ワイン会レポート section */
.reports {
	margin: 100px 0;
}
.reports .reports-section-title{
  font-size:32px; letter-spacing:.05em; text-align:center;
	margin-bottom: 10px;
}
.reports .section-sub{
  text-align:center;
  font-size:13px; letter-spacing:.05em;
}

/* Grid */
.report-grid{
  display:grid; gap:28px;
  grid-template-columns: repeat(4, minmax(0,1fr));
  width:min(1100px, 100%); margin: 22px auto 0;
}
.report-card{ list-style:none; }
.report-link{
  display:block; border-radius:10px; overflow:hidden;
  transition: transform .2s ease, box-shadow .2s ease;
  color: inherit; text-decoration: none;
}
.report-link:hover{ transform: translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.08); }

/* 画像：16:9固定 */
.report-media{ aspect-ratio: 16 / 9; background:#f3f3f3; }
.report-media img{ width:100%; height:100%; object-fit:cover; display:block; }

/* テキスト */
.report-meta{ padding:12px 2px 0; }
.report-title{ font-size:16px; font-weight:600; letter-spacing:.05em; margin:6px; }

/* レスポンシブ */
@media (max-width: 959px){
  .report-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); gap:22px; }
}
@media (max-width: 599px){
  .report-grid{ grid-template-columns: 1fr; gap:18px; }
  .report-title{ font-size:15px; }
	.reports .reports-section-title{
  font-size:28px;
}
}

/* ===== Single (report) ===== */
.single-article{
  max-width: 860px;
  margin: 160px auto 100px;
  padding: 0 20px;
}
.single-report .single-thumb img{
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
  margin-bottom: 24px;
}
.single-report .single-title{
  font-size: 28px;
  line-height: 1.3;
  text-align: center;
  margin: 0 0 20px;
  color: var(--text, #3c3a3a);
  letter-spacing: .05em;
}
.single-report .single-content{
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .05em;
  color: var(--text, #3c3a3a);
}
.single-report .single-content img{
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}
.single-report .single-content p{ margin: 0 0 1.2em; }

/* 表の見栄え（任意） */
.single-report .single-content table{
  width: 100%;
  border-collapse: collapse;
  margin: 1.2em 0;
}
.single-report .single-content th,
.single-report .single-content td{
  border: 1px solid #e7e3d9;
  padding: .7em .8em;
}
/* レスポンシブ */
@media (max-width: 599px){
	.single-article{
		margin: 100px auto 100px;
	}
	.single-report .single-title {
		font-size: 18px;
	}
}

/* ===== イベント情報セクション ===== */
.info{
  background:#efeedd;               /* ベージュ */
  padding:72px 0 96px;
}

/* 既存ルールに合わせた見出し */
.info .info-section-title{
  font-size:32px;
  letter-spacing:.05em;
  text-align:center;
	margin-bottom: 10px;
}

/* 告知画像（16:9・中央・角丸） */
.info__visual{
  display:block;
  margin:18px auto 32px;
  border-radius:6px;
  position:relative;
	background-color: #fff;
	padding: 15px 15px 0;
	max-width: 900px;
}
.info__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* LINEボタン（大・丸） */
.btn-line{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:min(750px, 80%);
  height:74px; padding:0 28px;
  background: #1bb20a;
  color:#fff; font-weight:700;
  font-size:clamp(16px, 2.6vw, 24px);
  letter-spacing:.05em;
  border-radius:999px;
  box-shadow:0 12px 28px rgba(6,199,85,.25);
  transition:filter .2s, transform .02s;
  text-decoration:none;
}
.btn-line:hover{ filter:brightness(1.06); }
.btn-line:active{ transform:translateY(1px); }

/* モバイル微調整 */
@media (max-width: 599px){
  .btn-line{ height:64px; font-size:18px; }
	.info .info-section-title{
		font-size:28px;
	}
}

/**** お問い合わせページ ****/
.contact-form-wrap {
	background: #f8f8f8;
	padding: 150px 20px 70px;
}
.contact-ttl-wrap {
	text-align: center;
}
.contact-form {
  max-width: 690px;
  margin: 0 auto;
  padding: 2rem 1rem;
  border-radius: 8px;
}

.form-group {
  margin-bottom: 1.5rem;
}

.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: bold;
}

.required {
  display: inline-block;
  background-color: #d9534f; /* 赤系 */
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  padding: 2px 6px;
  margin-left: 6px;
  border-radius: 12px; /* 角丸 */
  line-height: 1;
}

.form-help {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: #666;
}

.form-control {
  width: 100%;
  padding: 0.8rem;
  border: 1px solid #ccc;
  border-radius: 4px;
}
.contact-form-btn {
	text-align: center;
}
.btn-confirm {
	background: #8d366a;
  color: white;
  font-weight: bold;
  padding: 0.8rem 2rem;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
}

.btn-submit,
.btn-back {
  background: #8d366a;
  color: white;
  font-weight: bold;
  padding: 0.8rem 2rem;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
	margin: 0 10px;
}

.btn-submit:hover,
.btn-back:hover {
  background: #24b0c4;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.kannryo {
	text-align: center;
    padding: 40px;
    margin: 50px auto;
    max-width: 700px;
}
.kannryo h2 {
	font-size: 32px;
    font-weight: bold;
    margin-bottom: 10px;
}