/*
Theme Name: 飲食店売上アップ研究所 LP
Theme URI: https://inshokuten-uriage.com/
Author: 飲食店売上アップ研究所
Description: 飲食店向け無料集客診断を主導線にしたスマホ優先のWordPressテーマです。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: inshokuten-lp-theme
*/

:root {
  --lp-green: #0f6b4f;
  --lp-green-dark: #084533;
  --lp-mint: #e9f6f0;
  --lp-ink: #1d2b25;
  --lp-muted: #64726c;
  --lp-line: #dfe8e3;
  --lp-bg: #ffffff;
}

body {
  margin: 0;
  color: var(--lp-ink);
  background: var(--lp-bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.75;
}

/* Site foundation: footer trust links and plain page layout */
.site-footer__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 18px;
  max-width: 1080px;
  margin: 0 auto 14px;
  line-height: 1.8;
}

.site-footer__links a {
  display: inline-block;
  color: #42524a;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-content {
  max-width: 1080px;
  margin: 0 auto;
  padding: 56px 18px 80px;
}

.page-content__inner {
  background: #fff;
  border: 1px solid var(--lp-line);
  border-radius: 18px;
  box-shadow: 0 16px 38px rgba(13, 43, 37, .06);
  padding: clamp(26px, 4vw, 46px);
}

.page-content__body > *:first-child {
  margin-top: 0;
}

.page-content__body h1 {
  margin: 0 0 26px;
  color: var(--lp-ink);
  font-size: clamp(30px, 5vw, 44px);
  line-height: 1.25;
  letter-spacing: -.03em;
}

.page-content__body h2 {
  margin: 38px 0 16px;
  padding-left: 14px;
  border-left: 5px solid var(--lp-green);
  color: var(--lp-ink);
  font-size: clamp(22px, 4vw, 30px);
  line-height: 1.35;
}

.page-content__body h3 {
  margin: 30px 0 12px;
  color: var(--lp-green-dark);
  font-size: 20px;
}

.page-content__body p,
.page-content__body li,
.page-content__body td,
.page-content__body th {
  color: var(--lp-ink);
  font-size: 16px;
  line-height: 1.9;
}

.page-content__body p {
  margin: 0 0 18px;
}

.page-content__body ul,
.page-content__body ol {
  margin: 12px 0 22px;
  padding-left: 1.5em;
}

.page-content__body a {
  color: var(--lp-green-dark);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-content__body table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  overflow: hidden;
  border: 1px solid var(--lp-line);
  border-radius: 12px;
}

.page-content__body th,
.page-content__body td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--lp-line);
  vertical-align: top;
}

.page-content__body th {
  width: 190px;
  background: var(--lp-mint);
  color: var(--lp-green-dark);
  text-align: left;
}

.page-content__body tr:last-child th,
.page-content__body tr:last-child td {
  border-bottom: 0;
}

/* Unified related column/article cards */
.related-columns,
.related-posts,
.related-articles,
.related-column-section,
.iur-related-columns,
.iur-related-posts,
.rdr22-related-columns,
.rdr22-related-posts {
  max-width: 1120px;
  margin: 56px auto 0;
  padding: 0 18px;
}

.related-columns h2,
.related-posts h2,
.related-articles h2,
.related-column-section h2,
.iur-related-columns h2,
.iur-related-posts h2,
.rdr22-related-columns h2,
.rdr22-related-posts h2 {
  margin: 0 0 22px;
  color: var(--lp-ink);
  font-size: clamp(24px, 4vw, 34px);
  line-height: 1.35;
  letter-spacing: -.02em;
}

.related-columns__grid,
.related-posts__grid,
.related-articles__grid,
.related-column-list,
.related-post-list,
.iur-related-grid,
.rdr22-related-grid,
.archive-post-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

.related-columns article,
.related-posts article,
.related-articles article,
.related-column-card,
.related-post-card,
.iur-related-card,
.rdr22-related-card,
.archive-post-card,
.aio-support-related-link {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px !important;
  border: 1px solid var(--lp-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 12px 28px rgba(13, 43, 37, .07) !important;
  color: var(--lp-ink) !important;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.related-columns article:hover,
.related-posts article:hover,
.related-articles article:hover,
.related-column-card:hover,
.related-post-card:hover,
.iur-related-card:hover,
.rdr22-related-card:hover,
.archive-post-card:hover,
.aio-support-related-link:hover {
  transform: translateY(-3px);
  border-color: #bfe2d5 !important;
  box-shadow: 0 18px 36px rgba(13, 43, 37, .11) !important;
}

.related-columns a,
.related-posts a,
.related-articles a,
.related-column-card a,
.related-post-card a,
.iur-related-card a,
.rdr22-related-card a,
.archive-post-card a,
.aio-support-related-link a {
  color: var(--lp-green-dark) !important;
  text-decoration: none !important;
}

.related-columns h3,
.related-posts h3,
.related-articles h3,
.related-column-card h3,
.related-post-card h3,
.iur-related-card h3,
.rdr22-related-card h3,
.archive-post-card__title {
  margin: 0 !important;
  color: var(--lp-green-dark) !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

.related-columns p,
.related-posts p,
.related-articles p,
.related-column-card p,
.related-post-card p,
.iur-related-card p,
.rdr22-related-card p,
.archive-post-card__excerpt,
.aio-support-related-link span {
  margin: 0;
  color: var(--lp-muted) !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.archive-post-card__date {
  order: -1;
  color: var(--lp-muted) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.related-columns .more,
.related-posts .more,
.related-articles .more,
.related-column-card .more,
.related-post-card .more,
.iur-related-card .more,
.rdr22-related-card .more,
.archive-post-card__more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  color: var(--lp-green) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

.related-columns .more::after,
.related-posts .more::after,
.related-articles .more::after,
.related-column-card .more::after,
.related-post-card .more::after,
.iur-related-card .more::after,
.rdr22-related-card .more::after,
.archive-post-card__more::after {
  content: "→";
  font-weight: 900;
}

.aio-support-related-link {
  margin: 28px 0 0 !important;
}

.aio-support-related-link a {
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
}

@media (max-width: 980px) {
  .related-columns__grid,
  .related-posts__grid,
  .related-articles__grid,
  .related-column-list,
  .related-post-list,
  .iur-related-grid,
  .rdr22-related-grid,
  .archive-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Site-wide lower CTA visual unification */
html body .final-cta.final-cta,
html body .service-page__final-cta.service-page__final-cta,
html body .rsexp-column-final-cta.rsexp-column-final-cta,
html body .rsexp-cta.rsexp-cta,
html body .iur-area-final.iur-area-final,
html body .iur-voice-final.iur-voice-final,
html body .area-cta.area-cta,
html body .archive-cta.archive-cta,
html body .iur-column-cta.iur-column-cta {
  padding: 34px 24px !important;
  border-color: #0f6b4f !important;
  border-radius: 16px !important;
  background: #0f6b4f !important;
  color: #fff !important;
  text-align: center !important;
  box-shadow: 0 18px 42px rgba(15,107,79,.18) !important;
}

html body .final-cta.final-cta h2,
html body .service-page__final-cta.service-page__final-cta h2,
html body .rsexp-column-final-cta.rsexp-column-final-cta h2,
html body .rsexp-cta.rsexp-cta h2,
html body .iur-area-final.iur-area-final h2,
html body .iur-voice-final.iur-voice-final h2,
html body .area-cta.area-cta h2,
html body .archive-cta.archive-cta h2,
html body .iur-column-cta.iur-column-cta h2 {
  display: block !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  border: 0 !important;
  color: #fff !important;
  font-size: clamp(24px,3vw,32px) !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  text-align: center !important;
}

html body .final-cta.final-cta h2::before,
html body .service-page__final-cta.service-page__final-cta h2::before,
html body .rsexp-column-final-cta.rsexp-column-final-cta h2::before,
html body .rsexp-cta.rsexp-cta h2::before,
html body .iur-area-final.iur-area-final h2::before,
html body .iur-voice-final.iur-voice-final h2::before,
html body .area-cta.area-cta h2::before,
html body .archive-cta.archive-cta h2::before,
html body .iur-column-cta.iur-column-cta h2::before {
  content: none !important;
  display: none !important;
}

html body .final-cta.final-cta p:not(:has(a)),
html body .final-cta.final-cta h2 + p:not(:has(a)),
html body .service-page__final-cta.service-page__final-cta p:not(:has(a)),
html body .service-page__final-cta.service-page__final-cta h2 + p:not(:has(a)),
html body .rsexp-column-final-cta.rsexp-column-final-cta p:not(:has(a)),
html body .rsexp-column-final-cta.rsexp-column-final-cta h2 + p:not(:has(a)),
html body .rsexp-cta.rsexp-cta p:not(:has(a)),
html body .rsexp-cta.rsexp-cta h2 + p:not(:has(a)),
html body .iur-area-final.iur-area-final p:not(:has(a)),
html body .iur-area-final.iur-area-final h2 + p:not(:has(a)),
html body .iur-voice-final.iur-voice-final p:not(:has(a)),
html body .iur-voice-final.iur-voice-final h2 + p:not(:has(a)),
html body .area-cta.area-cta p:not(:has(a)),
html body .area-cta.area-cta h2 + p:not(:has(a)),
html body .archive-cta.archive-cta p:not(:has(a)),
html body .archive-cta.archive-cta h2 + p:not(:has(a)),
html body .iur-column-cta.iur-column-cta p:not(:has(a)),
html body .iur-column-cta.iur-column-cta h2 + p:not(:has(a)) {
  max-width: 720px !important;
  margin: 0 auto 20px !important;
  color: rgba(255,255,255,.88) !important;
  font-size: inherit !important;
  line-height: 1.9 !important;
  text-align: center !important;
}

html body .final-cta.final-cta p:not(:has(a))::before,
html body .final-cta.final-cta h2 + p:not(:has(a))::before,
html body .service-page__final-cta.service-page__final-cta p:not(:has(a))::before,
html body .service-page__final-cta.service-page__final-cta h2 + p:not(:has(a))::before,
html body .rsexp-column-final-cta.rsexp-column-final-cta p:not(:has(a))::before,
html body .rsexp-column-final-cta.rsexp-column-final-cta h2 + p:not(:has(a))::before,
html body .rsexp-cta.rsexp-cta p:not(:has(a))::before,
html body .rsexp-cta.rsexp-cta h2 + p:not(:has(a))::before,
html body .iur-area-final.iur-area-final p:not(:has(a))::before,
html body .iur-area-final.iur-area-final h2 + p:not(:has(a))::before,
html body .iur-voice-final.iur-voice-final p:not(:has(a))::before,
html body .iur-voice-final.iur-voice-final h2 + p:not(:has(a))::before,
html body .area-cta.area-cta p:not(:has(a))::before,
html body .area-cta.area-cta h2 + p:not(:has(a))::before,
html body .archive-cta.archive-cta p:not(:has(a))::before,
html body .archive-cta.archive-cta h2 + p:not(:has(a))::before,
html body .iur-column-cta.iur-column-cta p:not(:has(a))::before,
html body .iur-column-cta.iur-column-cta h2 + p:not(:has(a))::before {
  content: none !important;
  display: none !important;
}

html body .final-cta.final-cta a.button,
html body .final-cta.final-cta a.button--primary,
html body .final-cta.final-cta a.button--light,
html body .service-page__final-cta.service-page__final-cta a,
html body .rsexp-column-final-cta.rsexp-column-final-cta a,
html body .rsexp-cta.rsexp-cta a,
html body .iur-area-final.iur-area-final a,
html body .iur-voice-final.iur-voice-final a,
html body .area-cta.area-cta a,
html body .archive-cta.archive-cta a,
html body .iur-column-cta.iur-column-cta a {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 232px !important;
  min-height: 52px !important;
  margin: 0 auto !important;
  padding: 14px 28px !important;
  border: 1px solid rgba(255,255,255,.9) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #047857 !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
}

html body .final-cta.final-cta a.button:hover,
html body .final-cta.final-cta a.button--primary:hover,
html body .final-cta.final-cta a.button--light:hover,
html body .service-page__final-cta.service-page__final-cta a:hover,
html body .rsexp-column-final-cta.rsexp-column-final-cta a:hover,
html body .rsexp-cta.rsexp-cta a:hover,
html body .iur-area-final.iur-area-final a:hover,
html body .iur-voice-final.iur-voice-final a:hover,
html body .area-cta.area-cta a:hover,
html body .archive-cta.archive-cta a:hover,
html body .iur-column-cta.iur-column-cta a:hover {
  background: #eefaf5 !important;
  color: #047857 !important;
  text-decoration: none !important;
}

@media (max-width: 640px) {
  html body .final-cta.final-cta,
  html body .service-page__final-cta.service-page__final-cta,
  html body .rsexp-column-final-cta.rsexp-column-final-cta,
  html body .rsexp-cta.rsexp-cta,
  html body .iur-area-final.iur-area-final,
  html body .iur-voice-final.iur-voice-final,
  html body .area-cta.area-cta,
  html body .archive-cta.archive-cta,
  html body .iur-column-cta.iur-column-cta {
    padding: 30px 20px !important;
  }

  html body .final-cta.final-cta a.button,
  html body .final-cta.final-cta a.button--primary,
  html body .final-cta.final-cta a.button--light,
  html body .service-page__final-cta.service-page__final-cta a,
  html body .rsexp-column-final-cta.rsexp-column-final-cta a,
  html body .rsexp-cta.rsexp-cta a,
  html body .iur-area-final.iur-area-final a,
  html body .iur-voice-final.iur-voice-final a,
  html body .area-cta.area-cta a,
  html body .archive-cta.archive-cta a,
  html body .iur-column-cta.iur-column-cta a {
    width: fit-content !important;
    max-width: 320px !important;
    min-width: 0 !important;
    white-space: normal !important;
  }
}

/* Internal link cards */
.iur-internal-links {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  max-width: 760px;
  margin: 20px auto 0;
}

.iur-internal-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 54px;
  padding: 14px 16px;
  border: 1px solid #d9e8e1;
  border-radius: 8px;
  background: #f6fbf8;
  color: #0f6b4f;
  font-weight: 900;
  line-height: 1.45;
  text-decoration: none;
}

.iur-internal-links a::after {
  content: "→";
  flex: 0 0 auto;
  color: #0f6b4f;
  font-weight: 900;
}

.iur-internal-links a:hover {
  background: #eefaf5;
  color: #0f6b4f;
  text-decoration: none;
}

@media (max-width: 640px) {
  .iur-internal-links {
    grid-template-columns: 1fr;
    margin-top: 16px;
  }
}

@media (max-width: 640px) {
  .related-columns,
  .related-posts,
  .related-articles,
  .related-column-section,
  .iur-related-columns,
  .iur-related-posts,
  .rdr22-related-columns,
  .rdr22-related-posts {
    margin-top: 38px;
    padding: 0 14px;
  }

  .related-columns__grid,
  .related-posts__grid,
  .related-articles__grid,
  .related-column-list,
  .related-post-list,
  .iur-related-grid,
  .rdr22-related-grid,
  .archive-post-grid {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .related-columns article,
  .related-posts article,
  .related-articles article,
  .related-column-card,
  .related-post-card,
  .iur-related-card,
  .rdr22-related-card,
  .archive-post-card,
  .aio-support-related-link {
    padding: 18px !important;
  }
}

.iur-form-intro {
  padding: 18px 20px;
  margin: 0 0 24px;
  border: 1px solid #bfe2d5;
  border-radius: 14px;
  background: #f0fdfa;
}

.iur-form-intro p {
  margin: 0 0 6px;
}

.iur-optional-fields {
  margin: 34px 0 0;
  border: 1px solid var(--lp-line);
  border-radius: 16px;
  background: #fbfdfc;
  overflow: hidden;
}

.iur-optional-fields summary {
  display: block;
  padding: 18px 22px;
  background: var(--lp-mint);
  color: var(--lp-green-dark);
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}

.iur-optional-fields summary::-webkit-details-marker {
  display: none;
}

.iur-optional-fields summary::before {
  content: "＋";
  display: inline-block;
  margin-right: 8px;
  font-weight: 900;
}

.iur-optional-fields[open] summary::before {
  content: "－";
}

.iur-optional-fields > p,
.iur-optional-fields > h3,
.iur-optional-fields > h4 {
  margin-left: 24px;
  margin-right: 24px;
}

.iur-optional-fields > h3:first-of-type {
  margin-top: 26px;
}

.iur-optional-note {
  color: var(--lp-muted);
}

.wpcf7 form p {
  margin: 0 0 18px;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding: 12px 13px;
  border: 1px solid #c8dad3;
  border-radius: 8px;
  background: #fff;
  font: inherit;
}

.wpcf7 textarea {
  min-height: 120px;
}

.wpcf7 input[type="submit"] {
  width: 100%;
  padding: 14px 20px;
  border: 0;
  border-radius: 8px;
  background: var(--lp-green);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}

.wpcf7-acceptance input[type="checkbox"] {
  width: auto;
  margin-right: 8px;
}

@media (max-width: 680px) {
  .site-footer__links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
  }

  .site-footer__links a {
    padding: 6px 4px;
  }

  .page-content {
    padding: 34px 14px 54px;
  }

  .page-content__body th,
  .page-content__body td {
    display: block;
    width: auto;
    padding: 10px 0;
  }

  .page-content__body th {
    padding: 12px 14px;
  }

  .page-content__body td {
    padding: 12px 14px 16px;
  }

  .iur-optional-fields {
    margin-top: 26px;
  }

  .iur-optional-fields > p,
  .iur-optional-fields > h3,
  .iur-optional-fields > h4 {
    margin-left: 18px;
    margin-right: 18px;
  }
}

a {
  color: inherit;
}

.site-header {
  border-bottom: 1px solid var(--lp-line);
  background: #fff;
}

.site-header__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.site-brand {
  color: var(--lp-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.site-header__cta {
  border-radius: 8px;
  background: var(--lp-green);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 8px 12px;
  text-decoration: none;
}

.breadcrumb {
  max-width: 1120px;
  margin: 0 auto;
  padding: 14px 18px 0;
  color: var(--lp-muted);
  font-size: 13px;
}

.breadcrumb a {
  color: var(--lp-green);
}

.lp {
  color: var(--lp-ink);
  background: var(--lp-bg);
}

.hero {
  background: linear-gradient(180deg, #f4fbf7 0%, #ffffff 100%);
  padding: 52px 18px 40px;
}

.hero__inner,
.section__inner,
.final-cta__inner {
  max-width: 1120px;
  margin: 0 auto;
}

.hero__label,
.section__eyebrow {
  color: var(--lp-green);
  font-weight: 700;
  letter-spacing: 0;
  margin: 0 0 10px;
}

.hero h1 {
  font-size: clamp(31px, 8vw, 56px);
  line-height: 1.18;
  margin: 0 0 18px;
  letter-spacing: 0;
}

.hero__lead,
.section__lead,
.form-intro {
  color: #34443e;
  font-size: 17px;
  margin: 0 0 24px;
}

.hero__actions {
  display: grid;
  gap: 12px;
}

.button {
  align-items: center;
  border-radius: 8px;
  display: inline-flex;
  font-weight: 700;
  justify-content: center;
  min-height: 52px;
  padding: 12px 18px;
  text-align: center;
  text-decoration: none;
}

.button--primary {
  background: var(--lp-green);
  box-shadow: 0 8px 20px rgba(15, 107, 79, .22);
  color: #fff;
}

.button--secondary {
  background: #fff;
  border: 1px solid var(--lp-green);
  color: var(--lp-green);
}

.button--light {
  background: #fff;
  color: var(--lp-green-dark);
}

.section {
  padding: 54px 18px;
}

.section--muted {
  background: #f7faf8;
}

.section__inner--narrow {
  max-width: 840px;
}

.section h2,
.final-cta h2 {
  font-size: clamp(25px, 6vw, 38px);
  line-height: 1.3;
  margin: 0 0 18px;
  letter-spacing: 0;
}

.check-grid,
.service-grid {
  display: grid;
  gap: 12px;
}

.check-grid div,
.service-grid article,
.price-table,
.faq-list details,
.form-embed {
  background: #fff;
  border: 1px solid var(--lp-line);
  border-radius: 8px;
}

.check-grid div {
  padding: 15px 16px 15px 44px;
  position: relative;
}

.check-grid div::before {
  background: var(--lp-green);
  border-radius: 999px;
  color: #fff;
  content: "✓";
  font-size: 13px;
  font-weight: 700;
  height: 22px;
  left: 16px;
  line-height: 22px;
  position: absolute;
  text-align: center;
  top: 17px;
  width: 22px;
}

.problem-list {
  display: grid;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.problem-list li {
  border-bottom: 1px solid var(--lp-line);
  padding: 12px 0;
}

.form-embed {
  padding: 18px;
}

.form-embed input,
.form-embed select,
.form-embed textarea {
  border: 1px solid #cbd9d2;
  border-radius: 8px;
  box-sizing: border-box;
  font-size: 16px;
  min-height: 46px;
  padding: 11px 12px;
  width: 100%;
}

.form-embed label {
  display: block;
  font-weight: 700;
  margin: 0 0 16px;
}

.form-embed .wpcf7-submit {
  background: var(--lp-green);
  border: 0;
  color: #fff;
  cursor: pointer;
  font-weight: 700;
  min-height: 54px;
}

.steps {
  display: grid;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.steps li {
  background: #fff;
  border-left: 5px solid var(--lp-green);
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 18px;
}

.steps strong {
  color: var(--lp-green);
}

.service-grid article {
  padding: 18px;
}

.service-grid h3 {
  font-size: 18px;
  line-height: 1.45;
  margin: 0 0 8px;
}

.service-grid p,
.faq-list p {
  color: var(--lp-muted);
  margin: 0;
}

.price-table {
  overflow: hidden;
}

.price-table div {
  display: grid;
  gap: 4px;
  padding: 15px 16px;
}

.price-table div + div {
  border-top: 1px solid var(--lp-line);
}

.price-table strong {
  color: var(--lp-green);
  font-size: 20px;
}

.faq-list {
  display: grid;
  gap: 12px;
}

.faq-list details {
  padding: 15px 16px;
}

.faq-list summary {
  cursor: pointer;
  font-weight: 700;
}

.faq-list p {
  margin: 10px 0 0;
}

.section__cta {
  margin: 26px 0 0;
}

.final-cta {
  background: var(--lp-green-dark);
  color: #fff;
  padding: 48px 18px;
  text-align: center;
}

.final-cta p {
  margin: 0 0 22px;
}

.site-footer {
  background: #f7faf8;
  color: var(--lp-muted);
  font-size: 13px;
  padding: 22px 18px;
  text-align: center;
}

@media (min-width: 760px) {
  .hero {
    padding: 76px 24px 62px;
  }

  .hero__lead {
    max-width: 780px;
  }

  .hero__actions {
    display: flex;
    flex-wrap: wrap;
  }

  .button {
    min-width: 230px;
  }

  .section {
    padding: 72px 24px;
  }

  .check-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .price-table div {
    align-items: center;
    grid-template-columns: 1fr auto;
  }
}

/* Category archive cards */
.reason-list {
  display: grid;
  gap: 20px;
  margin: 24px 0 34px;
}

.reason-item {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(0, 93, 72, .12);
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .05);
}

.reason-number {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, #006b55, #00a37a);
  color: #fff;
  font-weight: 800;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: .04em;
}

.reason-content {
  min-width: 0;
}

.reason-content h3 {
  margin: 0 0 10px !important;
  color: #003f35 !important;
  font-size: 20px !important;
  line-height: 1.45 !important;
}

.reason-content p {
  margin: 0 !important;
  line-height: 1.8 !important;
  color: var(--lp-ink) !important;
}

@media (max-width: 768px) {
  .reason-item {
    gap: 14px;
    padding: 18px;
  }

  .reason-number {
    width: 44px;
    height: 44px;
    font-size: 15px;
    border-radius: 12px;
  }

  .reason-content h3 {
    font-size: 18px !important;
  }
}

.archive-page {
  background: #fff;
  color: var(--lp-ink);
}

.archive-hero {
  background: linear-gradient(180deg, #f4fbf7 0%, #ffffff 100%);
  padding: 44px 18px 28px;
}

.archive-hero__inner,
.archive-list-section__inner,
.archive-cta__inner {
  max-width: 1120px;
  margin: 0 auto;
}

.archive-hero__eyebrow {
  color: var(--lp-green);
  font-weight: 800;
  margin: 0 0 10px;
}

.archive-hero h1 {
  margin: 0 0 14px;
  font-size: clamp(30px, 6vw, 46px);
  line-height: 1.25;
  letter-spacing: 0;
}

.archive-hero__description {
  max-width: 820px;
  color: #34443e;
  font-size: 16px;
  line-height: 1.8;
}

.archive-list-section {
  padding: 34px 18px 48px;
}

.archive-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  max-width: 100%;
}

.archive-post-card {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px;
  border: 1px solid var(--lp-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
}

.archive-post-card__title {
  margin: 0;
  font-size: 18px;
  line-height: 1.45;
}

.archive-post-card__title a {
  color: var(--lp-green-dark);
  text-decoration: none;
}

.archive-post-card__date {
  color: var(--lp-muted);
  font-size: 13px;
  font-weight: 700;
}

.archive-post-card__excerpt {
  margin: 0;
  color: #46564f;
  line-height: 1.7;
}

.archive-post-card__more {
  margin-top: auto;
  color: var(--lp-green);
  font-weight: 800;
  text-decoration: none;
}

.archive-pagination {
  margin-top: 30px;
  text-align: center;
}

.archive-empty {
  max-width: 720px;
  margin: 0 auto;
  padding: 22px;
  border: 1px dashed var(--lp-line);
  border-radius: 12px;
  text-align: center;
}

.archive-cta {
  padding: 40px 18px 54px;
  background: var(--lp-mint);
}

.archive-cta__inner {
  text-align: center;
}

.archive-cta h2 {
  margin: 0 0 12px;
  font-size: clamp(24px, 5vw, 34px);
}

.archive-cta p {
  margin: 0 auto 22px;
  max-width: 720px;
  color: #34443e;
}

.archive-cta__button {
  display: inline-block;
  padding: 13px 26px;
  border-radius: 999px;
  background: var(--lp-green);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 980px) {
  .archive-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .archive-hero {
    padding: 34px 14px 22px;
  }

  .archive-list-section {
    padding: 26px 14px 36px;
  }

  .archive-post-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .archive-post-card {
    padding: 18px;
  }
}
/* Area / Service restore: restored from historical backup CSS. */
.rdr22-breadcrumb {
  max-width: 1100px;
  margin: 14px auto;
  padding: 0 20px;
  color: rgba(60, 48, 38, 0.72);
  font-size: 0.9rem;
  line-height: 1.6;
}

.rdr22-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.rdr22-breadcrumb a:hover,
.rdr22-breadcrumb a:focus {
  color: #b55c26;
  text-decoration: underline;
}

.rdr22-breadcrumb__sep {
  display: inline-block;
  margin: 0 8px;
  color: rgba(60, 48, 38, 0.42);
}

.iur-area-page,
.iur-area-index {
  max-width: 1080px;
  margin: 0 auto;
  padding: 42px 18px;
  color: #1f2937;
}

.iur-area-page section,
.iur-area-index section {
  margin: 0 0 28px;
}

.iur-area-hero,
.iur-area-index .service-hero {
  padding: 36px;
  border-radius: 18px;
  background: #f0fdfa;
  border: 1px solid #d1fae5;
}

.iur-area-section {
  padding: 30px;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
}

.iur-area-section h2 {
  margin-top: 0;
}

.iur-area-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}

.iur-area-grid article {
  padding: 20px;
  border-radius: 12px;
  background: #f8fafc;
}

.iur-area-muted {
  background: #f8fafc;
}

.iur-area-final {
  text-align: center;
  padding: 34px;
  border-radius: 16px;
  background: #0f6b4f;
  color: #fff;
}

.iur-area-final h2 {
  color: #fff;
}

.iur-prefecture-links {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
  list-style: none;
  padding: 0;
}

.iur-prefecture-links a {
  display: block;
  padding: 12px 14px;
  border: 1px solid #d1fae5;
  border-radius: 10px;
  color: #0f6b4f;
  text-decoration: none;
  font-weight: 800;
  background: #fff;
}

.service-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: 48px 20px;
  color: #1f2937;
  line-height: 1.85;
}

.service-page * {
  box-sizing: border-box;
}

.service-page h1 {
  font-size: 32px;
  line-height: 1.35;
  margin: 0 0 24px;
  font-weight: 900;
  color: #111827;
  letter-spacing: 0;
}

.service-page h2 {
  font-size: 24px;
  line-height: 1.45;
  margin: 0 0 20px;
  padding-left: 14px;
  border-left: 5px solid #0f766e;
  color: #111827;
  font-weight: 900;
  letter-spacing: 0;
}

.service-page h3 {
  font-size: 18px;
  margin: 24px 0 10px;
  color: #1f2937;
  font-weight: 900;
}

.service-page p {
  margin: 0 0 18px;
}

.service-page section {
  width: 100%;
  max-width: 100%;
  overflow: visible;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 28px;
  margin-bottom: 32px;
  box-shadow: 0 12px 30px rgba(15,23,42,.06);
}

.service-page .service-hero {
  background: linear-gradient(180deg,#f0fdfa 0%,#ffffff 78%);
  border-color: #ccfbf1;
  text-align: left;
}

.service-page__eyebrow {
  display: inline-block;
  margin: 0 0 12px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #ccfbf1;
  color: #0f766e;
  font-size: 13px;
  font-weight: 900;
}

.service-page__lead {
  font-size: 17px;
  font-weight: 700;
  color: #374151;
  max-width: 860px;
}

.service-page ul,
.service-page ol {
  padding-left: 1.5em;
  line-height: 1.9;
  margin: 0 0 10px;
}

.service-page li {
  margin: 4px 0;
}

.service-page a {
  color: #0f766e;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.service-page .cta-button,
.service-page a.cta-button,
.service-page .button {
  display: inline-block;
  background: #0f766e!important;
  color: #ffffff!important;
  padding: 14px 28px;
  border-radius: 999px;
  text-decoration: none!important;
  font-weight: 900;
  margin-top: 20px;
  box-shadow: 0 10px 22px rgba(15,118,110,.22);
  line-height: 1.4;
}

.service-page .cta-button--secondary {
  background: #ffffff!important;
  color: #0f766e!important;
  border: 2px solid #0f766e!important;
  box-shadow: none!important;
}

.service-page .cta-button:hover,
.service-page a.cta-button:hover,
.service-page .button:hover {
  filter: brightness(.96);
  transform: translateY(-1px);
}

.service-page__sub-link {
  display: inline-block;
  margin-left: 14px;
  font-weight: 800;
}

.service-page__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
}

.service-page__actions .cta-button {
  margin-top: 0;
}

.service-page__link-list {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  padding-left: 0!important;
  list-style: none;
}

.service-page__link-list li {
  margin: 0;
}

.service-page__link-list a {
  display: block;
  padding: 14px 16px;
  border: 1px solid #d1fae5;
  border-radius: 12px;
  background: #f0fdfa;
  text-decoration: none;
  font-weight: 800;
}

.related-column-section {
  margin: 48px 0;
}

.related-column-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: visible;
}

.related-column-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 22px;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-shadow: 0 8px 20px rgba(15,23,42,.05);
}

.related-column-card h3 {
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 18px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.related-column-card p {
  line-height: 1.7;
  margin: 0 0 16px;
  color: #475569;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.related-column-card a {
  text-decoration: none!important;
  font-weight: 700;
  color: #0f766e;
}

.related-column-card .read-more {
  display: inline-block;
  margin-top: 4px;
}

.column-list-link {
  margin-top: 24px;
  text-align: center;
}

.column-list-link a {
  display: inline-block;
  padding: 12px 22px;
  border-radius: 999px;
  border: 1px solid #0f766e;
  text-decoration: none!important;
  font-weight: 700;
  color: #0f766e!important;
}

.service-page__before-after {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
  margin: 18px 0;
}

.service-page__before-after > div {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 18px;
  background: #f9fafb;
}

.service-page__before-after h3 {
  margin-top: 0;
  color: #0f766e;
}

.service-page__note {
  font-size: 14px;
  color: #64748b;
}

.service-page__reason-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px;
  margin-top: 18px;
}

.service-page__reason-grid article {
  background: #f8fafc;
  border: 1px solid #dbeafe;
  border-radius: 14px;
  padding: 20px;
  min-height: 100%;
}

.service-page__reason-grid span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #0f766e;
  color: #fff;
  font-weight: 900;
  margin-bottom: 10px;
}

.service-page__reason-grid h3 {
  margin: 0 0 8px;
  color: #0f766e;
  font-size: 17px;
  line-height: 1.45;
}

.service-page__reason-grid p {
  margin: 0;
  color: #475569;
  font-size: 14px;
  line-height: 1.75;
}

.service-page__final-cta {
  text-align: center;
  background: #0f766e!important;
  color: #fff!important;
  border-color: #0f766e!important;
}

.service-page__final-cta h2 {
  display: inline-block;
  color: #fff!important;
  border-left-color: #fff;
  text-align: left;
}

.service-page__final-cta p {
  color: #fff;
}

.service-page__final-cta .cta-button {
  background: #fff!important;
  color: #0f766e!important;
}

@media (max-width: 900px) {
  .service-page__reason-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 768px) {
  .iur-area-grid,
  .iur-prefecture-links {
    grid-template-columns: 1fr;
  }

  .iur-area-hero,
  .iur-area-index .service-hero,
  .iur-area-section {
    padding: 22px;
  }

  .rdr22-breadcrumb {
    font-size: 12px;
    margin-top: 10px;
  }

  .service-page {
    padding: 32px 16px;
    overflow: visible;
  }

  .service-page h1 {
    font-size: 26px;
  }

  .service-page h2 {
    font-size: 21px;
  }

  .service-page section {
    padding: 22px;
    margin-bottom: 24px;
    overflow: visible;
  }

  .service-page__link-list,
  .service-page__before-after,
  .service-page__reason-grid {
    grid-template-columns: 1fr;
  }

  .service-page__actions {
    display: block;
  }

  .service-page__sub-link {
    margin: 14px 0 0;
  }

  .service-page .cta-button,
  .service-page a.cta-button,
  .service-page .button {
    width: 100%;
    text-align: center;
  }

  .related-column-grid {
    grid-template-columns: 1fr;
  }
}

/* Banquet reservation page */
.iul-banquet-page { --iul-main:#103f35; --iul-accent:#e66f1f; --iul-line:#10b956; --iul-ink:#1d211f; --iul-muted:#66736d; --iul-paper:#fffaf2; --iul-card:#fff; color:var(--iul-ink); background:var(--iul-paper); padding-bottom:0; display:flex; flex-direction:column; }
.iul-banquet-page * { box-sizing:border-box; }
.iul-banquet-page a { color:inherit; }
.iul-banquet-page .iul-wrap { max-width:1240px; margin:0 auto; padding:0 24px; }
.iul-banquet-page .iul-hero { order:2; position:relative; overflow:hidden; padding:48px 0 52px; background:linear-gradient(180deg,#fff7ed 0%,#fffaf2 100%); color:var(--iul-ink); }
.iul-banquet-page .iul-hero-full { min-height:0; display:block; padding:48px 0 52px; background-image:none !important; }
.iul-banquet-page .iul-hero-full::before { display:none; }
.iul-banquet-page .iul-hero-full .iul-wrap { position:relative; z-index:1; width:100%; padding-top:0; padding-bottom:0; }
.iul-banquet-page .iul-hero-full .iul-hero-copy { max-width:none; }
.iul-banquet-page .iul-hero-grid { display:grid; grid-template-columns:minmax(0,.45fr) minmax(0,.55fr); gap:34px; align-items:center; }
.iul-banquet-page .iul-hero-copy { position:relative; z-index:1; }
.iul-banquet-page .iul-hero-area { margin:0 0 10px; color:var(--iul-accent); font-weight:1000; font-size:clamp(16px,2vw,22px); }
.iul-banquet-page .iul-kicker { display:inline-flex; gap:8px; flex-wrap:wrap; align-items:center; margin:0 0 12px; font-weight:800; color:var(--iul-main); }
.iul-banquet-page .iul-kicker span { border:1px solid #eadbc7; border-radius:999px; padding:6px 10px; background:#fff; }
.iul-banquet-page h1 { margin:0 0 12px; font-size:clamp(42px,7vw,74px); line-height:1.06; letter-spacing:0; color:var(--iul-main); text-shadow:none; }
.iul-banquet-page .iul-lead { font-size:clamp(18px,2.4vw,24px); line-height:1.7; margin:0 0 20px; color:#26332f; font-weight:900; max-width:680px; }
.iul-banquet-page .iul-hero-points { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; padding:0; list-style:none; }
.iul-banquet-page .iul-hero-points li { background:#fff; border:1px solid #eadbc7; border-radius:10px; padding:8px 10px; font-weight:800; color:var(--iul-main); }
.iul-banquet-page .iul-hero .iul-hero-actions { display:flex; margin-top:20px; }
.iul-banquet-page .iul-proof-list { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 18px; padding:0; list-style:none; }
.iul-banquet-page .iul-proof-list li { background:#fff; color:var(--iul-main); border-radius:999px; padding:9px 13px; font-weight:1000; box-shadow:0 8px 18px rgba(0,0,0,.14); }
.iul-banquet-page .iul-hero .iul-proof-list { display:none; }
.iul-banquet-page .iul-proof-band { order:3; padding:24px 0 8px; margin-top:0; position:relative; z-index:3; }
.iul-banquet-page .iul-proof-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.iul-banquet-page .iul-proof-card { background:#fff; border:1px solid #eadbc7; border-radius:18px; padding:18px 20px; box-shadow:0 16px 34px rgba(35,25,15,.12); }
.iul-banquet-page .iul-proof-card span { display:block; color:var(--iul-muted); font-size:13px; font-weight:900; margin-bottom:5px; }
.iul-banquet-page .iul-proof-card strong { display:block; color:var(--iul-main); font-size:clamp(21px,3vw,30px); line-height:1.2; }
.iul-banquet-page .iul-hero-actions, .iul-banquet-page .iul-card-actions, .iul-banquet-page .iul-final-actions, .iul-banquet-page .iul-reservation-actions { display:flex; flex-wrap:wrap; gap:12px; }
.iul-banquet-page .iul-btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:13px 20px; border-radius:999px; text-decoration:none; font-weight:1000; border:1px solid transparent; }
.iul-banquet-page .iul-btn-xl { min-height:76px; padding:18px 26px; font-size:20px; flex:1 1 240px; box-shadow:0 14px 28px rgba(30,22,14,.14); }
.iul-banquet-page .iul-reservation-actions .iul-btn-xl { flex:1 1 0; min-width:0; }
.iul-banquet-page .iul-btn-tel { background:var(--iul-accent); color:#fff; }
.iul-banquet-page .iul-btn-line { background:var(--iul-line); color:#fff; }
.iul-banquet-page .iul-btn-map { background:#fff; color:var(--iul-main); }
.iul-banquet-page .iul-btn-dark { background:var(--iul-main); color:#fff; }
.iul-banquet-page .iul-hero-media { position:relative; z-index:1; }
.iul-banquet-page .iul-hero-media img { width:100%; aspect-ratio:16/10; max-height:560px; object-fit:cover; display:block; border-radius:22px; box-shadow:0 18px 42px rgba(39,29,18,.16); border:1px solid #eadbc7; background:#fff; }
.iul-banquet-page .iul-info-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:18px; }
.iul-banquet-page .iul-info-strip p { margin:0; padding:12px; border-radius:12px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); color:#fff; }
.iul-banquet-page section { padding:42px 0; }
.iul-banquet-page .iul-reservation-band { display:none; order:4; padding:24px 0; background:#fff; border-bottom:1px solid #eadbc7; box-shadow:0 12px 24px rgba(40,30,19,.06); }
.iul-banquet-page .iul-benefits { order:5; padding:38px 0; background:linear-gradient(180deg,#fff7ed,#fffaf2); }
.iul-banquet-page .iul-benefit-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.iul-banquet-page .iul-benefit { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #eadbc7; border-radius:18px; padding:18px; font-weight:1000; box-shadow:0 14px 28px rgba(36,27,18,.08); }
.iul-banquet-page .iul-benefit::before { content:"✓"; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:999px; background:var(--iul-main); color:#fff; flex:0 0 auto; }
.iul-banquet-page .iul-section-head { margin:0 0 18px; }
.iul-banquet-page .iul-section-head p { color:var(--iul-accent); margin:0 0 6px; font-weight:900; }
.iul-banquet-page h2 { color:#1b211f; font-size:clamp(24px,4vw,36px); line-height:1.3; margin:0; letter-spacing:0; }
.iul-banquet-page .iul-photo-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:12px; }
.iul-banquet-page .iul-photo-card { position:relative; min-height:190px; border-radius:16px; overflow:hidden; background:#ece2d5; box-shadow:0 14px 30px rgba(34,28,20,.08); }
.iul-banquet-page .iul-photo-card:first-child { grid-row:span 2; min-height:392px; }
.iul-banquet-page .iul-photo-card img { width:100%; height:100%; object-fit:cover; display:block; }
.iul-banquet-page .iul-photo-card span { position:absolute; left:12px; bottom:12px; background:rgba(0,0,0,.62); color:#fff; border-radius:999px; padding:7px 11px; font-weight:900; }
.iul-banquet-page #courses { order:6; }
.iul-banquet-page #strengths { order:7; }
.iul-banquet-page #photos { order:8; }
.iul-banquet-page .iul-store-info { order:9; }
.iul-banquet-page .iul-map { order:10; }
.iul-banquet-page .iul-faq { order:11; }
.iul-banquet-page #reservation { order:12; }
.iul-banquet-page .iul-final-section { order:13; }
.iul-banquet-page .iul-banquet-simple-footer { order:14; }
.iul-banquet-page .iul-strength-grid, .iul-banquet-page .iul-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.iul-banquet-page .iul-strength-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.iul-banquet-page .iul-strength, .iul-banquet-page .iul-course, .iul-banquet-page .iul-form, .iul-banquet-page .iul-faq details, .iul-banquet-page .iul-final, .iul-banquet-page .iul-store-panel { background:var(--iul-card); border:1px solid #eadbc7; border-radius:18px; box-shadow:0 14px 32px rgba(36,27,18,.08); }
.iul-banquet-page .iul-strength { padding:20px; font-weight:1000; line-height:1.7; display:flex; gap:12px; align-items:flex-start; min-height:112px; }
.iul-banquet-page .iul-strength::before { content:""; width:34px; height:34px; border-radius:12px; background:linear-gradient(135deg,var(--iul-accent),#ffb15d); flex:0 0 auto; box-shadow:inset 0 0 0 7px rgba(255,255,255,.38); }
.iul-banquet-page .iul-course { position:relative; overflow:hidden; display:flex; flex-direction:column; }
.iul-banquet-page .iul-course.is-popular { border:2px solid var(--iul-accent); box-shadow:0 22px 46px rgba(230,111,31,.22); transform:translateY(-6px); }
.iul-banquet-page .iul-popular { position:absolute; top:12px; left:12px; z-index:2; background:linear-gradient(135deg,#e66f1f,#ff9f43); color:#fff; border-radius:999px; padding:9px 16px; font-size:15px; font-weight:1000; box-shadow:0 10px 20px rgba(117,54,10,.22); }
.iul-banquet-page .iul-course img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; background:#eee; }
.iul-banquet-page .iul-course-body { padding:20px; display:flex; flex-direction:column; gap:12px; flex:1; }
.iul-banquet-page .iul-course h3 { color:#1b211f; font-size:22px; line-height:1.35; margin:0; }
.iul-banquet-page .iul-price { color:var(--iul-accent); font-weight:1000; font-size:clamp(32px,4.4vw,44px); margin:0; line-height:1.05; }
.iul-banquet-page .iul-course-text { color:var(--iul-muted); line-height:1.75; margin:0; }
.iul-banquet-page .iul-course-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.iul-banquet-page .iul-course-meta span { display:inline-flex; align-items:center; gap:6px; background:#fff2e5; color:#8b4313; border-radius:999px; padding:8px 11px; font-weight:900; font-size:13px; }
.iul-banquet-page .iul-course-meta span::before { content:""; width:9px; height:9px; border-radius:999px; background:var(--iul-accent); }
.iul-banquet-page .iul-card-actions .iul-btn { width:100%; min-height:62px; font-size:17px; }
.iul-banquet-page .iul-store-panel { padding:22px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 22px; }
.iul-banquet-page .iul-store-panel p { margin:0; color:var(--iul-muted); line-height:1.7; }
.iul-banquet-page .iul-store-panel strong { color:var(--iul-main); display:block; font-size:13px; margin-bottom:4px; }
.iul-banquet-page .iul-map iframe { width:100%; min-height:320px; border:0; border-radius:16px; display:block; box-shadow:0 10px 26px rgba(36,27,18,.08); }
.iul-banquet-page .iul-faq details { padding:16px; margin-bottom:10px; }
.iul-banquet-page .iul-faq summary { cursor:pointer; font-weight:900; }
.iul-banquet-page .iul-faq p { color:var(--iul-muted); line-height:1.8; margin:10px 0 0; }
.iul-banquet-page .iul-form { display:grid; gap:12px; padding:18px; }
.iul-banquet-page .iul-form label { display:grid; gap:6px; font-weight:900; }
.iul-banquet-page .iul-form input, .iul-banquet-page .iul-form select, .iul-banquet-page .iul-form textarea { width:100%; border:1px solid #d8cec1; border-radius:11px; padding:12px; font:inherit; background:#fff; }
.iul-banquet-page .iul-form textarea { min-height:120px; }
.iul-banquet-page .iul-toast { padding:12px 14px; border-radius:11px; font-weight:900; }
.iul-banquet-page .iul-toast.success { background:#eaf8ef; color:#126042; }
.iul-banquet-page .iul-toast.error { background:#fff0ea; color:#9f2e21; }
.iul-banquet-page .iul-final { padding:24px; background:linear-gradient(135deg,#173f34,#285c48); color:#fff; }
.iul-banquet-page .iul-final h2 { color:#fff; }
.iul-banquet-page .iul-final p { color:#fff2de; }
.iul-banquet-page .iul-mobile-cta { display:none; }
body.iul-banquet-page-active > header:not(.iul-banquet-simple-header),
body.iul-banquet-page-active .site-header,
body.iul-banquet-page-active #masthead,
body.iul-banquet-page-active .l-header,
body.iul-banquet-page-active .global-header,
body.iul-banquet-page-active .main-header,
body.iul-banquet-page-active .header-wrapper { display:none !important; }
.iul-banquet-page .iul-banquet-simple-header { order:1; background:#fff; border-bottom:1px solid #eadbc7; box-shadow:0 8px 20px rgba(36,27,18,.05); }
.iul-banquet-page .iul-banquet-simple-header .iul-wrap { min-height:68px; display:flex; align-items:center; gap:14px; justify-content:space-between; }
.iul-banquet-page .iul-simple-header-title { margin:0; color:var(--iul-main); font-size:20px; line-height:1.25; font-weight:1000; }
.iul-banquet-page .iul-simple-header-sub { margin:0; color:var(--iul-accent); font-weight:900; }
.iul-banquet-page .iul-simple-header-operator { margin:0; color:var(--iul-muted); font-size:12px; font-weight:700; }
body.iul-banquet-page-active footer:not(.iul-banquet-simple-footer),
body.iul-banquet-page-active .site-footer,
body.iul-banquet-page-active #footer,
body.iul-banquet-page-active #colophon,
body.iul-banquet-page-active .footer,
body.iul-banquet-page-active .l-footer,
body.iul-banquet-page-active .p-footer,
body.iul-banquet-page-active .global-footer,
body.iul-banquet-page-active .footer-area,
body.iul-banquet-page-active .footer-inner,
body.iul-banquet-page-active .footer-nav,
body.iul-banquet-page-active .footer-menu,
body.iul-banquet-page-active .footer-widgets,
body.iul-banquet-page-active .footer-widget,
body.iul-banquet-page-active .footer-widget-area,
body.iul-banquet-page-active .site-info,
body.iul-banquet-page-active [class*="footer"]:not(.iul-banquet-simple-footer),
body.iul-banquet-page-active [id*="footer"] { display:none !important; }
.iul-banquet-page .iul-banquet-simple-footer { display:block !important; padding:12px 18px 86px; background:transparent; color:var(--iul-muted); text-align:center; }
.iul-banquet-page .iul-banquet-simple-footer p { margin:0; font-size:12px; line-height:1.6; }
@media (max-width: 900px) {
    .iul-banquet-page .iul-hero-grid, .iul-banquet-page .iul-info-strip, .iul-banquet-page .iul-photo-grid, .iul-banquet-page .iul-strength-grid, .iul-banquet-page .iul-course-grid, .iul-banquet-page .iul-benefit-grid, .iul-banquet-page .iul-proof-cards, .iul-banquet-page .iul-store-panel { grid-template-columns:1fr; }
    .iul-banquet-page .iul-hero-media { order:-1; }
    .iul-banquet-page .iul-hero-media img { aspect-ratio:16/11; max-height:none; }
    .iul-banquet-page .iul-photo-card:first-child { grid-row:auto; min-height:240px; }
    .iul-banquet-page .iul-photo-card { min-height:220px; }
    .iul-banquet-page .iul-course.is-popular { transform:none; }
}
@media (max-width: 767px) {
    .iul-banquet-page { padding-bottom:76px; }
    .iul-banquet-page .iul-banquet-simple-header .iul-wrap { min-height:auto; padding-top:12px; padding-bottom:12px; display:block; }
    .iul-banquet-page .iul-simple-header-sub, .iul-banquet-page .iul-simple-header-operator { margin-top:4px; }
    .iul-banquet-page .iul-hero-full { min-height:0; }
    .iul-banquet-page .iul-hero { padding-top:24px; }
    .iul-banquet-page .iul-hero-full { padding-top:0; }
    .iul-banquet-page section { padding:34px 0; }
    .iul-banquet-page .iul-hero-actions .iul-btn, .iul-banquet-page .iul-reservation-actions .iul-btn { width:100%; flex-basis:100%; }
    .iul-banquet-page .iul-mobile-cta { position:fixed; z-index:9999; left:0; right:0; bottom:0; display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:8px; background:rgba(255,255,255,.96); border-top:1px solid #eadbc7; box-shadow:0 -8px 22px rgba(0,0,0,.12); }
    .iul-banquet-page .iul-mobile-cta a { min-height:46px; padding:8px 6px; border-radius:12px; font-size:13px; }
}

/* Banquet official-site refinement */
.iul-banquet-page {
  --iul-paper: #fbf6ec;
  --iul-main: #163d32;
  --iul-accent: #9b5b24;
  --iul-muted: #6f6a60;
  background: var(--iul-paper);
}

.iul-banquet-page .iul-hero {
  padding: 70px 0 68px;
  background: #fbf6ec;
}

.iul-banquet-page .iul-hero-full {
  padding: 70px 0 68px;
}

.iul-banquet-page .iul-hero-grid {
  grid-template-columns: 1fr;
  gap: 34px;
}

.iul-banquet-page .iul-hero-media {
  order: 1;
}

.iul-banquet-page .iul-hero-copy {
  order: 2;
  max-width: 920px;
  min-width: 0;
  margin: 0 auto;
  text-align: center;
}

.iul-banquet-page .iul-hero-media img {
  width: 100%;
  aspect-ratio: 21 / 9;
  max-height: 660px;
  border-radius: 10px;
  border: 0;
  box-shadow: 0 18px 44px rgba(34, 27, 18, .14);
}

.iul-banquet-page .iul-kicker,
.iul-banquet-page .iul-hero-points,
.iul-banquet-page .iul-info-strip {
  display: none;
}

.iul-banquet-page .iul-hero-area {
  color: var(--iul-accent);
  font-size: 15px;
  letter-spacing: .08em;
}

.iul-banquet-page h1 {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "Times New Roman", serif;
  font-size: clamp(42px, 7vw, 82px);
  font-weight: 700;
  color: var(--iul-main);
  max-width: 100%;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  line-break: strict;
}

.iul-banquet-page .iul-lead {
  max-width: 620px;
  margin: 0 auto;
  color: #4b4f49;
  font-size: clamp(16px, 2vw, 20px);
  font-weight: 500;
}

.iul-banquet-page .iul-hero .iul-hero-actions {
  justify-content: center;
  margin-top: 28px;
}

.iul-banquet-page .iul-btn-xl {
  min-height: 58px;
  padding: 14px 22px;
  font-size: 16px;
  flex: 0 1 230px;
  border-radius: 6px;
  box-shadow: none;
}

.iul-banquet-page .iul-proof-band {
  padding: 38px 0 16px;
}

.iul-banquet-page .iul-proof-card,
.iul-banquet-page .iul-benefit,
.iul-banquet-page .iul-strength,
.iul-banquet-page .iul-course,
.iul-banquet-page .iul-store-panel,
.iul-banquet-page .iul-form,
.iul-banquet-page .iul-faq details {
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(34, 27, 18, .06);
}

.iul-banquet-page section {
  padding: 70px 0;
}

.iul-banquet-page .iul-benefits {
  background: #fbf6ec;
}

.iul-banquet-page .iul-section-head {
  margin-bottom: 28px;
  text-align: center;
}

.iul-banquet-page .iul-section-head p {
  letter-spacing: .12em;
}

.iul-banquet-page h2 {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "Times New Roman", serif;
  font-weight: 700;
}

@media (max-width: 900px) {
  .iul-banquet-page .iul-hero-grid {
    grid-template-columns: 1fr;
  }

  .iul-banquet-page .iul-hero-copy {
    text-align: center;
    margin: 0 auto;
  }

  .iul-banquet-page h1 {
    white-space: normal;
  }

  .iul-banquet-page .iul-lead {
    margin: 0 auto;
  }

  .iul-banquet-page .iul-hero .iul-hero-actions {
    justify-content: center;
  }

  .iul-banquet-page .iul-hero,
  .iul-banquet-page .iul-hero-full {
    padding: 34px 0 44px;
  }

  .iul-banquet-page .iul-hero-media img {
    aspect-ratio: 4 / 3;
    border-radius: 8px;
  }
}

/* PC readability tune: raise small body text without changing layout or colors. */
@media (min-width: 769px) {
  body {
    font-size: 16px;
  }

  .page-content__body p,
  .page-content__body li,
  .page-content__body td,
  .page-content__body th,
  .section p,
  .section li,
  .check-grid div,
  .problem-list li,
  .steps li,
  .price-table div,
  .faq-list summary,
  .faq-list p,
  .form-embed label,
  .service-page p,
  .service-page li,
  .service-page__before-after p {
    font-size: 16px;
    line-height: 1.8;
  }

  .hero__lead,
  .section__lead,
  .form-intro,
  .archive-hero__description,
  .service-page__lead {
    font-size: 18px;
    line-height: 1.85;
  }

  .service-grid p,
  .related-columns p,
  .related-posts p,
  .related-articles p,
  .related-column-card p,
  .related-post-card p,
  .iur-related-card p,
  .rdr22-related-card p,
  .archive-post-card__excerpt,
  .aio-support-related-link span,
  .service-page__reason-grid p {
    font-size: 15px !important;
    line-height: 1.8 !important;
  }

  .site-footer,
  .archive-post-card__date,
  .service-page__note,
  .site-footer__links a {
    font-size: 14px;
    line-height: 1.8;
  }
}
