/*
Theme Name: Athena Water
Theme URI: https://www.athena-water.com/
Author: Athena Water
Description: アティーナウォーター公式サイト用のオリジナルテーマです。
Version: 0.3.0
Text Domain: athena-water
*/

:root {
  --athena-teal: #008ca4;
  --athena-teal-dark: #006b80;
  --athena-teal-pale: #eaf8fa;
  --athena-pink: #eb3c79;
  --athena-yellow: #fff92e;
  --athena-ink: #173f4a;
  --athena-muted: #61737a;
  --athena-line: #d7e5e8;
  --athena-paper: #ffffff;
  --athena-footer: #173f4a;
  --athena-content-width: 1000px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  margin: 0;
  padding-bottom: 74px;
  color: var(--athena-ink);
  background: var(--athena-paper);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;
  -webkit-font-smoothing: antialiased;
}

body.menu-is-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

button,
input,
textarea,
select {
  font: inherit;
}

.screen-reader-text {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.screen-reader-text:focus {
  z-index: 100000;
  top: 8px;
  left: 8px;
  width: auto;
  height: auto;
  padding: 12px 16px;
  clip: auto;
  color: #fff;
  background: var(--athena-teal-dark);
  font-weight: 700;
  white-space: normal;
}

.site-announcement {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 12px;
  color: var(--athena-teal-dark);
  background: var(--athena-teal-pale);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-align: center;
}

.site-announcement strong {
  margin-left: 7px;
  color: var(--athena-pink);
  font-size: 13px;
}

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  background: rgba(255, 255, 255, .98);
  border-bottom: 1px solid rgba(0, 140, 164, .16);
  box-shadow: 0 3px 14px rgba(23, 63, 74, .05);
  backdrop-filter: blur(10px);
}

.site-header__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px 44px;
  align-items: center;
  gap: 8px;
  min-height: 70px;
  padding: 0 14px 0 16px;
}

.site-branding {
  display: flex;
  align-items: center;
  min-width: 0;
}

.site-branding__home,
.custom-logo-link {
  display: inline-flex;
  align-items: center;
}

.site-branding__home img,
.custom-logo {
  width: 104px;
  height: 60px;
  object-fit: contain;
  object-position: left center;
}

.site-branding__description {
  display: none;
  margin: 0 0 0 16px;
  color: var(--athena-muted);
  font-size: 11px;
  line-height: 1.5;
}

.header-phone,
.menu-toggle {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border-radius: 12px;
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
}

.header-phone {
  color: var(--athena-teal-dark);
  border: 1px solid var(--athena-line);
  background: #fff;
}

.header-phone::before {
  content: "☎";
  font-size: 17px;
  line-height: 1;
}

.header-phone__number,
.header-phone__hours {
  display: none;
}

.header-phone__mobile-label {
  display: block;
}

.menu-toggle {
  cursor: pointer;
  color: #fff;
  border: 0;
  background: var(--athena-teal);
}

.menu-toggle__bars,
.menu-toggle__bars::before,
.menu-toggle__bars::after {
  display: block;
  width: 19px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}

.menu-toggle__bars {
  position: relative;
}

.menu-toggle__bars::before,
.menu-toggle__bars::after {
  position: absolute;
  left: 0;
  content: "";
}

.menu-toggle__bars::before {
  top: -6px;
}

.menu-toggle__bars::after {
  top: 6px;
}

.menu-toggle__label {
  margin-top: 2px;
}

.primary-navigation {
  position: absolute;
  z-index: 99;
  top: 100%;
  right: 0;
  left: 0;
  overflow-y: auto;
  max-height: calc(100vh - 70px);
  padding: 14px 16px 22px;
  visibility: hidden;
  opacity: 0;
  background: #fff;
  border-top: 1px solid var(--athena-line);
  box-shadow: 0 14px 28px rgba(23, 63, 74, .14);
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}

.primary-navigation.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.primary-navigation ul {
  max-width: var(--athena-content-width);
  padding: 0;
  margin: 0 auto;
  list-style: none;
}

.primary-navigation li {
  border-bottom: 1px solid var(--athena-line);
}

.primary-navigation a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  padding: 10px 4px;
  font-size: 14px;
  font-weight: 750;
}

.primary-navigation a::after {
  color: var(--athena-teal);
  content: "›";
  font-size: 20px;
}

.site-main {
  min-height: 45vh;
}

.front-page-content,
.page-content,
.posts-content {
  width: min(100% - 32px, var(--athena-content-width));
  margin: 0 auto;
}

.front-page-content:empty {
  min-height: 45vh;
}

.page-content,
.posts-content {
  padding-top: 40px;
  padding-bottom: 56px;
}

.entry-title {
  margin: 0 0 28px;
  font-size: clamp(26px, 7vw, 40px);
  line-height: 1.4;
}

.entry-content {
  font-size: 15px;
  line-height: 1.9;
}

.entry-content > *:first-child {
  margin-top: 0;
}

.site-footer {
  padding: 36px 18px 104px;
  color: #d9edf0;
  background: var(--athena-footer);
}

.site-footer__inner {
  width: min(100%, var(--athena-content-width));
  margin: 0 auto;
}

.site-footer__brand {
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  letter-spacing: .22em;
}

.site-footer__description {
  margin: 10px 0 22px;
  font-size: 11px;
  line-height: 1.8;
}

.footer-navigation {
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, .14);
}

.footer-navigation ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.footer-navigation a {
  font-size: 11px;
}

.site-footer__copyright {
  margin: 26px 0 0;
  color: #8fadb4;
  font-size: 10px;
}

.floating-cta {
  position: fixed;
  z-index: 200;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  gap: 8px;
  width: 100%;
  padding: 9px 12px calc(9px + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .97);
  border-top: 1px solid rgba(0, 107, 128, .12);
  box-shadow: 0 -7px 22px rgba(20, 72, 83, .12);
  backdrop-filter: blur(12px);
}

.floating-cta a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 13px;
  font-size: 13px;
  font-weight: 900;
}

.floating-cta__tel {
  color: var(--athena-teal-dark);
  border: 1px solid #92c7d0;
  background: #fff;
}

.floating-cta__form {
  color: #fff;
  background: var(--athena-pink);
}

@media (min-width: 768px) {
  body {
    padding-bottom: 0;
  }

  .site-header {
    position: relative;
    box-shadow: none;
  }

  .site-header__inner {
    grid-template-columns: 210px minmax(0, 1fr) auto;
    min-height: 96px;
    width: min(100% - 40px, var(--athena-content-width));
    padding: 0;
    margin: 0 auto;
  }

  .site-branding__home img,
  .custom-logo {
    width: 160px;
    height: 92px;
  }

  .site-branding__description {
    display: block;
  }

  .header-phone {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    width: auto;
    height: auto;
    border: 0;
  }

  .header-phone::before,
  .header-phone__mobile-label {
    display: none;
  }

  .header-phone__number {
    display: block;
    color: var(--athena-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.1;
  }

  .header-phone__hours {
    display: block;
    margin-top: 4px;
    color: var(--athena-muted);
    font-size: 10px;
  }

  .menu-toggle {
    display: none;
  }

  .primary-navigation {
    position: static;
    overflow: visible;
    max-height: none;
    padding: 0;
    visibility: visible;
    opacity: 1;
    background: #f2f2f2;
    border-top: 0;
    box-shadow: none;
    transform: none;
  }

  .primary-navigation ul {
    display: flex;
    justify-content: center;
  }

  .primary-navigation li {
    min-width: 160px;
    border: 0;
  }

  .primary-navigation a {
    justify-content: center;
    min-height: 44px;
    padding: 8px 24px;
    font-size: 13px;
  }

  .primary-navigation a::after {
    display: none;
  }

  .primary-navigation a:hover,
  .primary-navigation a:focus-visible {
    color: var(--athena-teal-dark);
    background: #e7f4f6;
  }

  .site-footer {
    padding: 48px 24px;
  }

  .site-footer__inner {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 20px 60px;
  }

  .footer-navigation {
    grid-column: 2;
    grid-row: 1 / span 2;
    padding: 0;
    border: 0;
  }

  .site-footer__copyright {
    grid-column: 1 / -1;
  }

  .floating-cta {
    display: none;
  }
}

/* ==================================================
   会社概要
================================================== */

#athena-company {
  --company-main: #174653;
  --company-accent: #008ea5;
  --company-pale: #edf8fa;
  --company-border: #c7dce2;
  --company-text: #294c56;
  --company-muted: #6a7f86;
  --company-white: #fff;

  width: min(100%, 960px);
  margin: 0 auto;
  padding: 24px 0 56px;
  color: var(--company-text);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    "Yu Gothic",
    YuGothic,
    Meiryo,
    sans-serif;
  line-height: 1.8;
}

#athena-company *,
#athena-company *::before,
#athena-company *::after {
  box-sizing: border-box;
}

#athena-company p,
#athena-company address {
  margin-top: 0;
  margin-bottom: 0;
}

#athena-company a {
  color: var(--company-accent);
  text-underline-offset: 0.2em;
}

/* 導入 */
#athena-company .company-intro {
  position: relative;
  margin-bottom: 48px;
  padding: 38px 44px;
  overflow: hidden;
  background:
    linear-gradient(
      135deg,
      #f4fbfd 0%,
      var(--company-pale) 100%
    );
  border: 1px solid var(--company-border);
  border-left: 5px solid var(--company-accent);
  border-radius: 10px;
}

#athena-company .company-intro::after {
  content: "";
  position: absolute;
  top: -60px;
  right: -45px;
  width: 190px;
  height: 190px;
  background: rgba(0, 142, 165, 0.08);
  border-radius: 50%;
}

#athena-company .company-intro__en {
  position: relative;
  z-index: 1;
  margin-bottom: 12px;
  color: var(--company-accent);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.24em;
}

#athena-company .company-intro__lead {
  position: relative;
  z-index: 1;
  color: var(--company-main);
  font-size: clamp(1.05rem, 2.2vw, 1.3rem);
  font-weight: 500;
  line-height: 2;
}

/* 会社情報の枠 */
#athena-company .company-card {
  overflow: hidden;
  background: var(--company-white);
  border: 1px solid var(--company-border);
  border-top: 3px solid var(--company-main);
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(23, 70, 83, 0.08);
}

#athena-company .company-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

#athena-company .company-table th,
#athena-company .company-table td {
  padding: 25px 30px;
  text-align: left;
  vertical-align: middle;
  border: 0;
  border-bottom: 1px solid var(--company-border);
}

#athena-company .company-table tr:last-child th,
#athena-company .company-table tr:last-child td {
  border-bottom: 0;
}

#athena-company .company-table th {
  width: 220px;
  color: var(--company-main);
  background: var(--company-pale);
  border-right: 1px solid var(--company-border);
  font-weight: 700;
}

#athena-company .company-table td {
  color: var(--company-text);
  background: var(--company-white);
  overflow-wrap: anywhere;
}

#athena-company .company-address {
  color: inherit;
  font-style: normal;
}

#athena-company .company-map-link {
  display: inline-block;
  margin-top: 10px;
  font-size: 0.875rem;
  font-weight: 700;
}

#athena-company .company-map-link::after {
  content: " ↗";
  font-size: 0.8em;
}

#athena-company .company-phone {
  color: var(--company-main);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
}

/* 問い合わせ枠 */
#athena-company .company-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-top: 52px;
  padding: 34px 40px;
  background: var(--company-pale);
  border: 1px solid var(--company-border);
  border-radius: 10px;
}

#athena-company .company-contact__label {
  margin-bottom: 4px;
  color: var(--company-main);
  font-size: 0.875rem;
  font-weight: 700;
}

#athena-company .company-contact__phone {
  display: inline-block;
  color: var(--company-main);
  font-size: clamp(1.75rem, 4vw, 2.3rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.35;
  text-decoration: none;
}

#athena-company .company-contact__hours {
  margin-top: 4px;
  color: var(--company-muted);
  font-size: 0.8rem;
}

#athena-company .company-contact__button {
  flex: 0 0 auto;
  display: inline-flex;
  min-width: 180px;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  padding: 12px 26px;
  color: var(--company-white);
  background: var(--company-accent);
  border: 1px solid var(--company-accent);
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    transform 0.2s ease;
}

#athena-company .company-contact__button:hover,
#athena-company .company-contact__button:focus-visible {
  color: var(--company-accent);
  background: var(--company-white);
  transform: translateY(-2px);
}

/* スマートフォン */
@media (max-width: 680px) {
  #athena-company {
    padding: 8px 0 30px;
  }

  #athena-company .pc-only {
    display: none;
  }

  #athena-company .company-intro {
    margin-bottom: 32px;
    padding: 26px 20px;
  }

  #athena-company .company-intro__lead {
    font-size: 1rem;
    line-height: 1.9;
  }

  #athena-company .company-table,
  #athena-company .company-table tbody,
  #athena-company .company-table tr,
  #athena-company .company-table th,
  #athena-company .company-table td {
    display: block;
    width: 100%;
  }

  #athena-company .company-table th {
    padding: 13px 18px;
    border-right: 0;
    border-bottom: 1px solid var(--company-border);
  }

  #athena-company .company-table td {
    padding: 18px;
  }

  #athena-company .company-contact {
    display: block;
    margin-top: 36px;
    padding: 26px 20px;
  }

  #athena-company .company-contact__button {
    width: 100%;
    margin-top: 22px;
  }
}
/* ==================================================
   Company profile typography adjustment
================================================== */

/* 通常の本文を約3px大きく */
#athena-company {
  font-size: 19px;
}

#athena-company .company-intro__en {
  font-size: 15px;
}

#athena-company .company-intro__lead {
  font-size: clamp(20px, 2.2vw, 24px);
}

#athena-company .company-table th,
#athena-company .company-table td {
  font-size: 19px;
}

#athena-company .company-map-link {
  font-size: 17px;
}

#athena-company .company-phone {
  font-size: 21px;
}

#athena-company .company-contact__label {
  font-size: 17px;
}

#athena-company .company-contact__hours {
  font-size: 16px;
}

#athena-company .company-contact__phone {
  font-size: clamp(31px, 4vw, 40px);
}

/* 電話ボタンを上下中央に配置 */
#athena-company .company-contact__button {
  height: 58px;
  min-height: 58px;
  padding: 0 28px;
  font-size: 18px;
  line-height: 1;
}

#athena-company .company-contact__button span {
  display: block;
  line-height: 1;
  transform: translateY(-1px);
}

@media (max-width: 680px) {
  #athena-company {
    font-size: 19px;
  }

  #athena-company .company-intro__lead {
    font-size: 19px;
  }

  #athena-company .company-table th,
  #athena-company .company-table td {
    font-size: 19px;
  }

  #athena-company .company-contact__button {
    height: 60px;
    min-height: 60px;
    font-size: 18px;
  }
}

/* ==================================================
   利用規約
================================================== */

#athena-terms {
  --terms-main: #174653;
  --terms-accent: #008ea5;
  --terms-pink: #ed3b7b;
  --terms-pale: #edf8fa;
  --terms-soft: #f7fbfc;
  --terms-border: #c7dce2;
  --terms-text: #294c56;
  --terms-muted: #657d84;
  --terms-white: #fff;

  width: min(100%, 960px);
  margin: 0 auto;
  padding: 24px 0 60px;
  color: var(--terms-text);
  font-size: 19px;
  line-height: 1.9;
}

#athena-terms *,
#athena-terms *::before,
#athena-terms *::after {
  box-sizing: border-box;
}

#athena-terms p {
  margin-top: 0;
  margin-bottom: 0;
}

#athena-terms a {
  color: var(--terms-accent);
  text-underline-offset: 0.2em;
}

/* 重要事項 */
#athena-terms .terms-important {
  position: relative;
  padding: 32px 36px;
  overflow: hidden;
  background: #fff5f8;
  border: 1px solid #f3b7cd;
  border-left: 6px solid var(--terms-pink);
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(58, 31, 42, 0.05);
}

#athena-terms .terms-important::after {
  content: "!";
  position: absolute;
  top: -34px;
  right: 18px;
  color: rgba(237, 59, 123, 0.08);
  font-size: 150px;
  font-weight: 800;
  line-height: 1;
}

#athena-terms .terms-important p {
  position: relative;
  z-index: 1;
}

#athena-terms .terms-important p + p {
  margin-top: 10px;
}

#athena-terms .terms-important__title {
  color: #a91e50;
  font-size: 20px;
  font-weight: 700;
}

/* 目次 */
#athena-terms .terms-navigation {
  margin-top: 44px;
  padding: 32px 36px;
  background: var(--terms-white);
  border: 1px solid var(--terms-border);
  border-top: 3px solid var(--terms-main);
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(23, 70, 83, 0.07);
}

#athena-terms .terms-navigation__title {
  margin: 0 0 22px;
  color: var(--terms-main);
  font-size: 23px;
}

#athena-terms .terms-navigation__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 30px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: terms-navigation;
}

#athena-terms .terms-navigation__list li {
  min-width: 0;
  margin: 0;
  counter-increment: terms-navigation;
}

#athena-terms .terms-navigation__list a {
  display: block;
  position: relative;
  padding: 10px 34px 10px 14px;
  color: var(--terms-main);
  background: var(--terms-soft);
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease;
}

#athena-terms .terms-navigation__list a::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 14px;
  color: var(--terms-accent);
  font-size: 24px;
  transform: translateY(-53%);
}

#athena-terms .terms-navigation__list a:hover,
#athena-terms .terms-navigation__list a:focus-visible {
  background: var(--terms-pale);
  border-color: var(--terms-border);
}

/* 条項全体 */
#athena-terms .terms-articles {
  margin-top: 48px;
  padding: 38px;
  background: var(--terms-soft);
  border: 1px solid var(--terms-border);
  border-radius: 12px;
}

/* 各条項 */
#athena-terms .terms-article {
  margin: 0 0 34px;
  padding: 0 30px 30px;
  overflow: hidden;
  background: var(--terms-white);
  border: 1px solid var(--terms-border);
  border-radius: 9px;
  box-shadow: 0 6px 18px rgba(23, 70, 83, 0.04);
  scroll-margin-top: 100px;
}

#athena-terms .terms-article:last-child {
  margin-bottom: 0;
}

#athena-terms .terms-article > h2 {
  margin: 0 -30px 26px;
  padding: 17px 30px;
  color: var(--terms-white);
  background: var(--terms-main);
  font-size: 22px;
  line-height: 1.5;
}

#athena-terms .terms-article > p {
  margin: 0;
}

#athena-terms .terms-article > ol {
  margin: 0;
  padding-left: 1.6em;
}

#athena-terms .terms-article li {
  padding-left: 5px;
}

#athena-terms .terms-article li + li {
  margin-top: 12px;
}

/* 条文内の小見出し */
#athena-terms .terms-subsection {
  margin-top: 24px;
  padding: 22px 24px;
  background: var(--terms-pale);
  border-left: 4px solid var(--terms-accent);
  border-radius: 6px;
}

#athena-terms .terms-subsection:first-of-type {
  margin-top: 0;
}

#athena-terms .terms-subsection h3 {
  margin: 0 0 10px;
  color: var(--terms-main);
  font-size: 19px;
}

#athena-terms .terms-subsection p {
  margin: 0;
}

/* （1）（2）形式のリスト */
#athena-terms .terms-parentheses {
  margin: 16px 0 0;
  padding: 18px 20px;
  background: var(--terms-pale);
  border-radius: 6px;
  list-style: none;
  counter-reset: parentheses;
}

#athena-terms .terms-parentheses > li {
  position: relative;
  margin: 0;
  padding-left: 2.2em;
  counter-increment: parentheses;
}

#athena-terms .terms-parentheses > li::before {
  content: "（" counter(parentheses) "）";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--terms-main);
  font-weight: 700;
}

#athena-terms .terms-parentheses > li + li {
  margin-top: 10px;
}

/* スマートフォン */
@media (max-width: 680px) {
  #athena-terms {
    padding: 8px 0 32px;
    font-size: 18px;
    line-height: 1.85;
  }

  #athena-terms .terms-important {
    padding: 24px 20px;
  }

  #athena-terms .terms-important__title {
    font-size: 19px;
  }

  #athena-terms .terms-navigation {
    margin-top: 30px;
    padding: 24px 18px;
  }

  #athena-terms .terms-navigation__list {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  #athena-terms .terms-navigation__list a {
    font-size: 16px;
  }

  #athena-terms .terms-articles {
    margin-top: 34px;
    padding: 14px;
  }

  #athena-terms .terms-article {
    margin-bottom: 20px;
    padding: 0 18px 24px;
  }

  #athena-terms .terms-article > h2 {
    margin: 0 -18px 22px;
    padding: 15px 18px;
    font-size: 20px;
  }

  #athena-terms .terms-subsection {
    padding: 18px;
  }

  #athena-terms .terms-parentheses {
    padding: 16px 14px;
  }
}

/* ========================================
   特定商取引法に基づく表記
======================================== */

#athena-legal {
  --legal-main: #164654;
  --legal-accent: #0097ad;
  --legal-pink: #ef3478;
  --legal-pale: #edf8fb;
  --legal-border: #c3dfe5;
  --legal-text: #244d59;

  max-width: 960px;
  margin: 0 auto;
  padding: 10px 0 80px;
  color: var(--legal-text);
  font-size: 19px;
  line-height: 1.9;
  letter-spacing: 0.02em;
}

#athena-legal,
#athena-legal * {
  box-sizing: border-box;
}

#athena-legal a {
  color: var(--legal-accent);
  text-decoration: none;
}

#athena-legal a:hover {
  text-decoration: underline;
}

#athena-legal .legal-intro {
  position: relative;
  overflow: hidden;
  margin: 0 0 46px;
  padding: 30px 36px;
  border: 1px solid var(--legal-border);
  border-left: 5px solid var(--legal-accent);
  border-radius: 0 12px 12px 0;
  background: var(--legal-pale);
}

#athena-legal .legal-intro::after {
  content: "";
  position: absolute;
  top: -70px;
  right: -45px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: rgba(0, 151, 173, 0.07);
}

#athena-legal .legal-intro p {
  position: relative;
  z-index: 1;
  margin: 0;
}

#athena-legal .legal-intro .legal-en {
  margin: 0 0 10px;
  color: var(--legal-accent);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.13em;
}

#athena-legal .legal-card {
  overflow: hidden;
  margin-bottom: 42px;
  border: 1px solid var(--legal-border);
  border-top: 4px solid var(--legal-main);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(22, 70, 84, 0.07);
}

#athena-legal .legal-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

#athena-legal .legal-table th,
#athena-legal .legal-table td {
  padding: 24px 30px;
  border: 0;
  border-bottom: 1px solid var(--legal-border);
  text-align: left;
  vertical-align: middle;
  font-size: 18px;
  line-height: 1.8;
}

#athena-legal .legal-table tr:last-child th,
#athena-legal .legal-table tr:last-child td {
  border-bottom: 0;
}

#athena-legal .legal-table th {
  width: 245px;
  color: var(--legal-main);
  background: var(--legal-pale);
  font-weight: 700;
}

#athena-legal .legal-table td {
  color: var(--legal-text);
  background: #fff;
}

#athena-legal .legal-small {
  color: #6b8991;
  font-size: 15px;
}

#athena-legal .legal-payment-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

#athena-legal .legal-payment-list li {
  position: relative;
  margin: 0;
  padding-left: 22px;
  font-weight: 700;
}

#athena-legal .legal-payment-list li::before {
  content: "";
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--legal-accent);
  transform: translateY(-50%);
}

#athena-legal .legal-payment-note {
  padding: 16px 18px;
  border-left: 4px solid var(--legal-accent);
  border-radius: 4px 9px 9px 4px;
  background: var(--legal-pale);
  font-size: 16px;
  line-height: 1.8;
}

#athena-legal .legal-notice {
  margin: 0 0 42px;
  padding: 26px 30px;
  border: 1px solid #f3b5cc;
  border-radius: 12px;
  background: #fff4f8;
}

#athena-legal .legal-notice h2 {
  margin: 0 0 10px;
  padding: 0;
  color: var(--legal-pink);
  border: 0;
  font-size: 21px;
  line-height: 1.5;
}

#athena-legal .legal-notice p {
  margin: 0;
}

#athena-legal .legal-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 32px 38px;
  border: 1px solid var(--legal-border);
  border-radius: 12px;
  background: var(--legal-pale);
}

#athena-legal .legal-contact p {
  margin: 0;
}

#athena-legal .legal-contact-label {
  margin-bottom: 5px !important;
  color: var(--legal-main);
  font-size: 16px;
  font-weight: 700;
}

#athena-legal .legal-contact-number {
  color: var(--legal-main);
  font-size: 34px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.05em;
}

#athena-legal .legal-contact-hours {
  margin-top: 7px !important;
  color: #6b8991;
  font-size: 15px;
}

#athena-legal .legal-contact-actions {
  display: flex;
  flex-direction: column;
  flex: 0 0 230px;
  gap: 12px;
}

#athena-legal .legal-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 62px;
  padding: 10px 20px;
  border: 2px solid var(--legal-accent);
  border-radius: 999px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none !important;
  transition: 0.2s ease;
}

#athena-legal .legal-button span {
  display: block;
  transform: translateY(-1px);
}

#athena-legal .legal-button-primary {
  color: #fff;
  background: var(--legal-accent);
}

#athena-legal .legal-button-primary:hover {
  color: #fff;
  background: var(--legal-main);
  border-color: var(--legal-main);
}

#athena-legal .legal-button-outline {
  color: var(--legal-accent);
  background: #fff;
}

#athena-legal .legal-button-outline:hover {
  color: #fff;
  background: var(--legal-accent);
}

@media screen and (max-width: 767px) {
  #athena-legal {
    padding: 4px 0 100px;
    font-size: 18px;
    line-height: 1.85;
  }

  #athena-legal .legal-intro {
    margin-bottom: 30px;
    padding: 22px 20px;
  }

  #athena-legal .legal-card {
    margin-bottom: 28px;
    border-radius: 10px;
  }

  #athena-legal .legal-table,
  #athena-legal .legal-table tbody,
  #athena-legal .legal-table tr,
  #athena-legal .legal-table th,
  #athena-legal .legal-table td {
    display: block;
    width: 100%;
  }

  #athena-legal .legal-table th {
    padding: 14px 18px;
    border-bottom: 0;
    font-size: 17px;
  }

  #athena-legal .legal-table td {
    padding: 17px 18px 23px;
    font-size: 18px;
  }

  #athena-legal .legal-payment-list {
    display: block;
  }

  #athena-legal .legal-payment-list li {
    margin-bottom: 7px;
  }

  #athena-legal .legal-payment-note {
    font-size: 16px;
  }

  #athena-legal .legal-notice {
    margin-bottom: 28px;
    padding: 22px 20px;
  }

  #athena-legal .legal-contact {
    display: block;
    padding: 25px 20px;
  }

  #athena-legal .legal-contact-number {
    font-size: 29px;
  }

  #athena-legal .legal-contact-actions {
    margin-top: 22px;
  }

  #athena-legal .legal-button {
    min-height: 62px;
    font-size: 17px;
  }
}

/* ========================================
   プライバシーポリシー
======================================== */

#athena-privacy {
  --privacy-main: #164654;
  --privacy-accent: #0097ad;
  --privacy-pink: #ef3478;
  --privacy-pale: #edf8fb;
  --privacy-border: #c3dfe5;
  --privacy-text: #244d59;

  max-width: 960px;
  margin: 0 auto;
  padding: 10px 0 80px;
  color: var(--privacy-text);
  font-size: 19px;
  line-height: 1.9;
  letter-spacing: 0.02em;
}

#athena-privacy,
#athena-privacy * {
  box-sizing: border-box;
}

#athena-privacy a {
  color: var(--privacy-accent);
  text-decoration: none;
}

#athena-privacy a:hover {
  text-decoration: underline;
}

#athena-privacy .privacy-lead {
  position: relative;
  overflow: hidden;
  margin-bottom: 34px;
  padding: 30px 36px;
  border: 1px solid var(--privacy-border);
  border-left: 5px solid var(--privacy-accent);
  border-radius: 0 12px 12px 0;
  background: var(--privacy-pale);
}

#athena-privacy .privacy-lead::after {
  content: "";
  position: absolute;
  top: -75px;
  right: -45px;
  width: 190px;
  height: 190px;
  border-radius: 50%;
  background: rgba(0, 151, 173, 0.07);
}

#athena-privacy .privacy-lead p {
  position: relative;
  z-index: 1;
  margin: 0;
}

#athena-privacy .privacy-lead .privacy-en {
  margin-bottom: 10px;
  color: var(--privacy-accent);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.13em;
}

#athena-privacy .privacy-date {
  margin-top: 12px !important;
  color: #6b8991;
  font-size: 15px;
  text-align: right;
}

#athena-privacy .privacy-index {
  margin-bottom: 44px;
  padding: 25px 30px;
  border: 1px solid var(--privacy-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(22, 70, 84, 0.06);
}

#athena-privacy .privacy-index-title {
  margin: 0 0 14px;
  color: var(--privacy-main);
  font-size: 20px;
  font-weight: 700;
}

#athena-privacy .privacy-index ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 35px;
  margin: 0;
  padding-left: 26px;
}

#athena-privacy .privacy-index li {
  margin: 0;
  padding-left: 3px;
}

#athena-privacy .privacy-section {
  margin: 0 0 34px;
  padding: 30px 34px;
  border: 1px solid var(--privacy-border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(22, 70, 84, 0.055);
  scroll-margin-top: 100px;
}

#athena-privacy .privacy-section h2 {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 22px;
  padding: 0 0 15px;
  border: 0;
  border-bottom: 2px solid var(--privacy-pale);
  color: var(--privacy-main);
  font-size: 25px;
  line-height: 1.45;
}

#athena-privacy .privacy-section h2 span {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 43px;
  width: 43px;
  height: 43px;
  border-radius: 50%;
  color: #fff;
  background: var(--privacy-accent);
  font-size: 14px;
  line-height: 1;
}

#athena-privacy .privacy-section p {
  margin: 0 0 18px;
}

#athena-privacy .privacy-section p:last-child {
  margin-bottom: 0;
}

#athena-privacy .privacy-list,
#athena-privacy .privacy-number-list {
  margin: 16px 0 0;
  padding-left: 1.6em;
}

#athena-privacy .privacy-list li,
#athena-privacy .privacy-number-list li {
  margin-bottom: 8px;
  padding-left: 5px;
}

#athena-privacy .privacy-list li::marker,
#athena-privacy .privacy-number-list li::marker {
  color: var(--privacy-accent);
  font-weight: 700;
}

#athena-privacy .privacy-important {
  margin-top: 25px;
  padding: 20px 22px;
  border: 1px solid #f3b5cc;
  border-left: 5px solid var(--privacy-pink);
  border-radius: 5px 10px 10px 5px;
  background: #fff4f8;
}

#athena-privacy .privacy-important p {
  margin: 0;
  color: var(--privacy-main);
  font-weight: 700;
}

#athena-privacy .privacy-note {
  margin-top: 24px !important;
  padding: 18px 20px;
  border-left: 4px solid var(--privacy-accent);
  border-radius: 4px 9px 9px 4px;
  background: var(--privacy-pale);
  font-size: 17px;
}

#athena-privacy .privacy-shared {
  margin: 22px 0 0;
  border: 1px solid var(--privacy-border);
  border-radius: 10px;
  overflow: hidden;
}

#athena-privacy .privacy-shared div {
  display: grid;
  grid-template-columns: 225px minmax(0, 1fr);
  margin: 0;
  border-bottom: 1px solid var(--privacy-border);
}

#athena-privacy .privacy-shared div:last-child {
  border-bottom: 0;
}

#athena-privacy .privacy-shared dt,
#athena-privacy .privacy-shared dd {
  margin: 0;
  padding: 20px 22px;
}

#athena-privacy .privacy-shared dt {
  color: var(--privacy-main);
  background: var(--privacy-pale);
  font-weight: 700;
}

#athena-privacy .privacy-shared dd {
  background: #fff;
}

#athena-privacy .privacy-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 30px 32px;
  border: 1px solid var(--privacy-border);
  border-radius: 12px;
  background: var(--privacy-pale);
}

#athena-privacy .privacy-contact p {
  margin: 0 0 5px;
}

#athena-privacy .privacy-contact-company {
  color: var(--privacy-main);
  font-size: 21px;
  font-weight: 700;
}

#athena-privacy .privacy-contact-number {
  margin: 10px 0 2px !important;
  color: var(--privacy-main);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.05em;
}

#athena-privacy .privacy-contact-hours {
  color: #6b8991;
  font-size: 15px;
}

#athena-privacy .privacy-contact-actions {
  display: flex;
  flex-direction: column;
  flex: 0 0 230px;
  gap: 12px;
}

#athena-privacy .privacy-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 62px;
  padding: 10px 20px;
  border: 2px solid var(--privacy-accent);
  border-radius: 999px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none !important;
  transition: 0.2s ease;
}

#athena-privacy .privacy-button span {
  display: block;
  transform: translateY(-1px);
}

#athena-privacy .privacy-button-primary {
  color: #fff;
  background: var(--privacy-accent);
}

#athena-privacy .privacy-button-primary:hover {
  color: #fff;
  border-color: var(--privacy-main);
  background: var(--privacy-main);
}

#athena-privacy .privacy-button-outline {
  color: var(--privacy-accent);
  background: #fff;
}

#athena-privacy .privacy-button-outline:hover {
  color: #fff;
  background: var(--privacy-accent);
}

@media screen and (max-width: 767px) {
  #athena-privacy {
    padding: 4px 0 100px;
    font-size: 18px;
    line-height: 1.85;
  }

  #athena-privacy .privacy-lead {
    margin-bottom: 25px;
    padding: 22px 20px;
  }

  #athena-privacy .privacy-date {
    text-align: left;
  }

  #athena-privacy .privacy-index {
    margin-bottom: 28px;
    padding: 21px 20px;
  }

  #athena-privacy .privacy-index ol {
    display: block;
  }

  #athena-privacy .privacy-index li {
    margin-bottom: 7px;
  }

  #athena-privacy .privacy-section {
    margin-bottom: 24px;
    padding: 23px 19px;
  }

  #athena-privacy .privacy-section h2 {
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 18px;
    font-size: 21px;
  }

  #athena-privacy .privacy-section h2 span {
    flex-basis: 38px;
    width: 38px;
    height: 38px;
    margin-top: -2px;
    font-size: 12px;
  }

  #athena-privacy .privacy-note {
    font-size: 16px;
  }

  #athena-privacy .privacy-shared div {
    display: block;
  }

  #athena-privacy .privacy-shared dt {
    padding: 13px 17px;
  }

  #athena-privacy .privacy-shared dd {
    padding: 16px 17px 21px;
  }

  #athena-privacy .privacy-contact {
    display: block;
    padding: 23px 19px;
  }

  #athena-privacy .privacy-contact-number {
    font-size: 28px;
  }

  #athena-privacy .privacy-contact-actions {
    margin-top: 22px;
  }

  #athena-privacy .privacy-button {
    min-height: 62px;
    font-size: 17px;
  }
}


/* ==================================================
   Athena reference layout, September 2026.
   Existing shared / company / terms / legal / privacy styles above are retained.
   ================================================== */

.athena-reference-header {
  border-top: 4px solid #a4d1da;
  border-bottom: 0;
  background: #fff;
  backdrop-filter: none;
}
.athena-reference-header [hidden] { display: none !important; }
.athena-reference-header .site-header__inner { position: relative; }
.athena-reference-header .header-introduction { display: none; }
.athena-reference-header .site-branding__home img,
.athena-reference-header .custom-logo { width: 104px; height: 68px; }
.athena-menu-toggle {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 5px;
  color: #fff; background: #439eae; cursor: pointer;
}
.athena-menu-toggle__bars,
.athena-menu-toggle__bars::before,
.athena-menu-toggle__bars::after {
  display: block; width: 19px; height: 2px; background: currentColor;
}
.athena-menu-toggle__bars { position: relative; margin-top: 5px; }
.athena-menu-toggle__bars::before,
.athena-menu-toggle__bars::after { position: absolute; left: 0; content: ""; }
.athena-menu-toggle__bars::before { top: -6px; }
.athena-menu-toggle__bars::after { top: 6px; }
.athena-menu-toggle__label { font-size: 9px; line-height: 1; }
.athena-menu-toggle[aria-expanded="true"] .athena-menu-toggle__bars { background: transparent; }
.athena-menu-toggle[aria-expanded="true"] .athena-menu-toggle__bars::before { top: 0; transform: rotate(45deg); }
.athena-menu-toggle[aria-expanded="true"] .athena-menu-toggle__bars::after { top: 0; transform: rotate(-45deg); }
.athena-reference-header .header-phone { border-radius: 5px; }
.athena-reference-header .primary-navigation {
  position: static; visibility: visible; opacity: 1; transform: none;
  background: #f3f3f3; box-shadow: none;
}
.athena-reference-header.athena-navigation-ready .primary-navigation { position: absolute; }
.athena-reference-header .primary-navigation .sub-menu { padding-left: 18px; }
.athena-reference-header .primary-navigation .sub-menu a { font-weight: 400; }
.athena-reference-header a:focus-visible,
.athena-reference-header button:focus-visible,
.athena-reference-home a:focus-visible,
.athena-reference-home summary:focus-visible { outline: 3px solid #087a91; outline-offset: 4px; }

body.home { min-width: 0; }
.athena-reference-home {
  --ref-teal: #239bb0; --ref-pink: #ed5488; --ref-gray: #666; --ref-yellow: #ffff33;
  color: var(--ref-gray); font-size: 14px; line-height: 1.7;
}
.athena-reference-home [id] { scroll-margin-top: 96px; }
.athena-reference-home p { margin: 0; }
.ref-shell { width: min(100% - 32px, 1000px); margin-inline: auto; }
.ref-ribbon { overflow: hidden; background: var(--ref-yellow); }
.ref-ribbon__inner {
  display: flex; align-items: center; justify-content: center;
  width: 1060px; height: 270px; margin-inline: auto;
  background: url('assets/images/reference/sd1.jpg') left top / 115px 270px repeat-x;
}
.ref-ribbon__bottles { flex: 0 0 488px; }
.ref-ribbon__bottles img { width: 488px; height: 270px; }
.ref-ribbon__drop {
  position: relative; display: block; flex: 0 0 238px; height: 270px;
  color: #259caf; text-align: center;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 270'%3E%3Cpath fill='white' d='M110 0C99 27 0 147 0 185a110 85 0 0 0 220 0C220 147 121 27 110 0Z'/%3E%3C/svg%3E") center / 205px 266px no-repeat;
}
.ref-ribbon__drop-copy { position: absolute; left: 13px; right: 13px; top: 91px; font-size: 17px; font-weight: 800; line-height: 1.4; }
.ref-ribbon__drop-copy > strong { display: flex; flex-direction: column; align-items: flex-start; padding: 14px 0 0 25px; font-size: 29px; line-height: 1.2; }
.ref-ribbon__drop-copy > strong > span { font-size: 61px; line-height: 1; }
.ref-ribbon__drop-copy small { font-size: 31px; }
.ref-ribbon__server { position: absolute; width: 74px; height: 126px; bottom: 15px; right: 34px; overflow: hidden; background: white; }
.ref-ribbon__server img { position: absolute; max-width: none; width: 310px; height: 133px; top: -3px; right: -6px; }
.ref-ribbon__drop--order { flex-basis: 266px; background-size: 232px 270px; }
.ref-ribbon__order-copy { display: flex; flex-direction: column; align-items: center; padding-top: 82px; font-size: 13px; font-weight: 700; line-height: 1.35; }
.ref-ribbon__order-copy > strong { display: block; padding-top: 9px; font-size: 26px; }
.ref-ribbon__order-copy > small { padding-top: 12px; font-size: 11px; }
.ref-ribbon__bottle-icons { display: flex; gap: 5px; padding-top: 18px; }
.ref-ribbon__bottle-icons i { position: relative; display: block; width: 20px; height: 32px; border: 2px solid #5cb0bd; border-radius: 5px 5px 2px 2px; }
.ref-ribbon__bottle-icons i::before { position: absolute; content: ""; width: 8px; height: 9px; top: -8px; left: 4px; border: 2px solid #5cb0bd; background: #fff; }
.ref-columns { display: grid; grid-template-columns: minmax(0,715fr) minmax(0,250fr); gap: 35px; align-items: start; padding-top: 46px; }
.ref-main-column { min-width: 0; }
.ref-order-banner {
  display: grid; grid-template-columns: 170px minmax(0,1fr); gap: 0;
  min-height: 235px; padding: 14px 14px 14px 0;
  background: linear-gradient(135deg, #cae6ee, #eef8fa 65%, #b4dbe5);
  border: 1px solid #bfdde5;
}
.ref-order-banner__visual { position: relative; overflow: hidden; }
.ref-order-banner__drop { position: absolute; top: -40px; left: 17px; width: 95px; height: 130px; border-radius: 0 60% 55% 60%; transform: rotate(40deg); border: 14px solid #9cc9d6; opacity: .6; }
.ref-order-banner__server { position: absolute; width: 97px; height: 140px; top: 8px; left: 32px; overflow: hidden; }
.ref-order-banner__server img { position: absolute; max-width: none; width: 352px; height: 151px; top: -6px; right: -8px; }
.ref-order-banner__brand { position: absolute; top: 151px; left: 22px; width: 128px; font-family: Georgia, serif; letter-spacing: .24em; color: #459cae; font-size: 22px; text-align: center; }
.ref-order-banner__caption { position: absolute; left: 0; right: 0; bottom: 7px; text-align: center; color: #355d68; font-size: 10px; font-weight: 700; }
.ref-order-banner__body { padding: 12px 15px; text-align: center; background: rgba(255,255,255,.95); border: 3px double #8ab9c7; box-shadow: 0 0 0 3px rgba(255,255,255,.8), 0 2px 6px #7fabbc66; }
.ref-order-banner__eyebrow { color: #4c7785; font-size: 12px; font-weight: 700; }
.ref-order-banner__body h2 { margin: 2px 0 0; color: #355968; font-size: 23px; font-weight: 800; line-height: 1.5; }
.ref-order-banner__phone { display: inline-block; color: #24566b; font-family: Arial, sans-serif; font-size: clamp(29px,3.3vw,44px); letter-spacing: -.045em; font-weight: 800; line-height: 1.3; white-space: nowrap; }
.ref-order-banner__hours { color: #516b73; font-size: 11px; }
.ref-order-banner__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.ref-button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 38px; padding: 6px 8px; border: 1px solid; border-radius: 4px; font-size: 12px; font-weight: 700; line-height: 1.4; }
.ref-button--pink { color: #fff; background: #d93870; border-color: #d93870; }
.ref-button--white { color: #388193; background: #fff; border-color: #98c4ce; }
.ref-button > span { margin-left: auto; font-size: 20px; line-height: 1; }
.ref-button:hover { filter: brightness(.96); }
.ref-features { margin-top: 25px; }
.ref-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.ref-image-link { overflow: hidden; border-radius: 10px; }
.ref-image-link img { width: 100%; height: auto; }
.ref-image-link:hover, .ref-feature-rental:hover, .ref-sidebar__banner:hover { opacity: .82; }
.ref-feature-rental { position: relative; display: block; overflow: hidden; aspect-ratio: 352 / 151; border-radius: 10px; background: #eee; color: #f34786; }
.ref-point-label { position: absolute; z-index: 1; top: 8px; left: 0; padding: 0 8px; color: #9d963c; background: #ffff85; font: 16px/1.5 Georgia, serif; transform: rotate(-7deg); box-shadow: 1px 2px 2px #aaa6; }
.ref-point-label b { font-size: 24px; font-weight: 400; }
.ref-feature-rental__copy { position: absolute; top: 38%; left: 15px; font-size: clamp(13px,1.25vw,17px); font-weight: 700; line-height: 1.2; }
.ref-feature-rental__copy > strong { display: flex; align-items: baseline; gap: 2px; padding-top: 5px; font-size: clamp(21px,2.5vw,32px); font-weight: 400; }
.ref-feature-rental__copy > strong > span { font-size: clamp(32px,3.8vw,53px); font-family: Georgia, serif; line-height: 1; }
.ref-feature-rental__copy small { font-family: sans-serif; font-size: 26px; }
.ref-feature-rental__photo { position: absolute; width: 39%; height: 100%; right: 0; overflow: hidden; }
.ref-feature-rental__photo img { position: absolute; max-width: none; height: 100%; width: auto; right: 0; }
.ref-information { margin-top: 24px; padding: 20px; background: #f6f6f6; }
.ref-information h2 { display: flex; align-items: baseline; gap: 14px; margin: 0 0 15px; color: #6d6d6d; font-size: 13px; font-weight: 400; }
.ref-information h2 > span { color: #7db7c3; font: 24px/1.3 Georgia, serif; }
.ref-information__row { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 8px; padding: 12px 0; border-top: 1px dotted #b6b6b6; font-size: 13px; }
.ref-information__date { color: #777; font-size: 12px; }
.ref-information__row a { color: #237f95; text-decoration: underline; text-underline-offset: 3px; }
.ref-information__row p { margin-top: 5px; font-size: 12px; }
.ref-pricing, .ref-water-details, .ref-faq { margin-top: 40px; }
.ref-section-heading { display: flex; flex-wrap: wrap; gap: 5px 14px; align-items: baseline; border-bottom: 3px solid #a8d5dd; padding: 0 0 9px; }
.ref-section-heading > span { color: #83b8c4; font: 21px/1.4 Georgia, serif; }
.ref-section-heading h2 { margin: 0; color: #4a737f; font-size: 18px; line-height: 1.5; }
.ref-section-lead { padding-top: 13px; font-size: 13px; }
.ref-price-summary { display: grid; grid-template-columns: 1fr 30px 1fr; gap: 8px; align-items: center; padding: 20px 10px; margin-top: 15px; border: 1px solid #d5e7eb; background: #f5fafb; text-align: center; }
.ref-price-summary > div { display: flex; flex-direction: column; }
.ref-price-summary > div > span { color: #547a85; font-size: 13px; }
.ref-price-summary strong { color: #df487d; font: bold 34px/1.5 Arial, sans-serif; white-space: nowrap; }
.ref-price-summary strong small { font: 11px/1.5 sans-serif; }
.ref-price-summary > div > small { font-size: 11px; }
.ref-price-summary__plus { color: #74a6b3; font-size: 25px; }
.ref-shipping-table-wrap { margin-top: 20px; }
.ref-shipping-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 13px; line-height: 1.8; }
.ref-shipping-table caption { padding-bottom: 9px; text-align: left; font-weight: 700; color: #557b85; }
.ref-shipping-table th, .ref-shipping-table td { padding: 11px 12px; border: 1px solid #dce6e9; text-align: left; overflow-wrap: anywhere; }
.ref-shipping-table thead th { background: #e2f1f4; color: #507784; }
.ref-shipping-table thead th:first-child { width: 88px; }
.ref-shipping-table thead th:last-child { width: 98px; text-align: center; }
.ref-shipping-table tbody th { font-weight: 400; background: #f6f9fa; }
.ref-shipping-table td:last-child { text-align: center; color: #388397; white-space: nowrap; }
.ref-shipping-note { display: flex; gap: 12px; padding: 12px; margin-top: 12px !important; background: #fff7f9; font-size: 12px; }
.ref-shipping-note strong { color: #c74273; flex-shrink: 0; }
.ref-water-details__body { padding-top: 14px; font-size: 13px; line-height: 1.9; }
.ref-water-details__body p + p { margin-top: 8px; }
.ref-faq details { border-bottom: 1px dotted #bfced2; }
.ref-faq summary { position: relative; padding: 16px 32px 16px 28px; cursor: pointer; color: #557c87; font-size: 13px; list-style: none; }
.ref-faq summary::-webkit-details-marker { display: none; }
.ref-faq summary::before { position: absolute; left: 0; content: "Q"; color: #68a6b6; font: bold 20px/1.2 Georgia, serif; }
.ref-faq summary::after { position: absolute; right: 5px; content: "＋"; }
.ref-faq details[open] summary::after { content: "−"; }
.ref-faq details > p { padding: 0 20px 18px 28px; font-size: 13px; }
.ref-faq details a { color: #237f95; text-decoration: underline; margin-left: 5px; }
.ref-editor-content { margin-top: 36px; overflow-wrap: anywhere; }
.ref-editor-content img { max-width: 100%; }
.ref-sidebar { padding: 15px; background: repeating-linear-gradient(-45deg,#fff 0 4px,#f5f5f5 4px 8px); border-radius: 14px 14px 0 0; }
.ref-sidebar__banner { display: block; margin-bottom: 15px; }
.ref-sidebar__banner img { width: 100%; height: auto; }
.ref-support { padding: 17px 14px 13px; background: #ffffd1; color: #6d7061; }
.ref-support h2 { margin: 0 0 12px; border-bottom: 1px solid #d0d2a5; padding-bottom: 9px; font-size: 16px; line-height: 1.4; }
.ref-support h2 > span { display: block; color: #a1a579; font: 16px/1.5 Georgia, serif; }
.ref-support ul { margin: 0; padding: 0; list-style: none; }
.ref-support li + li { margin-top: 9px; }
.ref-support a { display: block; position: relative; padding-left: 10px; color: #597278; font-size: 11px; text-decoration: underline; text-underline-offset: 2px; }
.ref-support a::before { content: "›"; position: absolute; left: 0; }
.ref-sidebar-price { padding: 22px 10px 16px; margin-top: 15px; background: #fff; border: 1px solid #e4e9e9; text-align: center; }
.ref-sidebar-price > span { color: #519cac; font-size: 12px; }
.ref-sidebar-price > strong { display: block; color: #e75c89; font-size: 18px; line-height: 1.3; }
.ref-sidebar-price em { font: normal 58px/1.2 Georgia, serif; padding-inline: 3px; }
.ref-sidebar-price p { padding-top: 14px; font-size: 11px; line-height: 1.9; }
.ref-sidebar-price b { color: #65828c; font-size: 20px; }
.ref-sidebar-price a { display: block; border-top: 1px dotted #bfd4da; margin-top: 14px; padding-top: 12px; color: #4b8797; font-size: 11px; }
.ref-sidebar-contact { margin-top: 15px; padding: 15px 0; text-align: center; }
.ref-sidebar-contact > span, .ref-sidebar-contact small { display: block; font-size: 10px; }
.ref-sidebar-contact a { display: block; margin: 3px 0; font: bold 22px/1.4 Georgia, serif; letter-spacing: -.03em; color: #65818a; white-space: nowrap; }
.ref-pagetop { padding-top: 32px; padding-bottom: 8px; text-align: right; }
.ref-pagetop a { display: inline-flex; gap: 16px; align-items: center; padding: 7px 15px; color: #8ab1ba; font: 12px/1.5 Georgia, serif; }
.ref-pagetop span { font-size: 20px; }
.ref-mobile-actions { display: none; }
.athena-reference-home ~ .floating-cta { display: none; }
.athena-reference-home ~ .site-footer { padding: 22px 20px 30px; color: #818181; background: #f4f4f4; border-top: 1px solid #ddd; }
.athena-reference-home ~ .site-footer .site-footer__inner { display: block; text-align: center; }
.athena-reference-home ~ .site-footer .site-footer__brand,
.athena-reference-home ~ .site-footer .site-footer__description { display: none; }
.athena-reference-home ~ .site-footer .footer-navigation { border: 0; padding: 0; }
.athena-reference-home ~ .site-footer .footer-navigation ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px 20px; }
.athena-reference-home ~ .site-footer .footer-navigation a { font-size: 11px; }
.athena-reference-home ~ .site-footer .site-footer__copyright { color: #888; margin-top: 15px; font: 11px/1.6 Georgia, serif; }

@media (min-width: 768px) {
  .athena-reference-header { position: relative; box-shadow: none; }
  .athena-reference-header .site-header__inner { display: block; width: min(100% - 40px,1000px); height: 65px; min-height: 65px; }
  .athena-reference-header .site-branding { position: absolute; z-index: 2; top: 0; left: 0; width: 194px; height: 127px; }
  .athena-reference-header .site-branding__home img, .athena-reference-header .custom-logo { width: 194px; height: 127px; object-fit: contain; }
  .athena-reference-header .header-introduction { display: block; position: absolute; top: 5px; left: 210px; }
  .athena-reference-header .site-branding__description { display: block; color: #929292; margin: 0; font-size: 11px; letter-spacing: .05em; line-height: 1.7; }
  .athena-reference-header .header-rental { display: inline-block; margin: 7px 0 0; padding: 0 5px; border: 1px solid #e29cb4; color: #d47898; font-size: 12px; font-weight: 700; line-height: 1.7; }
  .athena-reference-header .header-rental strong { font-size: 14px; }
  .athena-reference-header .header-rental strong > span { font-size: 12px; }
  .athena-reference-header .header-phone { position: absolute; top: 12px; right: 120px; align-items: center; }
  .athena-reference-header .header-phone__number { color: #737373; font-size: 22px; }
  .athena-reference-header .header-phone__hours { color: #777; margin-top: 3px; font-size: 10px; }
  .athena-reference-header .primary-navigation,
  .athena-reference-header.athena-navigation-ready .primary-navigation { position: static; min-height: 40px; padding: 0; margin-bottom: 3px; background: #ededed; border: 0; }
  .athena-reference-header .primary-navigation > ul { justify-content: flex-start; flex-wrap: wrap; width: min(100% - 40px,1000px); max-width: 1000px; padding-left: 204px; }
  .athena-reference-header .primary-navigation > ul > li { position: relative; flex: 1 1 0; min-width: 0; }
  .athena-reference-header .primary-navigation a { min-height: 40px; padding: 8px 12px; color: #737373; font-size: 13px; font-weight: 700; }
  .athena-reference-header .primary-navigation a:hover,
  .athena-reference-header .primary-navigation a:focus-visible { color: #3992a3; background: #e0eef1; }
  .athena-reference-header .primary-navigation .sub-menu { display: none; position: absolute; z-index: 3; left: 0; min-width: 210px; padding: 6px; background: #fff; border: 1px solid #d5e5e9; box-shadow: 0 4px 10px #52778522; }
  .athena-reference-header .primary-navigation li:hover > .sub-menu,
  .athena-reference-header .primary-navigation li:focus-within > .sub-menu { display: block; }
  .athena-reference-header .primary-navigation .sub-menu li { min-width: 0; }
  .athena-reference-header .primary-navigation .sub-menu a { justify-content: flex-start; }
  .athena-reference-home [id] { scroll-margin-top: 20px; }
}

@media (min-width: 768px) and (max-width: 1040px) {
  .athena-reference-header .header-phone { right: 0; }
  .athena-reference-header .site-branding__description { max-width: calc(100vw - 430px); font-size: 10px; }
  .ref-ribbon__inner { position: relative; left: 50%; margin-left: -530px; }
  .ref-columns { gap: 22px; grid-template-columns: minmax(0,1fr) 220px; }
  .ref-order-banner { grid-template-columns: 108px minmax(0,1fr); padding-right: 10px; }
  .ref-order-banner__server { left: 6px; }
  .ref-order-banner__brand { left: 2px; width: 104px; font-size: 19px; }
  .ref-order-banner__body { padding: 10px; }
  .ref-order-banner__body h2 { font-size: 19px; }
  .ref-order-banner__actions { grid-template-columns: 1fr; gap: 6px; }
  .ref-order-banner__caption { display: none; }
  .ref-feature-rental__copy { left: 10px; font-size: 11px; }
  .ref-feature-rental__copy > strong { font-size: 21px; }
  .ref-feature-rental__copy > strong > span { font-size: 34px; }
  .ref-feature-rental__copy small { font-size: 19px; }
  .ref-point-label { top: 5px; font-size: 12px; }
  .ref-point-label b { font-size: 18px; }
  .ref-price-summary strong { font-size: 26px; }
  .ref-price-summary strong small { font-size: 9px; }
}

@media (max-width: 767px) {
  .athena-reference-header .site-header__inner { min-height: 70px; gap: 8px; }
  .athena-reference-header .primary-navigation { max-height: calc(100dvh - 145px); padding: 8px 18px 15px; }
  .athena-reference-header .primary-navigation a { min-height: 48px; font-size: 14px; }
  .athena-reference-home { font-size: 14px; }
  .ref-ribbon__inner { display: grid; grid-template-columns: 1fr 1fr; width: min(100%,488px); height: auto; padding-bottom: 14px; background-size: 86px 202px; }
  .ref-ribbon__bottles { grid-column: 1 / -1; padding: 0; }
  .ref-ribbon__bottles img { width: 100%; height: auto; }
  .ref-ribbon__drop { height: 180px; min-width: 0; background-size: 155px 180px; }
  .ref-ribbon__drop-copy { top: 60px; left: 0; right: 0; font-size: 12px; }
  .ref-ribbon__drop-copy > strong { padding: 8px 0 0 calc(50% - 51px); font-size: 20px; }
  .ref-ribbon__drop-copy > strong > span { font-size: 42px; }
  .ref-ribbon__drop-copy small { font-size: 21px; }
  .ref-ribbon__server { width: 49px; height: 83px; bottom: 10px; right: calc(50% - 56px); }
  .ref-ribbon__server img { width: 205px; height: 88px; right: -4px; top: -2px; }
  .ref-ribbon__order-copy { padding-top: 58px; font-size: 10px; }
  .ref-ribbon__order-copy > strong { padding-top: 4px; font-size: 19px; }
  .ref-ribbon__order-copy > small { padding-top: 8px; font-size: 9px; }
  .ref-ribbon__bottle-icons { gap: 5px; padding-top: 12px; }
  .ref-ribbon__bottle-icons i { width: 14px; height: 21px; border-radius: 3px; }
  .ref-ribbon__bottle-icons i::before { width: 6px; height: 6px; left: 2px; top: -6px; }
  .ref-columns { grid-template-columns: minmax(0,1fr); gap: 28px; padding-top: 24px; }
  .ref-order-banner { min-height: 0; grid-template-columns: minmax(0,1fr); padding: 12px; }
  .ref-order-banner__visual { display: none; }
  .ref-order-banner__body { padding: 14px 12px; }
  .ref-order-banner__eyebrow { font-size: 11px; }
  .ref-order-banner__body h2 { font-size: 21px; }
  .ref-order-banner__phone { font-size: clamp(29px,8.5vw,40px); }
  .ref-order-banner__hours { font-size: 11px; }
  .ref-order-banner__actions { gap: 7px; }
  .ref-button { min-height: 44px; padding: 7px; font-size: 11px; }
  .ref-features { margin-top: 20px; }
  .ref-feature-grid { gap: 10px; }
  .ref-feature-rental { aspect-ratio: 352 / 151; }
  .ref-feature-rental__copy { top: 36%; left: 7px; font-size: clamp(7px,1.8vw,13px); }
  .ref-feature-rental__copy > strong { padding-top: 4px; font-size: clamp(12px,3.3vw,25px); }
  .ref-feature-rental__copy > strong > span { font-size: clamp(21px,5.6vw,40px); }
  .ref-feature-rental__copy small { font-size: clamp(12px,3.3vw,22px); }
  .ref-point-label { top: 5px; padding-inline: 5px; font-size: 10px; }
  .ref-point-label b { font-size: 15px; }
  .ref-information { padding: 16px; margin-top: 20px; }
  .ref-information h2 { flex-wrap: wrap; gap: 3px 10px; font-size: 11px; }
  .ref-information h2 > span { font-size: 22px; }
  .ref-information__row { grid-template-columns: minmax(0,1fr); gap: 5px; font-size: 13px; }
  .ref-information__row p { font-size: 12px; }
  .ref-pricing, .ref-water-details, .ref-faq { margin-top: 30px; }
  .ref-section-heading { display: block; }
  .ref-section-heading > span { font-size: 18px; }
  .ref-section-heading h2 { font-size: 19px; }
  .ref-section-lead { font-size: 13px; }
  .ref-price-summary { grid-template-columns: 1fr 16px 1fr; gap: 3px; padding: 15px 5px; }
  .ref-price-summary > div > span { font-size: 10px; }
  .ref-price-summary strong { font-size: clamp(21px,6vw,32px); }
  .ref-price-summary strong small { display: block; font-size: 10px; line-height: 1.2; }
  .ref-price-summary > div > small { margin-top: 8px; font-size: 9px; }
  .ref-price-summary__plus { font-size: 20px; }
  .ref-shipping-table { font-size: 12px; }
  .ref-shipping-table th, .ref-shipping-table td { padding: 10px 7px; }
  .ref-shipping-table thead th:first-child { width: 58px; }
  .ref-shipping-table thead th:last-child { width: 64px; }
  .ref-shipping-note { flex-direction: column; gap: 2px; }
  .ref-water-details__body { font-size: 14px; }
  .ref-faq summary, .ref-faq details > p { font-size: 14px; }
  .ref-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 14px; }
  .ref-sidebar__banner { margin: 0; align-self: start; }
  .ref-sidebar__banner img { max-width: 220px; margin-inline: auto; }
  .ref-support { padding: 12px 10px; }
  .ref-support h2 { margin-bottom: 7px; font-size: 14px; }
  .ref-support h2 > span { font-size: 14px; }
  .ref-support a { font-size: 11px; }
  .ref-support li + li { margin-top: 5px; }
  .ref-sidebar-price { margin-top: 0; padding: 14px 8px; }
  .ref-sidebar-price em { font-size: 45px; }
  .ref-sidebar-price > strong { font-size: 15px; }
  .ref-sidebar-contact { margin-top: 0; align-self: center; }
  .ref-sidebar-contact a { font-size: clamp(16px,4vw,22px); }
  .ref-sidebar-contact > span, .ref-sidebar-contact small { font-size: 9px; }
  .ref-mobile-actions { position: fixed; z-index: 110; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: .9fr 1.1fr; gap: 8px; padding: 9px 12px calc(9px + env(safe-area-inset-bottom)); border-top: 1px solid #d4e1e5; background: rgba(255,255,255,.97); box-shadow: 0 -3px 10px #36687915; }
  .ref-mobile-actions a { display: flex; align-items: center; justify-content: center; min-height: 45px; border: 1px solid #85b8c6; border-radius: 5px; color: #407f90; font-size: 13px; font-weight: 700; }
  .ref-mobile-actions a:last-child { color: #fff; background: #d93870; border-color: #d93870; }
  .athena-reference-home ~ .site-footer { padding-bottom: calc(36px + env(safe-area-inset-bottom)); }
}

@media (max-width: 420px) {
  .ref-feature-grid { grid-template-columns: 1fr; gap: 10px; }
  .ref-feature-rental__copy { left: 15px; font-size: 16px; }
  .ref-feature-rental__copy > strong { font-size: 30px; }
  .ref-feature-rental__copy > strong > span { font-size: 49px; }
  .ref-feature-rental__copy small { font-size: 26px; }
  .ref-point-label { top: 8px; font-size: 15px; }
  .ref-point-label b { font-size: 22px; }
  .ref-sidebar { grid-template-columns: minmax(0,1fr); }
  .ref-sidebar__banner img { max-width: 100%; }
  .ref-support a { min-height: 36px; display: flex; align-items: center; font-size: 13px; }
  .ref-support h2 { font-size: 17px; }
  .ref-sidebar-contact a { font-size: 27px; }
  .ref-sidebar-contact > span, .ref-sidebar-contact small { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .athena-reference-header *, .athena-reference-home * { transition: none !important; }
}

/* ==================================================
   WooCommerce / Athena Water
   ================================================== */

body.woocommerce,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
  --athena-shop-blue: #239bb0;
  --athena-shop-blue-dark: #176f82;
  --athena-shop-blue-pale: #f2fafb;
  --athena-shop-pink: #d93870;
  --athena-shop-pink-dark: #bd285d;
  --athena-shop-border: #d5e7eb;
  --athena-shop-text: #355968;
  --athena-shop-muted: #6b7d83;
}

/* ページ全体
-------------------------------------------------- */

body.woocommerce .site-main,
body.woocommerce-page .site-main,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main {
  background:
    linear-gradient(
      180deg,
      var(--athena-shop-blue-pale) 0,
      #fff 210px
    );
}

body.woocommerce .page-content,
body.woocommerce-page .page-content,
body.woocommerce-cart .page-content,
body.woocommerce-checkout .page-content,
body.woocommerce-account .page-content {
  width: min(100% - 32px, 1000px);
  padding-top: 44px;
  padding-bottom: 72px;
}

body.woocommerce .entry-title,
body.woocommerce-page .entry-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .entry-title {
  padding-bottom: 13px;
  margin-bottom: 30px;
  color: var(--athena-shop-text);
  border-bottom: 3px solid #a8d5dd;
  font-size: clamp(26px, 5vw, 38px);
  font-weight: 700;
  letter-spacing: .02em;
}

.woocommerce {
  color: var(--athena-shop-text);
  font-size: 15px;
  line-height: 1.8;
}

.woocommerce a {
  color: var(--athena-shop-blue-dark);
}

.woocommerce a:hover {
  color: var(--athena-shop-pink);
}

/* ボタン
-------------------------------------------------- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 11px 22px;
  color: #fff;
  background: var(--athena-shop-blue);
  border: 1px solid var(--athena-shop-blue);
  border-radius: 5px;
  box-shadow: none;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:hover {
  color: #fff;
  background: var(--athena-shop-blue-dark);
  border-color: var(--athena-shop-blue-dark);
  transform: translateY(-1px);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  color: #fff;
  background: var(--athena-shop-pink);
  border-color: var(--athena-shop-pink);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  color: #fff;
  background: var(--athena-shop-pink-dark);
  border-color: var(--athena-shop-pink-dark);
}

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.wc-block-components-button:disabled {
  color: #7c8a8f;
  background: #e5ecee;
  border-color: #e5ecee;
  opacity: 1;
  cursor: not-allowed;
  transform: none;
}

/* フォーカス表示
-------------------------------------------------- */

.woocommerce a:focus-visible,
.woocommerce button:focus-visible,
.woocommerce input:focus-visible,
.woocommerce select:focus-visible,
.woocommerce textarea:focus-visible,
.wc-block-components-button:focus-visible,
.wc-block-components-text-input input:focus,
.wc-block-components-combobox-control input:focus {
  outline: 3px solid rgba(35, 155, 176, .28);
  outline-offset: 2px;
}

/* 入力フォーム
-------------------------------------------------- */

.woocommerce form .form-row {
  padding: 0;
  margin: 0 0 19px;
}

.woocommerce form .form-row label {
  display: block;
  margin-bottom: 6px;
  color: var(--athena-shop-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
}

.woocommerce form .form-row .required {
  color: var(--athena-shop-pink);
  font-weight: 700;
  text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  width: 100%;
  min-height: 50px;
  padding: 11px 13px;
  color: var(--athena-shop-text);
  background: #fff;
  border: 1px solid #b9cdd2;
  border-radius: 5px;
  box-shadow: none;
  font-size: 16px;
}

.woocommerce form .form-row textarea {
  min-height: 120px;
  resize: vertical;
}

.woocommerce .select2-container .select2-selection--single {
  display: flex;
  align-items: center;
}

.woocommerce
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  padding: 0 28px 0 0;
  color: var(--athena-shop-text);
  line-height: 1.5;
}

.woocommerce
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
}

.woocommerce form .show-password-input {
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
}

/* 通知・エラー
-------------------------------------------------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  padding: 17px 20px 17px 52px;
  margin: 0 0 24px;
  color: var(--athena-shop-text);
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-top: 4px solid var(--athena-shop-blue);
  border-radius: 5px;
  box-shadow: 0 5px 18px rgba(53, 89, 104, .07);
}

.woocommerce-error {
  border-top-color: var(--athena-shop-pink);
}

.woocommerce-message::before,
.woocommerce-info::before {
  color: var(--athena-shop-blue);
}

.woocommerce-error::before {
  color: var(--athena-shop-pink);
}

/* 商品一覧・商品詳細
-------------------------------------------------- */

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none;
}

.woocommerce ul.products li.product {
  float: none;
  width: auto;
  padding: 17px;
  margin: 0;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 8px;
  box-shadow: 0 5px 18px rgba(53, 89, 104, .06);
}

.woocommerce ul.products li.product img {
  margin-bottom: 16px;
  border-radius: 5px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: var(--athena-shop-text);
  font-size: 16px;
  line-height: 1.6;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--athena-shop-pink);
  font-weight: 700;
}

.woocommerce div.product {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 8px;
  box-shadow: 0 6px 22px rgba(53, 89, 104, .06);
}

.woocommerce div.product .product_title {
  color: var(--athena-shop-text);
  font-size: clamp(25px, 4vw, 34px);
  line-height: 1.5;
}

.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  padding-top: 20px;
  border-top: 1px solid var(--athena-shop-border);
}

.woocommerce .quantity .qty {
  width: 82px;
  min-height: 48px;
  color: var(--athena-shop-text);
  background: #fff;
  border: 1px solid #b9cdd2;
  border-radius: 5px;
  font-size: 16px;
  text-align: center;
}

/* 共通テーブル
-------------------------------------------------- */

.woocommerce table.shop_table {
  overflow: hidden;
  width: 100%;
  margin: 0 0 25px;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 7px;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: 14px 16px;
  border-top: 1px solid var(--athena-shop-border);
  line-height: 1.7;
  text-align: left;
}

.woocommerce table.shop_table thead th {
  color: var(--athena-shop-text);
  background: #eaf5f7;
  border-top: 0;
  font-size: 13px;
  font-weight: 700;
}

.woocommerce table.shop_table tbody tr:first-child td {
  border-top: 0;
}

.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
  font-weight: 700;
}

/* カート：従来型
-------------------------------------------------- */

.woocommerce-cart table.cart img {
  width: 72px;
  border-radius: 4px;
}

.woocommerce-cart table.cart td.actions {
  padding: 18px;
  background: var(--athena-shop-blue-pale);
}

.woocommerce-cart .cart-collaterals .cart_totals {
  float: none;
  width: min(100%, 440px);
  padding: 23px;
  margin-left: auto;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 7px;
  box-shadow: 0 6px 22px rgba(53, 89, 104, .07);
}

.woocommerce-cart .cart_totals h2 {
  padding-bottom: 11px;
  margin: 0 0 15px;
  color: var(--athena-shop-text);
  border-bottom: 3px solid #a8d5dd;
  font-size: 22px;
}

/* カート・購入手続き：WooCommerceブロック
-------------------------------------------------- */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  color: var(--athena-shop-text);
  font-size: 15px;
}

.wc-block-cart__main,
.wc-block-checkout__main {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 7px;
  box-shadow: 0 5px 20px rgba(53, 89, 104, .05);
}

.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
  height: max-content;
  padding: 23px;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 7px;
  box-shadow: 0 6px 22px rgba(53, 89, 104, .07);
}

.wc-block-components-main
  .wc-block-components-checkout-step {
  padding: 0 0 27px;
  margin-bottom: 27px;
  border-bottom: 1px solid var(--athena-shop-border);
}

.wc-block-components-main
  .wc-block-components-checkout-step:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.wc-block-components-checkout-step__heading h2,
.wc-block-components-title {
  color: var(--athena-shop-text);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.5;
}

.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="password"],
.wc-block-components-address-form select,
.wc-block-components-combobox-control
  input.components-combobox-control__input,
.wc-block-components-textarea {
  min-height: 52px;
  color: var(--athena-shop-text);
  background: #fff;
  border: 1px solid #b9cdd2 !important;
  border-radius: 5px !important;
  box-shadow: none !important;
  font-size: 16px !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-address-form select:focus,
.wc-block-components-combobox-control
  input.components-combobox-control__input:focus,
.wc-block-components-textarea:focus {
  border-color: var(--athena-shop-blue) !important;
}

.wc-block-components-text-input label,
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label {
  color: var(--athena-shop-text);
}

.wc-block-cart-items,
.wc-block-cart-items th,
.wc-block-cart-items td {
  border-color: var(--athena-shop-border) !important;
}

.wc-block-cart-item__image img {
  border-radius: 4px;
}

.wc-block-cart-item__product {
  padding-left: 18px !important;
}

.wc-block-cart-item__product
  .wc-block-components-product-name {
  color: var(--athena-shop-text);
  font-weight: 700;
  line-height: 1.6;
}

.wc-block-components-quantity-selector {
  overflow: hidden;
  min-height: 42px;
  background: #fff;
  border: 1px solid #b9cdd2 !important;
  border-radius: 5px !important;
}

.wc-block-components-totals-wrapper {
  padding: 17px 0 !important;
  border-color: var(--athena-shop-border) !important;
}

.wc-block-components-order-summary {
  padding-bottom: 8px;
}

.wc-block-components-order-summary-item {
  padding: 15px 0;
  border-bottom: 1px solid var(--athena-shop-border);
}

.wc-block-components-totals-footer-item {
  color: var(--athena-shop-text);
  font-size: 20px;
}

.wc-block-components-totals-footer-item
  .wc-block-components-totals-item__value {
  color: var(--athena-shop-pink);
  font-size: 24px;
  font-weight: 700;
}

.wc-block-cart__submit-container,
.wc-block-checkout__actions_row {
  margin-top: 18px;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  width: 100%;
  min-height: 56px;
  font-size: 16px;
}

.wc-block-components-radio-control-accordion-option {
  padding: 16px !important;
  background: #fff;
  border: 1px solid var(--athena-shop-border) !important;
  border-radius: 5px;
}

.wc-block-components-radio-control-accordion-option:has(
  input:checked
) {
  background: var(--athena-shop-blue-pale);
  border-color: var(--athena-shop-blue) !important;
}

/* 購入手続き：従来型
-------------------------------------------------- */

.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  gap: 30px;
  align-items: start;
}

.woocommerce-checkout #customer_details {
  grid-column: 1;
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
  grid-column: 2;
}

.woocommerce-checkout #order_review_heading {
  padding: 18px 22px 0;
  margin: 0;
  color: var(--athena-shop-text);
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-bottom: 0;
  border-radius: 7px 7px 0 0;
  font-size: 21px;
}

.woocommerce-checkout #order_review {
  padding: 15px 22px 22px;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-top: 0;
  border-radius: 0 0 7px 7px;
  box-shadow: 0 6px 22px rgba(53, 89, 104, .07);
}

.woocommerce-checkout #payment {
  background: var(--athena-shop-blue-pale);
  border-radius: 6px;
}

.woocommerce-checkout #payment div.payment_box {
  color: var(--athena-shop-text);
  background: #fff;
}

.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: #fff;
}

/* マイアカウント
-------------------------------------------------- */

.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.woocommerce-account
  .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) {
  display: block;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  overflow: hidden;
  padding: 0;
  margin: 0;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 7px;
  list-style: none;
}

.woocommerce-account
  .woocommerce-MyAccount-navigation li {
  margin: 0;
  border-bottom: 1px solid var(--athena-shop-border);
}

.woocommerce-account
  .woocommerce-MyAccount-navigation li:last-child {
  border-bottom: 0;
}

.woocommerce-account
  .woocommerce-MyAccount-navigation a {
  display: flex;
  align-items: center;
  min-height: 50px;
  padding: 10px 16px;
  color: var(--athena-shop-text);
  font-size: 13px;
  font-weight: 700;
}

.woocommerce-account
  .woocommerce-MyAccount-navigation a::after {
  margin-left: auto;
  color: var(--athena-shop-blue);
  content: "›";
  font-size: 20px;
}

.woocommerce-account
  .woocommerce-MyAccount-navigation
  li.is-active
  a,
.woocommerce-account
  .woocommerce-MyAccount-navigation
  a:hover {
  color: var(--athena-shop-blue-dark);
  background: #eaf5f7;
}

.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  min-width: 0;
  padding: 25px;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 7px;
  box-shadow: 0 5px 20px rgba(53, 89, 104, .05);
}

.woocommerce-account .woocommerce-MyAccount-content > :first-child {
  margin-top: 0;
}

.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
  padding-bottom: 9px;
  color: var(--athena-shop-text);
  border-bottom: 2px solid #a8d5dd;
}

/* ログイン・会員登録
-------------------------------------------------- */

.woocommerce-account .u-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after {
  display: none;
}

.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
  float: none;
  width: auto;
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password {
  padding: 25px;
  margin: 0;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 7px;
  box-shadow: 0 5px 20px rgba(53, 89, 104, .05);
}

.woocommerce form.login .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 48px;
  margin-left: 12px;
}

.woocommerce form.login input[type="checkbox"],
.woocommerce form.register input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--athena-shop-blue);
}

/* 注文完了・注文詳細
-------------------------------------------------- */

.woocommerce-order-received
  .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  padding: 0;
  margin: 0 0 28px;
  background: var(--athena-shop-border);
  border: 1px solid var(--athena-shop-border);
  border-radius: 7px;
  list-style: none;
}

.woocommerce-order-received
  .woocommerce-order-overview
  li {
  float: none;
  width: auto;
  padding: 16px;
  margin: 0;
  background: #fff;
  border: 0;
  font-size: 11px;
}

.woocommerce-order-received
  .woocommerce-order-overview
  li
  strong {
  display: block;
  margin-top: 5px;
  color: var(--athena-shop-text);
  font-size: 15px;
}

/* モバイル
-------------------------------------------------- */

@media (max-width: 767px) {
  body.woocommerce .page-content,
  body.woocommerce-page .page-content,
  body.woocommerce-cart .page-content,
  body.woocommerce-checkout .page-content,
  body.woocommerce-account .page-content {
    width: min(100% - 24px, 1000px);
    padding-top: 28px;
    padding-bottom: 54px;
  }

  body.woocommerce .entry-title,
  body.woocommerce-page .entry-title,
  body.woocommerce-cart .entry-title,
  body.woocommerce-checkout .entry-title,
  body.woocommerce-account .entry-title {
    margin-bottom: 22px;
    font-size: 27px;
  }

  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .woocommerce ul.products li.product {
    padding: 12px;
  }

  .woocommerce div.product {
    padding: 16px;
  }

  .woocommerce div.product form.cart {
    align-items: stretch;
  }

  .woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1;
  }

  .wc-block-cart__main,
  .wc-block-checkout__main,
  .wc-block-cart__sidebar,
  .wc-block-checkout__sidebar {
    padding: 16px;
  }

  .wc-block-cart__sidebar,
  .wc-block-checkout__sidebar {
    margin-top: 18px;
  }

  .wc-block-cart-item__product {
    padding-left: 10px !important;
  }

  .woocommerce-checkout form.checkout {
    display: block;
  }

  .woocommerce-checkout #order_review_heading {
    margin-top: 28px;
  }

  .woocommerce-account .woocommerce {
    display: block;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 22px;
  }

  .woocommerce-account
    .woocommerce-MyAccount-navigation
    ul {
    display: flex;
    overflow-x: auto;
    border-radius: 5px;
    scroll-snap-type: x proximity;
  }

  .woocommerce-account
    .woocommerce-MyAccount-navigation
    li {
    flex: 0 0 auto;
    border-right: 1px solid var(--athena-shop-border);
    border-bottom: 0;
    scroll-snap-align: start;
  }

  .woocommerce-account
    .woocommerce-MyAccount-navigation
    a {
    min-height: 46px;
    white-space: nowrap;
  }

  .woocommerce-account
    .woocommerce-MyAccount-navigation
    a::after {
    display: none;
  }

  .woocommerce-account .woocommerce-MyAccount-content {
    padding: 17px;
  }

  .woocommerce-account .u-columns {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .woocommerce form.login,
  .woocommerce form.register,
  .woocommerce form.lost_reset_password {
    padding: 18px;
  }

  .woocommerce form.login
    .woocommerce-form-login__rememberme {
    margin-left: 8px;
  }

  .woocommerce-order-received
    .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .woocommerce table.shop_table th,
  .woocommerce table.shop_table td {
    padding: 12px;
  }
}

@media (max-width: 480px) {
  .woocommerce ul.products {
    grid-template-columns: minmax(0, 1fr);
  }

  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button {
    min-height: 50px;
  }

  .woocommerce form.login
    .woocommerce-form-login__rememberme {
    display: flex;
    margin: 7px 0 0;
  }

  .woocommerce-order-received
    .woocommerce-order-overview {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-components-button {
    transition: none;
  }
}

/* マイアカウントの横並び位置を修正 */
@media (min-width: 768px) {
  .woocommerce-account
    .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
  }

  .woocommerce-account
    .woocommerce
    > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
  }

  .woocommerce-account
    .woocommerce
    > .woocommerce-notices-wrapper:empty {
    display: none;
  }

  .woocommerce-account
    .woocommerce
    > .woocommerce-MyAccount-navigation {
    grid-column: 1;
    float: none;
    width: 100%;
  }

  .woocommerce-account
    .woocommerce
    > .woocommerce-MyAccount-content {
    grid-column: 2;
    float: none;
    width: 100%;
  }
}

/* 空の手数料・割引ブロックを非表示 */
.wp-block-woocommerce-checkout-order-summary-fee-block:not(
  :has(.wc-block-components-totals-item)
),
.wp-block-woocommerce-checkout-order-summary-discount-block:not(
  :has(.wc-block-components-totals-item)
),
.wp-block-woocommerce-cart-order-summary-fee-block:not(
  :has(.wc-block-components-totals-item)
),
.wp-block-woocommerce-cart-order-summary-discount-block:not(
  :has(.wc-block-components-totals-item)
),
.wc-block-components-totals-wrapper:empty {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

/* 注文完了ページの注文情報を修正 */
.woocommerce-order-received
  .woocommerce-order-overview::before,
.woocommerce-order-received
  .woocommerce-order-overview::after {
  display: none !important;
  content: none !important;
}

.woocommerce-order-received
  .woocommerce-order-overview {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  background: #fff;
}

.woocommerce-order-received
  .woocommerce-order-overview
  li {
  min-width: 0;
  background: #fff;
  border-right: 1px solid var(--athena-shop-border);
}

.woocommerce-order-received
  .woocommerce-order-overview
  li:last-child {
  border-right: 0;
}

@media (max-width: 767px) {
  .woocommerce-order-received
    .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .woocommerce-order-received
    .woocommerce-order-overview
    li {
    border-bottom: 1px solid var(--athena-shop-border);
  }
}

@media (max-width: 480px) {
  .woocommerce-order-received
    .woocommerce-order-overview {
    grid-template-columns: minmax(0, 1fr);
  }

  .woocommerce-order-received
    .woocommerce-order-overview
    li {
    border-right: 0;
  }
}

/* ==================================================
   WooCommerce 商品詳細ページ
   ================================================== */

/* WooCommerceの回り込み解除要素をグリッドから除外 */
.single-product
  .woocommerce
  div.product::before,
.single-product
  .woocommerce
  div.product::after {
  display: none !important;
  content: none !important;
}

/* 商品画像と注文情報 */
.single-product
  .woocommerce
  div.product {
  position: relative;
  display: grid !important;
  grid-template-columns:
    minmax(0, 1.05fr)
    minmax(340px, .95fr);
  gap: 32px;
  align-items: start;
  clear: both;
  width: 100%;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* 商品画像 */
.single-product
  .woocommerce
  div.product
  div.images {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  padding: 25px;
  margin: 0 !important;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 8px;
  box-shadow: 0 6px 22px rgba(53, 89, 104, .06);
}

.single-product
  .woocommerce-product-gallery__wrapper {
  width: 100%;
  margin: 0;
}

.single-product
  .woocommerce-product-gallery__image
  a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 350px;
}

.single-product
  .woocommerce-product-gallery__image
  img {
  width: 100%;
  max-height: 420px;
  object-fit: contain;
}

.single-product
  .woocommerce
  div.product
  div.images
  .woocommerce-product-gallery__trigger {
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  background: var(--athena-shop-blue-pale);
  border: 1px solid var(--athena-shop-border);
  border-radius: 50%;
}

/* 注文情報 */
.single-product
  .woocommerce
  div.product
  div.summary {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  padding: 28px;
  margin: 0 !important;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 8px;
  box-shadow: 0 6px 22px rgba(53, 89, 104, .06);
}

.single-product
  .woocommerce
  div.product
  .product_title {
  padding: 0 0 14px;
  margin: 0 0 18px;
  color: var(--athena-shop-text);
  border-bottom: 3px solid #a8d5dd;
  font-size: clamp(24px, 3vw, 31px);
  line-height: 1.5;
}

/* 価格 */
.single-product
  .woocommerce
  div.product
  p.price {
  padding: 13px 16px;
  margin: 0 0 20px;
  color: var(--athena-shop-pink);
  background: #fff7f9;
  border-left: 5px solid var(--athena-shop-pink);
  border-radius: 0 5px 5px 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}

.single-product
  .woocommerce
  div.product
  p.price
  .woocommerce-Price-amount {
  font-size: 27px;
}

.single-product
  .woocommerce
  div.product
  p.price
  .woocommerce-Price-currencySymbol {
  margin-right: 2px;
  font-size: 19px;
}

/* 商品説明 */
.single-product
  .woocommerce-product-details__short-description {
  margin-bottom: 20px;
  color: var(--athena-shop-text);
  font-size: 15px;
  line-height: 1.9;
}

/* 数量とカートボタン */
.single-product
  .woocommerce
  div.product
  form.cart {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  padding: 20px 0;
  margin: 0 0 18px !important;
  border-top: 1px solid var(--athena-shop-border);
  border-bottom: 1px solid var(--athena-shop-border);
}

.single-product
  .woocommerce
  div.product
  form.cart
  .quantity {
  float: none;
  width: 100%;
  margin: 0 !important;
}

.single-product
  .woocommerce
  div.product
  form.cart
  .quantity
  .qty {
  width: 100%;
  height: 54px;
  min-height: 54px;
  padding: 8px;
  color: var(--athena-shop-text);
  background: #fff;
  border: 1px solid #b9cdd2;
  border-radius: 5px;
  font-size: 16px;
  text-align: center;
}

.single-product
  .woocommerce
  div.product
  form.cart
  .single_add_to_cart_button {
  float: none;
  width: 100%;
  min-height: 54px;
  padding: 11px 18px;
  color: #fff;
  background: var(--athena-shop-pink);
  border-color: var(--athena-shop-pink);
  font-size: 15px;
  white-space: nowrap;
}

.single-product
  .woocommerce
  div.product
  form.cart
  .single_add_to_cart_button:hover {
  color: #fff;
  background: var(--athena-shop-pink-dark);
  border-color: var(--athena-shop-pink-dark);
}

/* 商品コード・カテゴリー */
.single-product
  .woocommerce
  div.product
  .product_meta {
  display: grid;
  gap: 7px;
  padding: 15px 17px;
  color: var(--athena-shop-muted);
  background: var(--athena-shop-blue-pale);
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.7;
}

.single-product
  .woocommerce
  div.product
  .product_meta
  > span {
  display: block;
}

.single-product
  .woocommerce
  div.product
  .product_meta
  a {
  color: var(--athena-shop-blue-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 在庫表示 */
.single-product
  .woocommerce
  div.product
  .stock {
  color: var(--athena-shop-blue-dark);
  font-weight: 700;
}

/* 説明・関連商品は画像と注文欄の下へ */
.single-product
  .woocommerce
  div.product
  > .woocommerce-tabs,
.single-product
  .woocommerce
  div.product
  > .related,
.single-product
  .woocommerce
  div.product
  > .upsells {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
  margin-top: 20px;
}

.single-product
  .woocommerce-tabs {
  padding: 25px;
  background: #fff;
  border: 1px solid var(--athena-shop-border);
  border-radius: 8px;
}

.single-product
  .woocommerce-tabs
  ul.tabs {
  padding: 0 !important;
  margin: 0 0 22px !important;
  border-bottom: 2px solid #a8d5dd;
}

.single-product
  .woocommerce-tabs
  ul.tabs::before {
  display: none !important;
}

.single-product
  .woocommerce-tabs
  ul.tabs
  li {
  margin: 0 5px 0 0 !important;
  background: #edf7f9 !important;
  border: 0 !important;
  border-radius: 5px 5px 0 0 !important;
}

.single-product
  .woocommerce-tabs
  ul.tabs
  li.active {
  background: var(--athena-shop-blue) !important;
}

.single-product
  .woocommerce-tabs
  ul.tabs
  li.active
  a {
  color: #fff !important;
}

/* フッターへの食い込み防止 */
.single-product .entry-content,
.single-product .woocommerce {
  clear: both;
}

.single-product .entry-content::after,
.single-product .woocommerce::after {
  display: block;
  clear: both;
  content: "";
}

/* タブレット・スマートフォン */
@media (max-width: 767px) {
  .single-product
    .woocommerce
    div.product {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .single-product
    .woocommerce
    div.product
    div.images {
    padding: 17px;
  }

  .single-product
    .woocommerce-product-gallery__image
    a {
    min-height: 0;
  }

  .single-product
    .woocommerce-product-gallery__image
    img {
    max-height: none;
  }

  .single-product
    .woocommerce
    div.product
    div.summary {
    padding: 20px;
  }

  .single-product
    .woocommerce
    div.product
    .product_title {
    font-size: 24px;
  }

  .single-product
    .woocommerce-tabs {
    padding: 18px;
  }
}

@media (max-width: 420px) {
  .single-product
    .woocommerce
    div.product
    form.cart {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 8px;
  }

  .single-product
    .woocommerce
    div.product
    form.cart
    .single_add_to_cart_button {
    padding-right: 10px;
    padding-left: 10px;
    font-size: 14px;
  }

  .single-product
    .woocommerce
    div.product
    .product_meta {
    font-size: 12px;
  }
}

/* 商品画像を小さく表示 */
.single-product
  .woocommerce-product-gallery__image
  a {
  min-height: 300px;
  padding: 20px;
}

.single-product
  .woocommerce-product-gallery__image
  img {
  width: min(100%, 330px) !important;
  max-width: 330px !important;
  height: auto !important;
  margin: 0 auto;
}

/* 数量とカートボタンの配置を修正 */
.single-product
  .woocommerce
  div.product
  form.cart::before,
.single-product
  .woocommerce
  div.product
  form.cart::after {
  display: none !important;
  content: none !important;
}

.single-product
  .woocommerce
  div.product
  form.cart {
  grid-template-columns: 90px minmax(0, 1fr);
  grid-auto-flow: row;
}

.single-product
  .woocommerce
  div.product
  form.cart
  .quantity {
  grid-column: 1;
  min-width: 0;
}

.single-product
  .woocommerce
  div.product
  form.cart
  .single_add_to_cart_button {
  grid-column: 2;
  min-width: 0;
  overflow: hidden;
  padding: 10px 14px;
  font-size: 14px;
  line-height: 1.4;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* スマートフォン */
@media (max-width: 420px) {
  .single-product
    .woocommerce-product-gallery__image
    a {
    min-height: 230px;
    padding: 12px;
  }

  .single-product
    .woocommerce-product-gallery__image
    img {
    max-width: 280px !important;
  }

  .single-product
    .woocommerce
    div.product
    form.cart {
    grid-template-columns: 74px minmax(0, 1fr);
  }

  .single-product
    .woocommerce
    div.product
    form.cart
    .single_add_to_cart_button {
    padding-right: 8px;
    padding-left: 8px;
    font-size: 13px;
  }
}

/* 箱数での注文受付：金額表示を非表示 */
body.athena-box-order-mode :is(
  .woocommerce div.product .summary .price,
  .woocommerce ul.products .price,
  .woocommerce-Price-amount,
  .wc-block-components-product-price,
  .wc-block-formatted-money-amount,
  .wc-block-cart-item__prices,
  .wc-block-cart-items__header-total,
  .wc-block-cart-item__total,
  .wc-block-components-order-summary-item__total-price,
  .wc-block-components-order-summary-item > .screen-reader-text,
  .wp-block-woocommerce-cart-order-summary-totals-block,
  .wp-block-woocommerce-checkout-order-summary-totals-block,
  .wp-block-woocommerce-cart-order-summary-subtotal-block,
  .wp-block-woocommerce-cart-order-summary-fee-block,
  .wp-block-woocommerce-cart-order-summary-discount-block,
  .wp-block-woocommerce-cart-order-summary-shipping-block,
  .wp-block-woocommerce-cart-order-summary-taxes-block,
  .wp-block-woocommerce-cart-order-summary-coupon-form-block,
  .wp-block-woocommerce-checkout-order-summary-subtotal-block,
  .wp-block-woocommerce-checkout-order-summary-fee-block,
  .wp-block-woocommerce-checkout-order-summary-discount-block,
  .wp-block-woocommerce-checkout-order-summary-shipping-block,
  .wp-block-woocommerce-checkout-order-summary-taxes-block,
  .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
  .wc-block-components-totals-footer-item,
  .wc-block-components-totals-wrapper:has(
    > .wc-block-components-totals-footer-item
  ),
  .wc-block-cart__totals-title,
  .wc-block-mini-cart__amount,
  .wc-block-mini-cart__footer .wc-block-components-totals-item,
  .woocommerce-mini-cart__total,
  .woocommerce-cart .product-price,
  .woocommerce-cart .product-subtotal,
  .woocommerce-cart .cart_totals > h2,
  .woocommerce-cart .cart_totals > table,
  .woocommerce-checkout-review-order-table .product-total,
  .woocommerce-checkout-review-order-table tfoot,
  .woocommerce-cart-form .coupon,
  .woocommerce-form-coupon-toggle
) {
  display: none !important;
}

/* 消した合計列の余白を調整 */
body.athena-box-order-mode .wc-block-cart-items__header-product,
body.athena-box-order-mode .wc-block-cart-item__product {
  width: auto !important;
}

/* 箱数・後日請求の案内 */
body.athena-box-order-mode .athena-box-order-note {
  margin: 0 0 20px !important;
  padding: 14px 16px;
  border-left: 4px solid #16839a;
  border-radius: 4px;
  background: #f0f8fa;
  color: #194653;
  font-size: 16px;
  line-height: 1.8;
}

/* スマートフォンのカート */
@media (max-width: 700px) {
  body.athena-box-order-mode .wc-block-cart-items__row {
    grid-template-columns: 72px minmax(0, 1fr) !important;
  }

  body.athena-box-order-mode .wc-block-cart-item__product {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0;
  }
}

/* 配送方法が選択済みで、ほかに選択肢がない場合は非表示 */
body.athena-box-order-mode
.wp-block-woocommerce-checkout-shipping-methods-block:has(
  input[type="radio"]:checked
):not(:has(
  input[type="radio"]:not(:checked)
)):not(:has(
  .wc-block-components-notice-banner.is-error
)) {
  display: none !important;
}

/* 固定ページ：よくあるご質問 */
.athena-faq-page {
  --faq-ink: #173f4a;
  --faq-teal: #007b91;
  --faq-pale: #edf8fa;
  --faq-line: #cfe3e8;
  --faq-pink: #c62b63;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  color: var(--faq-ink);
  font-size: 17px;
  line-height: 1.85;
  letter-spacing: normal;
  overflow-wrap: anywhere;
}

.athena-faq-page,
.athena-faq-page *,
.athena-faq-page *::before,
.athena-faq-page *::after {
  box-sizing: border-box;
}

.athena-faq-page p {
  margin: 0;
}

.athena-faq-page p + p {
  margin-top: 12px;
}

.athena-faq-page a {
  color: var(--faq-teal);
}

.athena-faq-page a:focus-visible,
.athena-faq-page summary:focus-visible {
  outline: 3px solid var(--faq-teal);
  outline-offset: 4px;
}

.athena-faq-page .athena-faq-lead {
  margin: 0 0 22px;
}

/* カテゴリーへのリンク */
.athena-faq-page .athena-faq-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 32px;
}

.athena-faq-page .athena-faq-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 9px 16px;
  border: 1px solid var(--faq-line);
  border-radius: 999px;
  background: var(--faq-pale);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}

/* 見出し */
.athena-faq-page .athena-faq-section {
  margin: 0 0 36px;
  scroll-margin-top: 220px;
}

.athena-faq-page h2 {
  display: block;
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--faq-ink);
  font-size: 25px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: normal;
}

.athena-faq-page .athena-faq-section > h2 {
  padding-left: 14px;
  border-left: 4px solid var(--faq-teal);
}

/* 質問と回答 */
.athena-faq-page .athena-faq-list {
  display: grid;
  gap: 12px;
}

.athena-faq-page .athena-faq-item {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--faq-line);
  border-radius: 10px;
  background: #fff;
}

.athena-faq-page .athena-faq-item > summary {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 14px;
  min-height: 72px;
  margin: 0;
  padding: 18px 22px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--faq-ink);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  list-style: none;
  cursor: pointer;
}

.athena-faq-page summary::-webkit-details-marker {
  display: none;
}

.athena-faq-page summary::marker {
  content: "";
}

.athena-faq-page .athena-faq-item > summary::before {
  content: "Q";
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--faq-pale);
  color: var(--faq-teal);
  font-family: Arial, sans-serif;
  font-size: 18px;
  line-height: 1;
}

.athena-faq-page .athena-faq-item > summary::after {
  content: "";
  justify-self: center;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--faq-teal);
  border-bottom: 2px solid var(--faq-teal);
  transform: rotate(45deg);
}

.athena-faq-page .athena-faq-item[open] > summary {
  border-radius: 10px 10px 0 0;
  background: var(--faq-pale);
}

.athena-faq-page .athena-faq-item[open] > summary::after {
  transform: rotate(225deg);
}

.athena-faq-page .athena-faq-answer {
  margin: 0;
  padding: 20px 24px 24px;
  border-top: 1px solid var(--faq-line);
}

.athena-faq-page .athena-faq-answer a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.athena-faq-page .athena-faq-note {
  color: #516c75;
  font-size: 15px;
}

.athena-faq-page .athena-faq-notice {
  padding: 12px 16px;
  border-left: 3px solid var(--faq-pink);
  border-radius: 0 6px 6px 0;
  background: #fff3f7;
}

/* お問い合わせ */
.athena-faq-page .athena-faq-contact {
  margin: 8px 0 0;
  padding: 28px;
  border: 1px solid var(--faq-line);
  border-radius: 12px;
  background: var(--faq-pale);
  text-align: center;
}

.athena-faq-page .athena-faq-contact > h2 {
  margin-bottom: 12px;
  font-size: 22px;
}

.athena-faq-page .athena-faq-phone {
  display: inline-block;
  font-family: Arial, sans-serif;
  font-size: clamp(26px, 5vw, 34px);
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

.athena-faq-page .athena-faq-hours {
  margin-top: 6px;
  color: #516c75;
  font-size: 15px;
}

/* ボタン */
.athena-faq-page .athena-faq-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  max-width: 620px;
  margin: 22px auto 0;
}

.athena-faq-page .athena-faq-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  height: auto;
  margin: 0;
  padding: 14px 18px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: normal;
  text-decoration: none;
  white-space: normal;
}

.athena-faq-page .athena-faq-button > span:first-child {
  min-width: 0;
}

.athena-faq-page .athena-faq-button > span:last-child {
  flex-shrink: 0;
  font-size: 24px;
  line-height: 1;
}

.athena-faq-page .athena-faq-button--order {
  border-color: var(--faq-pink);
  background: var(--faq-pink);
  color: #fff;
}

.athena-faq-page .athena-faq-button--phone {
  border-color: var(--faq-teal);
  background: #fff;
  color: var(--faq-teal);
}

@media (hover: hover) {
  .athena-faq-page .athena-faq-nav a:hover,
  .athena-faq-page .athena-faq-item > summary:hover {
    background: #e1f2f5;
  }

  .athena-faq-page .athena-faq-button--order:hover {
    background: #ad2255;
  }

  .athena-faq-page .athena-faq-button--phone:hover {
    background: #e1f2f5;
  }
}

/* スマホ */
@media (max-width: 600px) {
  .athena-faq-page {
    font-size: 16px;
    line-height: 1.8;
  }

  .athena-faq-page .athena-faq-nav {
    gap: 8px;
    margin-bottom: 26px;
  }

  .athena-faq-page .athena-faq-nav a {
    padding: 9px 12px;
    font-size: 14px;
  }

  .athena-faq-page .athena-faq-section {
    margin-bottom: 28px;
    scroll-margin-top: 100px;
  }

  .athena-faq-page h2 {
    font-size: 22px;
  }

  .athena-faq-page .athena-faq-item > summary {
    grid-template-columns: 28px minmax(0, 1fr) 16px;
    gap: 10px;
    min-height: 68px;
    padding: 16px 14px;
    font-size: 17px;
  }

  .athena-faq-page .athena-faq-item > summary::before {
    width: 28px;
    height: 28px;
    font-size: 16px;
  }

  .athena-faq-page .athena-faq-answer {
    padding: 17px 16px 20px;
  }

  .athena-faq-page .athena-faq-note {
    font-size: 14px;
  }

  .athena-faq-page .athena-faq-notice {
    padding: 10px 12px;
  }

  .athena-faq-page .athena-faq-contact {
    padding: 22px 16px;
  }

  .athena-faq-page .athena-faq-contact > h2 {
    font-size: 20px;
  }

  .athena-faq-page .athena-faq-actions {
    grid-template-columns: 1fr;
    margin-top: 18px;
  }
}
@media (min-width: 768px) {
  .athena-faq-page .athena-faq-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 12px;
  }

  /* 自動で入った改行・空の段落を除外 */
  .athena-faq-page .athena-faq-actions > br,
  .athena-faq-page .athena-faq-actions > p:empty {
    display: none;
  }

  .athena-faq-page .athena-faq-actions > a,
  .athena-faq-page .athena-faq-actions > p {
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
  }

  .athena-faq-page .athena-faq-actions > p > a {
    height: 100%;
  }
}
@media (max-width: 767px) {
  .athena-faq-page .athena-faq-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .athena-faq-page .athena-faq-actions > br,
  .athena-faq-page .athena-faq-actions > p:empty {
    display: none;
  }

  .athena-faq-page .athena-faq-actions > p,
  .athena-faq-page .athena-faq-actions .athena-faq-button {
    margin: 0;
  }
}

/* 購入手続きのゲスト案内を非表示 */
body.woocommerce-checkout .wc-block-checkout__guest-checkout-notice {
  display: none !important;
}

/* 固定ページ：ご利用料金 */
.athena-price-page {
  --ap-ink: #173f4a;
  --ap-teal: #007b91;
  --ap-pale: #edf8fa;
  --ap-line: #cfe3e8;
  --ap-pink: #c62b63;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  color: var(--ap-ink);
  font-size: 17px;
  line-height: 1.85;
  letter-spacing: normal;
  overflow-wrap: anywhere;
}

.athena-price-page,
.athena-price-page *,
.athena-price-page *::before,
.athena-price-page *::after {
  box-sizing: border-box;
}

.athena-price-page p { margin: 0; }
.athena-price-page p + p { margin-top: 12px; }
.athena-price-page a { color: var(--ap-teal); }

.athena-price-page a:focus-visible {
  outline: 3px solid var(--ap-teal);
  outline-offset: 4px;
}

.athena-price-page .ap-lead { margin: 0 0 22px; }
.athena-price-page .ap-note { color: #516c75; font-size: 15px; }

/* 料金カード */
.athena-price-page .ap-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 36px;
}

.athena-price-page .ap-summary-card {
  min-width: 0;
  padding: 24px 18px;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: #fff;
  text-align: center;
}

.athena-price-page .ap-summary-card > h2 {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ap-ink);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-price-page .ap-caption {
  margin: 0;
  font-size: 15px;
}

/* 数字と「円」を同じ行・基準線に揃える */
.athena-price-page .ap-amount {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 5px;
  margin: 8px 0 10px;
  color: var(--ap-pink);
  line-height: 1.2;
  white-space: nowrap;
}

.athena-price-page .ap-amount > strong {
  display: inline;
  font-family: Arial, sans-serif;
  font-size: clamp(36px, 5vw, 46px);
  font-weight: 700;
  line-height: 1.2;
}

.athena-price-page .ap-amount > span {
  display: inline;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-price-page .ap-amount > br { display: none; }
.athena-price-page .ap-summary-card > .ap-note { margin: 0; }

/* セクション */
.athena-price-page .ap-section {
  margin: 0 0 36px;
}

.athena-price-page .ap-section > h2 {
  margin: 0 0 18px;
  padding: 0 0 0 14px;
  border: 0;
  border-left: 4px solid var(--ap-teal);
  background: transparent;
  color: var(--ap-ink);
  font-size: 25px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: normal;
}

.athena-price-page .ap-notice {
  margin-top: 18px;
  padding: 16px 18px;
  border-left: 3px solid var(--ap-pink);
  border-radius: 0 8px 8px 0;
  background: #fff3f7;
}

.athena-price-page .ap-notice p + p { margin-top: 6px; }

/* 地域別料金 */
.athena-price-page .ap-table-wrap {
  margin: 18px 0 12px;
  overflow: hidden;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
}

.athena-price-page .ap-rate-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  color: var(--ap-ink);
  font-size: 16px;
  line-height: 1.7;
}

.athena-price-page .ap-rate-col { width: 180px; }

.athena-price-page .ap-rate-table th,
.athena-price-page .ap-rate-table td {
  padding: 14px 20px;
  border: 0;
  vertical-align: middle;
}

.athena-price-page .ap-rate-table thead th {
  background: var(--ap-pale);
  font-size: 15px;
  font-weight: 700;
  text-align: left;
}

.athena-price-page .ap-rate-table thead th:last-child {
  text-align: right;
}

.athena-price-page .ap-rate-table tbody tr {
  border-top: 1px solid var(--ap-line);
  background: #fff;
}

.athena-price-page .ap-rate-table tbody th {
  font-size: 18px;
  font-weight: 700;
  text-align: left;
}

.athena-price-page .ap-prefectures {
  display: block;
  margin-top: 4px;
  color: #516c75;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
}

.athena-price-page .ap-rate-table td {
  font-size: 15px;
  text-align: right;
  white-space: nowrap;
}

.athena-price-page .ap-rate-table td strong {
  margin-right: 3px;
  color: var(--ap-teal);
  font-family: Arial, sans-serif;
  font-size: 24px;
  font-weight: 700;
}

.athena-price-page .ap-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 商品写真と仕様 */
.athena-price-page .ap-product {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  align-items: start;
  gap: 24px;
  margin-top: 18px;
}

.athena-price-page .ap-photo {
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
}

.athena-price-page .ap-photo img {
  display: block;
  float: none;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 300px;
  margin: 0 auto;
  object-fit: contain;
}

.athena-price-page .ap-specs {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.athena-price-page .ap-specs > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 12px;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--ap-line);
}

.athena-price-page .ap-specs > div:first-child {
  border-top: 1px solid var(--ap-line);
}

.athena-price-page .ap-specs dt {
  margin: 0;
  padding: 0;
  font-weight: 700;
}

.athena-price-page .ap-specs dd {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.athena-price-page .ap-server-types {
  display: grid;
  gap: 20px;
}

.athena-price-page .ap-server-type > h3 {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ap-teal);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

/* お支払い・使用上の注意 */
.athena-price-page .ap-payment {
  padding: 22px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: var(--ap-pale);
}

.athena-price-page .ap-care-list {
  margin: 0;
  padding: 18px 22px 18px 42px;
  border: 1px solid var(--ap-line);
  border-radius: 10px;
  background: #fff;
  list-style: disc;
}

.athena-price-page .ap-care-list li {
  margin: 0;
  padding-left: 2px;
}

.athena-price-page .ap-care-list li + li {
  margin-top: 10px;
}

/* 注文・問い合わせ */
.athena-price-page .ap-contact {
  margin: 0;
  padding: 26px;
  border: 1px solid var(--ap-line);
  border-radius: 12px;
  background: var(--ap-pale);
  text-align: center;
}

.athena-price-page .ap-contact > h2 {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ap-ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-price-page .ap-actions {
  display: flex;
  align-items: stretch;
  gap: 12px;
  max-width: 620px;
  margin: 20px auto;
}

/* 自動挿入された改行・空の段落を除外 */
.athena-price-page .ap-actions > br,
.athena-price-page .ap-actions > p:empty {
  display: none;
}

.athena-price-page .ap-actions > a,
.athena-price-page .ap-actions > p {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
}

.athena-price-page .ap-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  height: auto;
  margin: 0;
  padding: 14px 18px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: normal;
  text-decoration: none;
  white-space: normal;
}

.athena-price-page .ap-actions > p > .ap-button {
  height: 100%;
}

.athena-price-page .ap-button > span:first-child {
  min-width: 0;
}

.athena-price-page .ap-button > span:last-child {
  flex-shrink: 0;
  font-size: 24px;
  line-height: 1;
}

.athena-price-page .ap-button--pink {
  border-color: var(--ap-pink);
  background: var(--ap-pink);
  color: #fff;
}

.athena-price-page .ap-button--white {
  border-color: var(--ap-teal);
  background: #fff;
  color: var(--ap-teal);
}

.athena-price-page .ap-phone {
  display: inline-block;
  font-family: Arial, sans-serif;
  font-size: clamp(26px, 5vw, 32px);
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

.athena-price-page .ap-hours {
  margin-top: 6px;
  color: #516c75;
  font-size: 15px;
}

@media (hover: hover) {
  .athena-price-page .ap-button--pink:hover {
    background: #ad2255;
  }

  .athena-price-page .ap-button--white:hover {
    background: #e1f2f5;
  }
}

/* タブレット・スマホ */
@media (max-width: 767px) {
  .athena-price-page .ap-product {
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 18px;
  }

  .athena-price-page .ap-specs > div {
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 10px;
  }

  .athena-price-page .ap-actions {
    flex-direction: column;
    gap: 8px;
  }

  .athena-price-page .ap-actions > a,
  .athena-price-page .ap-actions > p {
    flex: 0 0 auto;
  }
}

@media (max-width: 600px) {
  .athena-price-page {
    font-size: 16px;
    line-height: 1.8;
  }

  .athena-price-page .ap-summary {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 28px;
  }

  .athena-price-page .ap-summary-card {
    padding: 20px 16px;
  }

  .athena-price-page .ap-section {
    margin-bottom: 28px;
  }

  .athena-price-page .ap-section > h2 {
    font-size: 22px;
  }

  .athena-price-page .ap-rate-col {
    width: 126px;
  }

  .athena-price-page .ap-rate-table th,
  .athena-price-page .ap-rate-table td {
    padding: 12px;
  }

  .athena-price-page .ap-rate-table thead th {
    font-size: 13px;
  }

  .athena-price-page .ap-rate-table tbody th {
    font-size: 17px;
  }

  .athena-price-page .ap-prefectures {
    font-size: 14px;
  }

  .athena-price-page .ap-rate-table td strong {
    font-size: 22px;
  }

  .athena-price-page .ap-note {
    font-size: 14px;
  }

  .athena-price-page .ap-notice {
    padding: 14px;
  }

  .athena-price-page .ap-product {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .athena-price-page .ap-photo {
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
  }

  .athena-price-page .ap-photo img {
    max-height: 260px;
  }

  .athena-price-page .ap-specs > div {
    grid-template-columns: 84px minmax(0, 1fr);
  }

  .athena-price-page .ap-payment {
    padding: 18px 16px;
  }

  .athena-price-page .ap-care-list {
    padding: 16px 16px 16px 34px;
  }

  .athena-price-page .ap-contact {
    padding: 22px 16px;
  }

  .athena-price-page .ap-contact > h2 {
    font-size: 22px;
  }
}

/* 固定ページ：お申し込みの流れ */
.athena-flow-page {
  --af-ink: #173f4a;
  --af-teal: #007b91;
  --af-pale: #edf8fa;
  --af-line: #cfe3e8;
  --af-pink: #c62b63;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  color: var(--af-ink);
  font-size: 17px;
  line-height: 1.85;
  letter-spacing: normal;
  overflow-wrap: anywhere;
}

.athena-flow-page,
.athena-flow-page *,
.athena-flow-page *::before,
.athena-flow-page *::after {
  box-sizing: border-box;
}

.athena-flow-page p { margin: 0; }
.athena-flow-page p + p { margin-top: 12px; }
.athena-flow-page a { color: var(--af-teal); }

.athena-flow-page a:focus-visible {
  outline: 3px solid var(--af-teal);
  outline-offset: 4px;
}

.athena-flow-page .af-lead { margin: 0 0 24px; }
.athena-flow-page .af-note { color: #516c75; font-size: 15px; }

/* 初回キャンペーン */
.athena-flow-page .af-campaign {
  margin: 0 0 24px;
  padding: 28px 24px;
  border: 1px solid #edc7d5;
  border-radius: 12px;
  background: linear-gradient(135deg, #fff 0%, #fff3f7 100%);
  text-align: center;
}

.athena-flow-page .af-campaign-label {
  display: inline-block;
  margin: 0 0 14px;
  padding: 5px 16px;
  border-radius: 999px;
  background: #567600;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
}

.athena-flow-page .af-campaign > h2 {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--af-ink);
  font-size: 27px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-flow-page .af-gift {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 6px;
  margin: 12px 0 16px;
  color: var(--af-pink);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.athena-flow-page .af-gift > strong {
  display: inline;
  font-family: Arial, sans-serif;
  font-size: 72px;
  line-height: 1;
}

.athena-flow-page .af-gift > span {
  display: inline;
  font-size: 32px;
  line-height: 1.3;
}

.athena-flow-page .af-gift > br { display: none; }

/* Web・電話の案内 */
.athena-flow-page .af-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 36px;
}

.athena-flow-page .af-choice {
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--af-line);
  border-radius: 12px;
  background: #fff;
}

.athena-flow-page .af-choice > h2 {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--af-ink);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-flow-page .af-choice > .af-button { margin-top: 18px; }

.athena-flow-page .af-choice > .af-note {
  margin-top: 10px;
  text-align: center;
}

/* 見出し・手順 */
.athena-flow-page .af-section {
  margin: 0 0 36px;
}

.athena-flow-page .af-section > h2 {
  margin: 0 0 18px;
  padding: 0 0 0 14px;
  border: 0;
  border-left: 4px solid var(--af-teal);
  background: transparent;
  color: var(--af-ink);
  font-size: 25px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: normal;
}

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

.athena-flow-page .af-steps > li {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  margin: 0;
  padding: 22px;
  border: 1px solid var(--af-line);
  border-radius: 10px;
  background: #fff;
}

.athena-flow-page .af-step-number {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: 0;
  border-radius: 50%;
  background: var(--af-pale);
  color: var(--af-teal);
  font-family: Arial, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}

.athena-flow-page .af-steps h3 {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--af-ink);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-flow-page .af-steps a,
.athena-flow-page .af-section > p a,
.athena-flow-page .af-faq-link a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 初回手続き・配送地域 */
.athena-flow-page .af-first {
  padding: 24px;
  border: 1px solid var(--af-line);
  border-radius: 12px;
  background: var(--af-pale);
}

.athena-flow-page .af-documents {
  margin: 16px 0;
  padding-left: 26px;
  list-style: decimal;
}

.athena-flow-page .af-documents > li {
  margin: 0;
  padding-left: 3px;
}

.athena-flow-page .af-documents > li + li {
  margin-top: 8px;
}

.athena-flow-page .af-notice {
  margin: 16px 0;
  padding: 14px 18px;
  border-left: 3px solid var(--af-pink);
  border-radius: 0 8px 8px 0;
  background: #fff3f7;
}

/* お客様の声 */
.athena-flow-page .af-reviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.athena-flow-page .af-review {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--af-line);
  border-radius: 10px;
  background: #fff;
}

.athena-flow-page .af-review > h3 {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--af-teal);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-flow-page .af-review > p { font-size: 16px; }

/* ボタン */
.athena-flow-page .af-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  height: auto;
  margin: 0;
  padding: 14px 18px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: normal;
  text-align: center;
  text-decoration: none;
  white-space: normal;
}

.athena-flow-page .af-button > span:first-child {
  min-width: 0;
}

.athena-flow-page .af-button > span:last-child {
  flex-shrink: 0;
  font-size: 24px;
  line-height: 1;
}

.athena-flow-page .af-button--pink {
  border-color: var(--af-pink);
  background: var(--af-pink);
  color: #fff;
}

.athena-flow-page .af-button--white {
  border-color: var(--af-teal);
  background: #fff;
  color: var(--af-teal);
}

/* ページ下部の問い合わせ */
.athena-flow-page .af-contact {
  margin: 0;
  padding: 26px;
  border: 1px solid var(--af-line);
  border-radius: 12px;
  background: var(--af-pale);
  text-align: center;
}

.athena-flow-page .af-contact > h2 {
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--af-ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

.athena-flow-page .af-actions {
  display: flex;
  align-items: stretch;
  gap: 12px;
  max-width: 620px;
  margin: 0 auto 20px;
}

.athena-flow-page .af-actions > br,
.athena-flow-page .af-actions > p:empty {
  display: none;
}

.athena-flow-page .af-actions > a,
.athena-flow-page .af-actions > p {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
}

.athena-flow-page .af-actions > p > .af-button {
  height: 100%;
}

.athena-flow-page .af-phone {
  display: inline-block;
  font-family: Arial, sans-serif;
  font-size: clamp(26px, 5vw, 32px);
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

.athena-flow-page .af-hours {
  margin-top: 6px;
  color: #516c75;
  font-size: 15px;
}

.athena-flow-page .af-faq-link {
  margin-top: 16px;
  font-size: 15px;
}

@media (hover: hover) {
  .athena-flow-page .af-button--pink:hover {
    background: #ad2255;
  }

  .athena-flow-page .af-button--white:hover {
    background: #e1f2f5;
  }
}

/* タブレット・スマホ */
@media (max-width: 767px) {
  .athena-flow-page .af-choices,
  .athena-flow-page .af-reviews {
    grid-template-columns: 1fr;
  }

  .athena-flow-page .af-actions {
    flex-direction: column;
    gap: 8px;
  }

  .athena-flow-page .af-actions > a,
  .athena-flow-page .af-actions > p {
    flex: 0 0 auto;
  }
}

@media (max-width: 600px) {
  .athena-flow-page {
    font-size: 16px;
    line-height: 1.8;
  }

  .athena-flow-page .af-campaign {
    padding: 24px 16px;
  }

  .athena-flow-page .af-campaign > h2 {
    font-size: 23px;
  }

  .athena-flow-page .af-campaign-label {
    font-size: 14px;
  }

  .athena-flow-page .af-gift > strong {
    font-size: 60px;
  }

  .athena-flow-page .af-gift > span {
    font-size: 26px;
  }

  .athena-flow-page .af-choices {
    gap: 12px;
    margin-bottom: 28px;
  }

  .athena-flow-page .af-choice {
    padding: 20px 16px;
  }

  .athena-flow-page .af-choice > h2 {
    font-size: 21px;
  }

  .athena-flow-page .af-section {
    margin-bottom: 28px;
  }

  .athena-flow-page .af-section > h2 {
    font-size: 22px;
  }

  .athena-flow-page .af-steps > li {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    padding: 18px 14px;
  }

  .athena-flow-page .af-step-number {
    width: 36px;
    height: 36px;
    font-size: 18px;
  }

  .athena-flow-page .af-steps h3 {
    font-size: 18px;
  }

  .athena-flow-page .af-note {
    font-size: 14px;
  }

  .athena-flow-page .af-first {
    padding: 20px 16px;
  }

  .athena-flow-page .af-notice {
    padding: 12px 14px;
  }

  .athena-flow-page .af-contact {
    padding: 22px 16px;
  }

  .athena-flow-page .af-contact > h2 {
    font-size: 22px;
  }
}
/* 手順内の余分な改行・空段落を非表示 */
.athena-flow-page .af-steps > li > br,
.athena-flow-page .af-steps > li > p:empty,
.athena-flow-page .af-steps > li > p > br {
  display: none;
}

/* 番号を左の列に固定 */
.athena-flow-page .af-steps > li > .af-step-number,
.athena-flow-page .af-steps > li > p {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  align-self: start;
}

/* 説明文を右の列に固定 */
.athena-flow-page .af-steps > li > div {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  width: auto;
}
.athena-flow-page .af-campaign-images {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
}

.athena-flow-page .af-campaign-images::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border: 1px solid #ccc;
  border-radius: inherit;
  pointer-events: none;
}
.athena-flow-page .af-campaign-images,
.athena-flow-page .af-campaign-images figure,
.athena-flow-page .af-campaign-images p {
  line-height: 0;
}

.athena-flow-page .af-campaign-images p {
  margin: 0 !important;
  padding: 0;
}

.athena-flow-page .af-campaign-images br {
  display: none;
}