.pp-wrap-front{ display:block; }

.pp-plan{
  background: var(--pp-bg);
  color: var(--pp-text);
  border:1px solid rgba(15,23,42,.10);
  border-radius: var(--pp-radius);
  overflow:hidden;
}

.pp-hero img{ width:100%; height:auto; display:block; }

.pp-body{
  padding: var(--pp-space);
  font-family: var(--pp-font-body);
  line-height: 1.75;
}

.pp-title{
  margin:0;
  font-family: var(--pp-font-heading);
  font-size: 1.25rem;
  letter-spacing: .02em;
  text-align: center;
}

/* 説明文（プラン名の下） */
.pp-lead{ margin-top: 10px; text-align:center; }
.pp-lead-box{
  display:inline-block;
  max-width: 52rem;
  text-align:center;
  padding: 12px 14px;
  background: rgba(15,23,42,.04);
  border-radius: calc(var(--pp-radius) - 6px);
  font-size: .98rem;
}
.pp-lead-box p{ margin:0; }

/* 金額行 */
.pp-price{
  margin-top: 14px;
  width:100%;
  display:flex;
  justify-content:center;
  align-items:baseline;
  gap: 2px;
  color: var(--pp-accent);
  font-family: var(--pp-font-heading);
}
.pp-price-amount{ font-size: 2.05rem; font-weight: 700; letter-spacing: .01em; }
.pp-price-unit{ font-size: .98rem; }
.pp-price-tax{ font-size: .85rem; opacity:.9; }

/* 金額の下（例：土日祝日 +¥5,500） */
.pp-price-note{
  margin-top: 12px;
  text-align:center;
  font-size: .98rem;
  opacity: .95;
}

.pp-section{ margin-top: 18px; }
.pp-section-title{
  margin:0 0 10px;
  font-family: var(--pp-font-heading);
  font-size: 1.1rem;
  color: var(--pp-accent);
}

/* リスト：先頭の「。」や黒丸が出ないように完全にOFF */
.pp-list{
  list-style: none !important;
  padding: 0;
  margin: 0;
  display:flex;
  flex-direction:column;
  gap: 16px;
}

.pp-list li{
  list-style: none !important;
  position: relative;
  padding-left: 60px;
  padding-top: 4px;
  padding-bottom: 4px;
  margin: 0;
  min-height: 40px;
}

.pp-list li::marker{ content: '' !important; }

/* チェックアイコン（そのまま） */
.pp-list li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:50%;
  transform: translateY(-50%);
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  background: rgba(90,107,117,.12);
  color: var(--pp-accent);
  font-size: 1.05rem;
}

.pp-notice{
  margin-top: 18px;
  padding: var(--pp-space2);
  background: rgba(15,23,42,.04);
  border-radius: calc(var(--pp-radius) - 6px);
  font-size: .95rem;
}
.pp-notice p{ margin:0; }

.pp-gallery{ margin-top: 16px; gap:10px; }
.pp-gallery-row{ display:flex; overflow:auto; padding-bottom: 6px; }
.pp-gallery-row .pp-gallery-item{ flex:0 0 auto; }
.pp-gallery-grid{ display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 640px){
  .pp-gallery-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pp-price-amount{ font-size: 2.15rem; }
}

.pp-gallery-item{
  display:block;
  border-radius: 12px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
}
.pp-gallery-item img{
  width:100%; height:100%;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  display:block;
}

.pp-error{
  padding:12px 14px;
  border:1px solid rgba(15,23,42,.12);
  border-radius: 12px;
  background: rgba(15,23,42,.03);
}

/* Lightbox */
.pp-lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.72);
  display:flex; align-items:center; justify-content:center;
  z-index: 99999;
}
.pp-lightbox-inner{
  position:relative;
  max-width: min(92vw, 980px);
  max-height: 92vh;
}
.pp-lightbox-inner img{
  width:auto; height:auto;
  max-width: 92vw; max-height: 92vh;
  border-radius: 14px;
}
.pp-lightbox-close{
  position:absolute; top:-10px; right:-10px;
  width:36px; height:36px;
  border:none; border-radius: 999px;
  background: rgba(255,255,255,.92);
  cursor:pointer;
  font-size: 20px; line-height: 36px;
}
/* ======================================
   Latest tweaks (2026-02-14)
   - Section cards (A):薄グレー＋枠
   - Mobile: section title smaller
   - Section titles centered
====================================== */
.pp-wrap-front .pp-section{
  margin-top: 18px;
  padding: 20px 18px 18px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(15,23,42,.03);
  border-radius: 14px;
}

.pp-wrap-front .pp-section-title{
  text-align: center;
  margin: 0 0 12px;
  line-height: 1.35;
}

.pp-wrap-front .pp-list{
  gap: 10px;
}

@media (max-width: 640px){
  .pp-wrap-front .pp-section{
    padding: 18px 16px 14px;
    border-radius: 12px;
  }
  .pp-wrap-front .pp-section-title{
    font-size: 0.98rem;
    margin-bottom: 10px;
  }
}


/* =========================
   List item custom icons
========================= */
.pp-list li.has-icon:before{ content:''; display:none; }
.pp-list li.has-icon{ padding-left: 60px; }
.pp-custom-icon{
  position:absolute;
  left:0;
  top:50%;
  transform: translateY(-50%);
  width:38px;
  height:38px;
  object-fit:contain;
}
