@charset "UTF-8";
@font-face {
  font-family: "Futura Cond";
  src: url("../fonts/FuturaStd-Condensed.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Futura Cond";
  src: url("../fonts/FuturaStd-CondensedBold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Amithen";
  src: url("../fonts/Amithen.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "DIN1451";
  src: url("../fonts/din1451alt.ttf") format("truetype");
  font-display: swap;
}
:root {
  --fx-primary: #54c8c8;
  --fx-primary-d: #3aa8a8;
  --fx-primary-l: #8fdcdc;
  --fx-primary-tint: #d9f2f2;
  --fx-primary-band: #c0e8e8;
  --fx-accent: #b5a267;
  --fx-accent-d: #a2946e;
  --fx-accent-l: #c7a368;
  --fx-gold-btn: #bb731b;
  --fx-gold-ttl: #a2741f;
  --fx-gold-deep: #ba9455;
  --fx-surface-beige: #f1eadd;
  --fx-surface-1: #e5f7f7;
  --fx-surface-2: #f6fcfc;
  --fx-surface-footer: #e5f5f5;
  --fx-surface-aqua: #d4f1f1;
  --fx-surface-aqua-soft: #e9f8f8;
  --fx-surface-aqua-muted: #e4f5f5;
  --fx-surface-aqua-pale: #e5f5f5;
  --fx-surface-blush: #f2d3d6;
  --fx-surface-lavender: #ede4f5;
  --fx-surface-lavender-soft: #f6f1fa;
  --fx-surface-success: #e8f5e9;
  --fx-surface-error: #fdecea;
  --fx-surface-error-soft: #ffe6e6;
  --fx-surface-warm: #fdfcfa;
  --fx-surface-warm-soft: #fcfbf8;
  --fx-surface-gray-1: #f8f8f8;
  --fx-surface-gray-2: #f7f8f8;
  --fx-surface-gray-3: #f1f2f2;
  --fx-surface-gray-4: #f0f0f0;
  --fx-surface-gray-5: #eaeaea;
  --fx-surface-gray-6: #e9e9e9;
  --fx-surface-gray-7: #e6e7e7;
  --fx-surface-gray-8: #e1e2e2;
  --fx-surface-gray-9: #dedfdf;
  --fx-surface-gray-10: #ddd;
  --fx-surface-gray-11: #d8d8d8;
  --fx-surface-gray-12: #d0d0d0;
  --fx-surface-gray-13: #ccc;
  --fx-note-beige: #e7ddca;
  --fx-note-beige-l: #ece4d4;
  --fx-note-beige-d: #d8cdba;
  --fx-ink: #2b2b2b;
  --fx-ink-mid: #4c4c4c;
  --fx-ink-strong: #000;
  --fx-ink-deep: #111;
  --fx-ink-dark: #333;
  --fx-ink-muted: #666;
  --fx-ink-label: #666767;
  --fx-ink-soft: #808080;
  --fx-ink-faint: #888;
  --fx-ink-warm: #6b5d47;
  --fx-neutral-900: #1c1c1c;
  --fx-neutral-700: #3f3f3f;
  --fx-neutral-650: #4d4d4d;
  --fx-neutral-600: #6b6b6b;
  --fx-neutral-500: #8a8a8a;
  --fx-neutral-450: #9a9a9a;
  --fx-neutral-400: #a8a8a8;
  --fx-neutral-350: #aaa097;
  --fx-neutral-300: #b6b6b6;
  --fx-neutral-275: #b8b8b8;
  --fx-neutral-250: #b9b9b9;
  --fx-neutral-200: #c9c9c9;
  --fx-teal: #00aca0;
  --fx-teal-deep: #12a398;
  --fx-teal-alt: #00bd48;
  --fx-teal-muted: #8fd4d4;
  --fx-page-bg: #c3ecec;
  --fx-error: #c0392b;
  --fx-error-deep: #c00000;
  --fx-error-strong: #cc0000;
  --fx-error-bright: #e60012;
  --fx-error-rose: #d63a4a;
  --fx-error-pink: #e03131;
  --fx-error-soft: #d9534f;
  --fx-error-border: #ff9999;
  --fx-success: #2e7d32;
  --fx-warning: #f4cf16;
  --fx-warning-bright: #fff200;
  --fx-rank-base: #8a8175;
  --fx-rank-gold: #b39656;
  --fx-rank-gold-deep: #b8860b;
  --fx-rank-gold-muted: #b2a067;
  --fx-rank-gold-soft: #cfad7a;
  --fx-rank-name-black:#000;
  --fx-rank-name-diamond:#999;
  --fx-rank-name-legend:#c19b5b;
  --fx-rank-legend-edge: #c39e5f;
  --fx-rank-legend-mid: #e9d8aa;
  --fx-rank-diamond-edge: #5e5c5c;
  --fx-rank-diamond-mid: #cbcccc;
  --fx-rank-black-edge: #211e20;
  --fx-rank-black-mid: #797a7b;
  --fx-rank-pearl-edge: #a5b1b4;
  --fx-rank-pearl-mid: #d1d7d8;
  --fx-rank-bronze: #bd8a3e;
  --fx-rank-bronze-l: #c19a4a;
  --fx-rank-bronze-d: #b8842f;
  --fx-rank-pink: #e7788f;
  --fx-rank-pink-l: #e18b98;
  --fx-rank-pink-d: #d95f7c;
  --fx-rank-pink-soft: #dd7b88;
  --fx-gold-edge: linear-gradient(100deg, #bc8644 0%, #b17c3d 52%, #a4763c 100%);
  --fx-gold-face: radial-gradient(ellipse at 50% 42%, #fffefd 22%, #fbefdb 100%);
  --fx-gold-line: #5b492e;
  --fx-gold-ink: #795215;
  --fx-gold-ink-l: #b59155;
  --fx-gold-shadow: rgba(80,60,30,.35);
  --fx-note-band: #e8ecec;
  --fx-card-pill: rgba(255,250,242,.86);
  --fx-line: rgba(43,43,43,.55);
  --fx-ink-shadow: rgba(43,43,43,.14);
  --fx-gold-band: linear-gradient(90deg,
     #ddb97f 0%, #ebc68f 6.7%, #c7a164 20%, #bf995b 26.7%, #cfa96e 33.3%,
     #dfba81 40%, #efca94 46.7%, #fbd7a3 53.3%, #eac58e 60%, #d9b47a 66.7%,
     #c8a266 73.3%, #d3ad73 86.7%, #ddb97f 100%);
  --fx-page-w: 12rem;
  --sp-2xs:.05rem;
  --sp-xs:.1rem;
  --sp-sm:.15rem;
  --sp-md:.2rem;
  --sp-lg:.3rem;
  --sp-xl:.45rem;
  --sp-2xl:.6rem;
  --sp-3xl:.8rem;
  --sp-4xl:1rem;
  --fx-nav-h: .66rem;
  --fx-logo-ink: var(--fx-primary);
  --fx-font-heading: "Baskervville", Baskerville, "Times New Roman", serif;
  --fx-font-body: "Baskervville", Baskerville, "Times New Roman", serif;
  --fx-font-lead: "Baskervville", Baskerville, serif;
  --font-heading: var(--fx-font-heading);
  --font-basic: var(--fx-font-body);
  --fx-font-base:.18rem;
  --fx-type-body:var(--fx-font-base);
  --fx-type-heading-lg:calc(var(--fx-font-base) * 2.2);
  --fx-type-section-title:calc(var(--fx-font-base) * 2.44);
  --fx-type-lead:calc(var(--fx-font-base) * 1.13);
  --fx-type-page-title:calc(var(--fx-font-base) * 3.85);
  --fx-type-subpage-section:calc(var(--fx-font-base) * 3);
  --fx-type-heading-md:calc(var(--fx-font-base) * 1.4);
  --fx-type-heading-sm:calc(var(--fx-font-base) * 1.29);
  --fx-type-card-name:calc(var(--fx-font-base) * 1.66);
  --fx-type-button:calc(var(--fx-font-base) * 1.2);
  --fx-type-cta:calc(var(--fx-font-base) * 1.35);
  --fx-type-caption:calc(var(--fx-font-base) * .81);
  --fx-type-small:.175rem;
}
@media (max-width: 767px) {
  :root {
    --fx-font-base:.28rem;
    --fx-type-body:.2615rem;
    --fx-type-heading-lg:calc(var(--fx-font-base) * 1.8);
    --fx-type-section-title:calc(var(--fx-font-base) * 2.1);
    --fx-type-lead:calc(var(--fx-font-base) * 1.05);
    --fx-type-page-title:calc(var(--fx-font-base) * 2.2);
    --fx-type-subpage-section:calc(var(--fx-font-base) * 2.2);
    --fx-type-heading-md:calc(var(--fx-font-base) * 1.23);
    --fx-type-card-name:calc(var(--fx-font-base) * 1.3);
    --fx-type-button:calc(var(--fx-font-base) * 1);
    --fx-type-cta:calc(var(--fx-font-base) * .99);
    --fx-type-caption:calc(var(--fx-font-base) * .85);
    --fx-type-small:.234rem;
  }
}

.focus-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 0.6em 1.6em;
  border-radius: 999px;
  font-size: var(--fx-type-caption);
  line-height: 1;
  text-decoration: none;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.focus-btn--solid {
  background: var(--fx-accent);
  color: var(--white);
}

.focus-btn--solid:hover {
  background: var(--fx-accent-d);
  transform: translateY(-1px);
}

.focus-btn--ghost {
  background: transparent;
  color: var(--white);
  border: 0.015rem solid rgba(255, 255, 255, 0.85);
}

.focus-btn--ghost:hover {
  background: var(--white);
  color: var(--fx-accent);
}

.ap-brk-sp {
  display: none;
}

.ap-brk-pc {
  display: inline;
}

@media (max-width: 767px) {
  .ap-brk-sp {
    display: inline;
  }
  .ap-brk-pc {
    display: none;
  }
}
body {
  background-color: var(--fx-page-bg);
  background-image: url("../images/aoyama/svg/fan-pattern.svg");
  background-repeat: repeat;
  background-size: 2.56rem 2.56rem;
}

.fx-page {
  container-type: inline-size;
  max-width: var(--fx-page-w);
  margin: 0 auto;
  background: var(--white);
  box-shadow: 0 0 0.6rem rgba(63, 157, 157, 0.12);
}
@media (max-width: 767px) {
  .fx-page {
    max-width: 100%;
    box-shadow: none;
  }
}

@media (max-width: 767px) {
  .sp_headwrap {
    position: relative;
    width: 100%;
  }
  .sp_header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    height: 1.18rem;
    padding: 0 0.19rem 0 0.36rem;
    transition: height 0.25s ease;
  }
  .sp_header__brand {
    position: absolute;
    left: calc((100% - 1.8rem) / 2);
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 2.62rem;
    min-width: 0;
  }
  .sp_header__tagline {
    display: none;
    color: var(--fx-primary);
    font-family: var(--fx-font-heading);
    font-weight: 700;
    font-size: 1.04em;
    line-height: 1.08;
    letter-spacing: 0.01em;
  }
  .sp_header__book {
    position: absolute;
    top: 0;
    right: 0.19rem;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    width: 1.61rem;
    height: 1.88rem;
    border-radius: 0 0 0.8rem 0.8rem;
    background: var(--fx-primary);
    color: var(--white);
    box-shadow: 0 0.14rem 0.24rem rgba(24, 82, 82, 0.42);
    font-family: var(--fx-font-heading);
    font-weight: 900;
    font-size: 1.3em;
    line-height: 0.95;
    letter-spacing: 0.02em;
    text-align: center;
    padding-bottom: 1.1em;
  }
  .sp_header__book::before {
    content: "✓";
    position: absolute;
    top: 0.2rem;
    left: 50%;
    transform: translateX(-50%) rotate(-8deg);
    color: var(--fx-warning-bright);
    font-size: 1.4em;
    line-height: 1;
  }
  .hamburger {
    transform: none;
  }
  .hamburger_label {
    font-size: 0.9em;
    position: absolute;
    z-index: 2;
    top: 0.52rem;
    left: 50%;
    transform: translateX(-50%);
    width: 0.72rem;
    color: var(--fx-primary);
    font-family: var(--fx-font-heading);
    font-weight: 900;
    font-size: 0.9em;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
  }
  .site-header.focus-header.is-compact .sp_header {
    position: relative;
    z-index: 5;
    align-items: center;
    height: 0.72rem;
    padding-left: 0;
    background: rgba(255, 255, 255, 0.78);
    -webkit-backdrop-filter: blur(0.12rem);
    backdrop-filter: blur(0.12rem);
  }
  .site-header.focus-header.is-compact .sp_header__tagline {
    display: none;
  }
  .site-header.focus-header.is-compact .sp_header__brand {
    display: flex;
    left: 0.24rem;
    top: 50%;
    transform: translateY(-50%);
    align-items: flex-start;
    width: 1.82rem;
  }
  .site-header.focus-header.is-compact .sp_header__logo {
    display: block;
    width: 1.82rem;
    background-color: var(--fx-primary);
  }
  .site-header.focus-header.is-compact .sp_header__book {
    z-index: 10;
    right: 0.19rem;
    width: 1.61rem;
    height: 1.88rem;
    border-radius: 0 0 0.8rem 0.8rem;
    font-size: 1.3em;
    line-height: 0.95;
    padding-bottom: 1.1em;
  }
  .site-header.focus-header.is-compact .sp_header__book::before {
    top: 0.2rem;
    font-size: 1.4em;
  }
  .site-header.focus-header.is-compact .hbmenu_full_fade {
    display: none;
  }
  .focus-spnav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 0.72rem;
    z-index: 3;
    height: 0.86rem;
    background: rgba(18, 28, 28, 0.26);
    -webkit-backdrop-filter: blur(24px) saturate(1.14);
    backdrop-filter: blur(24px) saturate(1.14);
    transition: height 0.18s ease;
    overflow: visible;
  }
  .site-header.focus-header.is-compact .focus-spnav {
    display: block;
  }
  .focus-spnav:has(#focus-spnav-mega-companion:not([hidden])) {
    height: 2.58rem;
  }
  .focus-spnav:has(#focus-spnav-mega-service:not([hidden])) {
    height: 3.44rem;
  }
  .focus-spnav ul {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    height: 0.86rem;
    margin: 0;
    padding: 0 1.74rem 0 0;
    list-style: none;
    background: transparent;
  }
  .focus-spnav li {
    display: flex;
    min-width: 0;
  }
  .focus-spnav li + li {
    border-left: max(1px, 0.01rem) solid rgba(255, 255, 255, 0.42);
  }
  .focus-spnav .focus-spnav__trigger,
  .focus-spnav .focus-spnav__link,
  .focus-spnav .focus-spnav__mega a {
    display: flex;
    align-items: center;
    min-height: 0.86rem;
    padding: 0 0.36rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--white);
    font-family: "Futura Cond", "Arial Narrow", var(--fx-font-heading);
    font-weight: 700;
    font-size: 1.13em;
    line-height: 1;
    letter-spacing: 0.02em;
    white-space: nowrap;
    text-decoration: none;
    text-shadow: 0 0.018rem 0.08rem rgba(0, 0, 0, 0.62);
  }
  .focus-spnav .focus-spnav__trigger,
  .focus-spnav .focus-spnav__link {
    justify-content: center;
    height: 100%;
    min-width: 1.18rem;
    padding-inline: 0.68em;
  }
  .focus-spnav .focus-spnav__trigger {
    cursor: pointer;
  }
  .focus-spnav .focus-spnav__trigger::after {
    content: "";
    display: block;
    width: 0.12rem;
    height: 0.12rem;
    margin-left: 0.08rem;
    border-right: 0.025rem solid currentColor;
    border-bottom: 0.025rem solid currentColor;
    transform: translateY(-0.03rem) rotate(45deg);
  }
  .focus-spnav .focus-spnav__trigger[aria-expanded=true]::after {
    transform: translateY(0.03rem) rotate(-135deg);
  }
  .focus-spnav .focus-spnav__mega {
    position: absolute;
    left: 0;
    right: 0;
    top: 0.86rem;
    z-index: 3;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 1.74rem 0 0;
    background: transparent;
  }
  .focus-spnav .focus-spnav__mega[hidden] {
    display: none;
  }
  .focus-spnav .focus-spnav__mega a {
    justify-content: flex-start;
    border-top: max(1px, 0.01rem) solid rgba(255, 255, 255, 0.3);
    font-family: var(--fx-font-heading);
    font-size: var(--fx-type-button);
    letter-spacing: 0.04em;
  }
  .hbmenu_full_fade {
    position: absolute;
    z-index: 3;
    flex: 0 0 auto;
    left: 0.55rem;
    top: 0.23rem;
    width: 0.72rem;
    height: 0.72rem;
    margin-top: 0;
  }
  .hbmenu_full_fade .toggle {
    position: absolute;
    z-index: 3;
    top: -0.25rem;
    left: -0.18rem;
    width: 1.08rem;
    height: 1.08rem;
    cursor: pointer;
    opacity: 0;
  }
  .hbmenu_full_fade .toggle:checked + .hamburger > span {
    transform: rotate(135deg);
  }
  .hbmenu_full_fade .toggle:checked + .hamburger > span:before, .hbmenu_full_fade .toggle:checked + .hamburger > span:after {
    top: 0;
    transform: rotate(90deg);
  }
  .hbmenu_full_fade .toggle:checked + .hamburger > span:after {
    opacity: 0;
  }
  .hbmenu_full_fade .toggle:checked:hover + .hamburger > span {
    transform: rotate(225deg);
  }
  .hbmenu_full_fade .toggle:checked ~ .menu {
    visibility: visible;
    pointer-events: auto;
    overflow-y: scroll;
  }
  .hbmenu_full_fade .toggle:checked ~ .menu > div {
    transition-duration: 0.75s;
    transform: scale(1);
  }
  .hbmenu_full_fade .toggle:checked ~ .menu > div > ul {
    opacity: 1;
  }
  .hbmenu_full_fade .toggle:checked ~ .menu > div > ul li {
    transition-delay: 0.4s;
  }
  .hbmenu_full_fade .hamburger {
    position: absolute;
    z-index: 2;
    top: 0.08rem;
    left: 0;
    display: block;
    width: 0.72rem;
    height: 0.42rem;
    padding: 0;
    cursor: pointer;
    backface-visibility: hidden;
  }
  .hbmenu_full_fade .hamburger > span {
    position: absolute;
    top: 0.18rem;
    left: 0;
    display: block;
    width: 0.72rem;
    height: 0.045rem;
    transition: all 0.4s ease;
    background: var(--fx-primary);
  }
  .hbmenu_full_fade .hamburger > span:before, .hbmenu_full_fade .hamburger > span:after {
    position: absolute;
    z-index: 3;
    top: -0.18rem;
    left: 0;
    display: block;
    width: 0.72rem;
    height: 0.045rem;
    content: "";
    transition: all 0.4s ease;
    background: inherit;
  }
  .hbmenu_full_fade .hamburger > span:after {
    top: 0.18rem;
  }
  .hbmenu_full_fade .menu {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1;
    width: 100vw;
    height: 100dvh;
    padding-block: 0.8rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: radial-gradient(70% 45% at 0% 8%, rgba(206, 228, 240, 0.6), transparent 70%), radial-gradient(65% 40% at 100% 22%, rgba(214, 244, 244, 0.6), transparent 70%), radial-gradient(70% 45% at 0% 88%, rgba(220, 238, 206, 0.55), transparent 70%), radial-gradient(65% 45% at 100% 96%, rgba(210, 230, 244, 0.55), transparent 70%), var(--white);
    overflow-y: auto;
  }
  .hbmenu_full_fade .menu > ul {
    display: block;
    width: 80vw;
    max-height: 100vh;
    margin: 0;
    padding-block: 0.6em;
    list-style: none;
    transition: opacity 0.4s ease;
    text-align: center;
  }
  .hbmenu_full_fade .menu .menu-item,
  .hbmenu_full_fade .menu > ul > li {
    display: block;
    position: relative;
    padding: 0.2rem 0;
    border-bottom: 1px solid var(--fx-surface-1);
  }
  .hbmenu_full_fade .menu .menu-item a,
  .hbmenu_full_fade .menu > ul > li a {
    position: relative;
    display: block;
    cursor: pointer;
    transition: color 0.4s ease;
    color: var(--fx-primary);
    font-size: 0.38rem;
    font-weight: 700;
    font-family: var(--fx-font-heading);
    letter-spacing: 0.02em;
    line-height: 1.3;
    text-decoration: none;
  }
  .hbmenu_full_fade .menu .mirai-app-icons {
    display: flex;
    justify-content: center;
    gap: 0.15rem;
  }
  .hbmenu_full_fade .menu .mirai-app-icons__item {
    width: 0.6rem;
    max-width: 22vw;
  }
  .hbmenu_full_fade .menu .mirai-app-icons__thumb {
    max-width: none;
  }
  .hbmenu_full_fade .menu_social-links {
    width: 100%;
    margin-top: 0.35rem;
  }
  .hbmenu_full_fade .menu_social-list {
    display: flex;
    justify-content: center;
    gap: 0.15rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .hbmenu_full_fade .menu_social-list li {
    width: 0.6rem;
    max-width: 22vw;
  }
  .hbmenu_full_fade .menu_social-list img {
    display: block;
    width: 100%;
    height: auto;
  }
  .hbmenu_full_fade .menu_cta {
    width: 100%;
    margin-top: 0.4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
  }
  .hbmenu_full_fade .menu_cta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 90%;
    max-width: 5.8rem;
    min-height: 0.9rem;
    padding: 0.3rem 0.3rem;
    border-radius: 999px;
    font-family: var(--fx-font-heading);
    font-weight: 700;
    font-size: 0.42rem;
    letter-spacing: 0.02em;
    white-space: nowrap;
    text-decoration: none;
  }
  .hbmenu_full_fade .menu_cta__btn--tel {
    background: var(--white);
    color: var(--fx-primary);
    border: 0.03rem solid var(--fx-primary-l);
  }
  .hbmenu_full_fade .menu_cta__btn--book {
    background: var(--fx-primary);
    color: var(--white);
  }
  body.menu-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
  }
  .menu {
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s linear;
  }
  .menu.is-active {
    pointer-events: auto;
    opacity: 1;
  }
}
.ap-spfoot {
  display: none;
}

@media (max-width: 767px) {
  .ap-spfoot {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    height: 1.34rem;
    background: var(--fx-surface-1);
    box-shadow: 0 -0.02rem 0.06rem rgba(43, 43, 43, 0.08);
  }
  .ap-spfoot__items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    height: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .ap-spfoot__item {
    margin: 0;
  }
  .ap-spfoot__item + .ap-spfoot__item {
    border-left: 1px solid var(--fx-teal);
  }
  .ap-spfoot__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
    padding-top: 0.37rem;
    color: var(--fx-ink);
    font-family: var(--fx-font-heading);
    font-weight: 400;
    font-size: 0.2rem;
    line-height: 1;
    letter-spacing: 0.02em;
    text-decoration: none;
  }
  .ap-spfoot__link:hover {
    opacity: 0.8;
  }
  .ap-spfoot__ic {
    display: block;
    width: 0.219rem;
    height: 0.219rem;
    margin-bottom: 0.16rem;
    border-top: 0.02rem solid var(--fx-teal);
    border-right: 0.02rem solid var(--fx-teal);
    transform: rotate(-45deg);
    transform-origin: center;
  }
  body:has(#toggle:checked) .ap-spfoot {
    display: none;
  }
  body {
    padding-bottom: 1.34rem;
  }
}
.fx-btn {
  --btn-font: var(--fx-font-heading);
  --btn-weight: 700;
  --btn-size-base: calc(var(--fx-font-base) * 1.38);
  --btn-font-scale: 1;
  --btn-size: calc(var(--btn-size-base) * var(--btn-font-scale));
  --btn-pad-y: .42em;
  --btn-pad-x: 1.2em;
  --btn-min-w: 2.84rem;
  --btn-radius: .1rem;
  --btn-edge: var(--fx-gold-btn);
  --btn-tracking: .01em;
  --btn-bg: var(--fx-primary);
  --btn-bg-hover: var(--fx-primary-d);
  --btn-fg: var(--white);
}
@media (max-width: 767px) {
  .fx-btn {
    --btn-size-base: calc(var(--fx-font-base) * 1.45);
    --btn-pad-y: .72em;
    --btn-radius: .14rem;
    --btn-min-w: 5.14rem;
    --btn-edge-w: .03rem;
  }
}
.fx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--btn-min-w);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border: var(--btn-edge-w, 0.01rem) solid var(--btn-edge);
  border-radius: var(--btn-radius);
  background: var(--btn-bg);
  color: var(--btn-fg);
  font-family: var(--btn-font);
  font-weight: var(--btn-weight);
  font-size: var(--btn-size);
  letter-spacing: var(--btn-tracking);
  line-height: 1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: none;
  transition: transform 0.15s, background 0.2s;
}
.fx-btn:hover {
  background: var(--btn-bg-hover);
  color: var(--btn-fg);
}
.fx-btn[data-size=sm] {
  --btn-size-base: calc(var(--fx-font-base) * 1.15);
  --btn-min-w: 2.24rem;
  --btn-pad-x: 1em;
}
.fx-btn[data-size=lg] {
  --btn-min-w: 3.4rem;
}
.fx-btn[data-size=xl] {
  --btn-size-base: calc(var(--fx-font-base) * 1.6);
  --btn-min-w: 3.7rem;
  --btn-pad-x: 1.7em;
}
.fx-btn[data-lines="2"] {
  --btn-pad-y:.28em;
  white-space: normal;
  line-height: 1.16;
}
@media (max-width: 767px) {
  .fx-btn[data-lines="2"] {
    --btn-size-base:calc(var(--fx-font-base) * 1.1);
    --btn-pad-y:.55em;
  }
}
.fx-btn[data-tone=light] {
  --btn-bg: var(--white);
  --btn-bg-hover: var(--fx-surface-1);
  --btn-fg: var(--fx-primary);
}
@media (max-width: 767px) {
  .fx-btn[data-block=sp] {
    --btn-min-w:0;
    width: 100%;
  }
}

.fx-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5em;
  margin: 0.24rem 0 0.08rem;
}
@media (max-width: 767px) {
  .fx-ctas {
    flex-direction: column;
  }
}

.fx-ctas--center {
  justify-content: center;
}

.fx-ctas--start {
  justify-content: flex-start;
}

.ap-cards {
  display: grid;
  grid-template-columns: repeat(4, 2.53rem);
  justify-content: center;
  gap: var(--sp-lg);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ap-cards::after {
  content: none;
  display: none;
}
@media (max-width: 767px) {
  .ap-cards {
    grid-template-columns: repeat(2, 3.19rem);
    gap: var(--sp-lg) 0.373rem;
    width: 100%;
  }
}
.ap-cards > li.no-data {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 1.05rem;
  text-align: center;
}
.ap-cards > li.no-data p {
  max-width: 5.4rem;
  margin: 0 auto;
  line-height: 1.65;
}

.ap-card {
  display: flex;
  width: auto;
  margin: 0;
  padding: 0;
  background: var(--white);
  border: max(1px, 0.01rem) solid var(--fx-primary);
  border-radius: 0.13rem;
  box-shadow: 0 0.02rem 0.06rem var(--fx-ink-shadow);
  overflow: hidden;
  list-style: none;
}

.ap-card__link {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  color: var(--fx-ink-strong);
  text-decoration: none;
}
.ap-card__link:hover {
  opacity: 1;
}

.companion-card {
  container-type: inline-size;
}

.ap-card__media {
  position: relative;
  flex: 0 0 auto;
  aspect-ratio: 3/4;
  overflow: hidden;
}

.ap-card__photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.3s ease;
}
.ap-card__link:hover .ap-card__photo {
  transform: scale(1.03);
}

.ap-card__media--plate .ap-card__photo {
  object-position: center center;
}

.ap-card__printing {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--fx-primary-tint);
  color: var(--fx-primary-d);
  font-family: var(--fx-font-heading);
  font-size: var(--fx-type-small);
  letter-spacing: 0.04em;
}

.ap-card__rank {
  position: absolute;
  left: 0.22rem;
  bottom: 0.2rem;
  display: block;
}

.ap-card__crown {
  position: absolute;
  left: 50%;
  bottom: calc(100% - 0.1rem);
  z-index: 2;
  width: 0.65rem;
  height: auto;
  transform: translateX(-50%);
  pointer-events: none;
}
@media (max-width: 767px) {
  .ap-card__crown {
    width: 0.65rem;
    bottom: calc(100% - 0.1rem);
  }
}

.ap-card__ranklabel {
  position: relative;
  z-index: 1;
  display: block;
  padding: 0.21em 0.66em;
  border-radius: 0.1rem;
  background: var(--fx-card-pill);
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-body);
  line-height: 1.43;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .ap-card__ranklabel {
    font-size: 0.69em;
  }
}

.ap-card__body {
  display: block;
  flex: 1 1 auto;
  padding: var(--sp-xs) 0.08rem var(--sp-md);
  text-align: center;
  --ap-card-name:var(--fx-type-card-name);
}
@media (max-width: 767px) {
  .ap-card__body {
    padding-inline: 3cqi;
    font-size: 7.4cqi;
    --ap-card-name:1.36em;
  }
}

.ap-card__name {
  display: inline;
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--ap-card-name);
  line-height: 1.15;
}

.ap-card__age {
  display: inline;
  margin: 0 0 0 0.28em;
  font-family: var(--fx-font-body);
  font-size: calc(var(--ap-card-name) * 0.62);
  line-height: 1.15;
}

.ap-card__spec {
  display: block;
  margin-top: 0.42em;
  color: var(--fx-ink-mid);
  font-family: var(--fx-font-body);
  font-weight: 700;
  font-size: var(--fx-type-small);
  line-height: 1.25;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .ap-card__spec {
    font-size: 1em;
  }
}

.ap-card__time {
  display: block;
  margin-top: 0.26em;
  color: var(--fx-ink-mid);
  font-family: var(--fx-font-body);
  font-weight: 700;
  font-size: var(--fx-type-small);
  line-height: 1.25;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .ap-card__time {
    font-size: 0.92em;
  }
}

.ap-card__catch {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  margin-top: 0.28em;
  overflow: hidden;
  color: var(--fx-primary);
  font-family: var(--fx-font-body);
  font-weight: 700;
  font-size: var(--fx-type-body);
  line-height: 1.15;
}
@media (max-width: 767px) {
  .ap-card__catch {
    font-size: 1em;
  }
}

.fx-schedule-grid .ap-card__time {
  color: var(--fx-primary);
}

.post_latest,
.link_hereafter {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  margin: 0;
  border: max(1px, 0.01rem) solid var(--fx-gold-deep);
  background: var(--white);
}
@media (max-width: 767px) {
  .post_latest,
  .link_hereafter {
    flex-direction: column;
  }
}

.thmb_latest,
.thmb_hereafter {
  flex: 0 0 auto;
  display: block;
  border-radius: 0.1rem;
  background: var(--fx-surface-gray-12);
  overflow: hidden;
}
.thmb_latest img,
.thmb_hereafter img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.post_latest {
  padding: 0.22rem;
  gap: 0.36rem;
}
@media (max-width: 767px) {
  .post_latest {
    padding: 0.24rem;
    gap: 0.24rem;
  }
}

.thmb_latest {
  width: 4.61rem;
  align-self: flex-start;
  aspect-ratio: 461/389;
}
@media (max-width: 767px) {
  .thmb_latest {
    width: 100%;
    aspect-ratio: 4/3;
  }
}

.link_hereafter {
  position: relative;
  padding: 0.2rem;
  gap: 0.2rem;
}
@media (min-width: 768px) {
  .link_hereafter {
    height: 3.17rem;
    padding: 0.15rem;
    gap: 0.26rem;
    overflow: hidden;
  }
  .link_hereafter .readmore {
    position: absolute;
    right: 0.15rem;
    bottom: 0.13rem;
    margin: 0;
  }
  .link_hereafter .content_hereafter > * {
    flex: 0 0 auto;
  }
  .link_hereafter h2 {
    --ap-lh:1.25;
    line-height: var(--ap-lh);
    max-height: calc(var(--ap-lh) * 3em);
    margin-top: 0.08rem;
    overflow: hidden;
  }
  .link_hereafter .content_txt {
    --ap-lh:1.55;
    line-height: var(--ap-lh);
    max-height: calc(var(--ap-lh) * 2em);
    margin-top: 0.08rem;
    overflow: hidden;
  }
}
.link_hereafter .cat_pill {
  margin-top: 0.02rem;
}
.link_hereafter .auther {
  padding-right: 1.3rem;
}

.thmb_hereafter {
  width: 3.4rem;
  align-self: flex-start;
  aspect-ratio: 340/286;
}
@media (max-width: 767px) {
  .thmb_hereafter {
    width: 100%;
    aspect-ratio: 4/3;
  }
}

.content_latest,
.content_hereafter {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}
.content_latest time,
.content_hereafter time {
  order: 2;
  color: var(--fx-ink-soft);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: 0.239rem;
  line-height: 1.2;
}
.content_latest .cat_pill,
.content_hereafter .cat_pill {
  order: 3;
  align-self: flex-start;
  margin-top: 0.08rem;
  padding: 0.28em 1.1em;
  border-radius: 999em;
  background: var(--fx-primary);
  color: var(--white);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-body);
  line-height: 1.2;
}
.content_latest h2,
.content_latest h3,
.content_hereafter h2,
.content_hereafter h3 {
  order: 4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  margin: 0.14rem 0 0;
  overflow: hidden;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: 0.337rem;
  line-height: 1.17;
}
.content_latest h2 a,
.content_latest h3 a,
.content_hereafter h2 a,
.content_hereafter h3 a {
  color: inherit;
  text-decoration: none;
}
.content_latest .content_txt,
.content_hereafter .content_txt {
  order: 5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  margin: 0.14rem 0 0;
  overflow: hidden;
  color: var(--fx-ink);
  font-family: var(--fx-font-body);
  font-size: 0.155rem;
  line-height: 1.6;
}
.content_latest .bottom,
.content_hereafter .bottom {
  order: 6;
  display: flex;
  flex-direction: column-reverse;
  align-items: stretch;
  gap: 0.06rem;
  margin-top: auto;
  padding-top: 0.08rem;
}
.content_latest .readmore,
.content_hereafter .readmore {
  align-self: flex-end;
  color: var(--fx-teal);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-lead);
  text-decoration: none;
  white-space: nowrap;
}
.content_latest .readmore::after,
.content_hereafter .readmore::after {
  content: " >";
}
.content_latest .auther,
.content_hereafter .auther {
  display: flex;
  align-items: center;
  gap: 0.06rem;
  margin: 0;
  color: var(--fx-gold-deep);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-body);
  line-height: 1.3;
}

.content_latest .featured_label {
  order: 1;
  display: flex;
  align-items: center;
  gap: 0.12rem;
  color: var(--fx-gold-deep);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-heading-md);
  letter-spacing: 0.02em;
  line-height: 1.1;
}
.content_latest .featured_label::before {
  content: "";
  flex: 0 0 auto;
  width: 0.36rem;
  height: 0.23rem;
  background: url("../images/aoyama/icon/icon-crown.svg") center/contain no-repeat;
}
.content_latest .meta_row {
  order: 2;
  display: flex;
  align-items: center;
  gap: 0.16rem;
  margin: 0.14rem 0 0;
}
.content_latest .meta_row time {
  order: 0;
}
.content_latest .meta_row .cat_pill {
  order: 1;
  margin-top: 0;
}
.content_latest h2,
.content_latest h3 {
  margin-top: 0.2rem;
  font-size: 0.361rem;
}
.content_latest .content_txt {
  margin-top: 0.16rem;
  font-size: 0.201rem;
  line-height: 1.55;
  -webkit-line-clamp: 4;
  line-clamp: 4;
}

.content_hereafter h2,
.content_hereafter h3 {
  font-size: 0.337rem;
}

.post_hereafter {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 767px) {
  .post_hereafter {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 0.205rem;
    row-gap: 0.292rem;
    margin-top: 0.2rem;
  }
  .post_hereafter .link_hereafter {
    height: 100%;
    padding: 0.12rem;
    gap: 0.12rem;
  }
  .post_hereafter .thmb_hereafter {
    width: 100%;
    aspect-ratio: 1;
  }
  .post_hereafter .content_hereafter time {
    font-size: var(--fx-type-caption);
  }
  .post_hereafter .content_hereafter .cat_pill {
    padding: 0.2em 0.7em;
    font-size: var(--fx-type-small);
  }
  .post_hereafter .content_hereafter h2,
  .post_hereafter .content_hereafter h3 {
    -webkit-line-clamp: 3;
    line-clamp: 3;
    font-size: var(--fx-type-body);
  }
  .post_hereafter .content_hereafter .content_txt {
    -webkit-line-clamp: 2;
    line-clamp: 2;
    font-size: var(--fx-type-caption);
  }
  .post_hereafter .content_hereafter .readmore,
  .post_hereafter .content_hereafter .auther {
    font-size: var(--fx-type-caption);
  }
}

.booking-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
@media (max-width: 767px) {
  .booking-overlay {
    padding: 0.12rem;
    background: rgba(20, 62, 62, 0.28);
    -webkit-backdrop-filter: blur(0.16rem) saturate(1.08);
    backdrop-filter: blur(0.16rem) saturate(1.08);
  }
}

.booking-overlay.is-active {
  opacity: 1;
  pointer-events: auto;
}

body.overlay-open {
  overflow: hidden;
}

.booking-overlay__panel {
  position: relative;
  width: min(92vw, 5.6rem);
  max-height: calc(100vh - 0.6rem);
  overflow-y: auto;
  padding: 0.46rem 0.4rem 0.4rem;
  background: var(--white);
  border: max(1px, 0.01rem) solid var(--fx-accent);
  outline: 0.01rem solid var(--fx-accent);
  outline-offset: 0.06rem;
  border-radius: 0;
  box-shadow: 0 0.1rem 0.3rem rgba(20, 52, 52, 0.22);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media (max-width: 767px) {
  .booking-overlay__panel {
    width: 100%;
    max-width: 6.2rem;
    max-height: calc(100vh - 0.44rem);
    padding: 0.4rem 0.28rem 0.34rem;
  }
}

.booking-overlay__panel--list {
  max-width: 5.6rem;
}
@media (max-width: 767px) {
  .booking-overlay__panel--list {
    max-width: 6.2rem;
  }
}

.booking-overlay__close {
  position: absolute;
  top: 0.16rem;
  right: 0.16rem;
  width: 0.28rem;
  height: 0.28rem;
  background: transparent;
  border: none;
  cursor: pointer;
}
.booking-overlay__close::before, .booking-overlay__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 0.02rem;
  background: var(--fx-primary);
}
.booking-overlay__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.booking-overlay__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.booking-overlay__panel--list .booking-overlay__title {
  display: block;
  margin: 0 0 0.06rem;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: calc(var(--fx-type-heading-md) * 1.55);
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.booking-overlay__panel--list .booking-overlay__title::after {
  content: "";
  display: block;
  width: 2.5283rem;
  max-width: 100%;
  height: 0.2965rem;
  margin: 0.06rem auto 0.04rem;
  background: url("../images/aoyama/svg/h-card-head.svg") center bottom/contain no-repeat;
}

.booking-overlay__panel--list .booking-overlay__subtitle {
  display: block;
  margin: 0 0 0.24rem;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.5;
}

.booking-overlay__content {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.booking-overlay__contact-card {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  background: none;
  border-radius: 0;
  box-shadow: none;
}

.booking-overlay__contact-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 0.2rem;
  padding: 0.09rem 0.28rem;
  border-radius: 0;
  border: 0.02rem solid var(--fx-accent);
  background: var(--white);
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-body);
  line-height: 1.25;
  text-align: center;
}

.booking-overlay__app-cards {
  list-style: none;
  margin: 0 0 0.18rem;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.16rem;
}
@media (max-width: 767px) {
  .booking-overlay__app-cards {
    grid-template-columns: 1fr;
  }
}

.booking-overlay__app-cards li {
  margin: 0;
}

.booking-overlay__app-cards a,
.booking-overlay__app-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  min-height: 1.1rem;
  padding: 0.18rem 0.1rem;
  background: var(--white);
  border: 0.1rem solid transparent;
  border-image: url("../images/aoyama/contact/card-frame.svg") 47 fill/0.34rem stretch;
  border-radius: 0;
  box-shadow: none;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-body);
  text-align: center;
  text-decoration: none;
}
@media (max-width: 767px) {
  .booking-overlay__app-cards a,
  .booking-overlay__app-card {
    flex-direction: row;
    justify-content: flex-start;
    gap: 0.24rem;
    min-height: 0.9rem;
    padding: 0.14rem 0.24rem;
  }
}

.booking-overlay__app-cards img {
  display: block;
  width: 0.52rem;
  height: 0.52rem;
  object-fit: contain;
  flex: 0 0 auto;
}

.booking-overlay__contact-note {
  margin: 0.2rem 0 0.24rem;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-heading, "azo-sans-web", sans-serif);
  font-weight: 700;
  font-size: var(--fx-type-body);
  line-height: 1.7;
  text-align: center;
}

.booking-overlay__reserve-sub {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0.4rem;
  margin: 0.08rem auto 0;
  padding: 0 0.26rem;
  border-radius: 0;
  border: 0.02rem solid var(--fx-gold-btn);
  background: var(--white);
  color: var(--fx-gold-ttl);
  font-family: var(--fx-font-heading, "azo-sans-web", sans-serif);
  font-weight: 700;
  font-size: var(--fx-type-body);
  text-decoration: none;
  transition: background 0.2s ease;
}
.booking-overlay__reserve-sub:hover {
  background: var(--fx-surface-warm);
}

.booking-overlay__contact-trust,
.booking-overlay__cta {
  display: none;
}

.mirai-app-icons {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mirai-app-icons__item {
  margin: 0;
}

.mirai-app-icons__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1em;
  text-align: center;
  width: 100%;
}
@media (max-width: 767px) {
  .mirai-app-icons__card {
    gap: 0.889em;
  }
}

.mirai-app-icons__thumb {
  width: 100%;
  max-width: 2rem;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .mirai-app-icons__thumb {
    max-width: 1.6rem;
  }
}

.mirai-app-icons__thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.mirai-app-icons__meta {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
}

.mirai-app-icons__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.44em;
  text-decoration: none;
  color: inherit;
}

.mirai-app-icons__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.14rem;
  width: 100%;
}

.mirai-app-icons__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7em 1.8em;
  border-radius: 999px;
  border: 1px solid var(--fx-primary);
  background-color: transparent;
  color: var(--fx-primary);
  font-size: var(--fx-type-button);
  font-weight: 600;
  line-height: 1.1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  font-family: inherit;
}
@media (max-width: 767px) {
  .mirai-app-icons__action {
    min-width: 12.222em;
    font-size: var(--fx-type-body);
    padding: 0.667em 1.667em;
  }
}

.mirai-app-icons__action--copy {
  background-color: var(--fx-primary);
  color: var(--white);
}
.mirai-app-icons__action--copy:hover, .mirai-app-icons__action--copy:focus {
  background-color: var(--fx-primary);
  border-color: var(--fx-primary);
  color: var(--white);
}

.mirai-app-icons__action--open:hover, .mirai-app-icons__action--open:focus {
  background-color: var(--fx-primary);
  color: var(--white);
}

.mirai-app-icons__action:focus-visible {
  outline: 0.02rem solid var(--fx-primary);
  outline-offset: 0.02rem;
}

.mirai-app-icons__actions .mirai-app-icons__action {
  min-width: 2.6rem;
}

.mirai-app-icons__link img {
  display: block;
  width: 100%;
  height: auto;
}

.mirai-app-icons__label,
.mirai-app-icons__id {
  display: block;
  font-size: var(--fx-type-button);
  line-height: 1.3;
  text-align: center;
}

.mirai-app-icons__id {
  font-weight: 600;
  word-break: break-word;
}

.mirai-copy-toast {
  position: fixed;
  left: 50%;
  top: 1.4rem;
  transform: translate(-50%, -160%);
  padding: 0.9em 2.1em;
  border-radius: 1.6em;
  background-color: var(--fx-primary);
  color: var(--white);
  font-size: var(--fx-type-button);
  line-height: 1.4;
  letter-spacing: 0.01rem;
  z-index: 13000;
  box-shadow: 0 0.16rem 0.32rem rgba(0, 0, 0, 0.12);
  border: 1px solid rgba(0, 0, 0, 0.08);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.28s ease;
}
.mirai-copy-toast.is-visible {
  transform: translate(-50%, 0);
  opacity: 1;
}
.mirai-copy-toast.is-error {
  background-color: rgba(162, 25, 25, 0.92);
  color: var(--white);
  border-color: transparent;
}
.mirai-copy-toast.is-success {
  background-color: var(--fx-primary);
  color: var(--white);
}
@media (max-width: 767px) {
  .mirai-copy-toast {
    top: 0.9rem;
    font-size: var(--fx-type-button);
    width: calc(100% - 0.6rem);
    max-width: 5.4rem;
  }
}

body.mirai-copy-modal-open {
  overflow: hidden;
}

.mirai-copy-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0.32rem;
  z-index: 12000;
}
@media (max-width: 767px) {
  .mirai-copy-modal {
    padding: 0.72em;
  }
}

.mirai-copy-modal.is-active {
  display: flex;
}

.mirai-copy-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.mirai-copy-modal__dialog {
  position: relative;
  z-index: 1;
  background: var(--white);
  border-radius: 0.24rem;
  width: 100%;
  max-width: 4.8rem;
  padding: 0.42rem 0.38rem 0.46rem;
  box-shadow: 0 0.3rem 0.8rem rgba(0, 0, 0, 0.25);
  outline: none;
}
@media (max-width: 767px) {
  .mirai-copy-modal__dialog {
    padding: 1.36em 1.12em 1.6em;
  }
}

.mirai-copy-modal__close {
  position: absolute;
  top: 0.2rem;
  right: 0.2rem;
  width: 0.34rem;
  height: 0.34rem;
  border: none;
  background: transparent;
  cursor: pointer;
}
.mirai-copy-modal__close::before, .mirai-copy-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 0.02rem;
  background: var(--fx-ink);
  transform-origin: center;
}
.mirai-copy-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.mirai-copy-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.mirai-copy-modal__body {
  display: flex;
  flex-direction: column;
  gap: 1.2em;
  text-align: center;
}

.mirai-copy-modal__title {
  font-size: var(--fx-type-heading-lg);
  letter-spacing: 0.025em;
  margin: 0;
  color: var(--fx-primary);
}
@media (max-width: 767px) {
  .mirai-copy-modal__title {
    font-size: var(--fx-type-heading-md);
  }
}

.mirai-copy-modal__message {
  margin: 0;
  font-size: var(--fx-type-button);
  line-height: 1.46;
}
@media (max-width: 767px) {
  .mirai-copy-modal__message {
    font-size: var(--fx-type-button);
  }
}

.mirai-copy-modal__id {
  margin: 0;
  font-size: var(--fx-type-heading-md);
  font-weight: 600;
  letter-spacing: 0.08em;
  word-break: break-word;
}

.mirai-copy-modal__qr {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6em;
}
.mirai-copy-modal__qr[hidden] {
  display: none;
}

.mirai-copy-modal__qr-img {
  display: block;
  width: 1.9rem;
  max-width: 60%;
  height: auto;
  border: 1px solid var(--fx-primary);
  background: var(--white);
  padding: 0.06rem;
}
@media (max-width: 767px) {
  .mirai-copy-modal__qr-img {
    width: 42vw;
    max-width: 100%;
    padding: 0.5em;
  }
}

.mirai-copy-modal__qr-cap {
  font-size: var(--fx-type-caption);
  line-height: 1.5;
  color: var(--fx-ink);
}

.mirai-copy-modal__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.9em;
}

.mirai-copy-modal__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7em 1.9em;
  border-radius: 999px;
  border: 1px solid var(--fx-primary);
  background-color: transparent;
  color: var(--fx-primary);
  font-size: var(--fx-type-button);
  font-weight: 600;
  line-height: 1.1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
@media (max-width: 767px) {
  .mirai-copy-modal__action {
    padding: 0.48em 1.2em;
    font-size: var(--fx-type-button);
    min-width: 9.6em;
  }
}

.mirai-copy-modal__action--copy {
  background-color: var(--fx-primary);
  color: var(--white);
}
.mirai-copy-modal__action--copy:hover, .mirai-copy-modal__action--copy:focus {
  background-color: var(--fx-primary);
  border-color: var(--fx-primary);
  color: var(--white);
}

.mirai-copy-modal__action--open:hover, .mirai-copy-modal__action--open:focus {
  background-color: var(--fx-primary);
  color: var(--white);
}

.mirai-copy-modal__action:focus-visible {
  outline: 0.02rem solid var(--fx-primary);
  outline-offset: 0.02rem;
}

body.mirai-booking-modal-open {
  overflow: hidden;
}

.mirai-booking-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0.32rem;
  z-index: 12000;
}
@media (max-width: 767px) {
  .mirai-booking-modal {
    padding: 0.12rem;
  }
}
.mirai-booking-modal .booking-overlay__contact-badge {
  display: flex;
  width: max-content;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0.14rem;
  padding: 0.08rem 0.26rem;
  font-size: 0.28rem;
}
.mirai-booking-modal .booking-overlay__app-cards {
  gap: 0.1rem;
  margin: 0.08rem 0 0;
}
.mirai-booking-modal .booking-overlay__app-cards a,
.mirai-booking-modal .booking-overlay__app-card {
  min-height: 0.74rem;
  gap: 0.2rem;
  padding: 0.12rem 0.22rem;
  border-radius: 0.1rem;
  font-size: 0.24rem;
}
.mirai-booking-modal .booking-overlay__app-cards img {
  width: 0.48rem;
  height: 0.48rem;
}
.mirai-booking-modal .booking-overlay__contact-note {
  display: none;
}
.mirai-booking-modal .mirai-booking-modal__contact-card.booking-overlay__contact-card {
  width: min(100%, 4.8rem);
  padding: 0.28rem 0.2rem 0.22rem;
}
.mirai-booking-modal .mirai-booking-modal__body {
  gap: 0.12rem;
}
.mirai-booking-modal .mirai-booking-modal__section {
  width: min(100%, 4.8rem);
  padding: 0.16rem 0.2rem;
  border-radius: 0.14rem;
}
.mirai-booking-modal .mirai-booking-modal__section-title {
  margin-bottom: 0.35em;
  font-size: 0.22rem;
}
.mirai-booking-modal .mirai-booking-modal__hint {
  margin-bottom: 0.55em;
  font-size: 0.16rem;
  line-height: 1.45;
}
.mirai-booking-modal .mirai-booking-modal__copy-textarea {
  min-height: 0.86rem;
  max-height: 1.1rem;
  font-size: 0.15rem;
  padding: 0.12rem;
}
.mirai-booking-modal .mirai-booking-modal__copy-btn,
.mirai-booking-modal .mirai-booking-modal__reserve-link {
  min-height: 0.38rem;
  padding: 0.09rem 0.26rem;
  font-size: 0.18rem;
}
.mirai-booking-modal .mirai-booking-modal__copy-btn {
  margin-top: 0.1rem;
}

.mirai-booking-modal.is-active {
  display: flex;
}

.mirai-booking-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 62, 62, 0.46);
  -webkit-backdrop-filter: blur(0.12rem) saturate(1.08);
  backdrop-filter: blur(0.12rem) saturate(1.08);
}

.mirai-booking-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(92vw, 5.6rem);
  max-height: calc(100vh - 0.5rem);
  overflow-y: auto;
  padding: 0.28rem 0.22rem 0.26rem;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  outline: none;
}
@media (max-width: 767px) {
  .mirai-booking-modal__dialog {
    width: 100%;
    max-width: 6.2rem;
    max-height: calc(100vh - 0.44rem);
    padding: 0.24rem 0.14rem;
  }
}

.mirai-booking-modal__close {
  position: absolute;
  top: 0.1rem;
  right: 0.1rem;
  z-index: 3;
  width: 0.36rem;
  height: 0.36rem;
  border: none;
  background: transparent;
  cursor: pointer;
}
.mirai-booking-modal__close::before, .mirai-booking-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 0.02rem;
  background: var(--fx-primary);
}
.mirai-booking-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.mirai-booking-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media (max-width: 767px) {
  .mirai-booking-modal__close {
    top: 0.22rem;
    right: 0.26rem;
  }
}

.mirai-booking-modal__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.18rem;
}

.mirai-booking-modal__contact-card.booking-overlay__contact-card {
  width: min(100%, 5.25rem);
  margin: 0 auto;
  padding-top: 0.4rem;
}
@media (max-width: 767px) {
  .mirai-booking-modal__contact-card.booking-overlay__contact-card {
    width: 100%;
  }
}

.mirai-booking-modal__section {
  width: min(100%, 5.25rem);
  margin: 0 auto;
  padding: 0.24rem 0.28rem;
  border: 0;
  border-radius: 0.16rem;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 0.12rem 0.28rem rgba(20, 52, 52, 0.16);
}

.mirai-booking-modal__section-title {
  margin: 0 0 0.55em;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading, "azo-sans-web", sans-serif);
  font-size: var(--fx-type-button);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-align: center;
}

.mirai-booking-modal__hint {
  margin: 0 0 0.8em;
  font-size: var(--fx-type-body);
  font-weight: 700;
  line-height: 1.55;
  color: rgba(35, 64, 64, 0.72);
  text-align: center;
}

.mirai-booking-modal__copy-textarea {
  width: 100%;
  min-height: 1.7rem;
  padding: 0.16rem;
  border: 0.02rem solid rgba(63, 157, 157, 0.25);
  border-radius: 0.12rem;
  background: var(--white);
  box-sizing: border-box;
  font-family: inherit;
  font-size: var(--fx-type-body);
  line-height: 1.5;
  resize: vertical;
}
@media (max-width: 767px) {
  .mirai-booking-modal__copy-textarea {
    min-height: 2.2rem;
    font-size: var(--fx-type-button);
  }
}

.mirai-booking-modal__copy-textarea:focus {
  outline: none;
  border-color: var(--fx-primary);
  box-shadow: 0 0 0 0.04rem rgba(63, 157, 157, 0.12);
}

.mirai-booking-modal__copy-btn,
.mirai-booking-modal__reserve-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0.5rem;
  padding: 0.12rem 0.34rem;
  border: 0;
  border-radius: 999px;
  background: var(--fx-primary);
  color: var(--white);
  font-family: var(--fx-font-heading, "azo-sans-web", sans-serif);
  font-size: var(--fx-type-button);
  font-weight: 900;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 0.06rem 0.16rem rgba(63, 157, 157, 0.25);
  transition: transform 0.2s ease, filter 0.2s ease;
}
.mirai-booking-modal__copy-btn:hover, .mirai-booking-modal__copy-btn:focus,
.mirai-booking-modal__reserve-link:hover,
.mirai-booking-modal__reserve-link:focus {
  color: var(--white);
  filter: brightness(1.06);
  transform: translateY(-0.01rem);
}

.mirai-booking-modal__copy-btn {
  margin: 0.16rem auto 0;
}

.mirai-booking-modal__section--reserve-link {
  padding: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
}

.mirai-booking-modal__reserve-link {
  background: rgba(226, 226, 226, 0.9);
  color: var(--fx-primary);
  box-shadow: none;
}
.mirai-booking-modal__reserve-link:hover, .mirai-booking-modal__reserve-link:focus {
  color: var(--fx-primary);
}

.booking-cta-btn,
.schedule-book-btn {
  display: inline-block;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.booking-cta-btn img,
.schedule-book-btn img {
  display: block;
}

.back-to-top {
  position: fixed;
  bottom: 0.2rem;
  right: 0.2rem;
  width: 0.6rem;
  height: 0.6rem;
  background: var(--fx-primary);
  color: var(--white);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  z-index: 500;
  font-size: var(--fx-type-button);
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.3);
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.2rem);
  /* PC/タブレットは、以前ここに会員ログインボタンが重なっていた名残で 1 段上に出す。
     位置を戻す場合はデザイン判断が要るため、実測値のまま維持する。 */
}
@media (min-width: 768px) {
  .back-to-top {
    bottom: 1.12rem;
  }
}
.back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top:hover {
  background: var(--fx-primary);
  transform: scale(1.1);
}
@media (max-width: 767px) {
  .back-to-top {
    display: none;
  }
}

@media (max-width: 767px) {
  body.bc-page-companion .fx-hero__ttl {
    max-width: 5.7rem;
  }
}
body.bc-page-companion .fx-hero {
  background: var(--fx-primary);
}

@media (max-width: 767px) {
  body.bc-page-pricing .fx-hero__ttl {
    max-width: 4.6rem;
  }
}
body.bc-page-pricing .fx-hero {
  background: var(--fx-primary-l);
}
@media (min-width: 768px) {
  body.bc-page-pricing .fx-hero__bg {
    aspect-ratio: 1600/420;
    min-height: 0;
    object-position: 72% 20%;
  }
}

@media (max-width: 767px) {
  body.bc-page-service .fx-hero__ttl {
    max-width: 6.7rem;
  }
}
body.bc-page-service .fx-hero {
  background: var(--fx-surface-blush);
}
@media (min-width: 768px) {
  body.bc-page-service .fx-hero__bg {
    aspect-ratio: 1600/420;
    min-height: 0;
    object-position: 72% 6%;
  }
}

@media (max-width: 767px) {
  body.bc-page-howtouse .fx-hero__ttl {
    max-width: 5.4rem;
  }
}

@media (max-width: 767px) {
  body.bc-page-reserve .fx-hero__ttl {
    max-width: 4.9rem;
  }
}

@media (max-width: 767px) {
  body.bc-page-blog .fx-hero__ttl {
    max-width: 4.6rem;
  }
}

@media (max-width: 767px) {
  body.bc-page-schedule .fx-hero__ttl {
    max-width: 4.2rem;
  }
}
body.bc-page-schedule .fx-hero {
  background: var(--fx-primary-band);
}

.ap-pagehead {
  background: var(--fx-surface-1);
}
.ap-pagehead__label {
  display: flex;
  align-items: center;
  gap: 0.14rem;
  max-width: var(--fx-page-w);
  margin: 0 auto;
  padding: 0.16rem 0.4rem 0.1rem;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: 0.62rem;
  line-height: 1.1;
  letter-spacing: 0.005em;
}
@media (max-width: 767px) {
  .ap-pagehead__label {
    gap: 0.1rem;
    padding: 0.26rem 0.48rem 0.24rem;
    font-size: 0.95rem;
  }
}
.ap-pagehead__star {
  flex: 0 0 auto;
  display: block;
  width: 0.36rem;
  color: var(--fx-accent);
}
.ap-pagehead__star svg {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .ap-pagehead__star {
    width: 0.89rem;
  }
}
.ap-pagehead__pic {
  margin: 0;
  overflow: hidden;
}
.ap-pagehead__pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1200/347;
  object-fit: cover;
}
@media (max-width: 767px) {
  .ap-pagehead__pic img {
    aspect-ratio: 750/400;
  }
}
.ap-pagehead__cap {
  max-width: var(--fx-page-w);
  margin: 0 auto;
  padding: 0.28rem 0.4rem 0.32rem;
  text-align: center;
}
@media (max-width: 767px) {
  .ap-pagehead__cap {
    padding: 0.24rem 0.3rem 0.28rem;
  }
}
.ap-pagehead__ttl {
  margin: 0 0 0.12rem;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-heading-md);
  line-height: 1.35;
}
@media (max-width: 767px) {
  .ap-pagehead__ttl {
    font-size: calc(var(--fx-type-heading-md) * 1.15);
  }
}
.ap-pagehead__lead {
  margin: 0;
  color: var(--fx-ink);
  font-family: var(--fx-font-lead);
  font-style: italic;
  font-weight: 600;
  font-size: var(--fx-type-body);
  line-height: 1.7;
}
@media (max-width: 767px) {
  .ap-pagehead__lead {
    font-size: calc(var(--fx-type-body) * 1.05);
  }
}
@media (min-width: 768px) {
  .ap-pagehead {
    position: relative;
    min-height: 3.47rem;
    padding: 0.69rem 0.5rem 0.3rem;
    background: none;
    overflow: hidden;
  }
  .ap-pagehead .ap-pagehead__pic {
    position: absolute;
    inset: 0;
  }
  .ap-pagehead .ap-pagehead__pic img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
  }
  .ap-pagehead .ap-pagehead__label {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0;
    padding: 0;
    gap: 0.23rem;
    font-size: 0.8rem;
  }
  .ap-pagehead .ap-pagehead__star {
    width: 0.72rem;
  }
  .ap-pagehead .ap-pagehead__cap {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0;
    padding: 0.08rem 0 0 0.04rem;
    text-align: left;
  }
  .ap-pagehead .ap-pagehead__ttl {
    margin: 0 0 0.13rem;
    font-size: 0.4rem;
    line-height: 1.2;
  }
  .ap-pagehead .ap-pagehead__lead {
    font-size: 0.22rem;
    line-height: 1.591;
  }
}
@media (min-width: 768px) {
  .ap-pagehead--center {
    min-height: 2rem;
    padding-block: 0.62rem 0.3rem;
  }
  .ap-pagehead--center .ap-pagehead__label {
    justify-content: center;
  }
}
@media (max-width: 767px) {
  .ap-pagehead--center {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 2.56rem;
    padding: 0.4rem 0.4rem;
    background: none;
    overflow: hidden;
  }
  .ap-pagehead--center .ap-pagehead__pic {
    position: absolute;
    inset: 0;
  }
  .ap-pagehead--center .ap-pagehead__pic img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
  }
  .ap-pagehead--center .ap-pagehead__label {
    position: relative;
    z-index: 1;
    width: 100%;
    justify-content: center;
    gap: 0.16rem;
    padding: 0;
    font-size: 0.76rem;
    text-align: center;
  }
  .ap-pagehead--center .ap-pagehead__star {
    width: 0.6rem;
  }
}

#footer {
  position: relative;
  background: var(--fx-surface-1) url("../images/aoyama/deco/footer-bg.webp") center top/12rem auto no-repeat;
  color: var(--fx-ink);
}
@media (max-width: 767px) {
  #footer {
    background-image: url("../images/aoyama/deco/footer-bg-sp.webp");
    background-size: 100% auto;
  }
}

.ap-foot {
  width: 12rem;
  max-width: 100%;
  min-height: 4.53rem;
  margin-inline: auto;
  padding: 0.28rem 0 0.16rem;
}
@media (max-width: 767px) {
  .ap-foot {
    width: 100%;
    min-height: 0;
    padding: 0.24rem 0.46rem 0;
  }
}

.ap-foot__top {
  display: flex;
  align-items: flex-start;
  padding-left: 0.4rem;
}
@media (max-width: 767px) {
  .ap-foot__top {
    flex-direction: column;
    align-items: center;
    padding-left: 0;
  }
}

.ap-foot__logo {
  flex: 0 0 auto;
  width: 3.13rem;
  margin: 0 0.3rem 0 0;
}
.ap-foot__logo img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .ap-foot__logo {
    width: 5.33rem;
    margin: 0 0.52rem 0.13rem 0;
  }
}

.ap-foot__about {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 0.12rem;
}
.ap-foot__about h2 {
  margin: 0 0 0.07rem;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-heading-sm);
  line-height: 1.2;
  letter-spacing: 0.01em;
}
.ap-foot__about p {
  margin: 0;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.44;
}
.ap-foot__about p span {
  display: block;
}
@media (max-width: 767px) {
  .ap-foot__about {
    width: 100%;
    padding-top: 0;
  }
  .ap-foot__about h2 {
    margin-bottom: 0.1rem;
    text-align: center;
  }
  .ap-foot__about p {
    line-height: 1.45;
    text-align: justify;
    hyphens: auto;
  }
  .ap-foot__about p span {
    display: inline;
  }
}

.ap-foot__cols {
  display: grid;
  grid-template-columns: 3.48rem 3.59rem 1fr;
  margin-top: 0.12rem;
  padding-left: 1.65rem;
}
@media (max-width: 767px) {
  .ap-foot__cols {
    display: block;
    margin-top: 0.29rem;
    padding-left: 0.1rem;
  }
}

.ap-foot__col h2 {
  margin: 0 0 0.03rem;
  color: var(--fx-teal);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-heading-sm);
  line-height: 1.2;
  letter-spacing: 0.01em;
}
.ap-foot__col p {
  margin: 0 0 0.08rem;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.44;
}
.ap-foot__col a:hover {
  color: var(--fx-primary);
  opacity: 1;
}
@media (max-width: 767px) {
  .ap-foot__col {
    margin-top: 0.28rem;
  }
  .ap-foot__col h2 {
    margin-bottom: 0.08rem;
  }
  .ap-foot__col p {
    margin-bottom: 0.12rem;
    line-height: 1.44;
  }
}

@media (max-width: 767px) {
  .ap-foot__col--nav,
  .ap-foot__col--contact {
    margin-left: -0.1rem;
    padding-left: 0.1rem;
    border-bottom: 1px solid var(--fx-line);
  }
}

@media (max-width: 767px) {
  .ap-foot__col--contact {
    position: relative;
    border-bottom: 0;
    padding-bottom: 0.2rem;
  }
  .ap-foot__col--contact::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 2.88rem;
    height: 1px;
    background: var(--fx-line);
  }
}

.ap-foot__col--nav {
  display: grid;
  grid-template-columns: 1.65rem auto;
  grid-template-rows: auto 1fr;
}
.ap-foot__col--nav h2 {
  grid-column: 1/-1;
}
.ap-foot__col--nav ul {
  list-style: none;
  margin: 0.05rem 0 0;
  padding: 0;
}
.ap-foot__col--nav li {
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.4;
}
.ap-foot__col--nav li + li {
  margin-top: 0.09rem;
}
.ap-foot__col--nav a {
  color: var(--fx-ink-strong);
  font-size: inherit;
}
@media (max-width: 767px) {
  .ap-foot__col--nav {
    grid-template-columns: repeat(3, 1.81rem);
    grid-template-rows: auto repeat(3, auto);
    grid-auto-flow: column;
    column-gap: 0.6rem;
    margin-bottom: 0.29rem;
    padding-bottom: 0.29rem;
  }
  .ap-foot__col--nav h2 {
    grid-column: 1/-1;
    grid-row: 1;
  }
  .ap-foot__col--nav ul {
    display: contents;
  }
  .ap-foot__col--nav li {
    line-height: 1.83;
    white-space: nowrap;
  }
  .ap-foot__col--nav li + li {
    margin-top: 0;
  }
}

.ap-foot__bottom {
  margin-top: 0.51rem;
  text-align: center;
}
@media (max-width: 767px) {
  .ap-foot__bottom {
    margin-top: 1.28rem;
    margin-inline: -0.46rem;
    padding: 0.2rem 0.46rem;
    background: var(--white);
  }
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 0.12rem;
  margin: 0;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.3;
}
.footer-legal a:hover {
  color: var(--fx-primary);
  opacity: 1;
}
.footer-legal__brand {
  text-transform: uppercase;
}
.footer-legal__sep {
  width: 1px;
  height: 1em;
  background: var(--fx-line);
}

.ap-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--white);
  transition: box-shadow 0.2s ease;
}
.ap-header.is-compact {
  box-shadow: 0 0.02rem 0.08rem var(--fx-ink-shadow);
}

.ap-header__inner {
  display: flex;
  align-items: center;
  width: 12rem;
  max-width: 100%;
  min-height: 0.92rem;
  margin-inline: auto;
  padding-inline: 0.24rem 0.24rem;
}
@media (max-width: 767px) {
  .ap-header__inner {
    display: none;
  }
}
.ap-header__inner {
  position: relative;
}
.is-compact .ap-header__inner {
  min-height: 0.56rem;
}

.ap-header__logo {
  flex: 0 0 auto;
  align-self: flex-start;
  width: 1.88rem;
  margin: 0.11rem 0.31rem -0.15rem 0;
}
.ap-header__logo img {
  display: block;
  width: 100%;
  height: auto;
}
.is-compact .ap-header__logo {
  align-self: flex-start;
  width: 1.3rem;
  margin: 0.04rem 0.31rem -0.145rem 0;
}

.ap-header__book,
.ap-header__spbook {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0.21em solid transparent;
  background: var(--fx-gold-face) padding-box, var(--fx-gold-edge) border-box;
  box-shadow: inset 0 0 0 0.08em var(--fx-gold-line), 0 0.05em 0.14em var(--fx-gold-shadow);
  color: var(--fx-gold-ink);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  line-height: 1.03;
  text-align: center;
  white-space: nowrap;
}
.ap-header__book:hover,
.ap-header__spbook:hover {
  opacity: 0.88;
}

.ap-header__book {
  flex-direction: column;
  align-self: flex-start;
  margin: 0.33rem 0 -0.27rem auto;
  padding: 0.53em 1em;
  border-radius: 0.62em;
  font-size: var(--fx-type-cta);
  letter-spacing: 0.02em;
}
.is-compact .ap-header__book {
  align-self: flex-start;
  margin: 0.02rem 0 -0.11rem auto;
  padding: 0.75em 1.5em;
  border-width: 0.22em;
  font-size: var(--fx-type-caption);
}

.ap-nav {
  flex: 0 0 auto;
}
.is-compact .ap-nav {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.ap-nav ul {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ap-nav li {
  display: flex;
}
.ap-nav li + li {
  position: relative;
}
.ap-nav li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1px;
  height: 1.03em;
  background: var(--fx-primary);
  transform: translateY(-50%);
}
.ap-nav a {
  display: block;
  padding: 0.24em 0.82em;
  color: var(--fx-ink);
  font-family: var(--fx-font-heading);
  font-style: italic;
  font-weight: 600;
  font-size: var(--fx-type-caption);
  letter-spacing: 0.01em;
  line-height: 1.25;
  white-space: nowrap;
}
.ap-nav a:hover {
  color: var(--fx-primary);
  opacity: 1;
}
.ap-nav .is-current {
  background: var(--fx-accent-l);
  color: var(--white);
}
.ap-nav .is-current:hover {
  color: var(--white);
}

.ap-header__sp {
  display: none;
}
@media (max-width: 767px) {
  .ap-header__sp {
    position: relative;
    display: flex;
    align-items: center;
    height: 1.53rem;
    padding-inline: 0.43rem 0.45rem;
    transition: height 0.2s ease;
  }
  .is-compact .ap-header__sp {
    height: 0.86rem;
  }
}

.ap-header__splogo {
  flex: 0 0 auto;
  align-self: flex-start;
  width: 3.03rem;
  margin: 0.19rem 0 -0.12rem 0;
  transition: width 0.2s ease;
}
.ap-header__splogo img {
  display: block;
  width: 100%;
  height: auto;
}
.is-compact .ap-header__splogo {
  width: 2.19rem;
  margin: 0.08rem 0 -0.16rem 0;
}

.ap-header__spbook {
  align-self: center;
  margin: 0.045rem 0 0 auto;
  padding: 0.71em 0.99em;
  border-width: 0.3em;
  border-radius: 0.74em;
  color: var(--fx-gold-ink-l);
  font-size: var(--fx-type-cta);
  letter-spacing: 0.05em;
}
.is-compact .ap-header__spbook {
  align-self: center;
  margin-block: 0;
  padding: 0.55em 1.1em;
  border-width: 0.22em;
  font-size: var(--fx-type-small);
}

@media (max-width: 767px) {
  .ap-header__spmenu {
    position: relative;
    left: auto;
    top: auto;
    flex: 0 0 auto;
    align-self: center;
    width: 0.65rem;
    height: 0.46rem;
    margin: 0.045rem 0 0 0.32rem;
  }
  .ap-header__spmenu .hamburger {
    position: absolute;
    inset: 0;
    width: 0.65rem;
    height: 0.46rem;
  }
  .ap-header__spmenu .hamburger > span,
  .ap-header__spmenu .hamburger > span::before,
  .ap-header__spmenu .hamburger > span::after {
    width: 0.65rem;
    height: 0.03rem;
    background: var(--fx-ink);
  }
  .ap-header__spmenu .hamburger > span {
    top: 0.215rem;
    left: 0;
  }
  .ap-header__spmenu .hamburger > span::before {
    top: -0.215rem;
  }
  .ap-header__spmenu .hamburger > span::after {
    top: 0.215rem;
  }
  .ap-header__spmenu .hamburger_label {
    display: none;
  }
  .ap-header__spmenu .toggle {
    top: -0.12rem;
    left: -0.12rem;
    width: 0.9rem;
    height: 0.7rem;
  }
}

body:not(.home) .subpage_subttl_txt {
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  letter-spacing: 0.02em;
}
body:not(.home) .subpage_subttl::after {
  width: 3.58rem;
  height: 0.48rem;
  background-color: transparent;
  -webkit-mask: none;
  mask: none;
  background-image: url("../images/aoyama/top/h-line.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  filter: none;
}
@media (max-width: 767px) {
  body:not(.home) .subpage_subttl::after {
    width: 5.24rem;
    height: 0.7rem;
  }
}
body:not(.home) .lead_txt {
  color: var(--fx-ink);
  font-family: var(--fx-font-lead);
  font-style: italic;
  font-weight: 600;
}
body:not(.home) #foot_contact {
  background-color: var(--fx-primary);
  background-image: none;
  color: var(--white);
}
body:not(.home) .fx-rank-pill {
  border: 0.015rem solid var(--fx-accent);
  border-radius: 0.1rem;
  background: var(--white);
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
}
body:not(.home) .fx-rank-pill.active {
  background: var(--fx-primary);
  color: var(--white);
}
body:not(.home) .fx-rank-pill img {
  width: 0.4rem;
  height: auto;
}
body:not(.home) .fx-rank-all {
  border: 0.015rem solid var(--fx-accent);
  border-radius: 0.1rem;
  background: var(--white);
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
}
body:not(.home) .fx-rank-all.active {
  background: var(--fx-primary);
  color: var(--white);
}

.subpage_subttl {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  text-align: center;
  margin: 0 auto var(--sp-sm);
  line-height: 1;
}

.subpage_subttl img {
  display: none;
}

.subpage_subttl::after {
  content: "";
  display: inline-block;
  width: 4.68rem;
  height: 1.17rem;
  background-color: var(--fx-logo-ink, var(--fx-primary));
  -webkit-mask: url("../images/aoyama/svg/flourish.svg") center/contain no-repeat;
  mask: url("../images/aoyama/svg/flourish.svg") center/contain no-repeat;
}
@media (max-width: 767px) {
  .subpage_subttl::after {
    width: 3.9rem;
    height: 0.98rem;
  }
}

.subpage_subttl_txt {
  margin: 0.2em 0 0.1em;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 900;
  font-size: var(--fx-type-heading-lg);
  letter-spacing: 0.02em;
  text-align: center;
}

.subpage_subttl_txt::after {
  display: none;
  content: none;
}

:where(body:not(.home)[class*=bc-page-] #main > section) {
  margin-block: 0;
}

@media (max-width: 767px) {
  body:not(.home)[class*=bc-page-] #main .container_small {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding-inline: 0.45rem;
  }
}

.fx-intro .subpage_subttl_txt {
  font-size: var(--fx-type-subpage-section);
  line-height: 1.1;
}

.lead_txt {
  max-width: 8.6rem;
  margin: 0.778em auto 0;
  color: var(--fx-ink);
  font-size: var(--fx-type-body);
  line-height: 2.22;
  text-align: center;
}
@media (max-width: 767px) {
  .lead_txt {
    max-width: none;
    margin-top: 0.416em;
    font-size: var(--fx-type-body);
    line-height: 1.465;
  }
}

body.bc-page-service #terms_of_service .subpage_subttl_txt,
body.bc-page-pricing #transporation_fee .subpage_subttl_txt {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin: 0.8em 0 1.44em;
  padding: 0.72em 1.2em;
  background: var(--fx-primary);
  color: var(--white);
  text-align: center;
  font-family: var(--fx-font-heading);
  font-weight: 900;
  font-size: var(--fx-type-heading-md);
  letter-spacing: 0.06em;
  line-height: 1.1;
  border-radius: 0.03rem;
}

body.error404 #main > section:last-child {
  margin-top: 2rem;
}

.fx-intro {
  padding-top: 0.45rem;
}
@media (max-width: 767px) {
  .fx-intro {
    padding-top: 0.6rem;
  }
}

body.bc-page-reserve #reservations,
body.bc-page-reserve #confirmation_email,
body.bc-page-pricing #pricing_dtl,
body.bc-page-pricing #transporation_fee {
  padding-block: 0.5rem;
}

.frame_goldline {
  border-color: var(--fx-surface-1);
  box-shadow: none;
}

.ttl_gold {
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
}

.list_gold li::before {
  color: var(--fx-accent);
  border-color: var(--fx-accent);
}

.fx-why {
  font-size: var(--fx-type-body);
  background: var(--fx-surface-1);
  padding: 0.62rem clamp(0.19rem, 4vw, 0.49rem) 0.34rem;
}
@media (max-width: 767px) {
  .fx-why {
    padding: 0.76rem 0.68rem 0.34rem;
  }
}

.fx-why--plain {
  background: var(--white);
}

.fx-why__inner {
  max-width: 10.3rem;
  margin: 0 auto;
  text-align: center;
}

.fx-why__ttl.subpage_subttl_txt,
.fx-why__ttl {
  flex-direction: column;
  gap: 0.4em;
  --fx-logo-ink:var(--fx-primary-l);
  color: var(--fx-primary);
  letter-spacing: 0.06em;
  font-size: var(--fx-type-heading-md);
  margin: 0 0 0.16em;
}
@media (max-width: 767px) {
  .fx-why__ttl.subpage_subttl_txt,
  .fx-why__ttl {
    font-size: var(--fx-type-heading-lg);
  }
}

.fx-why__intro {
  max-width: 7.2rem;
  margin: 1.058em auto 2.116em;
  color: var(--fx-ink);
  font-size: var(--fx-type-body);
  line-height: 1.94;
  text-align: center;
}
@media (max-width: 767px) {
  .fx-why__intro {
    max-width: none;
    margin: 1.2em auto 1.7em;
    line-height: 1.7;
  }
}

.fx-why__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 1fr;
  gap: 0.28rem;
}
@media (max-width: 767px) {
  .fx-why__grid {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
}

.fx-why__card {
  background: var(--white);
  border-radius: 0.1rem;
  padding: 0.3rem 0.34rem;
  text-align: left;
  box-shadow: none;
}
@media (max-width: 767px) {
  .fx-why__card {
    padding: 0.45rem 0.45rem 0.48rem;
    border-radius: 0.2rem;
  }
}

.fx-why--plain .fx-why__card {
  border: 0.015rem solid var(--fx-primary);
}

.fx-why__card h3 {
  position: relative;
  margin: 0 0 0.12em;
  padding-left: 1.9em;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: calc(var(--fx-type-body) * 1.35);
  line-height: 1.25;
}
@media (max-width: 767px) {
  .fx-why__card h3 {
    font-size: var(--fx-type-heading-md);
  }
}

.fx-why__card h3::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: -0.05em;
  color: var(--fx-rank-pink);
  font-size: var(--fx-type-heading-md);
  font-weight: 900;
}

.fx-why__card p {
  margin: 0;
  color: var(--fx-neutral-600);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.94;
}
@media (max-width: 767px) {
  .fx-why__card p {
    line-height: 1.55;
  }
}

.fx-cta {
  font-size: var(--fx-type-caption);
  text-align: center;
  max-width: 8.4rem;
  margin: 3.333em auto 0;
}

.fx-cta__check {
  display: block;
  width: 0.42em;
  height: 0.78em;
  margin: 0 auto 0.12em;
  border: solid var(--fx-warning);
  border-width: 0 0.2em 0.2em 0;
  transform: rotate(42deg);
  font-size: var(--fx-type-heading-lg);
}

.fx-cta__ttl {
  margin: 0 0 0.16em;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-heading-md);
  letter-spacing: 0.01em;
}

.fx-cta__lead {
  margin: 0 auto 1.515em;
  max-width: 6.6rem;
  color: var(--fx-ink);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.9;
  text-align: center;
}

.fx-cta__btns {
  display: flex;
  gap: 1em;
  justify-content: center;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .fx-cta__btns {
    flex-direction: column;
    align-items: center;
  }
}

.fx-cta__btn {
  --btn-min-w:2.4rem;
}
@media (max-width: 767px) {
  .fx-cta__btn {
    --btn-min-w:0;
    width: 100%;
    max-width: 4.6rem;
  }
}

.fx-legal-page {
  padding: 0 0 0.72rem;
}
@media (max-width: 767px) {
  .fx-legal-page {
    padding-bottom: 0.58rem;
  }
}

.fx-legal-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: 3.38rem;
  padding: 0.86rem 0 0.62rem;
  overflow: hidden;
  text-align: center;
  background: linear-gradient(180deg, rgba(225, 243, 243, 0.95) 0%, rgba(247, 255, 255, 0.98) 58%, var(--white) 100%);
}
@media (max-width: 767px) {
  .fx-legal-hero {
    min-height: 3.5rem;
    padding: 0.66rem 0.22rem 0.48rem;
  }
}
.fx-legal-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 0.18rem;
  padding: 0.08rem 0.28rem;
  border-radius: 999px;
  background: var(--fx-primary);
  color: var(--white);
  font-family: var(--fx-font-heading);
  font-size: var(--fx-type-caption);
  font-weight: 900;
  letter-spacing: 0.12em;
  box-shadow: 0 0.06rem 0.16rem rgba(63, 157, 157, 0.18);
}
.fx-legal-hero__title {
  margin: 0;
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-size: var(--fx-type-page-title);
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1.08;
  text-shadow: 0 0.03rem 0 rgba(255, 255, 255, 0.72);
}
@media (max-width: 767px) {
  .fx-legal-hero__title {
    font-size: calc(var(--fx-type-page-title) * 0.95);
  }
}
.fx-legal-hero__lead {
  max-width: 7.2rem;
  margin: 0.18rem auto 0;
  color: var(--fx-ink);
  font-size: calc(var(--fx-type-caption) * 1.1);
  font-weight: 700;
  line-height: 1.68;
}
@media (max-width: 767px) {
  .fx-legal-hero__lead {
    font-size: var(--fx-type-caption);
    line-height: 1.65;
  }
}
.fx-legal-hero__updated {
  margin: 0.18rem 0 0;
  color: rgba(35, 64, 64, 0.58);
  font-size: var(--fx-type-small);
  font-weight: 700;
}

.fx-legal-body {
  padding: 0.56rem 0 0.72rem;
}
@media (max-width: 767px) {
  .fx-legal-body {
    padding: 0.34rem 0.18rem 0.52rem;
  }
}

.fx-legal-card {
  max-width: 8.8rem;
  margin: 0 auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.fx-legal-content {
  color: var(--fx-ink);
  font-size: var(--fx-type-body);
  line-height: 1.85;
}
@media (max-width: 767px) {
  .fx-legal-content {
    font-size: var(--fx-type-caption);
    line-height: 1.78;
  }
}
.fx-legal-content > *:first-child {
  margin-top: 0;
}
.fx-legal-content > *:last-child {
  margin-bottom: 0;
}
.fx-legal-content h2,
.fx-legal-content h3,
.fx-legal-content h4 {
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 900;
  line-height: 1.22;
}
.fx-legal-content h2 {
  margin: 1.35em 0 0.6em;
  padding-bottom: 0.32em;
  border-bottom: 0.02rem solid rgba(63, 157, 157, 0.16);
  font-size: var(--fx-type-heading-md);
}
.fx-legal-content h3 {
  margin: 1.2em 0 0.5em;
  font-size: calc(var(--fx-type-body) * 1.08);
}
.fx-legal-content p {
  margin: 0.8em 0;
}
.fx-legal-content ul,
.fx-legal-content ol {
  margin: 0.8em 0 0.8em 1.2em;
  padding: 0;
}
.fx-legal-content li {
  margin: 0.35em 0;
}
.fx-legal-content a {
  color: var(--fx-primary);
  font-weight: 900;
}
.fx-legal-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  font-size: 0.95em;
}
.fx-legal-content th,
.fx-legal-content td {
  padding: 0.72em 0.8em;
  border: max(1px, 0.01rem) solid rgba(63, 157, 157, 0.18);
  vertical-align: top;
}
.fx-legal-content th {
  background: rgba(225, 243, 243, 0.7);
  color: var(--fx-primary);
  font-weight: 900;
}

.fx-rules__head-art {
  display: block;
  width: 20%;
  height: auto;
  margin: 0 auto var(--sp-sm);
}
@media (max-width: 767px) {
  .fx-rules__head-art {
    width: 42%;
  }
}

.ap-scrollhead {
  display: grid;
  width: var(--ap-scrollhead-w, 50%);
  margin: 0 auto var(--sp-xs);
}
.ap-scrollhead img,
.ap-scrollhead .ap-scrollhead__ttl {
  grid-area: 1/1;
}
.ap-scrollhead img {
  display: block;
  align-self: center;
  width: 100%;
  height: auto;
}
.ap-scrollhead .ap-scrollhead__ttl {
  position: relative;
  z-index: 1;
  align-self: center;
  margin: 0;
  text-align: center;
}
@media (max-width: 767px) {
  .ap-scrollhead {
    width: 6.74rem;
  }
}

.ap-scrollhead__sub {
  display: block;
  width: 31%;
  height: auto;
  margin: 0 auto var(--sp-md);
}
@media (max-width: 767px) {
  .ap-scrollhead__sub {
    width: 56%;
  }
}

.ap-credit {
  width: 10rem;
  max-width: 100%;
  margin-block: var(--sp-xl) var(--sp-lg);
  margin-inline: auto;
}
@media (max-width: 767px) {
  .ap-credit {
    width: 6.77rem;
    margin-block: var(--sp-xl) var(--sp-2xl);
  }
}

.ap-credit__link {
  display: block;
}
.ap-credit__link img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.04rem;
}
@media (max-width: 767px) {
  .ap-credit__link img {
    border: max(1px, 0.01rem) solid var(--fx-accent);
  }
}
.ap-credit__link:hover {
  opacity: 0.92;
}

.ap-credit__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.ap-fees {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.39rem;
  list-style: none;
  margin: 0.3rem 0 0;
  padding: 0;
}
@media (max-width: 767px) {
  .ap-fees {
    position: relative;
  }
  .ap-fees::before, .ap-fees::after {
    content: "";
    position: absolute;
    z-index: 0;
    bottom: 0.3rem;
    width: 2.25rem;
    height: 1.84rem;
    background: url("../images/aoyama/deco/hanabira.png") center/contain no-repeat;
    mix-blend-mode: multiply;
    pointer-events: none;
  }
  .ap-fees::before {
    left: 50%;
    margin-left: -3.84rem;
  }
  .ap-fees::after {
    right: 50%;
    margin-right: -3.84rem;
    transform: scaleX(-1);
  }
  .ap-fees > li {
    position: relative;
    z-index: 1;
  }
  .ap-fees {
    grid-template-columns: repeat(2, 3.22rem);
    justify-content: center;
    gap: 0.46rem 0.34rem;
  }
  .ap-fees > :last-child {
    grid-column: 1/-1;
    justify-self: center;
    width: 3.22rem;
  }
}

.ap-fee {
  display: grid;
  margin: 0;
  padding: 0;
  background: transparent;
  text-align: center;
}
@media (max-width: 767px) {
  .ap-fee {
    aspect-ratio: 313.09/392.46;
  }
}

.ap-fee__frame,
.ap-fee__content {
  grid-area: 1/1;
}

.ap-fee__frame {
  display: block;
  align-self: start;
  width: 100%;
  height: auto;
  pointer-events: none;
}
.ap-fee__frame img {
  display: block;
  width: 100%;
  height: auto;
}

.ap-fee__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  align-self: stretch;
  padding: 0.34rem var(--sp-sm) var(--sp-sm);
}
@media (max-width: 767px) {
  .ap-fee__content {
    padding: 0.37rem 0.12rem 0.3rem;
  }
}
.ap-fee__content .ap-fee__icon {
  display: block;
  width: 17.8%;
  height: auto;
  margin: 0 0 var(--sp-xs);
}
@media (max-width: 767px) {
  .ap-fee__content .ap-fee__icon {
    width: 21.3%;
    margin-bottom: 0;
  }
}

.ap-fee__label {
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-heading);
  font-size: calc(var(--fx-type-heading-md) * 0.926);
  line-height: 1.2;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .ap-fee__label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0.98rem;
    margin-top: 0;
    font-size: calc(var(--fx-type-heading-md) * 1.045);
    line-height: 1.28;
    white-space: normal;
  }
}

.ap-fee__rule {
  display: block;
  width: 30%;
  aspect-ratio: 97.4/25.9;
  margin: 0.35em 0;
}
@media (max-width: 767px) {
  .ap-fee__rule {
    margin: 0 0 0.2rem;
  }
}
.ap-fee__rule {
  background: url("../images/aoyama/svg/card-rule.svg") center/contain no-repeat;
}

.ap-fee__val {
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: calc(var(--fx-type-heading-lg) * 1.2);
  line-height: 1.05;
}
@media (max-width: 767px) {
  .ap-fee__val {
    font-size: calc(var(--fx-type-heading-md) * 1.2);
  }
}

.ap-fee__note {
  margin: 0.45em 0 0;
  color: var(--fx-ink);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.35;
}
@media (max-width: 767px) {
  .ap-fee__note {
    margin-top: 0.13rem;
    font-size: calc(var(--fx-type-body) * 0.75);
    line-height: 1.46;
  }
}

.ap-rank__tables {
  display: grid;
  grid-template-columns: 4fr 3fr;
  width: 100%;
  margin: var(--sp-2xs) 0 0;
}
@media (max-width: 767px) {
  .ap-rank__tables {
    grid-template-columns: 1fr;
    row-gap: 0.21rem;
    margin-top: 0.06rem;
  }
}

.ap-rank__tables > .ap-rank__table + .ap-rank__table {
  margin-left: -0.01rem;
}
@media (max-width: 767px) {
  .ap-rank__tables > .ap-rank__table + .ap-rank__table {
    margin-left: 0;
  }
}

.ap-rank__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.ap-rank__table th,
.ap-rank__table td {
  border: max(1px, 0.01rem) solid var(--fx-primary);
  background: var(--white);
  font-family: var(--fx-font-heading);
  line-height: 1.2;
  text-align: center;
}
.ap-rank__table th {
  height: 0.45rem;
  padding: 0 0.03rem;
  background: var(--fx-primary-tint);
  color: var(--fx-primary);
  font-weight: 700;
  font-size: var(--fx-type-body);
  line-height: 1.15;
}
@media (max-width: 767px) {
  .ap-rank__table th {
    height: 0.5rem;
  }
}
.ap-rank__table td {
  padding: 0.08rem 0.03rem;
  color: var(--fx-ink-strong);
  font-weight: 400;
  font-size: calc(var(--fx-type-body) * 1.2);
  white-space: nowrap;
}
@media (max-width: 767px) {
  .ap-rank__table td {
    height: 0.65rem;
    padding: 0 0.03rem;
    font-size: var(--fx-type-body);
  }
}

@media (max-width: 767px) {
  .ap-rank__tables > .ap-rank__table + .ap-rank__table {
    width: 90.3%;
    margin-right: auto;
  }
  .ap-rank__tables > .ap-rank__table + .ap-rank__table th:nth-child(1) {
    width: 27.5%;
  }
  .ap-rank__tables > .ap-rank__table + .ap-rank__table th:nth-child(2) {
    width: 27.3%;
  }
  .ap-rank__tables > .ap-rank__table + .ap-rank__table th:nth-child(3) {
    width: 45.2%;
  }
  .ap-rank__table th br {
    display: none;
  }
}
.ap-appcta {
  width: 12rem;
  max-width: 100%;
  margin-inline: auto;
  background: url("../images/aoyama/top/top-damask.webp") top left/12rem auto repeat, var(--fx-teal);
}
@media (max-width: 767px) {
  .ap-appcta {
    background-size: 24rem auto;
  }
}

.ap-appcta__inner {
  width: 100%;
  padding: var(--sp-lg) 0 var(--sp-sm);
}
@media (max-width: 767px) {
  .ap-appcta__inner {
    padding: 0.49rem 0.45rem 0;
  }
}

.ap-appcta__main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--sp-xs);
  padding-right: 0.5rem;
}
@media (max-width: 767px) {
  .ap-appcta__main {
    flex-direction: column;
    align-items: center;
    padding-right: 0;
  }
}

.ap-appcta__body {
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 0.46rem;
}
@media (max-width: 767px) {
  .ap-appcta__body {
    padding-left: 0;
    text-align: center;
  }
}

.ap-appcta__crown {
  display: block;
  width: 1.27rem;
}
.ap-appcta__crown img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .ap-appcta__crown {
    width: 2.87rem;
    margin-inline: auto;
  }
}

.ap-appcta__title {
  margin: var(--sp-md) 0 0;
  color: var(--white);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-heading-lg);
  line-height: 1.15;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .ap-appcta__title {
    margin-top: var(--sp-md);
    font-size: calc(var(--fx-type-heading-lg) * 1.25);
    line-height: 1.174;
    white-space: normal;
  }
}

.ap-appcta__lead {
  margin: var(--sp-md) 0 0;
  color: var(--white);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: 0.182rem;
  line-height: 1.593;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .ap-appcta__lead {
    margin-top: var(--sp-lg);
    font-size: calc(var(--fx-type-lead) * 1.4);
    line-height: 1.316;
    white-space: normal;
  }
}

.ap-appcta__apps {
  flex: 0 0 auto;
  display: flex;
  gap: var(--sp-md);
  margin: var(--sp-2xl) 0 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .ap-appcta__apps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-lg);
    width: 90%;
    max-width: 100%;
    margin: var(--sp-lg) auto 0;
  }
}
.ap-appcta__apps li {
  margin: 0;
}

.ap-appcta__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-xs);
  width: 1.62rem;
  height: 1.28rem;
  border-radius: 0.08rem;
  background: linear-gradient(135deg, var(--fx-surface-gray-7) 0%, var(--fx-surface-gray-2) 12%, var(--white) 34%, var(--white) 58%, var(--fx-surface-gray-3) 76%, var(--fx-surface-gray-9) 100%);
  box-shadow: 0 0.02rem 0.05rem rgba(0, 0, 0, 0.1);
  color: var(--fx-teal);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.ap-appcta__btn:hover {
  opacity: 0.9;
}
@media (max-width: 767px) {
  .ap-appcta__btn {
    width: 100%;
    height: 1.65rem;
  }
}

.ap-appcta__btn-ic {
  display: block;
  width: 0.42rem;
}
.ap-appcta__btn-ic svg {
  display: block;
  width: 100%;
  height: auto;
}

.ap-appcta__btn-txt {
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-lead);
  line-height: 1.2;
}
.ap-appcta__btn-txt strong {
  font-weight: 700;
}

.ap-appcta__note {
  margin: var(--sp-md) 0 0;
  padding: var(--sp-xs) 0;
  background: var(--fx-note-band);
  color: var(--fx-teal);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-lead);
  line-height: 1.2;
  text-align: center;
}
@media (max-width: 767px) {
  .ap-appcta__note {
    min-height: 1rem;
    margin: var(--sp-xl) -0.45rem 0;
    padding-inline: 0.3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
}

.ap-appcta--help {
  position: relative;
  width: 84%;
  background: var(--white);
  border: max(1px, 0.01rem) solid var(--fx-primary);
  overflow: hidden;
}
@media (max-width: 767px) {
  .ap-appcta--help {
    width: 100%;
    border-inline: 0;
    border-block: max(1px, 0.01rem) solid var(--fx-primary);
  }
}
.ap-appcta--help .ap-appcta__inner {
  display: grid;
  padding: 0;
}
.ap-appcta--help .ap-appcta__help-bg,
.ap-appcta--help .ap-appcta__main {
  grid-area: 1/1;
}
.ap-appcta--help .ap-appcta__help-bg {
  display: block;
  align-self: start;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .ap-appcta--help .ap-appcta__help-bg {
    display: none;
  }
}
@media (max-width: 767px) {
  .ap-appcta--help .ap-appcta__inner {
    min-height: 4.19rem;
    background: url("../images/aoyama/pricing/help-bg-sp.webp") center/cover no-repeat;
  }
  .ap-appcta--help .ap-appcta__main {
    gap: 0.14rem;
    padding: 0.34rem 0.43rem;
  }
  .ap-appcta--help .ap-appcta__apps {
    display: grid;
    grid-template-columns: repeat(3, 2.04rem);
    justify-content: center;
    gap: 0.26rem;
    width: auto;
    max-width: none;
    margin: 0.3rem 0 0;
  }
  .ap-appcta--help .ap-appcta__btn {
    width: 100%;
    height: 1.47rem;
    border-radius: 0.12rem;
  }
  .ap-appcta--help .ap-appcta__btn-ic {
    width: 0.6rem;
  }
  .ap-appcta--help .ap-appcta__btn-txt {
    font-size: calc(var(--fx-type-lead) * 0.965);
  }
  .ap-appcta--help .ap-appcta__title {
    margin-bottom: 0.12rem;
    font-size: calc(var(--fx-type-heading-md) * 1.438);
    line-height: 1.2;
    white-space: nowrap;
  }
  .ap-appcta--help .ap-appcta__body {
    width: 100%;
  }
  .ap-appcta--help .ap-appcta__lead {
    width: 100%;
    margin-top: 0;
    font-size: calc(var(--fx-type-body) * 0.886);
    font-weight: 400;
    line-height: 1.49;
  }
}
.ap-appcta--help .ap-appcta__main {
  position: relative;
  z-index: 1;
  flex-direction: column;
  align-items: center;
  gap: 0.27rem;
  align-self: stretch;
  padding: 0.16rem 20%;
}
@media (max-width: 767px) {
  .ap-appcta--help .ap-appcta__main {
    gap: 0.14rem;
    padding: 0.21rem 0.43rem 0.34rem;
  }
}
.ap-appcta--help .ap-appcta__apps {
  margin-top: 0;
}
.ap-appcta--help .ap-appcta__body {
  padding-left: 0;
  text-align: center;
}
.ap-appcta--help .ap-appcta__title {
  color: var(--fx-primary);
}
.ap-appcta--help .ap-appcta__lead {
  color: var(--fx-ink-strong);
}
.ap-appcta--help .ap-appcta__btn {
  background: var(--fx-primary);
  color: var(--white);
}
.ap-appcta--help .ap-appcta__btn-txt {
  color: var(--white);
}
.ap-appcta--help .ap-appcta__btn-ic svg .cls-1 {
  fill: var(--white);
}
.ap-appcta--help .ap-appcta__btn-ic svg .cls-2 {
  fill: var(--fx-primary);
}

.ap-trust {
  background: var(--white);
}

.ap-trust__inner {
  width: 12rem;
  max-width: 100%;
  margin-inline: auto;
  padding: 0.69rem 0 var(--sp-2xl);
  text-align: center;
}
@media (max-width: 767px) {
  .ap-trust__inner {
    padding: 0.6rem 0.45rem 0.41rem;
  }
}

.ap-credit + .ap-trust .ap-trust__inner {
  padding-top: 0;
}

.ap-trust__deco {
  display: block;
  width: 5.32rem;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .ap-trust__deco {
    width: 6.35rem;
  }
}

.ap-trust__title {
  margin: var(--sp-md) 0 0;
}
@media (max-width: 767px) {
  .ap-trust__title {
    margin-top: 0.3rem;
  }
}
.ap-trust__title {
  color: var(--fx-primary);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-section-title);
  line-height: 1.1;
  letter-spacing: 0.01em;
}

.ap-trust__lead {
  margin: var(--sp-xs) 0 0;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-body);
  font-size: var(--fx-type-body);
  line-height: 1.2;
}

.ap-trust__cards {
  display: grid;
  grid-template-columns: repeat(4, 2.59rem);
  justify-content: center;
  gap: var(--sp-md);
  margin: var(--sp-xs) 0 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 767px) {
  .ap-trust__cards {
    grid-template-columns: 1fr;
    margin-top: var(--sp-lg);
    gap: var(--sp-lg);
  }
}

.ap-trust-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  aspect-ratio: 259.16/287;
  margin: 0;
  padding: 1.2rem 0.08rem var(--sp-xs);
  background: no-repeat center/contain;
}
@media (max-width: 767px) {
  .ap-trust-card {
    aspect-ratio: 657.18/290.28;
    padding: 1.35rem 0.4rem var(--sp-xs);
  }
}
.ap-trust-card--1 {
  background-image: url("../images/aoyama/trust/trust-1-flame.svg");
}
@media (max-width: 767px) {
  .ap-trust-card--1 {
    background-image: url("../images/aoyama/trust/trust-1-flame-sp.svg");
  }
}
.ap-trust-card--2 {
  background-image: url("../images/aoyama/trust/trust-2-flame.svg");
}
@media (max-width: 767px) {
  .ap-trust-card--2 {
    background-image: url("../images/aoyama/trust/trust-2-flame-sp.svg");
  }
}
.ap-trust-card--3 {
  background-image: url("../images/aoyama/trust/trust-3-flame.svg");
}
@media (max-width: 767px) {
  .ap-trust-card--3 {
    background-image: url("../images/aoyama/trust/trust-3-flame-sp.svg");
  }
}
.ap-trust-card--4 {
  background-image: url("../images/aoyama/trust/trust-4-flame.svg");
}
@media (max-width: 767px) {
  .ap-trust-card--4 {
    background-image: url("../images/aoyama/trust/trust-4-flame-sp.svg");
  }
}

.ap-trust-card__title {
  margin: 0;
  color: var(--fx-teal);
  font-family: var(--fx-font-heading);
  font-weight: 700;
  font-size: var(--fx-type-lead);
  line-height: 1.15;
}
@media (max-width: 767px) {
  .ap-trust-card__title {
    font-size: 1.43em;
  }
}

.ap-trust-card__body {
  margin: var(--sp-xs) 0 0;
  color: var(--fx-ink-strong);
  font-family: var(--fx-font-body);
  font-size: 0.164rem;
  line-height: 1.48;
}
@media (max-width: 767px) {
  .ap-trust-card__body {
    margin-top: var(--sp-2xs);
    font-size: 0.84em;
    line-height: 1.58;
  }
}

/*# sourceMappingURL=common.css.map */
