#codeigniter_profiler {
    display: none;
}

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: #8768A7;
    --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;
}

.gy-6 {
    --bs-gutter-y: 8rem!important;
}

.mb-10 {
    margin-bottom: 10rem;
}

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: 50%;
    transform: translateX(-50%) translateY(-30px);
    margin-top: -1rem;
    width: 80%;
    max-width: 350px;
    height: 100vh;
    z-index: 100;
    opacity: 0;
    pointer-events: none;
    transition: var(--transition);
}

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

.mob-menu-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    color: var(--white);
    font-size: 2rem;
    font-weight: bold;
    cursor: pointer;
    z-index: 101;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: var(--transition);
}

.mob-menu-close:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--gold-lt);
}

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

.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.6rem;
    margin-bottom: 0.15rem;
}

/* If phone's height is less then 668px, the menu will be displayed as a list */
@media screen and (max-height: 668px) {
    .mob-menu-list li.menu-item {
        padding: 0.4rem;
        margin-bottom: 0.1rem;
    }
    
    .lng-burger-menu-wrap {
        padding: 0.5rem 0;
        margin-bottom: 0.5rem;
    }
    
    .lang-btn {
        font-size: 0.8rem;
        padding: 0.3rem 0.4rem;
    }
    
    .mob-menu-list {
        padding-top: 0.5rem;
    }
}

@media screen and (max-width: 480px) {
    .mob-menu {
        width: 85%;
        max-width: 300px;
    }
    
    .lng-burger-menu-wrap {
        gap: 0.3rem;
        padding: 0.6rem 0;
        margin-bottom: 0.6rem;
    }
    
    .lang-btn {
        font-size: 0.8rem;
        padding: 0.3rem 0.4rem;
    }
    
    .mob-menu-close {
        top: 0.5rem;
        right: 0.5rem;
        font-size: 1.5rem;
        width: 2rem;
        height: 2rem;
    }
    
    .mob-menu-list li.menu-item {
        padding: 0.5rem;
        margin-bottom: 0.1rem;
    }
    
    .mob-menu-list {
        padding-top: 0.6rem;
    }
}

.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: .7rem;
    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)
}

/* Submenu items */
   @media (min-width: 991px) {
    .menu-sub {
        display: none;
        position: absolute;
        list-style: none;
        padding: .5rem 0;
        background: var(--gold-md);
        transform: translateX(-50%);
        left: 50%;
        width: 8rem;
        text-align: center;
        border-radius: var(--radius-lg);
        opacity: 0;
        z-index:10;
        transition: 0.3s;
    }

    .menu-item {
        position:relative;
    }

    .menu-item:hover > .menu-sub {
        opacity: 1;
    }

    .menu-sub .menu-item {
        padding: .5rem .25rem;
    }

    .menu-sub .material-icons {
        display: none;
    }
}

@media (max-width: 991px) {
    .menu-sub {
        display: none;
    }

    .menu-sub .material-icons {
        display: block;
        position: absolute;
        transform: translateX(-50%);
        left: 50%;
        margin-top: -2.1rem;
        font-size: 3rem;
        color: #3F3F3F;
    }

    .menu-item.open .menu-sub {
        display: block;
        list-style: none;
        padding: .5rem;
        background: #0000002e;
        width: 70%;
        margin: 1rem auto;
        border-radius: 1rem;
    }

    .mob-menu-list .menu-sub li.menu-item.active {
        background:none;
        color: var(--gold-md);
        box-shadow: none;
    }

    .menu-sub a {
        font-size: 1rem;
    }
}

/* Header */

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

@media screen and (min-width: 768px) {
    section.header {
        /* height: 100%; */
    }
}

img.thc-header-logo {
    display: flex;
    position: relative;
    z-index: 99;
    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: .9rem;
    font-weight: 600;
    border-radius: var(--radius-lg);
    justify-content: center;
    flex-wrap: nowrap;
    white-space: nowrap;
}

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

.bhours-title {
    background: var(--gold-lt);
    background: var(--gold-gradient);
    color: var(--black);
    padding: 0.4rem 0.75rem;
    border-top-left-radius: var(--radius-lg);
    border-bottom-left-radius: var(--radius-lg);
    border: 1px solid var(--gold-lt);
    border-right-width: 0;
    min-width: 11rem;
    text-align: center;
    white-space: nowrap;
}

.bhours-hours {
    padding: 0.4rem 0.75rem;
    width: auto;
    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;
    text-align: center;
}

@media screen and (max-width: 575.98px) {
    .bhours-wrapper {
        flex-direction: column;
        width: 100%;
        font-size: .85rem;
    }
    .bhours-title,
    .bhours-hours {
        min-width: 0;
    }
    .bhours-title {
        /* rounded top; remove bottom rounding when stacked */
        border-top-left-radius: var(--radius-lg);
        border-top-right-radius: var(--radius-lg);
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        border-right-width: 1px;
        border-bottom-width: 0;
    }
    .bhours-hours {
        /* rounded bottom; remove top rounding when stacked */
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        border-bottom-left-radius: var(--radius-lg);
        border-bottom-right-radius: var(--radius-lg);
        border-left-width: 1px;
        border-top-width: 0;
        white-space: normal; /* allow wrapping */
        text-align: center;
        justify-content: center;
    }
}

.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: .5rem;
    }
}

@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 */
a.gbc-blog-link {
    transition:.5s;
}

a.gbc-blog-link img {
    height: 13rem;
    object-fit: cover;
}

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

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

img.gbc-profile-pic {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    object-fit: cover;
    object-position: top;
}

.gbc-left-wrap form {
    margin: 0;
}

.gbc-right-wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1rem 1.5rem;
}

.girl-blog-card-wrap {
    display: grid;
    color: white;
    text-decoration: none;
    background: var(--grey-dk);
    border-radius: var(--radius-lg);
    grid-template-columns: 1fr 2fr;
}

.gbc-link-wrap {
    display: flex;
    column-gap: 0.5rem;
    text-decoration: none;
    align-items: flex-end;
}

.gbc-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    line-height: 2;
    font-weight: 600;
}

.gbc-text {
    font-size:.9rem;
}

.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.1rem 0.5rem 0.05rem 0.5rem;
    font-weight: 400;
    background: var(--grey-md);
    font-size: .8rem;
    border-bottom-left-radius: var(--radius-lg);
    border-bottom-right-radius: var(--radius-lg);
    height: 70px;
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

@media screen and (min-width: 992px) {
    h5.service-name {
        font-size: 1rem;
    }
}

/* Girl cards */

.girl-card-wrapper-col {
    height: 26rem;
}

@media (max-width: 1399px) {
    .girl-card-wrapper-col {
        height: 23rem;
    }
}

@media (max-width: 1199px) {
    .girl-card-wrapper-col {
        height: 19rem;
    }
}

@media (max-width: 991px) {
    .girl-card-wrapper-col {
        height: 29rem;
    }
}

@media (max-width: 767px) {
    .girl-card-wrapper-col {
        height: 21rem;
    }
}

@media (max-width: 500px) {
    .girl-card-wrapper-col {
        height: 19rem;
    }
}

@media (max-width: 450px) {
    .girl-card-wrapper-col {
        height: 17rem;
    }
}

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: rgb(173, 148, 33);
}

.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-time {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: .2rem;
    font-size: .9rem;
    margin-top: .4rem;
}

.gc-time span {
    font-size: 1rem;
}

.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.video {
    width: 2.6rem;
}

/* Threesome icon */
.gc-icon.threesome {
    width: 2.6rem;
}

.gc-icon.english {
    width: 2rem;
    top: 0.5rem;
    left: 0.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 0.2rem;
    box-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.6);
}

.gc-icon.mandarin {
    width: 2rem;
    top: 0.5rem;
    left: 0.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 0.2rem;
    box-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.6);
}

.gc-icon.korean {
    width: 2rem;
    top: 0.5rem;
    left: 0.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 0.2rem;
    box-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.6);
}

/* Dynamic positioning for multiple language icons */
.gc-icon.mandarin.has-english {
    top: 2.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 0.2rem;
    box-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.6);
}

.gc-icon.korean.has-english {
    top: 2.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 0.2rem;
    box-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.6);
}

.gc-icon.korean.has-mandarin {
    top: 2.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 0.2rem;
    box-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.6);
}

.gc-icon.korean.has-english.has-mandarin {
    top: 4.5rem;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    padding: 0.2rem;
    box-shadow: 0 0 0.3rem rgba(255, 255, 255, 0.6);
}

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

.gc-icon.x {
    width: 1.25rem;
}

.gc-icon.x img {
    width:100%;
}

.gc-icon.english img,
.gc-icon.mandarin img,
.gc-icon.korean img {
    width: 100%;
    height: auto;
}

.gc-icon.niseko {
    width: 3rem;
    bottom: 0.5rem;
    left: 50%;
    transform: translateX(-50%);
}

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

.p-x-icon-wrap img {
    width:1.25rem;
}

.p-x-icon-wrap a {
    color: black;
    display: flex;
    column-gap: .5rem;
    align-items: center;
    padding-bottom: 1rem;
    text-decoration: none;
    font-size: .9rem;
}

/* 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;
}

.sbc-content {
    display: flex;
    flex-direction: column;
    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);
}

.sbc-comment-wrap {
    display: block;
    overflow: hidden;
    text-align: justify;
}

/* Footer */
section.footer {
    background-color: black;
    background-image: url(../img/common/thc-sapporo-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;
}

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;
    }

    
    .qr-code-wrap {
        width: 12%;
    }
}

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

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

.pagination-row-top {
    text-align: center;
    color:white;
}

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);
}

/* Language adjustments */

.header-lang-btn-wrap {
    text-align: center;
    margin-bottom: 1rem;
}

@media screen and (max-width: 991px) {
    .header-lang-btn-wrap {
        display:none;
    }
}

.lng-footer-wrap {
    display: flex;
    column-gap: .75rem;
    justify-content: center;
}

@media screen and (min-width: 991px) {
    .lng-footer-wrap {
        display:none;
    }
}

.lng-burger-menu-wrap {
    position: relative;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.8rem 0;
    margin-bottom: 0.8rem;
}

@media screen and (min-width: 991px) {
    .lng-burger-menu-wrap {
        display:none;
    }
}

.lang-btn {
    margin-bottom: 0;
    width: fit-content;
    font-size: 0.9rem;
    font-weight: 500;
    padding: .4rem .5rem;
    border: solid 1px var(--gold-dk);
    border-radius: 5px;
    background: transparent;
    color: var(--white);
    cursor: pointer;
    transition: var(--transition);
}

.lang-btn.active {
    background: var(--gold-dk);
    color: var(--black);
}

.lang-btn:hover {
    background: var(--gold-dk);
    color: var(--black);
}

.link-btn {
    font-size: 1rem;
    font-weight: 500;
    padding: .6rem .8rem;
    border-radius: 5px;
    text-decoration: none;
    display: block;
    margin: 0 auto 0.3rem auto;
    width: 9rem;
    text-align: center;
    background-color: var(--gold-lt);
    color: #000;
}

.incall-cta {
    border-radius: var(--radius-lg);
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.6rem auto;
    width: auto;
    min-width: 320px;
    max-width: 400px;
    border: 2px solid var(--gold-dk);
    background: linear-gradient(135deg, var(--gold-dk) 0%, var(--gold-md) 100%);
    color: #fff !important;
    font-size: 1.1rem;
    font-weight: 600;
    padding: 0.75rem 2rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    transform: translateY(0);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
}
.incall-cta:before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: left 0.5s;
}
.incall-cta:hover:before {
    left: 100%;
}
.incall-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.4);
    background: linear-gradient(135deg, var(--gold-md) 0%, var(--gold-dk) 100%);
    color: #fff;
    text-decoration: none;
}
.incall-cta:visited {
    color: #fff !important;
}
.incall-cta:active {
    transform: translateY(0);
    box-shadow: 0 3px 10px rgba(0,0,0,0.3);
}
.incall-cta u {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    display: inline-block;
    margin: 0 0.25rem;
}

.incall-cta strong {
    display: inline-block;
    margin: 0 0.25rem;
}

@media screen and (max-width: 360px) {
    .link-btn {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        padding: 0.75rem .50rem; /* reduce side padding */
        box-sizing: border-box; /* include padding within width */
    }
}

@media screen and (max-width: 767px) {
    .link-btn {
        margin: 0.5rem auto 0.5rem auto;
    }
}

.link-btn:visited {
    color: #000;
}

.age-verify-lang-btn-wrap .lang-btn {
    color: black;
    margin-bottom: 1rem;
}

.lang-btn.active {
    color: black;
    background: var(--gold-dk);
}
/* body.ko .bhours-title {
    min-width: 11rem;
} */

.girl-review-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.girl-review-wrap img {
    width: 100%;
}

.girl-review-wrap .box {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    height: 100%;
    padding: 1rem;
    background: #4C4C4C;
    border-radius: 1rem;
}

a.profile-roundal-wrap {
    display: flex;
    column-gap: 1rem;
    align-items: center;
    text-decoration: none;
    font-size: 1.1rem;
    font-weight: 400;
}

.profile-roundal-wrap img.cp-img-roundal {
    height: 4rem;
    width: 4rem;
    object-fit: cover;
    object-position: top;
    border-radius: 50%;
    border: 2px solid white;
}

.review-creds-wrap {
    color: white;
    font-size: .8rem;
}

img.review-img,
.review-content {
    color:white;
    padding-bottom:1rem;
}

.profile-roundal-cp-name {
    margin-bottom: 0;
}


.selfies-gallery-modal .tingle-modal-box__content {
	padding: 1rem;
    background: var(--grey-md);
    border-radius: 1rem;
}

@media (max-width: 767.98px) {
	.selfies-gallery-modal .tingle-modal-box__content {
		background: none;
		background-image: none;
		box-shadow: none;
        background: var(--grey-md);
	}
}

.selfie-modal-content-wrap {
	padding: 1rem 0 0 0;
}

@media (max-width: 767.98px) {
	.selfie-modal-content-wrap {
		padding: 1rem;
	}
}

img.selfie-modal-img {
	width: 100%;
	max-height: 40rem;
	object-fit: contain;
	object-position: top;
	border-radius:.5rem;
}

.tingle-modal-box:has(#selfiesModal) {
	width: 40%;    
	width: min-content;
	min-width:45vw;
	max-width:50vw;
	border-radius: 1rem;
}

@media (max-width: 767.98px) {
	.tingle-modal-box:has(#selfiesModal) {
		width: 100vw;
		height: 100vh;
		max-width:100vw;
	}
}

p.selfie-modal-text,
p.selfie-modal-girl-name {
	font-size: 1rem;
	font-weight: 400;
    color: white;
    text-align:center;
}

p.selfie-modal-text {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	margin-bottom: 0;
	line-height: 1.5rem;
}

p.selfie-modal-girl-name {
	margin-left: 1.75rem;
	color: var(--grey-dk);
	margin-bottom: 0;
}

p.selfie-modal-girl-name::before {
	content: "";
	background-image: url(/img/icons/girl-ico-pink.svg);
	position: absolute;
	width: 1.2rem;
	height: 1.2rem;
	background-repeat: no-repeat;
	margin-left: -1.75rem;
	margin-top: 0.25rem;
}

p.selfie-modal-girl-name a {
	font-weight:200;
}

@media (max-width: 767.98px) {
	.tingle-modal-box__content {
		padding:0!important;
	}
}

.selfie-details-row {
	display: flex;
    justify-content: space-between;
    margin-top: .5rem;
}

/* Gravure */
.gravure-gallery-modal .tingle-modal-box__content {
	padding: 1rem;
    background: var(--grey-md);
    border-radius: 1rem;
}

@media (max-width: 767.98px) {
	.gravure-gallery-modal .tingle-modal-box__content {
		background: none;
		background-image: none;
		box-shadow: none;
        background: var(--grey-md);
	}
}

.gravure-modal-content-wrap {
	padding: 1rem 0 0 0;
}

@media (max-width: 767.98px) {
	.gravure-modal-content-wrap {
		padding: 1rem;
	}
}

img.gravure-modal-img {
	width: 100%;
	max-height: 40rem;
	object-fit: contain;
	object-position: top;
	border-radius:.5rem;
}

.tingle-modal-box:has(#gravureModal) {
	width: 40%;    
	width: min-content;
	min-width:45vw;
	max-width:50vw;
	border-radius: 1rem;
}

@media (max-width: 767.98px) {
	.tingle-modal-box:has(#gravuresModal) {
		width: 100vw;
		height: 100vh;
		max-width:100vw;
	}
}

p.gravure-modal-text,
p.gravure-modal-girl-name {
	font-size: 1rem;
	font-weight: 400;
    color: white;
    text-align:center;
}

p.gravure-modal-text {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	margin-bottom: 0;
	line-height: 1.5rem;
}

p.gravure-modal-girl-name {
	margin-left: 1.75rem;
	color: var(--grey-dk);
	margin-bottom: 0;
}

p.gravure-modal-girl-name::before {
	content: "";
	background-image: url(/img/icons/girl-ico-pink.svg);
	position: absolute;
	width: 1.2rem;
	height: 1.2rem;
	background-repeat: no-repeat;
	margin-left: -1.75rem;
	margin-top: 0.25rem;
}

p.gravure-modal-girl-name a {
	font-weight:200;
}

@media (max-width: 767.98px) {
	.tingle-modal-box__content {
		padding:0!important;
	}
}

.gravure-details-row {
	display: flex;
    justify-content: space-between;
    margin-top: .5rem;
}

.blog-visibility-icon {
    margin-top: -3px;
    /* opacity: .4; */
    width: 16px;
}

.blog-visibility-icon.icon-profile {
    margin-top: -16px;;
}

.blog-view-count {
    color: white;
    padding-left: 4px;
}

.blog-view-count-dark {
    color: black;
    padding-left: 4px;
}

.thc-brances {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.thc-brances img {
    width: 100%;
    max-width: 489px;
}