@layer patterns {
  /* Page-specific visual systems are added here after screenshot comparison. */
  .archive-header,
  .entry-header {
    padding-block-end: var(--ikuta-space-2);
    border-block-end: 1px solid var(--ikuta-color-gold);
  }

  .error-404 {
    min-height: 40vh;
    align-content: center;
  }

  .page-feature {
    min-width: 0;
  }

  .page-feature .c-page-content .l-stack {
    gap: 0;
  }

  .page-feature__lead {
    max-width: none;
    margin: 0 auto 2.5rem;
    font-size: 1rem;
    line-height: 3rem;
    text-align: center;
    text-wrap: pretty;
  }

  .page-feature__related {
    position: relative;
    padding-block: 5rem;
    color: var(--ikuta-color-white);
    background-color: rgb(0 0 0 / 0.5);
    background-image: var(--page-feature-background);
    background-position: center;
    background-size: cover;
  }

  .page-feature__card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 20rem));
    justify-content: center;
    gap: 2.25rem;
    width: min(100%, 67.5rem);
    margin: 1.25rem auto;
  }

  .page-feature-card {
    position: relative;
    min-width: 0;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--ikuta-color-purple-deep);
    border: 1px solid rgb(255 255 255 / 0.55);
    box-shadow: 0 2px 8px rgb(0 0 0 / 0.34);
  }

  .page-feature-card > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 500ms var(--ikuta-motion-easing);
  }

  .page-feature-card__body {
    position: absolute;
    inset: 0;
    align-content: center;
    padding: clamp(1rem, 2vw, 1.5rem);
    color: var(--ikuta-color-white);
    background: rgb(0 0 0 / 0.82);
    transition: opacity 500ms var(--ikuta-motion-easing);
  }

  .page-feature-card__body h3,
  .page-feature-card__body p {
    margin: 0;
  }

  .page-feature-card__body h3 {
    font-family: var(--ikuta-font-mincho);
    font-size: var(--ikuta-font-h3);
    font-weight: 500;
    text-align: center;
  }

  .page-feature-card__body p {
    font-size: clamp(0.82rem, 1.15vw, 0.95rem);
    line-height: 1.65;
  }

  .page-feature-card__link {
    display: block;
    padding: 0.7rem 1rem;
    color: var(--ikuta-color-white);
    text-align: center;
    text-decoration: none;
    background: #8a4d87;
    border: 1px solid rgb(255 255 255 / 0.58);
  }

  .page-feature-card__link:hover,
  .page-feature-card__link:focus-visible {
    color: var(--ikuta-color-white);
    background: var(--ikuta-color-purple);
  }

  .page-feature__to-top {
    position: fixed;
    inset-inline-end: 1.25rem;
    inset-block-end: 1.25rem;
    z-index: 20;
    width: 7.5rem;
    height: 1.875rem;
    color: var(--ikuta-color-white);
    font-size: 0.75rem;
    line-height: 1.875rem;
    text-align: center;
    background: var(--ikuta-color-purple-deep);
    border: 1px solid var(--ikuta-color-white);
    box-shadow: 0 1px 1px rgb(0 0 0 / 0.2);
    color: var(--ikuta-color-white);
  }

  @media (hover: hover) and (pointer: fine) {
    .page-feature-card__body {
      opacity: 0;
    }

    .page-feature-card:hover > img,
    .page-feature-card:focus-within > img {
      transform: scale(1.06);
    }

    .page-feature-card:hover .page-feature-card__body,
    .page-feature-card:focus-within .page-feature-card__body {
      opacity: 1;
    }
  }

  @media (max-width: 56rem) {
    .page-feature__card-grid {
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 20rem));
    }

    .page-feature-card__body {
      opacity: 1;
    }
  }

  @media (max-width: 40rem) {
    .page-feature__lead {
      line-height: 2;
      text-align: left;
    }

    .page-feature__lead br {
      display: none;
    }

    .page-feature-card {
      display: grid;
      aspect-ratio: auto;
      background: rgb(0 0 0 / 0.84);
    }

    .page-feature-card > img {
      aspect-ratio: 16 / 10;
    }

    .page-feature-card__body {
      position: static;
      padding: 1.25rem;
      background: transparent;
    }
  }

  @media (width < 60rem) {
    .page-feature .c-page-content .l-container,
    .page-feature__related .l-container {
      width: 100%;
    }

    .page-feature__lead {
      width: 100%;
      margin: 0;
      padding-block-end: 10%;
      line-height: var(--ikuta-line-body);
      text-align: left;
    }

    .page-feature__lead br {
      display: none;
    }

    .page-feature__related {
      padding: 0 5%;
      color: var(--ikuta-color-ink);
      background: var(--ikuta-color-white);
    }

    .page-feature__card-grid {
      display: block;
      width: 100%;
      margin: 0;
    }

    .page-feature-card {
      display: block;
      width: 100%;
      margin: 0 0 3%;
      padding: 0 0 10%;
      aspect-ratio: auto;
      overflow: visible;
      color: var(--ikuta-color-ink);
      background: var(--ikuta-color-white);
      border: 0;
      box-shadow: none;
    }

    .page-feature-card > img {
      width: 60%;
      height: auto;
      margin: 0 auto 3%;
      aspect-ratio: 1;
    }

    .page-feature-card__body {
      position: static;
      display: block;
      padding: 0;
      color: var(--ikuta-color-ink);
      background: transparent;
      opacity: 1;
    }

    .page-feature-card__body h3 {
      margin: 0 0 3%;
      font-size: 1.2em;
      text-align: center;
    }

    .page-feature-card__body p {
      margin: 0 0 5%;
      padding: 5%;
      font-size: 1rem;
      line-height: var(--ikuta-line-body);
      background: #efefef;
      border-radius: 0.5rem;
    }

    .page-feature-card__link {
      display: block;
      width: 80%;
      margin: 0 auto 5%;
      padding: 3% 0;
      color: var(--ikuta-color-white);
      font-family: var(--ikuta-font-mincho);
      text-align: center;
      background: linear-gradient(var(--ikuta-color-purple-deep), var(--ikuta-color-purple));
      border: 1px solid var(--ikuta-color-white);
      box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
    }
  }

  @media (width >= 60rem) {
    .page-feature__related {
      background-attachment: fixed;
      background-position: top center;
    }

    .page-feature-card__body {
      display: grid;
      grid-template-rows: 2.5rem minmax(0, 1fr) 2.5rem;
      gap: 0.625rem;
      padding: 1.25rem;
    }

    .page-feature-card {
      border: 0;
    }

    .page-feature-card__body h3 {
      width: 100%;
      height: 2.5rem;
      margin: 0;
      overflow: hidden;
      font-size: 1.125rem;
      line-height: 2.5rem;
      white-space: nowrap;
    }

    .page-feature-card__body p {
      width: 100%;
      height: auto;
      margin: 0;
      overflow: hidden;
      font-size: 1rem;
      line-height: 1.5rem;
    }

    .page-feature-card__link {
      width: 100%;
      height: 2.5rem;
      margin: 0;
      padding: 0;
      line-height: 2.5rem;
    }
  }

  .history-page {
    min-width: 0;
  }

  .history-page__lead,
  .history-deity__description,
  .history-list,
  .history-list__item,
  .history-list__description {
    max-width: none;
  }

  .history-list {
    padding: 0;
    list-style: none;
  }

  @media (width < 60rem) {
    .history-page__lead {
      margin: 0;
      padding-block-end: 10%;
      line-height: var(--ikuta-line-body);
      text-align: left;
    }

    .history-page__lead br,
    .history-deity__description br,
    .history-list__description br {
      display: none;
    }

    .history-deity {
      width: 100%;
      margin: 0 0 10%;
    }

    .history-deity__description {
      margin: 0 0 5%;
      line-height: var(--ikuta-line-body);
    }

    .history-deity__image {
      width: 100%;
      height: auto;
    }

    .history-list {
      width: 100%;
      margin: 5% 0 10%;
    }

    .history-list__item {
      width: 100%;
    }

    .history-list__description {
      width: 100%;
      margin: 0;
      padding: 3% 0 10%;
      line-height: var(--ikuta-line-body);
    }
  }

  @media (width >= 60rem) {
    .history-page .c-page-content > section {
      display: flow-root;
    }

    .history-page__lead {
      width: 100%;
      min-height: 6.1055rem;
      margin: 0;
      font-size: 1rem;
      line-height: 3rem;
      text-align: center;
    }

    .history-deity {
      display: grid;
      grid-template-columns: minmax(0, 33.75rem) 5rem 18.75rem minmax(0, 2.5rem);
      grid-template-rows: 8.75rem 1.25rem 21.25rem;
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      margin: 0 auto;
    }

    .history-deity__description {
      grid-column: 1;
      grid-row: 3;
      align-self: start;
      width: 100%;
      min-height: 17.05275rem;
      margin: 0;
      padding: 3.75rem 0 1.25rem 2.5rem;
      font-size: 1rem;
      line-height: 3rem;
      text-align: center;
    }

    .history-deity__image {
      grid-column: 3;
      grid-row: 3;
      width: 18.75rem;
      height: 21.25rem;
      object-fit: cover;
    }

    .history-list {
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      margin: 0 auto 2.5rem;
    }

    .history-list__item {
      width: 100%;
      margin: 0 0 2.5rem;
    }

    .history-list__item:last-child {
      margin-block-end: 0;
    }

    .history-list__description {
      width: calc(100% - 2.5rem);
      margin: 0;
      padding: 1.25rem;
      font-size: 1rem;
      line-height: 2rem;
      text-align: center;
      background: rgb(255 255 255 / 0.7);
      border-radius: 1rem;
      box-shadow: 0 0 6px rgb(0 0 0 / 0.2) inset;
    }

    .history-list__item:nth-child(2) .history-list__description {
      min-height: 10.55275rem;
    }

    .history-list__item:nth-child(3) .history-list__description {
      min-height: 6.55275rem;
    }
  }

  @media (60rem <= width < 68rem) {
    .history-deity {
      grid-template-columns: minmax(0, 1fr) clamp(1.25rem, 4vw, 3rem) minmax(15.625rem, 18.75rem) 0;
    }

    .history-deity__description {
      padding-inline-start: 1.25rem;
    }
  }

  .culture-page,
  .culture-page__section {
    min-width: 0;
  }

  .culture-page__lead,
  .culture-groups,
  .culture-group,
  .culture-group__description {
    max-width: none;
  }

  .culture-membership {
    border-collapse: separate;
    border-spacing: 0;
  }

  .culture-groups {
    padding: 0;
    list-style: none;
  }

  @media (width < 60rem) {
    .culture-page__lead {
      margin: 0;
      padding-block-end: 10%;
      line-height: var(--ikuta-line-body);
    }

    .culture-page__lead br,
    .culture-group__description br {
      display: none;
    }

    .culture-membership {
      width: 100%;
      margin: 0 0 10%;
      background: var(--ikuta-color-white);
    }

    .culture-membership th,
    .culture-membership td {
      display: block;
      width: 100%;
      border: 0;
    }

    .culture-membership th {
      padding: 1% 3%;
      color: var(--ikuta-color-white);
      font-weight: 400;
      text-align: left;
      background: var(--ikuta-color-muted);
    }

    .culture-membership td {
      padding: 3% 0;
    }

    .culture-groups {
      width: 100%;
      margin: 0 0 10%;
    }

    .culture-group {
      display: block;
      width: 100%;
      margin: 0 0 5%;
      padding: 5%;
      background: var(--ikuta-color-white);
      border: 1px solid var(--ikuta-color-gold);
    }

    .culture-group:last-child {
      margin-block-end: 0;
    }

    .culture-group__title {
      margin: 0 0 3%;
      padding: 3% 5%;
      color: var(--ikuta-color-white);
      font-size: 1.2em;
      font-weight: 500;
      background: var(--ikuta-color-purple-deep);
    }

    .culture-group__description {
      margin: 0 0 3%;
    }

    .culture-group__image {
      width: 100%;
      height: auto;
      margin: 0 0 3%;
    }

    .culture-group__contact {
      display: block;
      width: 80%;
      margin: 0 auto;
      padding: 3% 0;
      color: var(--ikuta-color-white);
      text-align: center;
      background: linear-gradient(var(--ikuta-color-purple-deep), var(--ikuta-color-purple));
      border: 1px solid var(--ikuta-color-white);
      box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
    }

    .culture-group--notice picture,
    .culture-group--notice img {
      width: 100%;
    }
  }

  @media (width >= 60rem) {
    .culture-page__section {
      display: flow-root;
      scroll-margin-block-start: 5rem;
    }

    .culture-page__lead {
      width: 100%;
      margin: 0 0 2.5rem;
      font-size: 1rem;
      line-height: 3rem;
      text-align: center;
    }

    .culture-membership {
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      margin: 0 auto;
      line-height: 1.5rem;
      background: var(--ikuta-color-white);
      border-block-start: 1px solid var(--ikuta-color-gold);
      border-inline-end: 1px solid var(--ikuta-color-gold);
      box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
    }

    .culture-membership th,
    .culture-membership td {
      padding: 0.625rem;
      border-block-end: 1px solid var(--ikuta-color-gold);
      border-inline-start: 1px solid var(--ikuta-color-gold);
    }

    .culture-membership th {
      width: 10rem;
    }

    .culture-groups {
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      margin: 0 auto 5rem;
    }

    .culture-group {
      display: grid;
      grid-template-columns: minmax(0, 30rem) minmax(0, 26.25rem);
      grid-template-rows: 15rem 2.5rem;
      column-gap: 1.125rem;
      width: 100%;
      min-height: 20.125rem;
      margin: 0 0 2.5rem;
      padding: 1.25rem;
      background: var(--ikuta-color-white);
      border: 1px solid var(--ikuta-color-gold);
    }

    .culture-group:last-child {
      margin-block-end: 0;
    }

    .culture-group__body {
      grid-column: 1;
      grid-row: 1;
      min-width: 0;
    }

    .culture-group__title {
      height: 2.5rem;
      margin: 0 0 0.625rem;
      padding: 0 0 0 3.125rem;
      color: var(--ikuta-color-purple-deep);
      font-size: 1.5rem;
      font-weight: 500;
      line-height: 2.5rem;
      background: url("../images/pages/culture/title-mark.png") no-repeat top left / 2.5rem 2.5rem;
    }

    .culture-group__description {
      margin: 0;
      font-size: 1rem;
      line-height: 1.5rem;
    }

    .culture-group__image {
      grid-column: 2;
      grid-row: 1 / 3;
      width: 26.25rem;
      height: 17.5rem;
      object-fit: cover;
      box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
    }

    .culture-group__contact {
      grid-column: 1;
      grid-row: 2;
      display: block;
      width: 100%;
      height: 2.5rem;
      color: var(--ikuta-color-white);
      font-size: 1.25rem;
      line-height: 2.5rem;
      text-align: center;
      background: var(--ikuta-color-purple-deep);
      box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
    }

    .culture-group--notice {
      display: block;
      min-height: 53.875rem;
    }

    .culture-group--notice picture {
      display: block;
      width: 43.75rem;
      margin: 0 auto;
    }

    .culture-group--notice img {
      width: 43.75rem;
      height: 51.25rem;
    }
  }

  @media (60rem <= width < 68rem) {
    .culture-group {
      grid-template-columns: minmax(0, 1fr) minmax(21rem, 26.25rem);
      column-gap: clamp(0.75rem, 2vw, 1.125rem);
    }
  }

  .rite-page,
  .rite-page__content,
  .rite-season-tabs,
  .rite-season-panel,
  .rite-calendar__months,
  .rite-event-list,
  .rite-event { min-width: 0; }

  .rite-event { max-width: none; }

  .rite-season-tab,
  .rite-calendar__month h2,
  .rite-event__header h3 {
    font-family: var(--ikuta-font-mincho);
    font-weight: 500;
  }

  .rite-season-tabs {
    display: grid;
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
    margin-inline: auto;
    border-block-start: 0.5rem solid #4c4c4c;
  }

  .rite-season-tab {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 0.75rem;
    min-width: 0;
    padding: 0.875rem 0.5rem;
    color: var(--ikuta-color-white);
    border: 0;
    border-inline-end: 1px solid rgb(255 255 255 / 0.55);
    cursor: pointer;
    opacity: 0.72;
    transition: opacity 0.2s, transform 0.2s;
  }

  .rite-season-tab:last-child { border-inline-end: 0; }
  .rite-season-tab strong { font-size: 1.5rem; }
  .rite-season-tab span { font-size: 0.875rem; }
  .rite-season-tab--spring { background: #ad5ca5; }
  .rite-season-tab--summer { background: #559b53; }
  .rite-season-tab--autumn { background: #ad913c; }
  .rite-season-tab--winter { background: #4b7fa1; }

  .rite-season-tab:hover,
  .rite-season-tab:focus-visible,
  .rite-season-tab[aria-selected="true"] {
    opacity: 1;
    transform: translateY(-0.2rem);
  }

  .rite-season-tab:focus-visible {
    outline: 3px solid var(--ikuta-color-purple-deep);
    outline-offset: 2px;
  }

  .rite-season-panel {
    --rite-season-color: #ad5ca5;
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
    margin-inline: auto;
  }

  .rite-season-panel--summer { --rite-season-color: #559b53; }
  .rite-season-panel--autumn { --rite-season-color: #ad913c; }
  .rite-season-panel--winter { --rite-season-color: #4b7fa1; }
  .rite-season-panel[hidden] { display: none; }

  .rite-calendar__months {
    display: grid;
    background-color: rgb(255 255 255 / 0.92);
    background-image: radial-gradient(circle at 80% 35%, rgb(206 190 190 / 0.2) 0 0.2rem, transparent 0.25rem);
    background-size: 2.5rem 2.5rem;
    border: 0.625rem solid var(--rite-season-color);
    border-block-start: 0;
  }

  .rite-calendar__month {
    min-width: 0;
    padding: 1.25rem;
    border-inline-end: 1px solid #ddd;
  }

  .rite-calendar__month:last-child { border-inline-end: 0; }

  .rite-calendar__month h2 {
    margin: 0 0 1rem;
    padding-block-end: 0.5rem;
    font-size: 1.125rem;
    border-block-end: 2px solid var(--rite-season-color);
  }

  .rite-calendar__month ul,
  .rite-event-list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .rite-calendar__month li {
    margin-block-end: 0.5rem;
    line-height: 1.6;
  }

  .rite-calendar__month a {
    color: inherit;
    text-decoration-color: var(--rite-season-color);
    text-underline-offset: 0.2em;
  }

  .rite-calendar__empty {
    max-width: none;
    margin: 0;
    color: #999;
  }

  .rite-event-list {
    background: rgb(255 255 255 / 0.82);
  }

  .rite-event {
    padding: 1.25rem 0;
    border-block-end: 1px solid #c9c1b4;
    scroll-margin-top: 6rem;
  }

  .rite-event:last-child { border-block-end: 0; }

  .rite-event__header {
    display: grid;
    align-items: start;
    gap: 1.25rem;
  }

  .rite-event__date {
    max-width: none;
    margin: 0;
    padding: 0.375rem 0.75rem;
    color: var(--ikuta-color-white);
    font-size: 0.875rem;
    line-height: 1.5;
    text-align: center;
    background: linear-gradient(90deg, var(--ikuta-color-purple-deep), #63417c);
  }

  .rite-event__header h3 {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.6;
  }

  .rite-event__header h3 span {
    display: inline-block;
    margin-inline-start: 0.65rem;
    color: #6d6259;
    font-family: var(--ikuta-font-gothic);
    font-size: 0.75rem;
    font-weight: 400;
  }

  .rite-event__body {
    display: grid;
    gap: 1.25rem;
    margin-block-start: 1.25rem;
  }

  .rite-event__description {
    max-width: none;
    margin: 0;
    line-height: 1.8;
  }

  .rite-event__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: var(--ikuta-color-white);
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.25);
  }

  .rite-event__back {
    display: block;
    width: fit-content;
    margin: 0.75rem 0 0 auto;
    color: var(--ikuta-color-purple-deep);
    font-size: 0.8125rem;
    text-decoration: none;
  }

  .rite-event__back:hover,
  .rite-event__back:focus-visible { text-decoration: underline; }

  @media (width < 60rem) {
    .rite-page__content {
      padding: 0 5% 10%;
      background: var(--ikuta-color-white);
    }

    .rite-season-tabs {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      width: 100%;
    }

    .rite-season-tab { border-block-end: 1px solid rgb(255 255 255 / 0.55); }
    .rite-season-tab strong { font-size: 1.25rem; }

    .rite-season-panel { width: 100%; }

    .rite-calendar__months {
      grid-template-columns: 1fr;
      border-width: 0.4rem;
      border-block-start: 0;
    }

    .rite-calendar__month {
      padding: 1rem;
      border-inline-end: 0;
      border-block-end: 1px solid #ddd;
    }

    .rite-calendar__month:last-child { border-block-end: 0; }

    .rite-event { padding: 1rem; }

    .rite-event__header {
      grid-template-columns: 1fr;
      gap: 0.5rem;
    }

    .rite-event__date { width: fit-content; min-width: 9rem; }
    .rite-event__header h3 { font-size: 1.0625rem; }

    .rite-event__header h3 span {
      display: block;
      margin: 0.25rem 0 0;
    }

    .rite-event__body { grid-template-columns: 1fr; }
    .rite-event__image { grid-row: 1; }
    .rite-event__description br { display: block; margin-block-end: 0.75rem; content: ""; }
  }

  @media (width >= 60rem) {
    .rite-page__content {
      padding: 3rem 0 5rem;
      background-image:
        url("../images/pages/introduction/content-top.jpg"),
        url("../images/pages/introduction/content-background.jpg");
      background-repeat: repeat-x, repeat-y;
      background-position: top center, top center;
      background-size: auto, 100% auto;
    }


    .rite-season-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .rite-calendar__months { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    .rite-event-list { padding-inline: 1.25rem; }
    .rite-event__header { grid-template-columns: 9.375rem minmax(0, 1fr); }
    .rite-event__body { grid-template-columns: minmax(0, 1fr) 22.5rem; }

    .rite-page__content {
      display: grid;
      row-gap: 0;
    }

    .rite-page__content[data-rite-active="spring"] {
      grid-template-columns: minmax(0, 1fr) 4.375rem minmax(0, 41.25rem) repeat(3, 4.375rem) minmax(0, 1fr);
    }

    .rite-page__content[data-rite-active="summer"] {
      grid-template-columns: minmax(0, 1fr) repeat(2, 4.375rem) minmax(0, 41.25rem) repeat(2, 4.375rem) minmax(0, 1fr);
    }

    .rite-page__content[data-rite-active="autumn"] {
      grid-template-columns: minmax(0, 1fr) repeat(3, 4.375rem) minmax(0, 41.25rem) 4.375rem minmax(0, 1fr);
    }

    .rite-page__content[data-rite-active="winter"] {
      grid-template-columns: minmax(0, 1fr) repeat(4, 4.375rem) minmax(0, 41.25rem) minmax(0, 1fr);
    }

    .rite-page__content > .c-page-title {
      grid-column: 1 / -1;
      grid-row: 1;
      margin-block-start: 0;
    }

    .rite-page__content::before {
      content: "";
      grid-column: 1 / -1;
      grid-row: 2;
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      height: 23.75rem;
      margin-inline: auto;
      background: #4c4c4c;
    }

    .rite-season-tabs,
    .rite-season-panel:not([hidden]) {
      display: contents;
    }

    .rite-season-tab {
      grid-row: 2;
      z-index: 1;
      align-self: center;
      width: 4.375rem;
      height: 22.5rem;
      padding: 1.25rem 0;
      writing-mode: vertical-rl;
      text-orientation: upright;
      border: 0;
      border-inline-end: 1px solid rgb(255 255 255 / 0.55);
      opacity: 0.86;
      transform: none;
    }

    .rite-season-tab strong {
      font-size: 1.5rem;
      letter-spacing: 0.08em;
    }

    .rite-season-tab span {
      font-size: 1rem;
      letter-spacing: 0.08em;
    }

    .rite-season-tab:hover,
    .rite-season-tab:focus-visible,
    .rite-season-tab[aria-selected="true"] {
      opacity: 1;
      transform: none;
    }

    .rite-page__content[data-rite-active="spring"] .rite-season-tab--spring,
    .rite-page__content[data-rite-active="summer"] .rite-season-tab--spring,
    .rite-page__content[data-rite-active="autumn"] .rite-season-tab--spring,
    .rite-page__content[data-rite-active="winter"] .rite-season-tab--spring { grid-column: 2; }

    .rite-page__content[data-rite-active="spring"] .rite-season-tab--summer { grid-column: 4; }
    .rite-page__content[data-rite-active="summer"] .rite-season-tab--summer,
    .rite-page__content[data-rite-active="autumn"] .rite-season-tab--summer,
    .rite-page__content[data-rite-active="winter"] .rite-season-tab--summer { grid-column: 3; }

    .rite-page__content[data-rite-active="spring"] .rite-season-tab--autumn,
    .rite-page__content[data-rite-active="summer"] .rite-season-tab--autumn { grid-column: 5; }
    .rite-page__content[data-rite-active="autumn"] .rite-season-tab--autumn,
    .rite-page__content[data-rite-active="winter"] .rite-season-tab--autumn { grid-column: 4; }

    .rite-page__content[data-rite-active="spring"] .rite-season-tab--winter,
    .rite-page__content[data-rite-active="summer"] .rite-season-tab--winter,
    .rite-page__content[data-rite-active="autumn"] .rite-season-tab--winter { grid-column: 6; }
    .rite-page__content[data-rite-active="winter"] .rite-season-tab--winter { grid-column: 5; }

    .rite-page__content[data-rite-active="spring"] .rite-calendar__months { grid-column: 3; }
    .rite-page__content[data-rite-active="summer"] .rite-calendar__months { grid-column: 4; }
    .rite-page__content[data-rite-active="autumn"] .rite-calendar__months { grid-column: 5; }
    .rite-page__content[data-rite-active="winter"] .rite-calendar__months { grid-column: 6; }

    .rite-calendar__months {
      grid-row: 2;
      z-index: 1;
      align-self: center;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      width: 100%;
      height: 22.5rem;
      padding: 0.625rem 0.625rem 0.625rem 0;
      background-color: var(--rite-season-color);
      background-repeat: no-repeat;
      background-position: left center;
      background-origin: content-box;
      background-size: 100% 100%;
      border: 0;
    }

    .rite-season-panel--spring .rite-calendar__months { background-image: url("../images/pages/rite/calendar-1.jpg"); }
    .rite-season-panel--summer .rite-calendar__months { background-image: url("../images/pages/rite/calendar-2.jpg"); }
    .rite-season-panel--autumn .rite-calendar__months { background-image: url("../images/pages/rite/calendar-3.jpg"); }
    .rite-season-panel--winter .rite-calendar__months { background-image: url("../images/pages/rite/calendar-4.jpg"); }

    .rite-calendar__month {
      display: block;
      height: 100%;
      padding: 1.25rem 0.75rem;
      overflow: hidden;
      writing-mode: vertical-rl;
      text-orientation: upright;
      border-inline-end: 1px solid rgb(70 60 55 / 0.12);
    }

    .rite-calendar__month h2 {
      margin: 0 0 0 0.75rem;
      padding: 0 0 0 0.5rem;
      font-size: 1rem;
      line-height: 1.6;
      border: 0;
      border-block-end: 1px solid rgb(70 60 55 / 0.25);
    }

    .rite-calendar__month ul {
      margin: 0;
      padding: 0;
    }

    .rite-calendar__month li {
      margin: 0 0 0 0.55rem;
      font-size: 0.875rem;
      line-height: 1.65;
    }

    .rite-calendar__empty { margin: 0; }

    .rite-page__content .c-section-title-season,
    .rite-event-list {
      grid-column: 1 / -1;
    }

    .rite-page__content .c-section-title-season {
      grid-row: 3;
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 56.25rem);
    }

    .rite-event-list {
      grid-row: 4;
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      margin-inline: auto;
      padding: 0;
      background: transparent;
    }

    .rite-event {
      padding: 1.25rem 0;
      border-block-end: 1px solid rgb(167 134 97 / 0.32);
    }

    .rite-event:not(.rite-event--featured) { padding-block: 1.625rem; }

    .rite-event__header {
      grid-template-columns: 9.375rem minmax(0, 40.625rem);
      gap: 1.25rem;
    }

    .rite-event__date {
      height: 1.875rem;
      padding-block: 0;
      line-height: 1.875rem;
    }

    .rite-event__header h3 {
      height: 1.875rem;
      line-height: 1.875rem;
    }

    .rite-event__body {
      grid-template-columns: minmax(0, 36.25rem) 22.5rem;
      gap: 1.25rem;
    }

    .rite-event__description {
      font-size: 1rem;
      line-height: 1.625rem;
    }

    .rite-event__back {
      width: 6.25rem;
      height: 1.875rem;
      margin-block-start: 1.25rem;
      color: #fff;
      font-family: var(--ikuta-font-gothic);
      font-size: 0.75rem;
      line-height: 1.875rem;
      text-align: center;
      background: #303030;
      box-shadow: 0 1px 1px rgb(0 0 0 / 0.2);
    }
  }

  .amulet-page,
  .amulet-grid { min-width: 0; }

  .amulet-page__lead,
  .amulet-card p {
    max-width: none;
  }

  .amulet-grid {
    display: grid;
    padding: 0;
    list-style: none;
    background: #406209 url("../images/pages/amulet/amulet-list-mark.png") repeat;
  }

  .amulet-card {
    min-width: 0;
    overflow: hidden;
    text-align: center;
    background: var(--ikuta-color-white);
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.25);
  }

  .amulet-card img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
  }

  .amulet-card p {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    line-height: 1.5;
  }

  @media (width < 60rem) {
    .amulet-page__lead {
      margin: 0;
      padding-block: 2rem;
      line-height: 1.9;
    }

    .amulet-page__lead br { display: none; }

    .amulet-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.75rem;
      padding: 0.75rem;
    }

    .amulet-card { padding: 0.4rem; }

    .amulet-card p {
      min-height: 3.5rem;
      padding: 0.5rem 0.25rem 0.15rem;
      font-size: 0.8125rem;
    }
  }

  @media (width >= 60rem) {
    .amulet-page__lead {
      width: 100%;
      margin: 0 auto 2.5rem;
      font-size: 1rem;
      line-height: 3rem;
      text-align: center;
    }


    .amulet-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.9375rem;
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      margin: 0 auto;
      padding: 0.9375rem;
    }

    .amulet-card { padding: 0.625rem; }

    .amulet-card p {
      min-height: 2.75rem;
      padding: 0.5rem 0.25rem 0;
      font-size: 1rem;
    }
  }

  .goshuin-page__lead,
  .goshuin-page__notice { max-width: none; text-align: center; }
  .goshuin-page__notice .c-button { margin: 1rem auto 0; }
  .goshuin-page__notice p { max-width: none; }
  .goshuin-page__images { width: min(90%, 56.25rem); margin-inline: auto; }
  .goshuin-page__images img { display: block; width: 100%; margin: 0; }
  .goshuin-page__images img:nth-child(-n + 4) { margin-block-end: 3rem; }@media (width < 60rem) {
    .goshuin-page__lead,
    .goshuin-page__notice { padding-block: 5%; text-align: left; }
    .goshuin-page__lead br,
    .goshuin-page__notice br { display: none; }
    .goshuin-page__images { width: 100%; }
  }

  @media (width >= 60rem) {
    .goshuin-page__lead,
    .goshuin-page__notice { width: 100%; margin: 0 auto 2.5rem; font-size: 1rem; line-height: 3rem; }
  }

  .faq-page__answer .c-button { margin-block: 0.625rem 1.25rem; }

  .faq-page__groups,
  .faq-page__group,
  .faq-page__list {
    min-width: 0;
  }

  .faq-page__question,
  .faq-page__answer {
    max-width: none;
  }

  .faq-page__question {
    display: block;
  }

  .faq-page__question::before,
  .faq-page__answer::before {
    color: #919d21;
    font-family: "Times New Roman", Times, serif;
    font-size: 1.5rem;
    text-decoration: none;
  }

  .faq-page__question::before {
    display: inline-block;
    height: 1.875rem;
    margin-inline-end: 0.625rem;
    line-height: 1.875rem;
    content: "Q.";
  }

  .faq-page__answer {
    display: flow-root;
  }

  .faq-page__answer::before {
    display: block;
    float: left;
    height: 1.875rem;
    margin-inline-end: 0.625rem;
    content: "A.";
    line-height: 1.25;
  }  @media (width < 60rem) {
    .faq-page__list {
      display: grid;
      gap: 5vw;
      margin: 5% 0 10%;
    }

    .faq-page__question {
      height: auto;
      margin: 0;
    }

    .faq-page__answer {
      min-height: 0;
      margin: 0;
      padding: 5%;
      background: #efefef;
      border-radius: 0.5rem;
    }

    .faq-page__answer::before {
      margin-inline-end: 2%;
      padding-block-end: 3em;
      font-size: 1.2em;
    }
  }

  @media (width >= 60rem) {
    .faq-page__list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 28.75rem));
      gap: 2.5rem;
      width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
      margin: 0 auto;
      padding-block-end: 2.5rem;
    }

    .faq-page__item {
      min-height: 9.125rem;
    }

    .faq-page__question {
      height: 1.875rem;
      margin-block-end: 0.625rem;
      font-size: 1.125rem;
      line-height: 1.875rem;
    }

    .faq-page__answer {
      min-height: 6.25rem;
      margin: 0;
      padding: 1rem;
      line-height: normal;
      background: var(--ikuta-color-white);
      border-radius: 0.375rem;
    }

    .faq-page__answer::before {
      height: 4.25rem;
    }
  }

  .access-page__locations,
  .access-page__location,
  .access-page__card { min-width: 0; }
  .access-page__image { width: 100%; }
  .access-page__map { overflow: hidden; background: var(--ikuta-color-white); box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2); }
  .access-page__map iframe { width: 100%; height: 100%; border: 0; }
  .access-page__map:not(.is-active) iframe { pointer-events: none; }
  .access-page__links a,
  .access-page__details-link {
    display: block;
    color: var(--ikuta-color-white);
    line-height: 1.5rem;
    text-align: center;
    text-decoration: none;
    background: linear-gradient(#6940ae, #271545);
    border: 1px solid #fef7e5;
    box-shadow: 0 1px 1px rgb(0 0 0 / 0.2);
  }
  .access-page__details { font-style: normal; line-height: normal; }
  .access-page__details h3 { font-size: 1rem; font-weight: 500; }
  .access-page__details address { max-width: none; font-style: normal; }
  .access-page__details p,
  .access-page__details address { max-width: none; }
  .access-page__details a:not(.access-page__details-link) { color: inherit; text-decoration: none; }
  .access-page__details strong { color: #919d21; font-weight: 400; border-block-end: 1px solid #919d21; }

  @media (width < 60rem) {
    .access-page__location { margin: 5% 0; }
    .access-page__card { display: flex; flex-direction: column; gap: 3vw; margin: 5% 0 10%; padding: 5%; background: var(--ikuta-color-white); border: 1px solid #ccc; }
    .access-page__side { display: contents; }
    .access-page__map { order: 1; width: 100%; aspect-ratio: 3 / 2; }
    .access-page__links { order: 2; }
    .access-page__details { order: 3; }
    .access-page__details h3 { margin-block: 0.5rem 0; padding: 2% 0; text-align: center; background: #ccc; }
    .access-page__details p,
    .access-page__details address { margin-block-end: 3%; }
    .access-page__links a,
    .access-page__details-link { width: 80%; margin: 0 auto 1rem; padding: 3% 0; }
    .access-page__map iframe { pointer-events: auto; }
  }

  @media (width >= 60rem) {
    .access-page__locations { width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem); margin: 0 auto; }
    .access-page__location { margin-block-end: 2.5rem; }
    #pointOtabi { scroll-margin-block-start: 6.25rem; }
    .access-page__card { display: flow-root; width: 60rem; padding: 1.25rem; background: var(--ikuta-color-white); box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2); }
    .access-page__image { height: auto; margin-block-end: 1.25rem; }
    .access-page__side { float: right; width: 31.25rem; }
    .access-page__map { width: 30rem; height: 20rem; margin-block-end: 0.625rem; padding: 0.625rem; }
    .access-page__map iframe { width: 30rem; max-width: none; height: 20rem; }
    .access-page__links a { width: 100%; margin-block-end: 1.25rem; padding: 0.625rem 0; }
    .access-page__details { float: left; width: 25rem; }
    .access-page__details h3 { height: 1.875rem; line-height: 1.875rem; }
    .access-page__details p,
    .access-page__details address { margin-block-end: 0.625rem; padding: 0.3125rem; font-size: 0.9375rem; line-height: 1.4375rem; }
    .access-page__details .access-page__contact { line-height: 1.0625rem; }
    .access-page__details-link { width: 24.875rem; height: 2.5rem; line-height: 2.5rem; }
  }

  .worship-page__gift img { width: 100%; }
  .worship-page__guide,
  .worship-page__faq-list { min-width: 0; }
  .worship-page__lead,
  .worship-page__reservation,
  .worship-page__hall p,
  .worship-page__answer div { max-width: none; }
  .worship-page__table { width: 100%; border-collapse: collapse; }
  .worship-page__table caption {
    color: var(--ikuta-color-white);
    font-family: var(--ikuta-font-serif);
    text-align: center;
    background: linear-gradient(#606060, #303030);
  }
  .worship-page__table th,
  .worship-page__table td { font-weight: 400; background: var(--ikuta-color-white); border: 1px solid #e5e5e5; }
  .worship-page__table a { color: inherit; text-decoration: none; }
  .worship-page__gift { margin: 0; background: url("../images/pages/worship/photo_back.jpg"); box-shadow: 0 2px 2px rgb(0 0 0 / 0.2); }
  .worship-page__hall { background: rgb(255 255 255 / 0.8); border: 2px solid #a78661; }
  .worship-page__hall .c-button { margin: 1rem auto 0; }
  .worship-page__hall-line { display: block; }
  .worship-page__hall strong,
  .worship-page__hall-line { word-break: keep-all; }

  .worship-page__question::before,
  .worship-page__answer::before {
    color: #919d21;
    font-family: "Times New Roman", Times, serif;
    font-size: 1.5rem;
  }
  .worship-page__question::before { display: inline-block; margin-inline-end: 0.625rem; content: "Q."; }
  .worship-page__answer { position: relative; }
  .worship-page__answer::before { position: absolute; content: "A."; }
  .worship-page__answer p + p { margin-block-start: 1rem; }

  @media (width < 60rem) {
    .worship-page__lead { padding-block-end: 10%; line-height: 1.8; }
    .worship-page__lead br { display: none; }
    .worship-page__prayer { display: flex; flex-direction: column; }
    .worship-page__gift-title { padding: 3% 0; color: var(--ikuta-color-white); font-size: 1.2em; font-weight: 500; text-align: center; text-shadow: -1px 1px 1px rgb(0 0 0 / 0.6); background: url("../images/pages/history/section-title-mobile.png") var(--ikuta-color-purple-deep) repeat; }
    .worship-page__prayer > .c-section-title-plain { order: 0; }
    .worship-page__guide { display: contents; }
    .worship-page__table { order: 1; margin-block: 10% 1rem; }
    .worship-page__table caption { padding: 3% 0; color: #303030; font-size: 1.4rem; background: var(--ikuta-color-white); }
    .worship-page__table th,
    .worship-page__table td { display: block; width: 100%; }
    .worship-page__table th { padding: 1% 3%; color: var(--ikuta-color-white); background: #606060; }
    .worship-page__table td { padding: 3% 0; border-block-start: 0; }
    .worship-page__reservation { order: 2; margin: 0 0 10%; line-height: 1.8; }
    .worship-page__hall { order: 3; margin: 0 0 10%; padding: 5%; text-align: center; }
    .worship-page__gift-title { order: 4; margin: 0 0 5%; }
    .worship-page__gift { order: 5; margin-block-end: 10%; padding: 3%; }
    .worship-page__hall p { margin: 0; }

  .worship-page__faq-list { display: grid; gap: 2rem; margin-block: 5% 10%; }
    .worship-page__faq-item { min-width: 0; }
    .worship-page__question { margin-block-end: 0.625rem; }
    .worship-page__answer { margin: 0; padding: 1.25rem 1.25rem 1.25rem 2.5rem; background: #efefef; border-radius: 0.375rem; }
    .worship-page__answer::before { top: 0.625rem; left: 0.625rem; }  }

  @media (width >= 60rem) {
    .worship-page__lead { margin: 0 auto 2.5rem; font-size: 1rem; line-height: 3rem; text-align: center; }
    .worship-page__guide { display: grid; grid-template-columns: 33.75rem 17.5rem; grid-template-areas: "table gift" "note gift"; column-gap: 3.75rem; row-gap: 0.625rem; width: 55rem; margin: 0 auto 3rem; padding-block-end: 1.3125rem; }
    .worship-page__table { grid-area: table; }
    .worship-page__gift-title { display: none; }
    .worship-page__table caption { height: 2.25rem; line-height: 2.25rem; }
    .worship-page__table th,
    .worship-page__table td { height: 2.625rem; padding: 0.59375rem 1.25rem; font-size: 0.9375rem; line-height: normal; }
    .worship-page__table th { width: 11.25rem; text-align: center; }
    .worship-page__table td { width: 17.5rem; }
    .worship-page__gift { grid-area: gift; width: 17.5rem; height: 12.083rem; padding: 0.625rem; }
    .worship-page__reservation { grid-area: note; margin: 0; font-size: 0.875rem; line-height: 1.75rem; }
    .worship-page__hall { width: 37.5rem; min-height: 11.875rem; margin: 0 auto 8rem; padding: 1.0625rem; text-align: center; }
    .worship-page__hall p { min-height: 4.5rem; margin: 0; line-height: 1.5rem; }

  .worship-page__faq-list { width: 43.75rem; margin: 0 auto; }
    .worship-page__faq-item { margin-block-end: 2.5rem; }
    .worship-page__question { margin-block-end: 0.625rem; line-height: normal; }
    .worship-page__answer { margin: 0; padding: 1.25rem 1.25rem 1.25rem 2.5rem; line-height: normal; background: var(--ikuta-color-white); border-radius: 0.375rem; }
    .worship-page__answer div,
    .worship-page__answer p { line-height: normal; }
    .worship-page__answer::before { top: 0.625rem; left: 0.625rem; }  }

  .precinct-page,
  .precinct-shrines,
  .precinct-shrines__viewer,
  .precinct-shrines__slides,
  .precinct-sites { min-width: 0; }

  .precinct-shrines__map img,
  .precinct-shrine__image,
  .precinct-site__image { width: 100%; }
  .precinct-page__lead,
  .precinct-shrine__favor,
  .precinct-shrine__location,
  .precinct-shrine__deity-title,
  .precinct-shrine__deities,
  .precinct-site__description { max-width: none; }
  .precinct-shrines__slides,
  .precinct-sites { padding: 0; list-style: none; }
  .precinct-shrines__map { display: block; }
  .precinct-shrines__map img { height: auto; }
  .precinct-shrine__name,
  .precinct-site__title { font-family: var(--ikuta-font-mincho); font-weight: 500; }
  .precinct-shrine__deities { padding: 0; list-style: none; }
  .precinct-shrine__deities li { max-width: none; }
  .precinct-shrine__deities ruby { white-space: nowrap; }
  .precinct-shrine-thumb { font: inherit; cursor: pointer; }

  .page-precinct .page-feature-card { border: 1px solid #ddd; }
  .page-precinct .page-feature-card > img,
  .page-precinct .page-feature-card__body { transition-duration: 800ms; }
  .page-precinct .page-feature-card__body { background: rgb(0 0 0 / 0.8); }
  .page-precinct .page-feature-card__link { background: #d28bcf; border: 0; }
  .page-precinct .page-feature-card__link:hover,
  .page-precinct .page-feature-card__link:focus-visible { background: #52446a; }

  @media (width < 60rem) {
    .precinct-page__lead { margin: 0; padding-block-end: 10%; line-height: var(--ikuta-line-body); }
    .precinct-page__lead br,
    .precinct-site__description br { display: none; }
    .precinct-shrines { display: flex; flex-direction: column; }
    .precinct-shrines__map { order: 0; margin-block-end: 5%; }
    .precinct-shrines__hotspots { display: none; }
    .precinct-shrines__viewer { order: 1; }
    .precinct-shrines__slides { margin: 0; }
    .precinct-shrine { margin: 0 0 5%; padding: 5%; background: #efefef; border: 1px solid #ccc; }
    .precinct-shrine__name { margin: 0 0 3%; font-size: 1.2em; }
    .precinct-shrine__favor { margin: 0; }
    .precinct-shrine__image { height: auto; margin-block-end: 0; }
    .precinct-shrine__location { margin: 0 0 3%; }
    .precinct-shrine__deity-title { margin: 0; text-align: center; }
    .precinct-shrine__deities { margin: 0; padding: 3%; text-align: center; background: var(--ikuta-color-white); border: 1px solid #ccc; border-radius: 0.5rem; }
    .precinct-shrine__deities li { text-align: center; }
    .precinct-shrines__arrow,
    .precinct-shrines__thumbs { display: none; }
    .precinct-sites { margin: 0; }
    .precinct-site { display: grid; grid-template-areas: "title" "image" "description"; margin: 0 0 5%; padding: 5%; background: #efefef; border: 1px solid #ccc; }
    .precinct-site__title { grid-area: title; margin: 0 0 3%; font-size: 1.2em; }
    .precinct-site__title img { display: none; }
    .precinct-site__image { grid-area: image; height: auto; margin-block-end: 0; }
    .precinct-site__description { grid-area: description; margin: 0; line-height: var(--ikuta-line-body); }
  }

  @media (width >= 60rem) {
    .precinct-page__lead { margin: 0 auto 2.5rem; font-size: 1rem; line-height: 3rem; text-align: center; }
    .precinct-shrines { display: grid; grid-template-columns: 40rem 25rem; grid-template-areas: "viewer map" "thumbs thumbs"; column-gap: 10rem; row-gap: 1.25rem; width: 75rem; margin: 0 auto 5rem; }
    .precinct-shrines__viewer { position: relative; grid-area: viewer; width: 40rem; height: 37.5rem; background: url("../images/pages/precinct/main_shrine_back.jpg") no-repeat center / cover; }
    .precinct-shrines__slides { width: 40rem; height: 37.5rem; margin: 0; overflow: hidden; }
    .precinct-shrine { width: 40rem; height: 37.5rem; padding-block-start: 1.25rem; color: var(--ikuta-color-white); }
    .precinct-shrine:not(.is-active) { display: none; }
    .precinct-shrine__name { width: 15rem; height: 3.125rem; margin: 0 0 0 4.375rem; font-size: 1.5rem; line-height: 3.125rem; }
    .precinct-shrine__favor { position: absolute; top: 1.25rem; right: 4.375rem; width: 25rem; height: 3.125rem; margin: 0; overflow: hidden; line-height: 3.125rem; text-align: right; white-space: nowrap; }
    .precinct-shrine__image { display: block; width: 40rem; height: 25rem; object-fit: cover; }
    .precinct-shrine__location { width: 31.25rem; height: 1.875rem; margin: 0 auto; line-height: 1.875rem; text-align: right; }
    .precinct-shrine__deity-title { width: 31.25rem; height: 1.875rem; margin: 0 auto; line-height: 1.875rem; text-align: center; }
    .precinct-shrine__deities { display: flex; justify-content: center; width: 40rem; height: 3rem; margin: 0; color: var(--ikuta-color-white); text-align: center; }
    .precinct-shrine__deities li { display: grid; place-content: center; width: 12.375rem; height: 3rem; margin: 0 0.375rem; font-size: 1.25rem; line-height: 1.2; background: rgb(0 0 0 / 0.2); border: 1px solid var(--ikuta-color-white); }
    .precinct-shrines__arrow { position: absolute; top: 46%; z-index: 2; width: 3rem; height: 4rem; padding: 0; color: rgb(255 255 255 / 0.85); font-family: serif; font-size: 4rem; line-height: 1; background: transparent; border: 0; transform: translateY(-50%); }
    .precinct-shrines__arrow:hover,
    .precinct-shrines__arrow:focus-visible { color: var(--ikuta-color-white); text-shadow: 0 0 0.5rem rgb(255 255 255 / 0.8); }
    .precinct-shrines__arrow--previous { left: 0.5rem; }
    .precinct-shrines__arrow--next { right: 0.5rem; }
    .precinct-shrines__map { position: relative; grid-area: map; width: 25rem; height: 37.5rem; }
    .precinct-shrines__map img { width: 25rem; height: 37.5rem; object-fit: cover; }
    .precinct-shrines__hotspots { position: absolute; inset: 0; }
    .precinct-shrine-hotspot { position: absolute; display: grid; place-content: center; width: 1.25rem; height: 1.25rem; padding: 0; color: var(--ikuta-color-white); font-family: var(--ikuta-font-mincho); font-size: 0.875rem; line-height: 1; background: #303030; border: 1px solid #efefef; box-shadow: 0 2px 2px 1px rgb(0 0 0 / 0.2); cursor: pointer; }
    .precinct-shrine-hotspot:hover,
    .precinct-shrine-hotspot:focus-visible { color: #303030; background: #efefef; }
    .precinct-shrine-hotspot.is-active { color: var(--ikuta-color-white); background: var(--ikuta-color-purple); }
    .precinct-shrine-hotspot:nth-child(1) { top: 33.6667%; left: 63%; }
    .precinct-shrine-hotspot:nth-child(2) { top: 33.6667%; left: 75%; }
    .precinct-shrine-hotspot:nth-child(3) { top: 33.6667%; left: 69%; }
    .precinct-shrine-hotspot:nth-child(4) { top: 33.6667%; left: 57%; }
    .precinct-shrine-hotspot:nth-child(5) { top: 33.6667%; left: 51%; }
    .precinct-shrine-hotspot:nth-child(6) { top: 30.3333%; left: 30%; }
    .precinct-shrine-hotspot:nth-child(7) { top: 15%; left: 82%; }
    .precinct-shrine-hotspot:nth-child(8) { top: 45%; left: 83.5%; }
    .precinct-shrine-hotspot:nth-child(9) { top: 41%; left: 85.5%; }
    .precinct-shrine-hotspot:nth-child(10) { top: 37%; left: 87.5%; }
    .precinct-shrine-hotspot:nth-child(11) { top: 23.6667%; left: 71.5%; }
    .precinct-shrine-hotspot:nth-child(12) { top: 76.8333%; left: 20%; }
    .precinct-shrine-hotspot:nth-child(13) { top: 76.8333%; left: 74.5%; }
    .precinct-shrine-hotspot:nth-child(14) { top: 19.3333%; left: 48.75%; }
    .precinct-shrine-hotspot:nth-child(15) { top: 13%; left: 72.5%; }
    .precinct-shrines__thumbs { position: relative; display: grid; grid-template-columns: 3.75rem minmax(0, 1fr) 3.75rem; grid-area: thumbs; width: 75rem; height: 10.375rem; overflow: hidden; background: url("../images/pages/precinct/thumb_shrine_list.jpg") no-repeat center / 100% 100%; }
    .precinct-shrines__thumb-viewport { min-width: 0; overflow: hidden; scroll-behavior: smooth; }
    .precinct-shrines__thumb-track { display: flex; gap: 1.25rem; width: max-content; padding-block: 1rem; }
    .precinct-shrines__thumb-arrow { width: 3.75rem; height: 10.375rem; padding: 0; color: var(--ikuta-color-white); font-family: serif; font-size: 4rem; line-height: 1; background: transparent; border: 0; }
    .precinct-shrines__thumb-arrow:hover,
    .precinct-shrines__thumb-arrow:focus-visible { color: var(--ikuta-color-white); text-shadow: 0 0 0.5rem rgb(255 255 255 / 0.8); }
    .precinct-shrine-thumb { flex: 0 0 10rem; height: 8.375rem; padding: 0.5rem; color: var(--ikuta-color-ink); background: url("../images/pages/precinct/thumb_shrine_back.jpg") no-repeat center / 100% 100%; border: 0; box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.3); opacity: 1; }
    .precinct-shrine-thumb:hover,
    .precinct-shrine-thumb:focus-visible,
    .precinct-shrine-thumb.is-active { filter: brightness(1.08); box-shadow: 0 0 0 2px var(--ikuta-color-white), 0 2px 4px 2px rgb(0 0 0 / 0.35); }
    .precinct-shrine-thumb img { display: block; width: 9rem; height: 5.625rem; object-fit: cover; }
    .precinct-shrine-thumb span { display: block; width: 9rem; height: 1.25rem; overflow: hidden; font-family: var(--ikuta-font-mincho); font-size: 0.875rem; line-height: 1.25rem; text-align: center; white-space: nowrap; }
    .precinct-sites { width: 60rem; margin: 0 auto; }
    .precinct-site { display: grid; grid-template-columns: 30rem 26.25rem; grid-template-rows: 3.125rem 1fr; grid-template-areas: "title image" "description image"; column-gap: 1.25rem; width: 60rem; max-width: none; height: 20rem; margin: 0 0 2.5rem; padding: 1.25rem; background: var(--ikuta-color-white); box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2); }
    .precinct-site:nth-child(even) { grid-template-areas: "image title" "image description"; grid-template-columns: 26.25rem 30rem; }
    .precinct-site__title { grid-area: title; width: 30rem; height: 3.125rem; margin: 0 0 0.625rem; padding-block-end: 0.625rem; font-size: 1.375rem; line-height: 2.5rem; border-block-end: 1px solid #e5e5e5; }
    .precinct-site__title img { display: inline-block; width: 2.5rem; height: 2.5rem; margin-inline-end: 0.625rem; vertical-align: top; }
    .precinct-site__image { grid-area: image; width: 26.25rem; height: 17.5rem; object-fit: cover; }
    .precinct-site__description { grid-area: description; width: 29.375rem; margin: 0; padding: 0.3125rem; line-height: normal; }
  }

  @media (60rem <= width < 75rem) {
    .precinct-shrines { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); column-gap: clamp(1.5rem, 4vw, 3rem); width: calc(100% - 3rem); }
    .precinct-shrines__viewer,
    .precinct-shrines__slides,
    .precinct-shrine { width: 100%; height: auto; aspect-ratio: 16 / 15; }
    .precinct-shrine__location,
    .precinct-shrine__deity-title,
    .precinct-shrine__deities { width: 100%; }
    .precinct-shrine__deities li { flex: 1 1 0; width: auto; min-width: 0; font-size: clamp(0.875rem, 1.6vw, 1.125rem); }
    .precinct-shrine__name { margin-inline-start: 10.9375%; }
    .precinct-shrine__favor { right: 10.9375%; width: 50%; }
    .precinct-shrine__image { width: 100%; height: 66.6667%; }
    .precinct-shrines__map,
    .precinct-shrines__map img { width: 100%; height: auto; aspect-ratio: 2 / 3; }
    .precinct-shrines__thumbs { width: 100%; }
    .precinct-sites { width: calc(100% - 3rem); }
    .precinct-site,
    .precinct-site:nth-child(even) { grid-template-columns: minmax(0, 1.1428fr) minmax(0, 1fr); width: 100%; height: auto; min-height: 20rem; }
    .precinct-site:nth-child(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1428fr); }
    .precinct-site__title,
    .precinct-site__description,
    .precinct-site__image { width: 100%; }
    .precinct-site__image { height: 100%; min-height: 17.5rem; }
  }

  .wedding-page {
    --wedding-parallax-scale: 1.12;

    min-width: 0;
    overflow-x: clip;
    overflow-y: visible;
    font-family: var(--ikuta-font-mincho);
    background: #101010;
  }

  .wedding-scene {
    position: relative;
    display: grid;
    min-width: 0;
    overflow: hidden;
    isolation: isolate;
    background: #101010;
  }

  .wedding-scene__panel { display: contents; }

  .wedding-scene__media {
    position: relative;
    min-width: 0;
    overflow: hidden;
  }

  .wedding-scene__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
  }

  .wedding-page.is-parallax-ready .wedding-scene__image {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    transform: translate3d(0, var(--wedding-parallax-y, 0%), 0) scale(var(--wedding-parallax-scale));
    backface-visibility: hidden;
  }

  .wedding-scene.is-parallax-active .wedding-scene__image { will-change: transform; }

  .wedding-scene__shade {
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
  }

  .wedding-scene__copy {
    z-index: 2;
    margin: 0;
    font-family: var(--ikuta-font-mincho);
    font-weight: 400;
    letter-spacing: 0.08em;
  }

  .wedding-contact {
    display: grid;
    place-items: center;
    min-width: 0;
    padding: clamp(4rem, 8vw, 7rem) var(--ikuta-gutter);
    color: var(--ikuta-color-ink);
    text-align: center;
    background: #f3efe6 url("../images/pages/wedding/wedding_back_7.jpg") repeat-y center top / 120rem auto;
  }

  .wedding-contact__inner {
    display: grid;
    justify-items: center;
    gap: 1.5rem;
    width: min(100%, 60rem);
  }

  .wedding-contact__logo {
    width: min(100%, 37.5rem);
    height: auto;
  }

  .wedding-contact p {
    margin: 0;
    font-size: clamp(1rem, 2.2vw, 1.25rem);
    line-height: 1.9;
  }@media (width < 60rem) {
    .wedding-scene {
      grid-template-rows: auto auto;
      color: var(--ikuta-color-ink);
      background: #f8f5ee;
    }

    .wedding-scene__media {
      grid-row: 1;
      aspect-ratio: 16 / 10;
    }

    .wedding-scene__shade { display: none; }

    .wedding-scene__copy {
      grid-row: 2;
      padding: clamp(2rem, 9vw, 3.5rem) 5%;
      font-size: clamp(0.9375rem, 4vw, 1.125rem);
      line-height: 2;
      text-align: center;
      background: linear-gradient(90deg, #f2ede2, #fff 20%, #fff 80%, #f2ede2);
    }

    .wedding-scene__copy span { display: inline; }
    .wedding-scene__copy br { display: none; }

    .wedding-scene__copy--title {
      font-size: clamp(1.25rem, 6vw, 1.75rem);
      letter-spacing: 0.12em;
    }

    .wedding-scene--2 .wedding-scene__image { object-position: 54% bottom; }
    .wedding-scene--3 .wedding-scene__image { object-position: 48% bottom; }
    .wedding-scene--4 .wedding-scene__image { object-position: 58% bottom; }
    .wedding-scene--5 .wedding-scene__image { object-position: 44% bottom; }
    .wedding-scene--6 .wedding-scene__image { object-position: 52% bottom; }

    .wedding-contact {
      padding-block: 4rem;
      background-size: auto 100%;
    }

    .wedding-contact__inner { gap: 1.25rem; }
    .wedding-contact__logo { width: min(80%, 25rem); }
    .wedding-contact p { max-width: 24rem; }
  }

  @media (width >= 60rem) {
    .wedding-page { --wedding-parallax-scale: 1.08; }

    .wedding-scene {
      display: block;
      height: 120svh;
      min-height: 50.4rem;
      overflow: visible;
      color: var(--ikuta-color-white);
    }

    .wedding-scene__panel {
      position: sticky;
      top: 0;
      display: grid;
      height: 100svh;
      min-height: 42rem;
      overflow: hidden;
      isolation: isolate;
      background: #101010;
    }

    .wedding-scene__media {
      position: absolute;
      inset: 0;
    }

    .wedding-scene__copy {
      position: absolute;
      top: 26%;
      font-size: clamp(1.125rem, 1.4vw, 1.25rem);
      line-height: 1.7;
      writing-mode: vertical-rl;
      text-shadow: -2px 2px 3px rgb(0 0 0 / 1);
    }

    .wedding-scene__copy--title {
      right: auto;
      left: 50%;
      font-size: clamp(2rem, 2.5vw, 2.25rem);
      transform: translateX(-50%);
    }

    .wedding-scene--2 .wedding-scene__copy { left: 30%; }
    .wedding-scene--3 .wedding-scene__copy { right: 30%; }
    .wedding-scene--4 .wedding-scene__copy { left: 10%; }
    .wedding-scene--5 .wedding-scene__copy { right: 10%; }

    .wedding-scene--1 .wedding-scene__shade,
    .wedding-scene--6 .wedding-scene__shade {
      background: linear-gradient(90deg, transparent 35%, rgb(0 0 0 / 0.18) 50%, transparent 65%);
    }

    .wedding-scene--2 .wedding-scene__shade,
    .wedding-scene--4 .wedding-scene__shade {
      background: linear-gradient(90deg, rgb(0 0 0 / 0.3), transparent 45%);
    }

    .wedding-scene--3 .wedding-scene__shade,
    .wedding-scene--5 .wedding-scene__shade {
      background: linear-gradient(270deg, rgb(0 0 0 / 0.3), transparent 45%);
    }

    .wedding-contact { min-height: 34rem; }
  }

  @media (prefers-reduced-motion: reduce) {
    .wedding-page.is-parallax-ready .wedding-scene__image {
      position: static;
      height: 100%;
      transform: none;
    }
  }

  .prayer-page,
  .prayer-guide,
  .prayer-card-grid,
  .prayer-details { min-width: 0; }

  .prayer-guide__table {
    width: 100%;
    border-collapse: collapse;
  }

  .prayer-guide__table caption {
    color: var(--ikuta-color-white);
    font-family: var(--ikuta-font-mincho);
    background: linear-gradient(#606060, #303030);
  }

  .prayer-guide__table th,
  .prayer-guide__table td {
    font-weight: 400;
    background: var(--ikuta-color-white);
    border: 1px solid #e5e5e5;
  }

  .prayer-guide__image {
    margin: 0;
    background: url("../images/pages/worship/photo_back.jpg");
    box-shadow: 0 2px 2px rgb(0 0 0 / 0.2);
  }

  .prayer-guide__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .prayer-guide__note { margin: 0; }

  .prayer-hall {
    background: rgb(255 255 255 / 0.78);
    border: 2px solid #a78661;
    box-shadow: inset 0 0 1.5rem rgb(167 134 97 / 0.14);
  }

  .prayer-hall h2 {
    margin: 0 0 1rem;
    font-family: var(--ikuta-font-mincho);
    font-size: 1.25rem;
    font-weight: 500;
  }

  .prayer-hall p { margin: 0 0 1rem; }
  .prayer-hall .c-button { margin-inline: auto; }

  .prayer-page__center-button { max-width: none; margin: 0; text-align: center; }
  .prayer-page__center-button .c-button { margin-inline: auto; }

  .prayer-card-grid,
  .prayer-details {
    padding: 0;
    list-style: none;
  }

  .prayer-card-grid {
    display: grid;
    margin-inline: auto;
  }

  .prayer-card {
    min-width: 0;
    overflow: hidden;
    text-align: center;
    background: var(--ikuta-color-white);
    border: 1px solid #ddd;
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.2);
  }

  .prayer-card a {
    display: block;
    color: inherit;
    text-decoration: none;
  }

  .prayer-card img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  .prayer-card span {
    display: grid;
    place-content: center;
    min-height: 2.5rem;
    padding: 0.35rem;
    font-family: var(--ikuta-font-mincho);
    line-height: 1.35;
  }

  .prayer-card a:hover,
  .prayer-card a:focus-visible { background: #f3edf9; }

  .prayer-card-note {
    font-family: var(--ikuta-font-mincho);
    text-align: right;
  }

  .prayer-group-feature {
    position: relative;
    isolation: isolate;
    color: var(--ikuta-color-white);
    background: #19151d url("../images/pages/prayer/page_prayer_group.jpg") no-repeat center / cover;
    border-block: 0.5rem solid #cec4b4;
  }

  .prayer-group-feature::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    background: rgb(0 0 0 / 0.58);
  }

  .prayer-group-feature__inner {
    display: grid;
    justify-items: center;
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
    margin-inline: auto;
  }

  .prayer-group-feature h2 {
    width: 100%;
    margin: 0;
    overflow: hidden;
    font-family: var(--ikuta-font-mincho);
    font-weight: 500;
    text-align: center;
  }

  .prayer-group-feature__body {
    display: grid;
    align-items: center;
    width: 100%;
  }

  .prayer-group-feature ul { margin: 0; }
  .prayer-group-feature li + li { margin-block-start: 0.75rem; }

  .prayer-group-feature figure {
    margin: 0;
    padding: 0.625rem;
    background: rgb(0 0 0 / 0.35);
    border: 1px solid var(--ikuta-color-white);
    box-shadow: 0 2px 3px rgb(0 0 0 / 0.3);
  }

  .prayer-group-feature img { width: 100%; }

  .prayer-detail {
    display: grid;
    min-width: 0;
    max-width: none;
    background: var(--ikuta-color-white);
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.2);
    scroll-margin-top: 7rem;
  }

  .prayer-detail__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-block-end: 1px solid #e5e5e5;
  }

  .prayer-detail__header h3 {
    margin: 0;
    font-family: var(--ikuta-font-mincho);
    font-weight: 500;
  }

  .prayer-detail__header a {
    flex: 0 0 auto;
    color: var(--ikuta-color-white);
    text-decoration: none;
    background: #303030;
    border-radius: 0.25rem;
  }

  .prayer-detail__body { line-height: 1.8; }

  .prayer-detail__image {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  .prayer-detail__link {
    display: grid;
    place-content: center;
    min-height: 3rem;
    color: var(--ikuta-color-white);
    text-align: center;
    text-decoration: none;
    background: linear-gradient(#6940ae, #271545);
    border: 1px solid #f6efe5;
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.2);
  }

  .prayer-detail__link:hover,
  .prayer-detail__link:focus-visible {
    color: var(--ikuta-color-white);
    text-decoration: none;
    background: linear-gradient(#52318a, #1c0f33);
  }

  /* Yakudoshi chart. One six-column table with women on the left, as on the current site. */
  .prayer-yaku {
    min-width: 0;
    overflow-x: auto;
  }

  .prayer-yaku__table {
    width: 100%;
    min-width: 22rem;
    table-layout: fixed;
    background: var(--ikuta-color-white);
    border-collapse: collapse;
  }

  .prayer-yaku__table caption {
    padding: 0.625rem;
    color: var(--ikuta-color-white);
    text-align: center;
    background: #666;
    border: 1px solid #666;
  }

  .prayer-yaku__table th,
  .prayer-yaku__table td {
    padding: 0.625rem 0.35rem;
    font-weight: 400;
    line-height: 1.55;
    text-align: center;
    vertical-align: middle;
    overflow-wrap: anywhere;
    border: 1px solid var(--ikuta-color-gold);
  }

  .prayer-yaku__group {
    color: var(--ikuta-color-white);
    background: var(--ikuta-color-gold);
  }

  .prayer-yaku__group + .prayer-yaku__group {
    border-inline-start-color: var(--ikuta-color-white);
  }

  .prayer-yaku__table td.is-daiyaku { color: #f00; }

  @media (width < 60rem) {
    .prayer-guide { display: grid; gap: 1rem; margin-block: 10%; }
    .prayer-guide__table caption { padding: 3% 0; color: var(--ikuta-color-ink); font-size: 1.4rem; background: var(--ikuta-color-white); }
    .prayer-guide__table th,
    .prayer-guide__table td { display: block; width: 100%; }
    .prayer-guide__table th { padding: 1% 3%; color: var(--ikuta-color-white); background: #606060; }
    .prayer-guide__table td { padding: 3%; border-block-start: 0; }
    .prayer-guide__image { padding: 3%; }
    .prayer-guide__image img { aspect-ratio: 3 / 2; object-position: center 35%; }
    .prayer-guide__note { line-height: 1.8; }
    .prayer-hall { margin-block: 2rem; padding: 5%; text-align: center; }

  .prayer-page__center-button { margin-block-end: 3rem; }
    .prayer-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0; }
    .prayer-card span { min-height: 3rem; font-size: 0.875rem; }
    .prayer-card-note { margin: 0.75rem 0 2.5rem; font-size: 0.875rem; }
    .prayer-group-feature { padding-block: 4rem; background-attachment: scroll; }
    .prayer-group-feature__inner { gap: 1.5rem; }
    .prayer-group-feature h2 { padding: 0.75rem; font-size: 1.25rem; background: var(--ikuta-color-purple-deep); }
    .prayer-group-feature__body { gap: 1.5rem; }
    .prayer-group-feature ul { padding-inline-start: 1.25rem; line-height: 1.7; }
    .prayer-group-feature figure { width: min(100%, 26.25rem); }
    .prayer-page > .c-page-content ~ .c-page-content { padding-block-start: 1rem; }
    .prayer-details { display: grid; gap: 1.5rem; margin: 0; }
    .prayer-detail { grid-template-columns: 1fr; gap: 1rem; padding: 1rem; }
    .prayer-detail__header { padding-block-end: 0.75rem; }
    .prayer-detail__header h3 { font-size: 1.25rem; }
    .prayer-detail__header a { display: none; }
    .prayer-detail__body { order: 2; }
    .prayer-detail__image { order: 1; }
    .prayer-detail__link { order: 3; }
    .prayer-yaku { order: 4; margin-block-start: 1rem; }
    .prayer-yaku__table { min-width: 0; }
    .prayer-yaku__table caption { padding: 0.5rem; }
    .prayer-yaku__table th,
    .prayer-yaku__table td { padding: 0.5rem 0.2rem; font-size: clamp(0.625rem, 2.6vw, 0.75rem); }
  }

  @media (width >= 60rem) {
    .prayer-guide { display: grid; grid-template-columns: 33.75rem 17.5rem; grid-template-areas: "table image" "note image"; column-gap: 3.75rem; row-gap: 0.625rem; width: 55rem; margin: 0 auto 3rem; }
    .prayer-guide__table { grid-area: table; }
    .prayer-guide__table caption { height: 2.25rem; line-height: 2.25rem; }
    .prayer-guide__table th,
    .prayer-guide__table td { height: 2.625rem; padding: 0.59375rem 1.25rem; font-size: 0.9375rem; }
    .prayer-guide__table th { width: 11.25rem; text-align: center; }
    .prayer-guide__table th { white-space: nowrap; }
    .prayer-guide__image { grid-area: image; width: 17.5rem; height: 26.25rem; padding: 0.625rem; }
    .prayer-guide__note { grid-area: note; font-size: 0.875rem; line-height: 1.75rem; }
    .prayer-hall { width: 45rem; margin: 0 auto 2rem; padding: 1.5rem 2rem; text-align: center; }

  .prayer-card-grid { width: 60rem; gap: 1.25rem; }
    .prayer-card-grid--personal,
    .prayer-card-grid--trip { grid-template-columns: repeat(4, 1fr); }
    .prayer-card-grid--group { grid-template-columns: repeat(3, 1fr); gap: 1.875rem; }
    .prayer-card-note { width: 60rem; margin: 0.75rem auto 0; }
    .prayer-group-feature { padding-block: 5rem; background-attachment: fixed; }
    .prayer-group-feature__inner { gap: 2.5rem; }
    .prayer-group-feature h2 { font-size: 1.5rem; }
    .prayer-group-feature__body { grid-template-columns: 1fr 22.5rem; gap: 3.75rem; }
    .prayer-group-feature ul { padding-inline-start: 1.25rem; font-size: 0.9375rem; }
    .prayer-group-feature figure { width: 22.5rem; }
    .prayer-details { width: 60rem; margin: 2.5rem auto 0; }
    .prayer-detail { grid-template-columns: minmax(0, 1fr) 26.25rem; gap: 1.25rem; margin-block-end: 2.5rem; padding: 1.25rem; }
    .prayer-detail__header { grid-column: 1 / -1; height: 2.5rem; padding-block-end: 0.625rem; }
    .prayer-detail__header h3 { font-size: 1.375rem; }
    .prayer-detail__header a { width: 8rem; min-height: 1.875rem; font-size: 0.875rem; line-height: 1.875rem; text-align: center; }
    .prayer-detail__body { min-height: 14.375rem; }
    .prayer-detail__image { grid-column: 2; grid-row: 2 / span 2; width: 26.25rem; height: 17.5rem; }
    .prayer-detail__link { grid-column: 1; width: 100%; }
    .prayer-yaku { grid-column: 1 / -1; margin-block-start: 1.5rem; }
    .prayer-yaku__table th,
    .prayer-yaku__table td { font-size: 0.8125rem; }
  }

  .contact-page,
  .contact-page__list,
  .contact-card { min-width: 0; }

  .contact-card__image {
    display: block;
    width: 100%;
  }

  .contact-page__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .contact-card {
    display: flex;
    flex-direction: column;
    max-width: none;
    background: var(--ikuta-color-white);
    box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
  }

  .contact-card__title {
    margin: 0;
    color: #919d21;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.875rem;
    border-block-end: 1px solid #303030;
  }

  .contact-card:nth-child(2) .contact-card__title { color: #93219d; }
  .contact-card:nth-child(3) .contact-card__title { color: #216a9d; }

  .contact-card__description {
    flex: 1;
    max-width: none;
    margin: 0;
    padding-block: 0.625rem;
    font-family: var(--ikuta-font-gothic);
    font-size: 0.9375rem;
    line-height: 1.4;
  }@media (width < 60rem) {
    .contact-page__list { display: grid; gap: 1.5rem; }

    .contact-card {
      padding: 5%;
      border: 1px solid #ccc;
    }

    .contact-card__image { margin-block-end: 3%; }  }

  @media (width >= 60rem) {
    .contact-page__list {
      display: grid;
      grid-template-columns: repeat(3, 18.75rem);
      gap: 1.875rem;
      width: 60rem;
      margin-inline: auto;
    }

    .contact-card {
      width: 18.75rem;
      padding: 1.25rem;
    }

    .contact-card__image {
      width: 16.25rem;
      height: 16.25rem;
      margin-block-end: 0.625rem;
      object-fit: cover;
    }

    .contact-card__title,
    .contact-card__description { width: 16.25rem; }

    .contact-card__title { height: 1.875rem; }

    .contact-card__description { line-height: 1.4rem; }  }

  .inquiry-form,
  .inquiry-form form,
  .inquiry-form table,
  .inquiry-form input,
  .inquiry-form textarea,
  .inquiry-form select { min-width: 0; }

  .inquiry-form {
    font-family: var(--ikuta-font-gothic);
    line-height: normal;
  }

  .inquiry-form input:not([type="submit"]),
  .inquiry-form textarea,
  .inquiry-form select { line-height: normal; }

  .inquiry-form textarea { display: block; }

  .inquiry-form p { max-width: none; margin: 0; }

  .inquiry-form #pageContactTable {
    border-collapse: collapse;
    background: var(--ikuta-color-white);
    border: 1px solid #ddd;
  }

  .inquiry-form #pageContactTable th,
  .inquiry-form #pageContactTable td {
    font-weight: 400;
    text-align: left;
    border-block-end: 1px solid #ddd;
  }

  .inquiry-form #pageContactTable th { background: #efefef; }

  .inquiry-form input[type="text"],
  .inquiry-form input[type="email"],
  .inquiry-form input[type="tel"],
  .inquiry-form input[type="file"],
  .inquiry-form textarea,
  .inquiry-form select {
    max-width: 100%;
    color: var(--ikuta-color-ink);
    background: var(--ikuta-color-white);
    border: 1px solid #ddd;
  }

  .inquiry-form .wpcf7-list-item:first-child { margin-inline-start: 0; }

  .inquiry-form #pageContactButton { text-align: center; }

  .inquiry-form #contactDownload { max-width: none; }

  .inquiry-prayer__mobile-note {
    max-width: none;
    margin-block-end: 1.5rem;
    line-height: 1.8;
  }

  @media (width < 60rem) {
    .inquiry-form #pageContactTable {
      display: block;
      width: 100%;
      border: 0;
    }

    .inquiry-form #pageContactTable tbody,
    .inquiry-form #pageContactTable tr,
    .inquiry-form #pageContactTable th,
    .inquiry-form #pageContactTable td { display: block; width: 100%; }

    .inquiry-form #pageContactTable th {
      padding: 1% 3%;
      border: 0;
    }

    .inquiry-form #pageContactTable td {
      padding: 5% 0;
      border: 0;
    }

    .inquiry-form #pageContactTable input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
    .inquiry-form #pageContactTable textarea,
    .inquiry-form #pageContactTable select {
      width: 100%;
      padding: 1em;
    }

    .inquiry-form .wpcf7-list-item {
      display: block;
      margin: 0.5rem 0 0;
    }

    .inquiry-form #contactDownload { display: none; }

    .inquiry-form #pageContactButton { margin: 0 0 10%; }

    .inquiry-form .wpcf7-submit { width: 100%; }
  }

  @media (width >= 60rem) {
    .inquiry-form input:not([type="submit"]),
    .inquiry-form textarea,
    .inquiry-form select {
      font-family: var(--ikuta-font-gothic);
      font-size: 0.83333125rem;
    }

    .inquiry-form #pageContactTable {
      width: 60rem;
      margin: 2.5rem auto 1.25rem;
    }

    .inquiry-form #pageContactTable th {
      width: 16rem;
      padding: 1.25rem;
      text-align: right;
      border-inline-end: 1px solid #ddd;
    }

    .inquiry-form #pageContactTable td {
      width: 44rem;
      padding: 1.25rem;
    }

    .inquiry-form #pageContactTable .line {
      width: 38.625rem;
      padding: 0.625rem;
    }

    .inquiry-form #pageContactTable .box {
      width: 38.625rem;
      height: 9.875rem;
      padding: 0.625rem;
    }

    .inquiry-form #contactDownload {
      width: 60rem;
      margin-inline: auto;
    }

    .inquiry-form #contactDownload .comment {
      padding: 1.25rem;
      line-height: 1.5rem;
      background: var(--ikuta-color-white);
      box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
    }

    .inquiry-form #contactDownload .comment p { line-height: 1.5rem; }

    .inquiry-prayer__download .title {
      margin: 0;
      padding: 1.25rem 0;
      font-size: 1.25rem;
      font-weight: 400;
      line-height: 1.25rem;
      text-align: center;
    }

    .inquiry-prayer__download .downloadButton {
      display: flex;
      width: 27.5rem;
      margin: 0 auto 2.5rem;
      padding: 0;
      list-style: none;
    }

    .inquiry-prayer__download .downloadButton li {
      width: 13.625rem;
      max-width: none;
    }

    .inquiry-prayer__download .downloadButton a {
      display: block;
      width: 12.375rem;
      height: 2.375rem;
      margin-inline: 0.625rem;
      color: var(--ikuta-color-white);
      line-height: 2.375rem;
      text-align: center;
      text-decoration: none;
      background: linear-gradient(#6940ae, #271545);
      border: 1px solid #f6efe5;
      box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2);
    }

    .inquiry-prayer__download .downloadButton a:hover,
    .inquiry-prayer__download .downloadButton a:focus-visible {
      text-decoration: none;
      filter: brightness(1.14);
    }

    .inquiry-form #pageContactButton { margin: 1.25rem auto; }
  }

  /* Daikai summer festival: shared, height-safe yearly layout. */
  .page-daikai,
  #pageDaikai {
    min-width: 0;
  }

  #pageDaikai {
    position: relative;
    background: var(--ikuta-color-white);
  }

  #pageDaikai .spImage {
    width: 100%;
    height: clamp(18rem, 30vw, 28rem);
    margin: 0;
    overflow: hidden;
    background: #2a1614;
  }

  #pageDaikai .spImage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  #pageDaikai .pageCover {
    padding: 0;
  }

  #pageDaikai .contentsBox {
    padding: 3rem 1rem 2.5rem;
    background-image:
      url("../images/pages/introduction/content-top.jpg"),
      url("../images/pages/introduction/content-background.jpg");
    background-repeat: repeat-x, repeat-y;
    background-position: top center, top center;
    background-size: auto, 100% auto;
    box-shadow: 0 -1px 8px rgb(0 0 0 / 0.18);
  }

  #pageDaikai .h2Title {
    width: min(100%, 60rem);
    min-height: 4.375rem;
    margin: 0 auto 2.5rem;
    padding: 0.9rem 1.5rem;
    align-content: center;
    color: var(--ikuta-color-white);
    font-family: var(--ikuta-font-mincho);
    font-size: clamp(1.05rem, 2vw, 1.5rem);
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
    text-shadow: 0 2px 3px rgb(0 0 0 / 0.45);
    background: url("../images/pages/introduction/title-background.png") no-repeat center / 100% 100%;
    border: 1px solid var(--ikuta-color-paper);
    box-shadow: 0 2px 5px rgb(0 0 0 / 0.25);
  }

  #daikai-fes {
    width: min(100%, 60rem);
    margin: 0 auto;
  }

  #pageDaikai .slide {
    position: relative;
    min-width: 0;
  }

  #pageDaikai .daikai-fes-cont {
    min-width: 0;
    margin: 0 0 1.25rem;
    padding: clamp(1rem, 3vw, 2.5rem);
    background: var(--ikuta-color-white);
    box-shadow: 0 1px 4px rgb(0 0 0 / 0.16);
  }

  #pageDaikai .daikai-fes-cont[hidden] {
    display: none !important;
  }

  #pageDaikai table {
    border-collapse: collapse;
  }

  #pageDaikai table.fes-time,
  #pageDaikai table.fes-time2 {
    width: min(100%, 50rem);
    margin: 0 auto 2.5rem;
    table-layout: fixed;
  }

  #pageDaikai table.fes-time thead th,
  #pageDaikai table.fes-time2 thead th {
    padding: 0.35rem 0.625rem;
    color: #777;
    text-align: center;
  }

  #pageDaikai table.fes-time thead .day-title,
  #pageDaikai table.fes-time2 thead .day-title {
    padding: 0.5rem 0 0.25rem;
    color: var(--ikuta-color-purple-deep);
    font-family: var(--ikuta-font-mincho);
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    font-weight: 600;
  }

  #pageDaikai table.fes-time tbody tr,
  #pageDaikai table.fes-time2 tbody tr {
    border-top: 1px dashed #d5d5d5;
  }

  #pageDaikai table.fes-time tbody tr:last-child,
  #pageDaikai table.fes-time2 tbody tr:last-child {
    border-bottom: 1px dashed #d5d5d5;
  }

  #pageDaikai table.fes-time tbody th,
  #pageDaikai table.fes-time2 tbody th {
    width: 11.25rem;
    padding: 0.625rem;
    font-weight: 600;
    text-align: center;
    background: #fde6e7;
  }

  #pageDaikai table.fes-time tbody td,
  #pageDaikai table.fes-time2 tbody td {
    min-width: 0;
    padding: 0.625rem;
    overflow-wrap: anywhere;
  }

  #pageDaikai table.fes-time2 tbody th,
  #pageDaikai table.fes-time2 tbody td {
    padding: 0.4rem;
    font-size: 0.9rem;
  }

  #pageDaikai .attention-text,
  #pageDaikai .daikai-fes-cont > p {
    width: min(100%, 50rem);
    margin: 1.25rem auto 2.5rem;
    line-height: 1.75;
  }

  #pageDaikai ul.fes-img {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    width: 100%;
    margin: 0 auto;
    padding: 0;
    list-style: none;
  }

  #pageDaikai ul.fes-img li {
    min-width: 0;
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.5;
    text-align: center;
    overflow-wrap: anywhere;
  }

  #pageDaikai ul.fes-img img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0 0 0.3rem;
    object-fit: cover;
    background: #eee;
  }

  #pageDaikai #daikai-fes-announce {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    width: 100%;
    margin-top: 1.25rem;
  }

  #pageDaikai #daikai-fes-announce1,
  #pageDaikai #daikai-fes-announce2,
  #pageDaikai #daikai-fes-announce3 {
    min-width: 0;
    background: var(--ikuta-color-white);
  }

  #pageDaikai #daikai-fes-announce3 {
    grid-column: 1 / -1;
  }

  #pageDaikai table.daikai-fes-announce {
    width: 100%;
  }

  #pageDaikai table.daikai-fes-announce th {
    padding: 0.625rem 1rem;
    color: var(--ikuta-color-white);
    background: var(--ikuta-color-purple-deep);
    border-bottom: 1px solid var(--ikuta-color-white);
  }

  #pageDaikai table.daikai-fes-announce td {
    padding: 0.625rem 1rem;
    border-bottom: 1px dotted var(--ikuta-color-purple-deep);
    overflow-wrap: anywhere;
  }

  #pageDaikai .daikai-slider__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin: 1rem auto 0;
  }

  #pageDaikai .daikai-slider__arrow {
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    color: var(--ikuta-color-white);
    font-size: 2rem;
    line-height: 1;
    background: var(--ikuta-color-purple-deep);
    border: 1px solid rgb(255 255 255 / 0.75);
    border-radius: 50%;
    box-shadow: 0 1px 4px rgb(0 0 0 / 0.2);
    cursor: pointer;
  }

  #pageDaikai .daikai-slider__arrow:hover,
  #pageDaikai .daikai-slider__arrow:focus-visible {
    background: var(--ikuta-color-purple);
  }

  #pageDaikai .daikai-slider__dots {
    display: flex;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #pageDaikai .daikai-slider__dots button {
    display: block;
    width: 0.7rem;
    height: 0.7rem;
    padding: 0;
    overflow: hidden;
    text-indent: -9999px;
    background: #bbb;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
  }

  #pageDaikai .daikai-slider__dots button[aria-current="true"] {
    background: var(--ikuta-color-purple-deep);
    transform: scale(1.2);
  }

  #pageDaikai #upButton a {
    position: fixed;
    inset-inline-end: 1.25rem;
    inset-block-end: 1.25rem;
    z-index: 20;
    display: block;
    width: 7.5rem;
    height: 1.875rem;
    color: var(--ikuta-color-white);
    font-size: 0.75rem;
    line-height: 1.875rem;
    text-align: center;
    text-decoration: none;
    background: var(--ikuta-color-purple-deep);
    border: 1px solid var(--ikuta-color-white);
    box-shadow: 0 1px 1px rgb(0 0 0 / 0.2);
  }

  @media (max-width: 40rem) {
    #pageDaikai .spImage {
      height: auto;
      aspect-ratio: 16 / 9;
    }

    #pageDaikai .contentsBox {
      padding: 1.5rem 1rem 2rem;
    }

    #pageDaikai .h2Title {
      min-height: 0;
      margin-bottom: 1.5rem;
      padding: 0.8rem 1rem;
      font-size: 1.05rem;
    }

    #pageDaikai .daikai-fes-cont {
      padding: 1rem;
    }

    #pageDaikai table.fes-time,
    #pageDaikai table.fes-time2 {
      margin-bottom: 1.5rem;
      font-size: 0.82rem;
    }

    #pageDaikai table.fes-time tbody th,
    #pageDaikai table.fes-time2 tbody th {
      width: 34%;
      padding: 0.5rem 0.35rem;
    }

    #pageDaikai table.fes-time tbody td,
    #pageDaikai table.fes-time2 tbody td {
      width: 66%;
      padding: 0.5rem;
    }

    #pageDaikai ul.fes-img {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 1rem 0.75rem;
    }

    #pageDaikai #daikai-fes-announce {
      grid-template-columns: minmax(0, 1fr);
    }

    #pageDaikai #daikai-fes-announce3 {
      grid-column: auto;
    }

    #pageDaikai table.daikai-fes-announce th,
    #pageDaikai table.daikai-fes-announce td {
      display: block;
      width: 100%;
    }

    #pageDaikai #upButton a {
      inset-inline-end: 0.75rem;
      inset-block-end: 0.75rem;
    }
  }

  /* Hyogogu Otabisho page. */
  .otabi-page,
  .otabi-page .c-page-content .l-container,
  .otabi-page .c-page-content section,
  .otabi-deity,
  .otabi-seasons,
  .otabi-history-list,
  .otabi-prayer,
  .otabi-districts {
    min-width: 0;
  }

  .otabi-page .c-page-content .l-container {
    width: 100%;
    max-width: none;
  }

  .otabi-deity {
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
    margin: 0 auto 4rem;
  }

  .otabi-deity__name {
    width: 100%;
    min-height: 8.75rem;
    margin: 0 0 2.5rem;
    padding: 1.5rem;
    align-content: center;
    color: var(--ikuta-color-ink);
    font-family: var(--ikuta-font-mincho);
    font-size: clamp(1.8rem, 4vw, 2.625rem);
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    background: url("../images/pages/history/goddess-title-background.jpg") no-repeat top center / cover;
    border: 2px solid #829040;
  }

  .otabi-deity__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 26.25rem);
    align-items: start;
    gap: 3rem;
    padding-inline: 2.5rem;
  }

  .otabi-deity__body p {
    max-width: none;
    margin: 0;
    line-height: 1.75;
  }

  .otabi-deity__body figure,
  .otabi-prayer figure {
    margin: 0;
    padding: 0.625rem;
    background: #d8bb85;
    box-shadow: 0 2px 3px rgb(0 0 0 / 0.22);
  }

  .otabi-deity__body img,
  .otabi-prayer img {
    display: block;
    width: 100%;
    height: auto;
  }

  .otabi-annual__calendar {
    margin-block-end: 4rem;
    padding: 0;
    background: none;
  }

  .otabi-calendar__date,
  .otabi-calendar__name {
    display: block;
  }

  .otabi-calendar__date {
    font-weight: 500;
  }

  .otabi-calendar__media {
    margin: 0.75rem 0 0;
  }

  .otabi-calendar__media img {
    display: block;
    width: 100%;
    height: auto;
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.25);
  }

  .otabi-seasons {
    display: grid;
    gap: 1rem;
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
    margin: 0 auto 4rem;
    padding: 0.625rem;
    background: #8f8d81;
    box-shadow: -2px 2px 3px rgb(0 0 0 / 0.25);
  }

  .otabi-season {
    min-width: 0;
    background: var(--ikuta-color-white);
  }

  .otabi-season__tab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    min-height: 3.5rem;
    padding: 0.5rem 1rem;
    color: var(--ikuta-color-white);
    font-family: var(--ikuta-font-mincho);
    text-shadow: 0 1px 2px rgb(0 0 0 / 0.7);
    border: 0;
    cursor: pointer;
  }

  .otabi-season__name {
    font-size: 1.5rem;
  }

  .otabi-season__months {
    font-size: 1rem;
  }

  .otabi-season--spring .otabi-season__tab { background: #ad5ca5; }
  .otabi-season--summer .otabi-season__tab { background: #559b53; }
  .otabi-season--autumn .otabi-season__tab { background: #ad913c; }
  .otabi-season--winter .otabi-season__tab { background: #4b7fa1; }

  .otabi-season__content {
    background-color: var(--ikuta-color-white);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 100% 100%;
  }

  .otabi-season--spring .otabi-season__content { background-image: url("../images/pages/rite/calendar-1.jpg"); }
  .otabi-season--summer .otabi-season__content { background-image: url("../images/pages/rite/calendar-2.jpg"); }
  .otabi-season--autumn .otabi-season__content { background-image: url("../images/pages/rite/calendar-3.jpg"); }
  .otabi-season--winter .otabi-season__content { background-image: url("../images/pages/rite/calendar-4.jpg"); }

  .otabi-season__calendar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    height: 100%;
  }

  .otabi-season__month {
    min-width: 0;
  }

  .otabi-season__month h3 {
    margin: 0;
    padding: 0;
    font-family: var(--ikuta-font-mincho);
    font-size: 1rem;
    font-weight: 500;
  }

  .otabi-season__month ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .otabi-season__month p {
    max-width: none;
    margin: 0;
    font-family: var(--ikuta-font-mincho);
  }

  .otabi-season__month p span {
    display: block;
    font-weight: 500;
  }

  .otabi-season__month img {
    display: block;
    width: 100%;
    aspect-ratio: 5 / 3;
    object-fit: cover;
  }

  .otabi-history-list {
    display: grid;
    gap: 1.25rem;
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
    margin: 0 auto 4rem;
  }

  .otabi-history {
    background: var(--ikuta-color-white);
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.18);
  }

  .otabi-history__title {
    margin: 0;
    padding: 1.15rem 1.5rem;
    color: var(--ikuta-color-white);
    font-family: var(--ikuta-font-mincho);
    font-size: 1.125rem;
    font-weight: 400;
    text-align: center;
    background: var(--ikuta-color-purple-deep);
  }

  .otabi-history__table-wrap {
    overflow-x: auto;
  }

  .otabi-history table {
    width: 100%;
    border-collapse: collapse;
  }

  .otabi-history th,
  .otabi-history td {
    padding: 0.75rem 1rem;
    border: 1px solid #e5e5e5;
    text-align: left;
  }

  .otabi-history th {
    width: 34%;
    font-weight: 400;
    background: #f5f3ee;
  }

  .otabi-prayer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 17.5rem;
    align-items: start;
    gap: 2.5rem;
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 55rem);
    margin: 0 auto 4rem;
  }

  .otabi-prayer table {
    width: 100%;
    border-collapse: collapse;
    background: var(--ikuta-color-white);
  }

  .otabi-prayer caption {
    padding: 0.65rem 1rem;
    color: var(--ikuta-color-white);
    font-family: var(--ikuta-font-mincho);
    background: linear-gradient(#606060, #303030);
  }

  .otabi-prayer th,
  .otabi-prayer td {
    padding: 0.75rem 1rem;
    border: 1px solid #e5e5e5;
  }

  .otabi-prayer th {
    width: 34%;
    font-weight: 400;
    text-align: center;
  }

  .otabi-prayer td {
    line-height: 1.65;
    overflow-wrap: anywhere;
  }

  .otabi-prayer td a {
    color: inherit;
    text-decoration: none;
  }

  .otabi-prayer tfoot td {
    text-align: center;
  }

  .otabi-districts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 1.75rem;
    width: min(calc(100% - (var(--ikuta-gutter) * 2)), 60rem);
    margin: 0 auto;
  }

  .otabi-district {
    min-width: 0;
    padding: 1.25rem 1.5rem;
    background: var(--ikuta-color-white);
    border: 1px solid #ccc;
    border-radius: 0.5rem;
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.15);
  }

  .otabi-district h3 {
    margin: 0 0 0.5rem;
    color: var(--ikuta-color-purple-deep);
    font-family: var(--ikuta-font-mincho);
    font-size: 1.15rem;
    font-weight: 500;
    text-align: center;
  }

  .otabi-district ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .otabi-district li {
    padding: 0.25rem 0;
    border-bottom: 1px solid #e5e5e5;
    overflow-wrap: anywhere;
  }

  @media (width >= 60rem) {
    .otabi-calendar__summer {
      grid-template-columns: minmax(4.5rem, 0.45fr) repeat(2, minmax(0, 1.275fr));
    }

    .otabi-calendar__summer .rite-calendar__month {
      padding: 1rem;
      writing-mode: horizontal-tb;
      text-orientation: mixed;
    }

    .otabi-calendar__summer .rite-calendar__month h2 {
      margin: 0 0 0.65rem;
      padding: 0 0 0.4rem;
      border: 0;
      border-block-end: 1px solid rgb(70 60 55 / 0.25);
    }

    .otabi-calendar__summer .rite-calendar__month li {
      margin: 0;
      line-height: 1.5;
    }

    .otabi-calendar__summer .otabi-calendar__media {
      margin-block-start: 0.6rem;
    }

    .otabi-calendar__summer .otabi-calendar__media img {
      width: auto;
      max-width: 100%;
      max-height: 13.75rem;
      margin-inline: auto;
    }

    .otabi-seasons.is-ready {
      display: flex;
      gap: 0;
      height: 23.75rem;
    }

    .otabi-seasons.is-ready .otabi-season {
      display: flex;
      flex: 0 0 4.375rem;
      overflow: hidden;
      transition: flex-basis 220ms ease;
    }

    .otabi-seasons.is-ready .otabi-season.is-active {
      flex: 1 1 auto;
    }

    .otabi-seasons.is-ready .otabi-season__tab {
      flex: 0 0 4.375rem;
      width: 4.375rem;
      min-height: 100%;
      padding: 1rem 0.5rem;
      writing-mode: vertical-rl;
      text-orientation: upright;
    }

    .otabi-seasons.is-ready .otabi-season__content {
      flex: 1 1 auto;
      min-width: 0;
      height: 22.5rem;
      overflow: hidden;
    }

    .otabi-season__month {
      height: 100%;
      padding: 1.25rem 0.75rem;
      overflow: hidden;
      writing-mode: vertical-rl;
      text-orientation: upright;
      border-inline-end: 1px solid rgb(70 60 55 / 0.12);
    }

    .otabi-season__month:last-child { border-inline-end: 0; }

    .otabi-season__month h3 {
      margin: 0 0 0 0.75rem;
      padding: 0 0 0 0.5rem;
      line-height: 1.6;
      border-block-end: 1px solid rgb(70 60 55 / 0.25);
    }

    .otabi-season__month li,
    .otabi-season__empty {
      margin: 0 0 0 0.55rem;
      font-size: 0.875rem;
      line-height: 1.65;
    }

    .otabi-season__month img {
      width: 7.5rem;
      margin-block-start: 0.5rem;
      writing-mode: horizontal-tb;
    }

    .otabi-seasons.is-ready .otabi-season:not(.is-active) .otabi-season__content {
      display: none;
    }
  }

  @media (width < 60rem) {
    .otabi-page .c-page-content > .l-container {
      padding-block-end: 10%;
    }

    .otabi-deity,
    .otabi-seasons,
    .otabi-history-list,
    .otabi-prayer,
    .otabi-districts {
      width: 100%;
      margin-bottom: 10%;
    }

    .otabi-deity__name {
      min-height: 0;
      margin: 5% 0;
      padding: 5%;
      font-size: 1.6rem;
    }

    .otabi-deity__body {
      grid-template-columns: minmax(0, 1fr);
      gap: 1.25rem;
      padding: 0;
    }

    .otabi-deity__body p br { display: none; }

    .otabi-seasons {
      padding: 0.5rem;
    }

    .otabi-seasons.is-ready .otabi-season:not(.is-active) .otabi-season__content {
      display: none;
    }

    .otabi-season__content {
      padding: 1rem;
      background-image: linear-gradient(rgb(255 255 255 / 0.86), rgb(255 255 255 / 0.86)), url("../images/pages/introduction/content-background.jpg") !important;
    }

    .otabi-season__calendar {
      grid-template-columns: minmax(0, 1fr);
      gap: 1rem;
    }

    .otabi-season__month {
      padding-block-end: 1rem;
      border-block-end: 1px solid #ddd;
    }

    .otabi-season__month:last-child { border-block-end: 0; }

    .otabi-season__month h3 {
      margin-block-end: 0.75rem;
      padding-block-end: 0.4rem;
      color: var(--ikuta-color-purple-deep);
      border-block-end: 2px solid currentcolor;
    }

    .otabi-season__month li + li { margin-block-start: 0.75rem; }

    .otabi-season__month p {
      line-height: 1.75;
    }

    .otabi-season__month p span {
      margin-inline-end: 0.5em;
      color: var(--ikuta-color-purple-deep);
      font-weight: 600;
    }

    .otabi-history summary {
      padding: 1rem 3.25rem 1rem 1rem;
      text-align: left;
    }

    .otabi-history th,
    .otabi-history td {
      padding: 0.65rem 0.5rem;
      font-size: 0.85rem;
      overflow-wrap: anywhere;
    }

    .otabi-history th { width: 42%; }

    .otabi-prayer {
      grid-template-columns: minmax(0, 1fr);
      gap: 1.25rem;
    }

    .otabi-prayer tr,
    .otabi-prayer th,
    .otabi-prayer td {
      display: block;
      width: 100%;
    }

    .otabi-prayer th {
      color: var(--ikuta-color-white);
      background: #606060;
    }

    .otabi-prayer tfoot td {
      background: #f7f5f1;
    }

    .otabi-prayer figure {
      width: min(100%, 22rem);
      margin: 0 auto;
    }

    .otabi-districts {
      grid-template-columns: minmax(0, 1fr);
      gap: 1rem;
    }

    .otabi-district {
      padding: 1rem 1.25rem;
    }
  }

  .familiar-collabo-page {
    width: 100%;
  }

  .familiar-collabo-page .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
  }

  .familiar-collabo-page__cover {
    padding: 5%;
    background-color: #6ea3dc;
    background-blend-mode: soft-light;
    box-shadow: 0 0 1px 1px rgb(0 0 0 / 0.3);
  }

  .familiar-collabo-page__content {
    width: min(100%, 75rem);
    margin-block-start: 3.75rem;
    margin-inline: auto;
    padding: 0.625rem;
    background: rgb(255 255 255 / 0.9);
    border: 1px solid var(--ikuta-color-white);
    border-radius: 0.375rem;
  }

  .familiar-collabo-page__image {
    display: block;
    aspect-ratio: var(--familiar-ratio-mobile);
    margin: 0;
    overflow: hidden;
    background: transparent;
  }

  .familiar-collabo-page__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .familiar-collabo-page__image--hero {
    margin-block-end: 2em;
  }

  @media (min-width: 35rem) {
    .familiar-collabo-page {
      padding-block-start: 7%;
      background: url("../images/pages/familiar-collabo/page_familiar-collabo_head.jpg") no-repeat fixed top center / contain;
    }

    .familiar-collabo-page__cover {
      padding: 3rem 0 2.5rem;
    }

    .familiar-collabo-page__content {
      padding: 1.25rem;
    }

    .familiar-collabo-page__image {
      aspect-ratio: var(--familiar-ratio-desktop);
    }
  }

  .hagukumamori-page {
    width: 100%;
  }

  .hagukumamori-page__hero {
    margin: 0;
  }

  .hagukumamori-page__hero img {
    display: block;
    width: 100%;
    height: auto;
  }

  .hagukumamori-page__body p {
    max-width: 43.75rem;
    margin: 1.25rem 0;
    padding: 0 0.625rem;
    line-height: 1.8;
  }

  .hagukumamori-page__body .hagukumamori-page__signature {
    text-align: right;
  }@media (width >= 60rem) {
    .hagukumamori-page {
      padding-block-start: 30%;
      background: url("../images/pages/introduction/hero.jpg") no-repeat fixed top center / cover;
    }

    .hagukumamori-page__hero {
      display: none;
    }

  .hagukumamori-page__body p {
      margin: 1.875rem auto;
      padding: 0;
    }  }

  .shooting-rules-page {
    width: 100%;
  }

  .shooting-rules-page__hero {
    margin: 0;
  }

  .shooting-rules-page__hero img {
    display: block;
    width: 100%;
    height: auto;
  }

  .shooting-rules-page__lead {
    max-width: none;
    margin: 0 0 10%;
    line-height: 1.8;
  }

  .shooting-rules-page__body {
    line-height: 1.8;
  }

  .shooting-rules-page__body > p,
  .shooting-rules-page__rule-group {
    max-width: none;
    margin: 1.25rem 0;
    padding-inline: 0.625rem;
  }

  .shooting-rules-page__rule-group p {
    margin: 0;
  }

  .shooting-rules-page__rule-group ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .shooting-rules-page__rule-group li {
    position: relative;
    max-width: none;
    padding-inline-start: 1.25em;
  }

  .shooting-rules-page__rule-group li::before {
    position: absolute;
    inset-inline-start: 0;
    content: "◆";
  }

  @media (width >= 60rem) {
    .shooting-rules-page {
      padding-block-start: 30%;
      background: url("../images/pages/introduction/hero.jpg") no-repeat fixed top center / cover;
    }

    .shooting-rules-page__hero {
      display: none;
    }

  .shooting-rules-page__lead {
      margin: 0 auto 2.5rem;
      line-height: 3rem;
      text-align: center;
    }

    .shooting-rules-page__body {
      width: min(calc(100% - 2rem), 52.5rem);
      margin-inline: auto;
    }

    .shooting-rules-page__body > p,
    .shooting-rules-page__rule-group {
      margin: 1.875rem auto;
      padding: 0;
    }

    .shooting-rules-page__rule-group li {
      padding-inline-start: 2em;
    }
  }

  .newyear-page {
    width: 100%;
  }

  .newyear-page__hero {
    margin: 0;
  }

  .newyear-page__hero img,
  .newyear-page__panel img,
  .newyear-page__links img {
    display: block;
    width: 100%;
    height: auto;
  }

  .newyear-page__inner {
    width: 100%;
    max-width: 60rem;
    margin-inline: auto;
  }

  .newyear-page__panel {
    display: block;
    margin: 0;
  }

  .newyear-page__links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    width: min(100%, 47.5rem);
    margin: 2rem auto;
  }

  .newyear-page__links a {
    display: block;
    transition: opacity 0.2s ease;
  }

  .newyear-page__links a:hover {
    opacity: 0.75;
  }

  @media (width >= 60rem) {
    .newyear-page {
      padding-block-start: 30%;
      background: url("../images/pages/newyear/page_newyear.jpg") no-repeat fixed -10% center / cover;
    }

    .newyear-page__hero {
      display: none;
    }

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

  .qr-omikuji-page { width: 100%; }
  .qr-omikuji-page__hero { margin: 0; }
  .qr-omikuji-page__hero img { display: block; width: 100%; height: auto; }

  .qr-omikuji-page__body { width: 100%; max-width: 60rem; margin-inline: auto; }
  .qr-omikuji-page__catch { margin: 0; font-size: 1.6em; line-height: 1.5; text-align: center; }
  .qr-omikuji-page__lead { max-width: none; margin: 0 auto 2.5rem; line-height: 3rem; text-align: center; }
  .qr-omikuji-page__body .qr-omikuji-page__intro-image { width: min(100%, 37.5rem); margin: 0 auto 1.125rem !important; }
  .qr-omikuji-page__intro-image img { display: block; width: 100%; height: auto; }
  .qr-omikuji-page__lead--second { margin-block-end: 2.5rem; }
  .qr-omikuji-manual { margin: 0; padding: 3rem 1.25rem; color: var(--ikuta-color-white); background: url("../images/pages/qr-omikuji/page_qromikuji.jpg") no-repeat top center / cover; }
  .qr-omikuji-manual__title { width: min(100%, 40rem); margin: 0 auto; padding: 0.625rem 0.3125rem; color: var(--ikuta-color-white); font-size: 1.125rem; line-height: 1.875rem; text-align: center; overflow: hidden; }
  .qr-omikuji-manual__title span { position: relative; display: inline-block; padding-inline: 1.25rem; font-family: var(--ikuta-font-mincho); font-size: 1.5rem; }
  .qr-omikuji-manual__title span::before,
  .qr-omikuji-manual__title span::after { position: absolute; top: 50%; width: 99em; border-top: 1px solid #ddd; content: ""; }
  .qr-omikuji-manual__title span::before { right: 100%; }
  .qr-omikuji-manual__title span::after { left: 100%; }
  .qr-omikuji-manual__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
  .qr-omikuji-manual__list li { max-width: none; margin: 0; padding: 0; }
  .qr-omikuji-manual__list img { display: block; width: 100%; height: auto; box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2); }
  .qr-omikuji-manual__list p { max-width: none; margin: 0; color: var(--ikuta-color-white); font-size: 0.875rem; line-height: 1.5; }
  .qr-omikuji-page__table { width: 100%; line-height: 1.5; border-collapse: collapse; background: var(--ikuta-color-white); }
  .qr-omikuji-page__table caption { padding: 0.625rem 1.25rem; color: var(--ikuta-color-white); font-weight: 700; text-align: center; background: #271545; border: 1px solid #271545; }
  .qr-omikuji-page__table th,
  .qr-omikuji-page__table td { display: block; width: 100%; padding: 0.625rem 1.25rem; }
  .qr-omikuji-page__table th { color: var(--ikuta-color-white); background: #271545; border: 1px solid #271545; border-bottom-color: var(--ikuta-color-white); }
  .qr-omikuji-page__table td { border: 1px solid #271545; }

  @media (width >= 60rem) {
    .qr-omikuji-page { padding-block-start: 30%; background: url("../images/pages/qr-omikuji/page_amulet.jpg") no-repeat fixed top center / cover; }
    .qr-omikuji-page__hero { display: none; }

  .qr-omikuji-manual { padding: 5rem 0; }
    .qr-omikuji-manual__list { grid-template-columns: repeat(4, 12.5rem); gap: 2.5rem; margin: 1.25rem; }
    .qr-omikuji-manual__list p { font-size: 1rem; line-height: 1.5; }
    .qr-omikuji-page__table caption { display: table-caption; }
    .qr-omikuji-page__table th,
    .qr-omikuji-page__table td { display: table-cell; width: auto; }
  }

  .miko-page { width: 100%; }
  .miko-page__hero { margin: 0; }
  .miko-page__hero img,
  .miko-page__main-image img { display: block; width: 100%; height: auto; }

  .miko-page__inner { width: 100%; max-width: 60rem; margin-inline: auto; }
  .miko-page__lead { max-width: none; margin: 0 auto 10%; line-height: 1.8; text-align: center; }
  .miko-page__lead br { display: none; }
  .miko-page__main-image { margin: 0 0 1rem; }
  .miko-page__table { width: 100%; margin: 0 0 1rem; line-height: 1.8; border-collapse: collapse; background: var(--ikuta-color-white); }
  .miko-page__table th,
  .miko-page__table td { display: block; width: 100%; }
  .miko-page__table th { padding: 1% 3%; font-weight: 400; text-align: left; background: #efefef; }
  .miko-page__table td { padding: 3% 0; }
  .miko-page__table td p { max-width: none; margin: 0 0 1.8em; }
  .miko-page__table td p:last-child { margin-block-end: 0; }

  @media (width >= 60rem) {
    .miko-page { padding-block-start: 30%; background: url("../images/pages/miko/page_miko.jpg") no-repeat fixed top center / cover; }
    .miko-page__hero { display: none; }

  .miko-page__lead { margin-block-end: 2.5rem; line-height: 3rem; }
    .miko-page__lead br { display: initial; }
    .miko-page__main-image { margin: 0 0 2.5rem; }
    .miko-page__table { width: 60rem; margin: 0; border-top: 1px solid #ccc; border-right: 1px solid #ccc; }
    .miko-page__table th,
    .miko-page__table td { display: table-cell; padding: 0.625rem; border-bottom: 1px solid #ccc; border-left: 1px solid #ccc; }
    .miko-page__table th { width: 13.75rem; vertical-align: middle; }
    .miko-page__table td { width: 43.75rem; }
  }

  .priestess-page { width: 100%; }
  .priestess-page__hero,
  .priestess-page__main-image,
  .priestess-page__qualification figure { margin: 0; }
  .priestess-page__hero img,
  .priestess-page__main-image img,
  .priestess-page__qualification img,
  .priestess-page__gallery img { display: block; width: 100%; height: auto; }

  .priestess-page__inner { width: 100%; max-width: 60rem; margin-inline: auto; }
  .priestess-page__lead { max-width: none; margin: 0 auto 10%; line-height: 1.8; text-align: center; }
  .priestess-page__lead br { display: none; }
  .priestess-page__main-image { margin-block-end: 1rem; }
  .priestess-page__table { width: 100%; margin: 0 0 1rem; line-height: 1.5; border-collapse: collapse; background: var(--ikuta-color-white); }
  .priestess-page__table th,
  .priestess-page__table td { display: block; width: 100%; }
  .priestess-page__table th { padding: 1% 3%; font-weight: 400; text-align: left; background: #efefef; }
  .priestess-page__table td { padding: 3% 0; }
  .priestess-page__entry-comment { padding: 1.25rem; line-height: 1; text-align: center; background: var(--ikuta-color-white); border: 1px solid #919d21; }
  .priestess-page__entry-comment p { max-width: none; margin: 0; }
  .priestess-page__qualification { display: flex; flex-direction: column; gap: 1.25rem; margin-block-end: 3rem; }
  .priestess-page__qualification h2 { margin: 0.5rem auto; color: #919d21; font-family: var(--ikuta-font-mincho); font-size: 1.25rem; font-weight: 400; }
  .priestess-page__qualification ul { margin: 0 0 1rem; padding: 0; list-style: none; }
  .priestess-page__qualification li { max-width: none; padding: 0.5em; border-bottom: 1px solid #919d21; }
  .priestess-page__qualification a { color: #919d21; font-weight: 700; }
  .priestess-page__course h3 { margin: 0; padding: 0.5rem 0; color: var(--ikuta-color-white); font-family: var(--ikuta-font-mincho); font-size: 1rem; font-weight: 400; text-align: center; background: linear-gradient(#271545, #6940ae); }
  .priestess-page__course > div { padding: 1rem; background: var(--ikuta-color-white); border: 2px solid #6940ae; }
  .priestess-page__course p { max-width: none; margin: 0.5rem auto; line-height: 1.8; }
  .priestess-page__selection caption { padding: 0 0 1rem; color: #919d21; font-family: var(--ikuta-font-mincho); font-size: 1.3em; text-align: left; }
  .priestess-page__download-title { margin: 0.8rem 0 0.5rem; padding: 0.5rem 0; font-size: 1.2rem; background: #eee; border-bottom: 2px solid #500b93; }
  .priestess-page__downloads { display: grid; gap: 1.25rem; width: min(100%, 18.75rem); margin-inline: auto; }
  .priestess-page__downloads .c-button { min-height: 2.75rem; color: var(--ikuta-color-white); text-decoration: none; }
  .priestess-page__gallery { display: none; margin: 2.5rem 0; padding: 0; list-style: none; }
  .priestess-page__closed > p { max-width: 37.5rem; margin: 1rem auto; padding: 1rem 0.5rem; font-weight: 700; text-align: center; border: 1px solid #8a1d00; border-top-width: 4px; }

  @media (width >= 60rem) {
    .priestess-page { padding-block-start: 30%; background: url("../images/pages/priestess/page_priestess.jpg") no-repeat fixed top center / cover; }
    .priestess-page__hero { display: none; }

  .priestess-page__lead { margin-block-end: 2.5rem; line-height: 3rem; }
    .priestess-page__lead br { display: initial; }
    .priestess-page__main-image { margin-block-end: 2.5rem !important; }
    .priestess-page__table { width: 60rem; margin: 0; border-top: 1px solid #ccc; border-right: 1px solid #ccc; }
    .priestess-page__table th,
    .priestess-page__table td { display: table-cell; padding: 0.625rem; border-bottom: 1px solid #ccc; border-left: 1px solid #ccc; }
    .priestess-page__table th { width: 13.75rem; vertical-align: middle; }
    .priestess-page__table td { width: 43.75rem; }
    .priestess-page__entry { width: 56.25rem; margin: 0 0 2.5rem; }
    .priestess-page__entry-comment { font-size: 1.125rem; }
    .priestess-page__qualification { flex-direction: row; justify-content: space-between; gap: 2.5rem; height: 39.25rem; }
    .priestess-page__qualification figure { flex: 0 0 22.5rem; }
    .priestess-page__qualification > div { flex: 0 0 35rem; }
    .priestess-page__qualification li { height: 3.125rem; padding: 0; line-height: 3.125rem; }
    .priestess-page__selection { margin-block-start: 3rem; }
    .priestess-page__selection caption { height: 2.3125rem; padding: 0 0.625rem; color: var(--ikuta-color-white); font-size: 1rem; line-height: 2.1875rem; text-align: left; background: linear-gradient(#271545, #6940ae); border: 1px solid #ccc; }
    .priestess-page__selection tr:last-child td { padding-block-end: 1.875rem; }
    .priestess-page__downloads + .priestess-page__download-title { margin-block-start: 1.15rem; }
    .priestess-page__downloads { grid-template-columns: 1fr; }
    .priestess-page__gallery { display: grid; grid-template-columns: repeat(3, 18.75rem); gap: 1.875rem; margin: 2.5rem 0 5rem; }
    .priestess-page__gallery li { max-width: none; margin: 0; padding: 0; }
  }

  .love-page { width: 100%; }
  .love-page__hero { margin: 0; }
  .love-page__hero img { display: block; width: 100%; height: auto; }

  .love-page__lead { margin-block-end: 10%; }
  .love-page__lead br,
  .love-page__water-intro br,
  .love-page__tamaki br,
  .love-water__description br { display: none; }
  .love-page__water-intro { margin: 5% 0 10%; }
  .love-page__water-intro img { display: block; width: 100%; margin-block-end: 3%; }
  .love-page__water-intro p { margin: 0 0 3%; }
  .love-water { margin-inline: -5.5556%; padding: 10% 5%; color: #fff; background: rgb(0 0 0 / 0.5) url("../images/pages/love-come-true/page_water.jpg") no-repeat top center / cover; }
  .love-water__title { width: 90%; margin: 0 auto; padding: 5%; overflow: hidden; color: #fff; font-family: var(--ikuta-font-mincho); font-size: 1.2em; font-weight: 400; text-align: center; }
  .love-water__title span { position: relative; display: inline-block; padding-inline: 5%; }
  .love-water__title span::before,
  .love-water__title span::after { position: absolute; top: 50%; width: 99em; border-top: 1px solid #ddd; content: ""; }
  .love-water__title span::before { right: 100%; }
  .love-water__title span::after { left: 100%; }
  .love-water__description { margin: 5%; }
  .love-water__steps { display: grid; gap: 1rem; margin: 0; padding: 0 5%; list-style: none; }
  .love-water__steps li { max-width: none; margin: 0; }
  .love-water__steps img { display: block; width: 100%; height: auto; box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2); }
  .love-water__steps p { margin: 0; color: #fff; line-height: 1.875rem; }
  .love-page__tamaki { margin: 5% 0 10%; }
  .love-page__tamaki-images { display: grid; margin-block-end: 3%; }
  .love-page__tamaki-images img { display: block; width: 100%; height: auto; }
  .love-page__tamaki p { margin: 0 0 3%; }
  .love-page__amulets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 5% 0 10%; padding: 3%; list-style: none; background: #406209 url("../images/pages/love-come-true/amulet_list_mark.png") repeat; }
  .love-page__amulets li { max-width: none; margin: 0; padding: 0.625rem; background: #fff; box-shadow: 0 1px 1px 1px rgb(0 0 0 / 0.2); }
  .love-page__amulets img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }

  @media (width < 22rem) {
    .love-page__amulets { grid-template-columns: 1fr; }
  }

  @media (min-width: 60rem) {
    .love-page { padding-block-start: 30%; background: url("../images/pages/love-come-true/page_love.jpg") no-repeat fixed top center / cover; }
    .love-page__hero { display: none; }

  .love-page__lead { max-width: none; margin: 0 auto 2.5rem; font-size: 1rem; line-height: 3rem; text-align: center; }
    .love-page__lead br,
    .love-page__water-intro br,
    .love-page__tamaki br,
    .love-water__description br { display: initial; }
    .love-page__water-intro { width: 60rem; margin: 0 auto 2.5rem; }
    .love-page__water-intro img { width: 55rem; margin: 0 auto 2.5rem; }
    .love-page__water-intro p { max-width: none; margin: 0 0 1.25rem; text-align: center; line-height: 2rem; }
    .love-water { margin: 0; padding: 5rem 0; background-attachment: fixed; }
    .love-water__title { width: 40rem; height: 1.875rem; margin: 0 auto; padding: 0; font-size: 1.5rem; line-height: 1.875rem; }
    .love-water__title span { padding-inline: 1.25rem; }
    .love-water__description { max-width: none; width: 60rem; margin: 2.5rem auto; text-align: center; line-height: 3rem; }
    .love-water__steps { grid-template-columns: repeat(3, 16.25rem); gap: 2.5rem; width: 56.25rem; margin-inline: auto; padding: 0; }
    .love-page__tamaki { width: 60rem; margin: 0 auto 2.5rem; }
    .love-page__tamaki-images { grid-template-columns: 1fr 1fr; margin-block-end: 2.5rem; }
    .love-page__tamaki p { max-width: none; margin: 0 0 1.25rem; text-align: center; line-height: 2rem; }
    .love-page__amulets { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.875rem; width: 58.125rem; margin: 0 auto; padding: 0.9375rem; }
  }

  .shichigosan-page { width: 100%; }
  .shichigosan-page__hero { margin: 0; }
  .shichigosan-page__hero img { display: block; width: 100%; height: auto; }

  .shichigosan-page__lead,
  .shichigosan-page__copy,
  .shichigosan-page__notice { margin: 0 auto 10%; line-height: 1.8; }
  .shichigosan-page__lead br,
  .shichigosan-page__copy br,
  .shichigosan-prayer br,
  .shichigosan-hall br { display: none; }
  .shichigosan-page__prayer-photo { display: block; width: 100%; margin: 0 auto 5%; }

  .shichigosan-page__subtitle { max-width: none; text-align: center; font-family: var(--ikuta-font-mincho); font-size: 1.2rem; }
  .shichigosan-souvenirs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.25rem auto; }
  .shichigosan-souvenirs img { display: block; width: 100%; height: auto; }
  .shichigosan-page__candy { width: min(100%, 26.25rem); margin: 1.25rem auto; padding: 0.625rem; text-align: center; font-weight: 700; background: rgb(255 255 255 / 0.8); border: 3px solid #ff6991; }
  .shichigosan-gallery-section { margin-inline: -5.5556%; padding: 0 5% 10%; }
  .shichigosan-gallery { width: 100%; padding: 1rem; background: url("../images/pages/shichigosan/slide_753_back.jpg") center / cover; }
  .shichigosan-gallery__stage { position: relative; display: grid; place-items: center; min-height: min(120vw, 37.5rem); overflow: hidden; }
  .shichigosan-gallery__slide { display: none; height: min(120vw, 37.5rem); margin: 0; }
  .shichigosan-gallery__slide.is-active { display: block; }
  .shichigosan-gallery__slide img { display: block; width: auto; height: 100%; object-fit: contain; }
  .shichigosan-gallery__arrow { position: absolute; top: 50%; z-index: 2; width: 2.75rem; height: 3.5rem; padding: 0; color: #fff; font-size: 3rem; line-height: 1; background: rgb(0 0 0 / 0.35); border: 0; transform: translateY(-50%); }
  .shichigosan-gallery__arrow--previous { left: 0; }
  .shichigosan-gallery__arrow--next { right: 0; }
  .shichigosan-gallery__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.35rem; margin-block-start: 0.75rem; }
  .shichigosan-gallery__thumb { aspect-ratio: 2 / 3; padding: 0; overflow: hidden; background: #fff; border: 2px solid transparent; opacity: 0.72; }
  .shichigosan-gallery__thumb.is-active { border-color: #ff6991; opacity: 1; }
  .shichigosan-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .shichigosan-prayer { display: grid; align-items: start; gap: 1rem; margin-inline: auto; }
  .shichigosan-prayer table { width: 100%; border-collapse: collapse; }
  .shichigosan-prayer caption { padding: 0.75rem; color: #fff; font-family: var(--ikuta-font-mincho); font-size: 1.2rem; background: linear-gradient(#606060, #303030); }
  .shichigosan-prayer th,
  .shichigosan-prayer td { padding: 0.75rem; border: 1px solid #e5e5e5; }
  .shichigosan-prayer th { width: 45%; font-weight: 400; background: #efefef; }
  .shichigosan-prayer td { background: #fff; }
  .shichigosan-prayer img { display: block; width: min(100%, 22.5rem); margin-inline: auto; }
  .shichigosan-prayer p { margin: 0; line-height: 1.8; }
  .shichigosan-hall { margin: 2rem auto; padding: 1.25rem; text-align: center; background: rgb(255 255 255 / 0.8); border: 2px solid #a78661; }
  .shichigosan-hall p { max-width: none; margin: 0; }
  .shichigosan-congestion { display: block; width: min(100%, 62.5rem); margin: 2rem auto; }
  .shichigosan-faq { margin-block-start: 3rem; padding: 5%; background: #efefef; border: 1px solid #ccc; }
  .shichigosan-faq .c-section-title { margin-top: 0; }
  .shichigosan-faq details { margin-block-end: 1rem; }
  .shichigosan-faq summary { padding: 0.75rem 2.5rem 0.75rem 1rem; color: #303030; font-family: var(--ikuta-font-mincho); font-size: 1.2rem; background: #d7d4cb; cursor: pointer; }
  .shichigosan-faq__body { padding: 1rem; background: #fff; }
  .shichigosan-faq__body article { margin-block-end: 1.5rem; }
  .shichigosan-faq__body article:last-child { margin-block-end: 0; }
  .shichigosan-faq__body h3 { margin: 0 0 0.5rem; color: #919d21; font-size: 1rem; }
  .shichigosan-faq__body h3::before { content: "Q. "; font-family: "Times New Roman", serif; }
  .shichigosan-faq__body p { width: 100%; max-width: none; margin: 0; padding: 1rem; background: #efefef; }

  @media (min-width: 60rem) {
    .shichigosan-page { padding-block-start: 30%; background: url("../images/pages/shichigosan/page_753_2.jpg") no-repeat fixed top center / cover; }
    .shichigosan-page__hero { display: none; }

  .shichigosan-page__lead,
    .shichigosan-page__notice { max-width: 60rem; margin: 0 auto 2.5rem; text-align: center; line-height: 3rem; text-wrap: pretty; }
    .shichigosan-page__copy { max-width: 48rem; margin: 0 auto 2.5rem; text-align: left; line-height: 2.25rem; text-wrap: pretty; }
    .shichigosan-page__lead br,
    .shichigosan-prayer br,
    .shichigosan-hall br { display: initial; }
    .shichigosan-page__copy br { display: none; }
    .shichigosan-page__prayer-photo { width: 37.5rem; margin-bottom: 2.5rem; }
    .shichigosan-page__subtitle { font-size: 1.5rem; }
    .shichigosan-souvenirs { grid-template-columns: repeat(4, minmax(0, 1fr)); width: 60rem; }
    .shichigosan-gallery-section { margin: 0; padding: 0; }
    .shichigosan-gallery { width: 57.5rem; margin: 0 auto; padding: 1.25rem; }
    .shichigosan-gallery__stage { min-height: 30rem; }
    .shichigosan-gallery__slide { position: absolute; top: 0; height: 30rem; }
    .shichigosan-gallery__slide.is-active { position: relative; z-index: 2; }
    .shichigosan-gallery__slide.is-previous,
    .shichigosan-gallery__slide.is-next { display: block; z-index: 1; width: calc((100% - 20rem) / 2); overflow: hidden; opacity: 0.38; }
    .shichigosan-gallery__slide.is-previous { left: 0; }
    .shichigosan-gallery__slide.is-next { right: 0; }
    .shichigosan-gallery__slide.is-previous img,
    .shichigosan-gallery__slide.is-next img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.55) saturate(0.75); }
    .shichigosan-gallery__thumbs { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 0.25rem; margin-top: 0.75rem; }
    .shichigosan-prayer { grid-template-columns: 33.75rem 22.5rem; width: 60rem; }
    .shichigosan-prayer p { grid-column: 1 / -1; }
    .shichigosan-hall { width: 60rem; }
    .shichigosan-faq { width: 60rem; margin-inline: auto; padding: 1.25rem; }
  }

  /* Shared content wrapper. */
  .c-page-content {
    min-width: 0;
    padding: 0 5% 10%;
    background: var(--ikuta-color-white);
  }

  @media (width >= 60rem) {
    .c-page-content {
      padding: 3rem 0 2.5rem;
      background-color: transparent;
      background-image: url("../images/pages/introduction/content-top.jpg"), url("../images/pages/introduction/content-background.jpg");
      background-repeat: repeat-x, repeat-y;
      background-position: top center, top center;
      background-size: auto, 100% auto;
    }
  }

  /* Shared page hero. Pages pass the image through --c-page-hero. */
  .c-page-hero {
    margin: 0 !important;
    overflow: hidden;
    background: #d7d4cb;
  }

  .c-page-hero img {
    display: block;
    width: 100%;
  }

  @media (width < 60rem) {
    .c-page-hero img {
      aspect-ratio: 16 / 9;
      object-fit: cover;
    }
  }

  @media (width >= 60rem) {
    .c-page-hero {
      aspect-ratio: 10 / 3;
      background: var(--c-page-hero) no-repeat fixed top center / cover #d7d4cb;
    }

    .c-page-hero img {
      height: 100%;
      opacity: 0;
      object-fit: cover;
    }
  }

  /* Shared heading components. */
  .c-page-title {
    width: 100%;
    height: auto;
    margin: 1em 0;
    padding: 0;
    color: var(--ikuta-color-ink);
    font-family: var(--ikuta-font-mincho);
    font-size: 1.4em;
    font-weight: 500;
    line-height: var(--ikuta-line-heading);
    text-align: left;
    text-shadow: none;
    background: none;
    border: 0;
    border-block-end: 1px solid #ccc;
    box-shadow: none;
  }

  .c-deity-heading,
  .c-history-item-heading {
    width: 100%;
    margin-inline: 0;
    color: var(--ikuta-color-ink);
    font-family: var(--ikuta-font-mincho);
    font-weight: 500;
    line-height: var(--ikuta-line-heading);
    text-align: center;
  }

  .c-deity-heading {
    height: auto;
    margin-block: 5%;
    padding: 5%;
    font-size: 1.4em;
    background: url("../images/pages/history/goddess-title-background.jpg") no-repeat top center / cover;
  }

  .c-history-item-heading {
    margin-block: 0;
    padding: 3% 0;
    font-size: 1.2em;
    border-block-end: 1px solid #ccc;
  }

  .c-history-item-heading img {
    display: none;
  }

  .c-section-title,
  .c-section-title-plain,
  .c-section-title-amulet,
  .c-section-title-season {
    width: 100%;
    height: auto;
    margin: 10% 0 5%;
    padding: 3% 0;
    color: var(--ikuta-color-white);
    font-family: var(--ikuta-font-mincho);
    font-size: 1.2em;
    line-height: var(--ikuta-line-heading);
    text-align: center;
    text-shadow: -1px 1px 1px rgb(0 0 0 / 0.6);
  }

  .c-section-title {
    font-weight: 400;
    background: url("../images/pages/miko/h3_back.png") var(--ikuta-color-purple-deep) repeat;
  }

  .c-section-title-plain {
    font-weight: 500;
    background: url("../images/pages/history/section-title-mobile.png") var(--ikuta-color-purple-deep) repeat;
  }

  .c-section-title-amulet {
    font-weight: 500;
    background: #607d1d url("../images/pages/amulet/amulet-list-mark.png") repeat;
  }

  .c-section-title-season {
    font-weight: 500;
    background: var(--rite-season-color);
  }

  @media (min-width: 60rem) {
    .c-page-title {
      width: min(100%, 60rem);
      height: 4.375rem;
      margin: 2.5rem auto;
      padding: 0;
      color: var(--ikuta-color-white);
      font-size: 1.5rem;
      line-height: 4.375rem;
      text-align: center;
      text-shadow: -2px 2px 2px rgb(0 0 0 / 0.6);
      background: url("../images/pages/introduction/title-background.png") no-repeat center / 100% 100%;
      border: 1px solid var(--ikuta-color-paper);
      box-shadow: 0 2px 4px rgb(0 0 0 / 0.3);
    }

    .c-deity-heading {
      grid-column: 1 / -1;
      height: 8.75rem;
      margin-block: 0;
      padding: 0;
      font-size: 2.625rem;
      line-height: 8.75rem;
      background-size: 100% 100%;
    }

    .c-deity-heading ruby {
      ruby-position: over;
    }

    .c-history-item-heading {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 2.5rem;
      margin: 0 0 1.25rem;
      padding: 0;
      font-size: 1.375rem;
      line-height: 2.5rem;
      border-block-end: 0;
    }

    .c-history-item-heading img {
      display: block;
      flex: 0 0 auto;
      width: 2.5rem;
      height: 2.5rem;
      margin: 0 0.625rem;
    }

    .c-section-title,
    .c-section-title-plain,
    .c-section-title-amulet,
    .c-section-title-season {
      width: min(100%, 56.25rem);
      height: 3.75rem;
      margin: 2.5rem auto;
      padding: 0 0 0 3.75rem;
      color: var(--ikuta-color-ink);
      font-size: 1.5rem;
      line-height: 3.5rem;
      text-align: left;
      text-shadow: none;
      background: url("../images/pages/miko/h3_back.png") no-repeat center / 100% 100%;
    }
  }
}
