html {
	/* overflow-x: hidden; */
	width:100vw;
}

:root {
	overflow-x: hidden;
	width:100vw;
}

body {
	font-size: 16px;
	font-family: "Open Sans", sans-serif;
	font-weight: 300;
	width:100vw;
	overflow-x: hidden;
    background: #2F2F2F;

	/* 色 */
	--sand: #FFF2CC;
    --gold-dk: #CA9031;
    --gold-md: #D9B672;
    --gold-lt: #FAD787;
    --cream:#FEFCF1;

	--black: #2F2F2F;
    --grey-dk: #4C4C4C;
    --grey-md: #666666;
    --grey-lt: #999999;

    --green: #1DD82B;
    --red: #D40F19;
    --silver: #999999;

    --violet: #B72CE5;
    --violet-lt: #D0B5EB;
    --blue: #31ADE3;

    --gold-gradient: linear-gradient(176deg, rgba(248,212,134,1) 0%, rgba(200,150,64,1) 100%);

	/* その他 */
    --box-shadow: 0 0 7px 0px #0000004a;
    --box-shadow-inset: inset 0 0 10px 0px #00000069;
	--shadow: 0px 0px 5px 1px #d5d5d5;
    --radius-lg: 10px;
    --radius-sm: 5px;
    --transition: all 0.3s ease;
}

body.no-scroll,
html.no-scroll {
    margin: 0;
    height: 100%;
    overflow: hidden;
}

/* Global styles & helpers */

h1, h2, h3, h4, h5, h6 {
    color: white;
    font-weight: 300;
}

h2 {
    font-weight: 100;
}

a, 
a:visited {
    color: white;
}

.tc {
    text-align: center;
}

.w-100 {
    width: 100%;
}

button {
    background: none;
	color: inherit;
	border: none;
	padding: 0;
	font: inherit;
	cursor: pointer;
	outline: inherit;
    transition: .5s;
}

button:hover {
    cursor: pointer;
    filter: brightness(1.1);
    transition: .5s;
}

button.primary {
    background: var(--gold-gradient);
    color: var(--black);
    padding: 0.5rem 1.5rem;
    font-size: 1rem;
    border-radius: var(--radius-lg);
    font-weight:400;
}

button.hollow {
    background: none;
    border: 1px solid var(--gold-dk);
    color: white;
}

button.secondary {
    padding: 0.5rem 1.5rem;
    font-size: 1rem;
    border-radius: var(--radius-sm);
    background: var(--gold-lt);
    color: black;
    font-weight: 500;
    text-transform: uppercase;
    width: 100%;
}

button.hollow {
    background:none;
    border: 1px solid var(--gold-dk);
    color: white;
    font-weight:400;
}

button.full-width {
    width: 100%;
}

input, textarea {
    font-size: .8rem;
    padding: 0.5rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--grey-lt);
    width: 100%;
}

input.dark,
textarea.dark {
    background: var(--grey-dk);
    color: white;
    border: 1px solid var(--grey-md);
}

.box-title {
	background: var(--gold-lt);
    text-align: center;
    font-size: .9rem;
    font-weight: 500;
    padding: 0.25rem;
    border-top-right-radius: var(--radius-lg);
    border-top-left-radius: var(--radius-lg);
}

.box-content {
	background: var(--cream);
	padding: 2rem;
    white-space: pre-line;
    height: calc(100% - 2rem);
	border-bottom-right-radius: var(--radius-lg);
	border-bottom-left-radius: var(--radius-lg);
}

/* Checbox styles */
  @supports (-webkit-appearance: none) or (-moz-appearance: none) {
    .checkbox-wrapper input[type=checkbox] {
        --active: var(--gold-dk);
      --active-inner: #fff;
      --focus: 2px rgba(39, 94, 254, .3);
      --border: var(--gold-dk);
      --border-hover: var(--gold-dk);
      --background: var(--grey-dk);
      --disabled: #F6F8FF;
      --disabled-inner: #E1E6F9;
      -webkit-appearance: none;
      -moz-appearance: none;
      height: 18px;
      outline: none;
      display: inline-block;
      vertical-align: top;
      position: relative;
      margin: 0;
      cursor: pointer;
      border: 1px solid var(--bc, var(--border));
      background: var(--b, var(--background));
      transition: background 0.3s, border-color 0.3s, box-shadow 0.2s;
    }
    .checkbox-wrapper input[type=checkbox]:after {
      content: "";
      display: block;
      left: 0;
      top: 0;
      position: absolute;
      transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s);
    }
    .checkbox-wrapper input[type=checkbox]:checked {
      --b: var(--active);
      --bc: var(--active);
      --d-o: .3s;
      --d-t: .6s;
      --d-t-e: cubic-bezier(.2, .85, .32, 1.2);
    }
    .checkbox-wrapper input[type=checkbox]:disabled {
      --b: var(--disabled);
      cursor: not-allowed;
      opacity: 0.9;
    }
    .checkbox-wrapper input[type=checkbox]:disabled:checked {
      --b: var(--disabled-inner);
      --bc: var(--border);
    }
    .checkbox-wrapper input[type=checkbox]:disabled + label {
      cursor: not-allowed;
    }
    .checkbox-wrapper input[type=checkbox]:hover:not(:checked):not(:disabled) {
      --bc: var(--border-hover);
    }
    .checkbox-wrapper input[type=checkbox]:focus {
      box-shadow: 0 0 0 var(--focus);
    }
    .checkbox-wrapper input[type=checkbox]:not(.switch) {
      width: 18px;
    }
    .checkbox-wrapper input[type=checkbox]:not(.switch):after {
      opacity: var(--o, 0);
    }
    .checkbox-wrapper input[type=checkbox]:not(.switch):checked {
      --o: 1;
    }
    .checkbox-wrapper input[type=checkbox] + label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin-left: 4px;
    }

    .checkbox-wrapper input[type=checkbox]:not(.switch) {
      border-radius: 7px;
    }
    .checkbox-wrapper input[type=checkbox]:not(.switch):after {
      width: 5px;
      height: 9px;
      border: 2px solid var(--active-inner);
      border-top: 0;
      border-left: 0;
      left: 6px;
      top: 2px;
      transform: rotate(var(--r, 20deg));
    }
    .checkbox-wrapper input[type=checkbox]:not(.switch):checked {
      --r: 43deg;
    }
  }

  .checkbox-wrapper * {
    box-sizing: inherit;
  }
  .checkbox-wrapper *:before,
  .checkbox-wrapper *:after {
    box-sizing: inherit;
  }

  .checkbox-wrapper {
    color:white;
    display: flex;
    align-items: center;
    column-gap: 0.25rem;
  }

/* Radio Buttons */
  @supports (-webkit-appearance: none) or (-moz-appearance: none) {
    .radio-wrapper input[type=radio] {
        --active: var(--gold-dk);
      --active-inner: #fff;
      --focus: 2px rgba(39, 94, 254, .3);
      --border: var(--gold-dk);
      --border-hover: var(--gold-dk);
      --background: var(--grey-dk);
      --disabled: #F6F8FF;
      --disabled-inner: #E1E6F9;
      -webkit-appearance: none;
      -moz-appearance: none;
      height: 18px;
      outline: none;
      display: inline-block;
      vertical-align: top;
      position: relative;
      margin: 0;
      cursor: pointer;
      border: 1px solid var(--bc, var(--border));
      background: var(--b, var(--background));
      transition: background 0.3s, border-color 0.3s, box-shadow 0.2s;
    }
    .radio-wrapper input[type=radio]:after {
      content: "";
      display: block;
      left: 0;
      top: 0;
      position: absolute;
      transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s);
    }
    .radio-wrapper input[type=radio]:checked {
      --b: var(--active);
      --bc: var(--active);
      --d-o: .3s;
      --d-t: .6s;
      --d-t-e: cubic-bezier(.2, .85, .32, 1.2);
    }
    .radio-wrapper input[type=radio]:disabled {
      --b: var(--disabled);
      cursor: not-allowed;
      opacity: 0.9;
    }
    .radio-wrapper input[type=radio]:disabled:checked {
      --b: var(--disabled-inner);
      --bc: var(--border);
    }
    .radio-wrapper input[type=radio]:disabled + label {
      cursor: not-allowed;
    }
    .radio-wrapper input[type=radio]:hover:not(:checked):not(:disabled) {
      --bc: var(--border-hover);
    }
    .radio-wrapper input[type=radio]:focus {
      box-shadow: 0 0 0 var(--focus);
    }
    .radio-wrapper input[type=radio]:not(.switch) {
      width: 18px;
    }
    .radio-wrapper input[type=radio]:not(.switch):after {
      opacity: var(--o, 0);
    }
    .radio-wrapper input[type=radio]:not(.switch):checked {
      --o: 1;
    }
    .radio-wrapper input[type=radio] + label {
      display: inline-block;
      vertical-align: middle;
      cursor: pointer;
      margin-left: 4px;
    }

    .radio-wrapper input[type=radio]:not(.switch) {
      border-radius: 50%;
    }
    .radio-wrapper input[type=radio]:not(.switch):after {
        width: 9px;
        height: 9px;
        border-top: 0;
        border-left: 0;
        left: 3.5px;
        top: 3px;
        background: white;
        border-radius: 50%;
    }

  }

  .radio-wrapper * {
    box-sizing: inherit;
  }
  .radio-wrapper *:before,
  .radio-wrapper *:after {
    box-sizing: inherit;
  }

  .radio-wrapper {
    color:white;
    display: flex;
    align-items: center;
    column-gap: 0.25rem;
  }

 /* Mob Navigation */

 .mob-menu {
    display:block;
    position: absolute;
    background: var(--grey-dk);
    top: 0;
    left: 0;
    margin-left: -1rem;
    margin-top: -1rem;
    width: calc(100% + 2rem);
    height: 100vh;
    z-index: 10;

    opacity: 0;
    pointer-events: none;
    transition: var(--transition);
    transform: translateY(-30px);
}

.mob-menu.active {
    opacity: 1;
    pointer-events: all;
    transition: var(--transition);
    transform: translateY(0);
}

.mob-menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    row-gap: 2rem;
}

.mob-menu-list a {
    color: var(--white);
    font-size: 1.25rem;
    text-decoration: none;
    font-weight: 400;
}

.mob-menu-list li.menu-item {
    width: 100%;
    text-align: center;
    padding: 0.75rem;
}

.mob-menu-list li.menu-item.active {
    background: var(--gold-dk);
    box-shadow: var(--box-shadow-inset);
}

.burger-menu-wrap {
    position: absolute;
    top: -0.7rem;
    left: -0.5rem;
    z-index: 11;
    padding: 0.5rem;
}

span.burger-menu-bar {
    display: block;
    height: 0.14rem;
    width: 2rem;
    background-color: var(--gold-lt);
    margin: 0.3rem 0;
    border-radius: 2px;
    transition: all 0.3s ease;
}

nav.mob-wrapper {
    display:block;
    position:relative;
}

@media screen and (min-width: 992px) {
    nav.mob-wrapper {
        display: none;
    }
}

/* Desktop Navigation */

nav.desktop-wrapper {
    display: none;
    background: var(--gold-lt);
}

@media screen and (min-width: 992px) {
    nav.desktop-wrapper {
        display: block;
    }
}

.desktop-menu-list {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 1rem;
    list-style: none;
    margin-bottom: 0;
    height: 3rem;
}

.desktop-menu-list a {
    text-decoration: none;
    color: black;
    font-weight: 600;
    padding: 0.2rem 0.6rem;
    border-radius: var(--radius-sm);
    transition: var(--transition)
}

.desktop-menu-list a.active {
    background: var(--sand);
}

.desktop-menu-list a:not(.active):hover {
    background: #fff2cc61;;
    transition: var(--transition)
}

/* Header */

section.header {
    background-color: var(--black);
    background-image: url(../img/common/thc-osaka-header-bg.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    height: 15.25rem;
    color: white;
    padding-top:1rem;
    border-bottom: 3px solid var(--gold-dk);
}

@media screen and (min-width: 768px) {
    section.header {
        height: fit-content;
    }
}

img.thc-header-logo {
    display: flex;
    margin: 0 0 0 auto;
    padding-right: 0.3rem;
    width: 85%;
}

@media screen and (min-width: 992px) {
    img.thc-header-logo {
        width: 25rem;
        margin: 0 auto;
    }
}

.thc-header-link {
    position: relative;
    z-index: 10;
}

.bhours-wrapper {
    display: flex;
    font-size: .75rem;
    font-weight: 600;
    border-radius: var(--radius-lg);
}

@media screen and (min-width: 992px) {
    .bhours-wrapper {
        margin-top: 0.5rem;
    }
}

.area-text{
    text-align: center;
    padding: 0;
    margin: 5px auto 0 auto;
    font-size: 1.3rem;
    line-height: 1.2;
    font-weight: 700;
}
.area-text span{
    display: inline-block;
    padding: 2px 10px;
    background-color: #e80000;
    border-radius: 5px;
    margin-right: 10px;
    margin-bottom: 10px;
    text-decoration: none !important;
}
.area-text span:last-child{
    margin-right: 0;
}

.bhours-title {
    background: var(--gold-lt);
    background: var(--gold-gradient);
    color: var(--black);
    padding: 0.1rem 0.5rem;
    border-top-left-radius: var(--radius-lg);
    border-bottom-left-radius: var(--radius-lg);
    border: 1px solid var(--gold-lt);
    border-right-width: 0;
}

.bhours-hours {
    padding: 0.1rem 0.5rem;
    width: 100%;
    background: transparent;
    border-top-right-radius: var(--radius-lg);
    border-bottom-right-radius: var(--radius-lg);
    border: 1px solid var(--gold-lt);
    border-left-width: 0;
    white-space: nowrap;
    background: black;
}

.header-cta-txt {
    text-align: center;
    background: var(--gold-lt);
    background: var(--gold-gradient);
    color: black;
    font-weight: 600;
    border-top-right-radius: var(--radius-lg);
    border-top-left-radius: var(--radius-lg);
    border: 1px solid var(--gold-lt);
    border-bottom-width: 0;
}

img.header-cta-tel-icon {
    width: 2rem;
    transform: rotate(0deg);
    transition: ease-in-out 0.2s;
}

@media screen and (min-width: 768px) {
    img.header-cta-tel-icon {
        position: absolute;
        margin-left: -14rem;
        transform: scale(1.07);
    }
}

@media screen and (min-width: 1400px) {
    img.header-cta-tel-icon {
        margin-left: -16rem;
    }
}

.header-cta-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 0.5rem;
    background: transparent;
    border-bottom-right-radius: var(--radius-lg);
    border-bottom-left-radius: var(--radius-lg);
    border: 1px solid var(--gold-lt);
    border-top-width: 0;
    background: black;
}

.header-cta-tel a {
    text-decoration: none;
    color: white;
    font-weight: 600;
    font-size: 1.3rem;
}

img.thc-roundal {
    display: none;
}

.header-cta-tel:hover .header-cta-tel-icon {
    transform: rotate(30deg) scale(1.25);
    transition: ease-in-out 0.2s;
}

@media screen and (min-width: 992px) {
    img.thc-roundal {
        display: block;
        position: absolute;
        width: 6rem;
        top: 0;
        left: 0;
    }
}

@media screen and (min-width: 768px) {
    .header-cta-wrapper {
        margin-bottom: 1rem;
    }
}

@media screen and (min-width: 992px) {
    .header-cta-wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .header-cta-txt {
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 0;
        border-right-width: 0px;
        border-top-left-radius: var(--radius-lg);
        border-bottom-left-radius: var(--radius-lg);
    }

    .header-cta-tel {
        border-radius: 0;
        border-top-width: 1px;
        border-left-width: 0px;
        border-top-right-radius: var(--radius-lg);
        border-bottom-right-radius: var(--radius-lg);
    }
}

.cta-tel-link {
    transition: .2s;
}

.cta-tel-link:hover {
    color: var(--gold-lt);
    transition: .2s;
}

/* Page Titles */

.page-title-wrap > .row {
    box-shadow: var(--box-shadow-inset);
    border-bottom: 2px solid var(--gold-lt);
}

/* Girl's Profile Blog Card */
.gbc-blog-link {
    transition:.5s;
}

.gbc-blog-link:hover {
    filter:brightness(1.1);
    transition:.5s;
}

img.gbc-img {
    width:100%;
    border-top-right-radius: var(--radius-lg);
    border-top-left-radius: var(--radius-lg);
}

.girl-blog-card-wrap {
    color:white;
    text-decoration:none;
    padding-bottom: 0.25rem;
    background: var(--grey-dk);
    border-radius: var(--radius-lg);
}

.gbc-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    font-size: .8rem;
    padding: 0.25rem 0.5rem;
    margin-top: -0.1rem;
    background: var(--gold-md);
    font-weight: 500;
    line-height: 2;
}

.gbc-name {
    font-weight: 500;
    text-align: center;
    padding-top: 0.5rem;
}

.gbc-date {
    text-align: center;
    color: var(--grey-lt);
    font-size: .8rem;
}

.gbc-profile-link {
    display: block;
    text-decoration: none;
    border: 2px solid var(--gold-lt);
    padding: 0.5rem;
    text-align: center;
    border-radius: var(--radius-lg);
    margin: 0.5rem;
    font-weight: 500;
    transition:.5s;
}

.gbc-profile-link:hover {
    background: var(--gold-lt);
    color: var(--grey-dk);
    transition:.5s;
}

/* Alternative Blog Card (Home) */
.gbca-article {
    display: flex;
    flex-direction: column;
    padding: 2rem 2rem 1rem 2rem;
    column-gap: 2rem;
}

@media screen and (min-width: 992px) {
    .gbca-article {
        flex-direction: row;
    }
}

.girl-blog-card-alt-wrap {
    background: var(--cream);
    border-radius: var(--radius-lg);
}

.gbca-title {
    text-align: center;
    padding: 0.5rem 1rem;
    background: var(--gold-lt);
    font-size: 1.25rem;
    font-weight: 500;
    border-top-left-radius: var(--radius-lg);
    border-top-right-radius: var(--radius-lg);
}

.gbca-img-wrap img {
    margin-bottom: 1rem;
    height: 16rem;
    width: 100%;
    object-fit: cover;
    object-position: top;
    border-radius: var(--radius-lg);
}


@media screen and (min-width: 992px) {
    .gbca-img-wrap img {
        height: 10rem;
        width: 10rem;
    }
}

.gbca-excerpt {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

.gbca-date {
    margin-top: 0.5rem;
    font-size: .8rem;
    color: var(--grey-lt);
}

.gbca-date a {
    font-size: .8rem;
    color: var(--grey-lt);
}

/* Profile blog article card */
.profile-blog-wrap {
    position: relative;
    color: white;
    padding-bottom: 1rem;
    box-shadow: var(--box-shadow);
    border-radius: var(--radius-lg);
}

.pb-title {
    text-align: center;
    padding: 1rem;
    margin-bottom: 0;
    background: var(--grey-dk);
    border-bottom: 2px solid var(--gold-dk);
    border-top-left-radius: var(--radius-lg);
    border-top-right-radius: var(--radius-lg);
}

.pb-content {
    text-align: center;
}

.pb-content p {
    padding: 0 .5rem;
}

.pb-content p:has(img) {
    padding: 0;
}

.pb-date {
    position: absolute;
    font-size: .6rem;
    color: var(--grey-lt);
    right: 0.5rem;
    margin-top: -1.5rem;
}

.profile-blog-wrap img {
    max-width:100%;
}

/* Options & Service cards */

.service-card-wrap img {
    width: 100%;
    object-fit: cover;
    border-top-right-radius: var(--radius-lg);
    border-top-left-radius: var(--radius-lg);
}

h5.service-name {
    text-align: center;
    padding: 0.5rem 0.25rem;
    font-weight: 400;
    background: var(--grey-md);
    font-size: .8rem;
    border-bottom-left-radius: var(--radius-lg);
    border-bottom-right-radius: var(--radius-lg);
    padding-right: 3rem; /* space for info icon */
    padding-left: 3rem;  /* keep text centered with icon space */
    line-height: 1.6;    /* add a touch more space between lines */
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 5.5rem; /* uniform gray area height on mobile */
}

/* Option/service info button on cards */
.service-card-wrap {
    position: relative;
}

button.service-info-btn {
    position: absolute;
    right: 0.5rem;
    bottom: 0.8rem; /* sits within the title bar area */
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: transparent;
    border: 1.5px solid rgba(255,255,255,.9);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
}

button.service-info-btn span {
    display: block;
    width: 60%;
    height: 1.5px;
    background: white;
    border-radius: 2px;
}

button.service-info-btn:hover { filter: brightness(1.05); }

/* Modal content styling to match screenshot */
.option-info-modal .tingle-modal-box {
    background: transparent;
}

.option-info-modal .tingle-modal-box__content {
    background: #777;
    color: #fff;
    border-radius: 6px;
    text-align: center;
}

.option-info-content {
    font-size: 1.2rem;
}

@media screen and (min-width: 992px) {
    h5.service-name {
        font-size: 1rem;
        min-height: 6rem; /* uniform gray area height on desktop */
    }
}

/* Price page: make option cards uniform height and spacing */
.price_list .service-card-wrap img {
    height: 12rem;
}

@media screen and (min-width: 992px) {
    .price_list .service-card-wrap img {
        height: 14rem;
    }
}

.price_list .row.pt-4.mb-2.justify-content-center > [class^='col-'],
.price_list .row.pt-4.mb-2.justify-content-center > [class*=' col-'] {
    margin-bottom: 1rem;
}

/* Girl cards */

a.girl-card-wrapper {
    color:white;
    text-decoration:none;
    transition: .5s;
}

a.girl-card-wrapper:hover {
    text-decoration:none;
    filter: brightness(1.1);
    transition: .5s;
}

img.gc-img {
    width: 100%;
    /* height: 100%; */
    object-fit: cover;
    border-radius: var(--radius-lg);
    box-shadow: var(--box-shadow);
}

.gc-availability {
    background: var(--green);
    padding: 0.1rem 0.5rem 1.1rem 0.5rem;
    border-radius: var(--radius-lg);
    text-align: center;
    font-size: .6rem;
    font-weight: 500;
}

.gc-availability.available {
    background: var(--green);
}

.gc-availability.available-next {
    background: var(--violet);
}

.gc-availability.booked {
    background: var(--violet-lt);
}

@media screen and (min-width: 992px) {
    .gc-availability, 
    .gc-class {
        font-size: .75rem!important;
        padding: 0.2rem 0.5rem 1.2rem 0.5rem;
    }
}

.gc-class {
    font-size: .6rem;
    font-weight: 500;
    padding: 1.1rem 0.5rem 0.1rem 0.5rem;
    text-align: center;
    margin-top: -1rem;
    border-radius: var(--radius-lg);
}

.silver {
    background: var(--silver);
}

.gold {
    background: var(--gold-dk);
}

.diamond {
    background: var(--blue);
}

.av-star {
    background: var(--red);
}

.gc-img-wrapper {
    margin-top: -1rem;
    position: relative;
}

.gc-name-row {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 0.3rem;
    margin-top: 0.5rem;
}

.gc-name {
    font-size: .8rem;
    font-weight: 500;
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.gc-reviews {
    display: flex;
    align-items: baseline;
    column-gap: 0.2rem;
    font-size: .6rem;
    font-weight: 600;
    margin-top: 0.1rem;
    line-height: 1;
}

.gc-reviews span.count {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--gold-lt);
    color: var(--black);
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
}

.gc-tagline {
    font-size: .6rem;
    text-align: center;
    font-weight: 100;
    padding-top: 0.25rem;
}

.gc-icon {
    position: absolute;
    z-index: 2;
}

.gc-icon.kyoto {
    width: 1.9rem;
    bottom: 0.5rem;
    right: 0.5rem;
}

.gc-icon.anal {
    width: 2rem;
    bottom: 0.5rem;
    left: 0.5rem;
}

.gc-icon.english {
    width: 2rem;
    top: 0.5rem;
    left: 0.5rem;
}

.gc-icon.newgirl {
    width: 2.75rem;
    top: 0.5rem;
    right: 0.5rem;
}

@media screen and (min-width: 992px) {
    .gc-icon {
        transform: scale(1.25);
    }
}

/* Review cards */

.rc-content {
    display: grid;
    grid-template-columns: 1fr 4fr;
    gap: 1rem;
    color: white;
    font-size:.8rem;
    padding:1rem 1rem .5rem 1rem;
    background: var(--grey-dk);
    border-radius: var(--radius-lg);
    box-shadow: var(--box-shadow);
}

a.rc-profile-wrap {
    text-decoration: none;
    transition: .5s;
}

a.rc-profile-wrap:hover {
    filter:brightness(1.1);
    transition: .5s;
}

img.rc-photo {
    width: 100%;
    height: 6rem;
    object-fit: cover;
    object-position: top;
    border-radius: var(--radius-lg);
}

.rc-name {
    text-align:center;
}

.rc-date {
    margin-top:1rem;
    color: var(--grey-lt);
}

section.profile .rc-content {
    grid-template-columns: 1fr;
}

.rc-comment-wrap {
    display: -webkit-box;
    overflow: hidden;
    /* -webkit-line-clamp: 6; */
    -webkit-box-orient: vertical;
}

/* Footer */
section.footer {
    background-color: black;
    background-image: url(../img/common/thc-osaka-footer-bg.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    color: white;
    border-top: 3px solid var(--gold-dk);
    text-decoration: none;
}

.payment-wrapper {
    width: calc(100% - 2rem);
    margin-left: 1rem;
    margin-right: 1rem;
    box-sizing: border-box;
}
.payment-wrapper p {
    color:white;
    text-align: center;
}
.payment-wrapper a:hover img {
    opacity: 0.6;
}

.p-methods img {
    width: auto;
    height: 100%;
    max-height: 30px;
    margin-bottom: 1rem;
}

.p-methods {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 1rem;
    max-width: 860px;
    margin: 0 auto;
}
.cryptocurrency-group .p-methods {
    flex-wrap: wrap;
}

.footer-banner-wrapper{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}
.footer-banner-wrapper .banner-full{
    width: 100%;
}
.footer-banner-wrapper .banner-half{
    width: calc(50% - 5px);
    max-width: 425px;
}

img.footer-banner {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    position: relative;
    display: block;
    transition: .4s;
}

img.footer-banner:hover {
    filter: brightness(1.1);
    transition: .4s;
}

a.ft-link {
    display: block;
    padding-bottom: 1rem;
    text-decoration: none;
    color:white;
    font-weight: 400;
    transition: .5s;
}

a.ft-link:hover {
    color: var(--gold-lt);
    transition: .5s;
}

a.ft-link.small {
    font-size: .8rem;
}

img.qr-code {
    width:100%;
    padding: .5rem;
    background: white;
    border-top-left-radius: var(--radius-sm);
    border-top-right-radius: var(--radius-sm);
}

.qr-title {
    color: black;
    background: white;
    font-size: .9rem;
    font-weight: 600;
    margin-top: -0.5rem;
    line-height: 1.4;
    padding-bottom: 0.2rem;
    border-bottom-left-radius: var(--radius-sm);
    border-bottom-right-radius: var(--radius-sm);
}

.qr-link {
    text-decoration: none;
}

.qr-code-wrap {
    transition: .2s;
}

.qr-code-wrap:hover {
    transform: scale(1.05);
    transition: .2s;
}

.header-qr-no-mob {
    display:none;
}

@media screen and (min-width: 992px) {
    .header-qr-no-mob {
        display: flex;
    }
}

/* ページネーション */

.pagination-row {
	text-align: center;
	margin-top: 5rem;
}

ul.pagination {
	padding: 0;
}

ul.pagination li {
	display: inline-block;
	list-style: none;
	border: 1px solid var(--gold);
	min-width: 2.5rem;
	text-align: center;
	border-radius: 5px;
	margin: 0.25rem;
}

ul.pagination li a {
	display: inline-block;
	padding: 0.5rem 0.75rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--gold-md);
    text-decoration: none;
}

ul.pagination li:hover {
	background: #9e8e6a61;
	transition: 0.3s;
}

ul.pagination li.active a {
    background: var(--gold-md);
    border-radius: var(--radius-sm);
    color: var(--black);
}

