@charset "utf-8";

/* =====================
  Base
===================== */
:root{
  --bg: #ffffff;
  --paper: #FCFAF6;      /* うすい生成り */
  --paper-2: #f4f1e4;    /* 影/帯用 */
  --ink: #525252;
  --muted: #6a6a6a;

  --green: #52B445;
  --line: #ddd;

  --radius: 12px;
  --radius-L: 24px;

  --max: 1240px;
  --pad: clamp(20px, 6vw, 36px);

  --shadow: 0 0 6px 0 rgba(0,0,0,.08);

  --read: 1200px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
  line-height: 1.75;
  letter-spacing: .02em;
}
img{ max-width: 100%; height: auto; display: block; }
a:-webkit-any-link,
a:-webkit-any-link:active {
  color: var(--green);
  cursor: pointer;
  transition: all 0.5s;
}
a:hover {
  opacity: .7;
}
button{ font: inherit; }
p{ margin: 0; }
ul,ol{ margin: 0; padding: 0; list-style: none; }
table{ border-collapse: collapse; width: 100%; }

.p-skip{
  position: absolute;
  left: -9999px;
  top: 0;
}
.p-skip:focus{
  left: 12px;
  top: 12px;
  z-index: 9999;
  background: #fff;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
}

/* --- swiper設定 --- */
.swiper-01 {
  z-index: 1;
}
.swiper-button-next,
.swiper-button-prev,
.swiper-button-next svg,
.swiper-button-prev svg {
  color: var(--ink);
  fill: var(--ink);
  outline: none;
  transition: all 0.5s;
}
.swiper-button-next:hover,
.swiper-button-prev:hover {
  opacity: .5;
}

/* =====================
  Layout
===================== */
.l-page {
  overflow-x: clip; /* hiddenの代わりにclipを使う */
  overflow-y: visible;
}
.l-container{
  width: min(var(--max), 100%);
  margin-inline: auto;
  padding-inline: var(--pad);
}
.l-container--wide{
  width: 100%;
}

.l-main{ overflow-x: clip; }

.l-section{
  padding: clamp(48px, 6vw, 100px) 0;
}
.l-section--soft{
  background: var(--paper);
}

.l-header{
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,255,255,.8);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
}

/* =====================
  Header Parts
===================== */
.p-header{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 12px 24px;
  width: 100%;
}

.p-header__brand {
  display: grid;
  grid-template-columns: 192px 1fr;
  gap: 20px;
  align-items: center;
}
.p-brand h1{
  margin: 0;
}
.p-brand__logo{
  height: auto;
  width: 192px;
  object-fit: contain;
}
.p-brand__text{
  font-size: 13px;
  line-height: 1.5;
}
.p-brand__text--sp {
  display: none;
  background: var(--green);
  color: var(--bg);
  font-size: 14px;
  text-align: center;
  padding: 2px 12px;
}

.p-nav{
  display: flex;
  gap: 18px;
  justify-content: end;
  flex-wrap: wrap;
  align-items: center;
}
.p-nav__link{
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  padding: 8px 6px;
  border-radius: 8px;
  transition: opacity .2s ease, background .2s ease;
}

.p-nav__link:-webkit-any-link {
  color: var(--ink);
  text-decoration: none;
}
.p-nav__link:hover{
  background: rgba(47,122,91,.08);
  cursor: pointer;
}
.p-nav__btn:-webkit-any-link {
  background: var(--green);
  display: flex;
  gap: 4px;
  align-items: center;
  padding: 4px 16px;
  color: var(--bg);
}

.p-header__cta{
  display: flex;
  align-items: center;
  gap: 10px;
}

.p-tel{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 4px 0;
}
.p-tel__label {
  border: 1px solid var(--ink);
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .05em;
  padding: 2px 8px;
}
.p-tel__label--sub{
  font-size: 12px;
  color: var(--muted);
  line-height: 1.1;
}
.p-tel__num{
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.1;
}
.p-tel__num img {
  height: auto;
  width: 28px;
}
.p-tel__num a:-webkit-any-link {
  color: var(--ink);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-nav__tel {
  display: grid;
  gap: 6px;
  justify-content: center;
}
.p-telSp__num{
  font-size: 28px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.1;
}
.p-telSp__num img {
  height: auto;
  width: 28px;
}
.p-telSp__num:-webkit-any-link {
  color: var(--ink);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
}
.p-telSp__label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .05em;
  padding: 2px 8px;
}
.p-telSp__label--sub{
  display: block;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.1;
}
.p-nav__tel--bottom .p-telSp__num{
  font-size: 22px;
}

.p-menu-btn{
  display: none;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
}
.p-menu-btn__bar{
  display: block;
  width: 18px;
  height: 2px;
  margin: 4px auto;
  background: var(--ink);
  border-radius: 999px;
}

.p-hamburger,
.l-header__nav{
  display: none;
}

/* =====================
  Buttons
===================== */
.p-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.5s;
}
.p-btn:hover{
  opacity: .7;
}
.p-btn--primary{
  background: var(--green);
  border-color: rgba(0,0,0,0);
  color: #fff;
}
.p-btn--ghost{
  background: rgba(255,255,255,.8);
}
.p-btn--line{
  background: #22c55e;
  border-color: rgba(0,0,0,0);
  color: #fff;
}

/* =====================
  Hero
===================== */
.l-hero{
  padding: 0;
}
.p-hero{
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: clamp(18px, 4vw, 36px);
  align-items: center;
  justify-content: center;
  width: 90%;
}
.p-hero__copy {
  position: relative;
}
.p-hero__lead{
  color: var(--muted);
  font-size: 22px;
  font-family: ui-serif, "Times New Roman", Times, "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
  letter-spacing: 0.18em;
  line-height: 2;
  margin: 0 auto;
  writing-mode: vertical-rl;
  position: relative;
  z-index: 2;
}
.p-hero__leadBg {
  position: absolute;
  bottom: -160px;
  z-index: 1;
}

.p-hero__media{
  margin: 0;
  position: relative;
  min-width: 0;
}
.p-hero__img{
  width: 100%;
  height: clamp(480px, 38vw, 680px);
  object-fit: cover;
}
.p-hero__badge{
  position: absolute;
  right: -40px;
  bottom: 20px;
  display:flex;
  flex-direction:column;
  gap: 8px;
  align-items:flex-end;
}
.p-hero__badge-top,
.p-hero__badge-middle,
.p-hero__badge-bottom{
  background: var(--bg);
  font-size: 28px;
  font-weight: bold;
  letter-spacing: 0.12em;
  line-height: 1;
  padding: 6px 8px;
  z-index: 10;
}
.p-hero__badge-bottom{
  color: var(--green);
}

/* =====================
  Section head
===================== */
.p-section-head{
  text-align: center;
  margin-bottom: clamp(40px, 12vw, 80px);
  position: relative;
  z-index: 1;
}
.p-section-head::after{
  border: 2px solid var(--green);
  display: block;
  content: "";
  margin: 0 auto;
  text-align: center;
  width: 45px;
}
.p-section-head__en{
  font-size: 18px;
  letter-spacing: .05em;
  color: var(--green);
  font-weight: 700;
}
.p-section-head__jp{
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 600;
  letter-spacing: .1em;
  margin: 20px 0 40px;
}
.p-section__subTitle {
  font-size: clamp(20px, 2.6vw, 24px);
  font-weight: 600;
  letter-spacing: .1em;
  text-align: center;
  margin: 80px auto 24px;
}

/* =====================
  about cards
===================== */
.p-about-cards{
  display: grid; /* ←必須 */
  gap: clamp(40px, 6vw, 60px);
}
.p-about-card{}
.p-about-card__inner {
  width: min(var(--read), 100%);
  margin-inline: auto;
  padding-inline: var(--pad);

  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: clamp(20px, 4vw, 80px);
  align-items: center;
}
.p-about-card--reverse .p-about-card__inner{
  grid-template-columns: minmax(0, 1fr) 300px;
}
.p-about-card--reverse .p-about-card__img{
  grid-column: 2;
  grid-row: 1;
}
.p-about-card--reverse .p-about-card__body{
  grid-column: 1;
  grid-row: 1;
}

.p-about-card__img{
  width: 100%;
  max-width: 300px;
  height: auto;
  object-fit: contain;
}
.p-about-card__body {
  position: relative;
  padding: 48px;
  border-radius: 999px;
}
.p-about-card__body::before{
  content:"";
  position: absolute;
  z-index: -1;

  top: -18px;
  bottom: -18px;

  left: -40px; /* 本文よりちょい左に広げる */
  right: calc(50% - 50vw); /* ←ここで画面右端まで伸びる */
  border-radius: 999px;

  background: var(--paper);
}
.p-about-card--reverse .p-about-card__body::before{
  left: calc(50% - 50vw);  /* ←画面左端まで伸ばす */
  right: -60px;            /* 右側は少しだけ広げる */
}

.p-about-card__title{
  font-size: 24px;
  font-weight: 600;
  color: var(--green);
  margin: 0 0 24px;
}
.p-about-card__text{
  color: var(--ink);
  font-size: 16px;
}

/* =====================
  Meal block
===================== */
.p-meal{
  display: grid;
  grid-template-columns: 520px 1fr;
  gap: clamp(40px, 8vw, 80px);
  align-items: stretch;
}
.p-meal__media{
  margin: 0;
  overflow: hidden;
}
.p-meal__img{
  width: 520px;
  height: auto;
  object-fit: cover;
}
.p-meal__panel{
  padding: 0;
}
.p-meal__label{
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  background: var(--green);
  padding: 8px 16px;
  margin-bottom: 24px;
}
.p-meal__title{
  color: var(--green);
  margin: 0 0 24px;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
}
.p-meal__text span{
  display: block;
  margin-top: 20px;
}

/* thumb cards */
.l-thumb-cards {
  margin-top: 100px;
}
.l-thumb-cards__title {
  font-size: 24px;
  font-weight: 600;
  text-align: center;
}
.p-thumb-cards{
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(12px, 2.2vw, 20px);
  position: relative;
}
.p-thumb-card{
  background: var(--paper);
  border-radius: var(--radius);
  overflow: hidden;
  padding: 20px 20px 24px;
}
.p-thumb-card__img{
  width: max(280px, 100%);
  height: auto;
  object-fit: cover;
  background: #ddd;
}
.p-thumb-card__title{
  margin: 24px 16px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}
.p-thumb-card__text{
  color: var(--muted);
  margin: 0;
  font-size: 16px;
}

/* =====================
  Schedule
===================== */
.p-section-note{
  text-align: center;
  color: var(--muted);
  margin: 0 auto 40px;
  max-width: 82ch;
}

.p-schedule{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 2.6vw, 40px);
  width: 80%;
  margin: 0 auto;
}
.p-schedule__col{
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 40px;
}
.p-schedule__title{
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: normal;
  color: var(--green);
}
.p-timeline{
  display: grid;
  border-top: 1px solid var(--line);
}
.p-timeline__item{
  border-bottom: 1px dotted var(--line);
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 24px;
  padding: 8px 0;
}
.p-timeline__time{
  font-weight: 600;
}
.p-timeline__text{
  color: var(--ink);
}

/* =====================
  Gallery / Facility
===================== */
.p-gallery{
  position: relative;
}
.p-gallery__main{
  margin: 0 auto;
  max-width: 980px;
  height: auto;
  position: relative;
  overflow: hidden;
}

.p-gallery__nav{
  max-width: 980px;
  margin: 20px auto 0;
}
.p-gallery__thumb img{
  cursor: pointer;
  transition: all 0.5s;
}
.p-gallery__thumb img:hover{
  opacity: .7;
}

.p-facility{
  display: flex;
  justify-content: center;
  gap: 20px;
  align-items: center;
  margin-top: 20px;
}
.p-facility__badges{
  background: var(--green);
  border-radius: var(--radius);
  color: var(--bg);
  padding: 12px 16px;
  text-align: center;
  line-height: 1.5;
}
.p-badge{
  font-weight: 700;
  font-size: 24px;
  display: block;
}
.p-badge--fill{
  font-size: 14px;
  display: block;
}

.p-dl{
  display: grid;
  gap: 8px;
}
.p-dl__row{
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  align-items: center;
}
.p-dl__row:last-child{
  border:none;
}
.p-dl__dt{
  font-weight: 700;
}
.p-dl__dd{
  margin: 0;
}

/* =====================
  Price table
===================== */
.p-table{
  display: grid;
  gap: 10px;
}
.p-table-sp {
  display: none;
}
.p-table__scroll{
  overflow-x: auto;
  border-top: 1px solid var(--line);
  background: #fff;
  outline: none;
}
.p-price-table{
  min-width: 720px;
}
.p-price-table__th,
.p-price-table__td{
  padding: 16px 24px;
  border-bottom: 1px solid var(--line);
  font-size: 16px;
}
.p-price-table__th {
  text-align: left;
  font-weight: 600;
}
.p-price-table__th--center {
  text-align: center;
}
.p-price-table__th span{
  font-weight: 400;
  font-size: 14px;
}
.p-price-table__td{
  text-align: center;
}
.p-price-table__head .p-price-table__th{
  background: #FAFFD3;
}
.p-price-table__th--row{
  text-align: left;
  background: #FAFFD3;
}
.p-price-table__td--strong{
  background: #FAFFD3;
}
.p-table__note{
  color: var(--muted);
  font-size: 13px;
  margin: 20px 0 0;
}

/* =====================
  Access
===================== */
.p-access{
}
.p-access__map{
  overflow: hidden;
}
.p-access__iframe{
  width: 100%;
  height: 480px;
  border: 0;
  display: block;
}
.p-access__info{
  padding: 18px 0;
  font-style: normal;
}
.p-access__name{
  font-weight: 700;
  margin-bottom: 6px;
}
.p-access__addr{
  color: var(--muted);
  margin-bottom: 8px;
  font-size: 14px;
}

/* =====================
  Contact / Footer
===================== */
.p-contact__form {
  width: 800px;
  margin: 0 auto;
}
.p-contact{
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: 460px;
  margin: 40px auto 0;
}
.p-contact__title {
  font-size: clamp(18px, 2vw, 20px);
  font-weight: 600;
  text-align: center;
}
.p-contact__btn{
  background: var(--bg);
  box-shadow: var(--shadow);
  display: block;
  padding: 24px;
  border-radius: 18px;
  text-align: center;
  line-height: 1.75;
}
.p-contact__link {
  display: block;
  width: 100%;
}
.p-contact__link--top {
  border-bottom: 1px dotted var(--line);
  margin: 0 0 20px;
  padding: 0 0 20px;
}
.p-contact__link:-webkit-any-link {
  color: var(--ink);
  text-decoration: none;
  cursor: pointer;
}
.p-contactLink__label {
  font-size: clamp(14px, 2vw, 16px);
  font-weight: 600;
}
.p-contactLink__phone{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 30px;
  font-weight: 700;
}
.p-contactLink__phone img {
  height: auto;
  width: 28px;
}
.p-contactLink__sub{
  display: block;
  font-size: 14px;
  font-weight: normal;
  letter-spacing: .06em;
}
.p-contact__link--bottom .p-contactLink__phone {
  font-size: 22px;
}
.p-contact__link--bottom .p-contactLink__phone img {
  height: auto;
  width: 24px;
}


.l-footer{
  padding: 24px;
  border-top: 1px solid var(--line);
  background: #fff;
}
.p-footer{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.p-footer__brand{
  display: flex;
  align-items: center;
  gap: 20px;
}
.p-footer__logo{
  width: 160px;
  height: auto;
  object-fit: contain;
}
.p-footer__text{
  margin: 0;
  font-size: 14px;
}
.p-footer__copy{
  color: var(--muted);
}

/* =====================
  Responsive
===================== */
@media (max-width: 1440px){
  .p-hero {
    width: 100%;
    grid-template-columns: 420px 1fr;
  }
  .p-hero__badge {
    right: -20px;
  }
}

@media (max-width: 1280px){
  .p-hero {
    grid-template-columns: 380px 1fr;
  }
  .p-about-card__img {
    max-width: 280px;
  }
  .p-hero__lead {
    font-size: 20px;
  }
}

@media (max-width: 1080px){
  .p-brand__text {
    display: none;
  }
  .p-brand__text--sp {
    display: block;
  }
  .p-hero {
    grid-template-columns: 240px 1fr;
  }
  .p-hero__lead {
    font-size: 18px;
  }
  .p-about-card__img {
    max-width: 240px;
  }
  .p-about-card__title {
    font-size: 20px;
    margin: 0 0 20px;
  }
  .p-about-card__text {
    font-size: 14px;
  }
  .p-schedule {
    width: 100%;
  }
}

@media (max-width: 920px){
  .l-page {
    padding-top: 126px;
  }
  .l-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
  }
  .p-header{
    grid-template-columns: 1fr 40px;
  }
  .p-header__brand {
    grid-template-columns: 162px 1fr;
  }
  .p-brand__logo {
    width: 164px;
  }
  .p-header__nav{
    display: none;
  }
  .p-menu-btn{
    display: inline-grid;
    place-items: center;
  }

  .p-hero{
    padding: 0;
    grid-template-columns: 1fr;
  }
  .p-hero__media{
    min-height: unset;
  }
  .p-hero__badge {
    align-items: flex-end;
    right: 20px;
    gap: 4px;
  }
  .p-hero__badge-top,
  .p-hero__badge-middle,
  .p-hero__badge-bottom {
    font-size: 24px;
    letter-spacing: 0.08em;
  }
  .p-hero__copy {
    order: 2;
    margin: 40px 0;
  }
  .p-hero__media {
    order: 1;
  }
  .p-hero__lead {
    font-size: 20px;
    text-align: center;
    writing-mode: horizontal-tb;
  }

  .p-about-cards{
    grid-template-columns: 1fr;
  }
  .p-about-card__inner,
  .p-about-card--reverse .p-about-card__inner {
    grid-template-columns: 1fr;
  }
  .p-about-card--reverse .p-about-card__img,
  .p-about-card--reverse .p-about-card__body {
    grid-column: auto;
    grid-row: auto;
  }
  .p-about-card__body {
    padding: 24px;
    border-radius: var(--radius-L);
    background: var(--paper);
  }
  .p-about-card__body::before {
    display: none;
  }
  .p-about-card__img {
    max-width: 320px;
    margin: 0 auto;
  }
  .p-about-card__title {
    font-size: 22px;
    line-height: 1.5;
    margin: 0 0 20px;
  }
  .p-about-card__text {
    font-size: 16px;
  }

  .p-meal{
    grid-template-columns: 1fr;
  }
  .p-thumb-cards{
    grid-template-columns: 1fr;
  }
  .p-meal__panel {
    text-align: center;
  }
  .p-meal__img {
    margin: 0 auto;
  }
  .p-meal__title {
    text-align: left;
  }
  .p-meal__text {
    text-align: left;
  }

  .p-facility {
    flex-wrap: wrap;
  }

  .p-access{
    grid-template-columns: 1fr;
  }

  .p-contact__form {
    width: 100%;
  }

/* ハンバーガーボタンのスタイル */
  .p-hamburger {
    display: block;
    position: relative;
    z-index: 100;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
  }

  .p-hamburger__line {
    display: block;
    width: 30px;
    height: 2px;
    background: var(--green); /* サイトカラーに合わせる */
    position: absolute;
    left: 5px;
    transition: 0.3s;
  }

  /* 3本線の配置 */
  .p-hamburger__line::before,
  .p-hamburger__line::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: inherit;
    position: absolute;
    transition: 0.3s;
  }
  .p-hamburger__line { top: 19px; }
  .p-hamburger__line::before { top: -8px; }
  .p-hamburger__line::after { top: 8px; }

  /* ボタンがアクティブな時の形 (×印) */
  .p-hamburger[aria-expanded="true"] .p-hamburger__line {
    background: transparent;
  }
  .p-hamburger[aria-expanded="true"] .p-hamburger__line::before {
    background: var(--green);
    transform: rotate(45deg); top: 0;
  }
  .p-hamburger[aria-expanded="true"] .p-hamburger__line::after {
    background: var(--green);
    transform: rotate(-45deg); top: 0;
  }

  /* ナビゲーションを画面いっぱいに広げる */
  .l-header__nav {
    display: block;
    position: fixed;
    top: 0;
    right: -100%; /* 最初は画面外へ */
    width: 100%;
    height: 100vh;
    background: rgba(255, 255, 255, 0.95);
    transition: 0.4s;
    z-index: 90;
    padding-top: 80px; /* ロゴと被らないように調整 */
  }

  /* メニューが開いた状態 */
  .l-header__nav.is-open {
    right: 0;
  }
  body.menu-open {
    overflow: hidden;
    height: 100vh; /* 画面の高さに固定 */
  }

  .l-header__nav-list {
    flex-direction: column;
    align-items: center;
    gap: 30px;
    text-align: center;
    width: 80%;
    margin: 0 auto;
  }
  .l-header__nav-list .p-nav__link{
    display: block;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.12em;
    padding: 20px;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
  }
  .p-nav__tel {
    margin: 24px 0;
    text-align: center;
  }
  .p-nav__tel .p-tel__num a{
    justify-content: center;
  }
}

@media (max-width: 768px){
  .l-page {
    padding-top: 126px;
  }
  .p-brand__text {
    font-size: 12px;
  }
  .p-section-head__jp {
    margin: 8px 0 24px;
  }
  .p-section-note {
    font-size: 14px;
  }

  .p-hero__badge-top,
  .p-hero__badge-middle,
  .p-hero__badge-bottom {
    font-size: 20px;
  }
  .p-hero__lead {
    font-size: 18px;
    line-height: 1.75;
  }
  .p-about-card__img {
    max-width: 280px;
  }
  .p-about-card__title {
    font-size: 20px;
  }
  .p-about-card__text {
    font-size: 14px;
  }

  .p-schedule{
    grid-template-columns: 1fr;
  }

  .p-contact{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px){
  .l-page {
    padding-top: 106px;
  }
  .p-header {
    padding: 12px 16px;
  }
  .p-brand__logo {
    width: 120px;
  }
  .p-brand__text {
    display: none;
  }
  .p-brand__text--sp {
    font-size: 13px;
  }

  .p-hero__leadBg {
    bottom: -240px;
  }
  .p-about-card__img {
    max-width: 240px;
  }
  .p-meal__title {
    font-size: 20px;
  }
  .p-meal__text {
    font-size: 14px;
  }
  .l-thumb-cards__title {
    font-size: 20px;
  }
  .p-thumb-card__title{
    font-size: 18px;
    margin: 20px;
  }
  .p-thumb-card__text {
    font-size: 14px;
  }

  .p-schedule {
    width: 100%;
  }
  .p-schedule__col {
    padding: 32px;
  }
  .p-schedule__title {
    margin: 0 0 20px;
    font-size: 22px;
  }
  .p-timeline__item {
    padding: 4px 0;
  }

  .p-gallery__nav{
    display: none;
  }

  /* hidden属性が付いている時は強制非表示 */
  [hidden] {
    display: none !important;
  }
  .p-price-sp__title {
    background: #FAFFD3;
    padding: 16px;
    font-weight: 600;
    border-bottom: 1px solid var(--line);
    cursor: pointer;
    position: relative;
    padding-right: 40px;
    outline: none;
  }
  .p-price-sp__title::after {
    content: '+';
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
  }
  .p-price-sp__title[aria-expanded="true"]::after {
    content: '−';
  }
  .p-table__scroll {
    display: none;
  }
  .p-table-sp { display: block; }

  /* --- アコーディオンのスライド設定 --- */
  .p-price-sp__tableConainer {
    display: grid !important;   /* hidden属性による display:none を無効化 */
    grid-template-rows: 0fr;    /* 最初は高さを0にする */
    transition: grid-template-rows 0.3s ease-in-out; /* スライドのアニメーション */
    overflow: hidden;           /* はみ出た中身を隠す */
    background: #fff;
    visibility: hidden;         /* 閉じている時は読み上げや操作をさせない */
  }
  /* JavaScriptによって [hidden] 属性が外れたとき、
    または aria-expanded="true" になったときに展開する
  */
  .p-price-sp__title[aria-expanded="true"] + .p-price-sp__tableConainer,
  .p-price-sp__tableConainer:not([hidden]) {
    grid-template-rows: 1fr;    /* 中身の高さ分まで広げる */
    visibility: visible;
  }
  /* 中身が潰れないようにするためのインナー設定 */
  .p-price-sp__tableConainer > * {
    min-height: 0;
  }
  /* 任意：開閉時に少しパディングが欲しい場合 */
  .p-price-sp__tableConainer > div {
    padding: 8px 0; 
  }

  .p-price-table__th,
  .p-price-table__td {
    padding: 16px;
  }
  .p-price-table__th {
    line-height: 1.2;
  }
  .p-price-table__th--row,
  .p-price-table__td--strong{
    background: none;
  }
  .p-badge {
    font-size: 20px;
  }
  .p-badge--fill {
    font-size: 13px;
  }
  .p-dl {
    margin: 0;
  }
  .p-dl__row {
    grid-template-columns: 64px 1fr;
  }
  .p-dl__dd {
    font-size: 14px;
    line-height: 1.5;
  }

  .p-contact__btn {
    font-size: 18px;
    line-height: 1.5;
    padding: 28px 16px;
  }
  .p-contact__btn-bottom {
    margin: 12px 0 0;
  }

  .l-footer {
    padding: 40px 24px 20px;
  }
  .p-footer__brand {
    flex-wrap: wrap;
    text-align: center;
    justify-content: center;
  }
  .p-footer__text {
    margin: 0 0 20px;
  }
  .p-footer__copy {
    font-size: 12px;
    margin: 0 auto;
    text-align: center;
  }
}

@media (max-width: 500px){
  .l-page {
    padding-top: 102px;
  }
  .p-brand__text--sp {
    font-size: 11px;
  }
  .p-tel{
    display: none; /* SPはスクショに寄せて簡略化 */
  }
  .p-hero__actions{
    position: static;
    padding: 12px;
    background: rgba(255,255,255,.72);
    backdrop-filter: blur(8px);
  }
  .p-hero__copy {
    margin: 20px 0;
  }
  .p-hero__lead {
    font-size: 16px;
  }
  .p-contact {
    width: 100%;
  }
}
