:root {
  --f-b1: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", sans-serif;
  --f-jp: "Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;
  --f-en: "Poppins", "Helvetica Neue", Arial, sans-serif;
  --main-color: #f39801;
  --clr1: #333333;
  --clr2: #6b4c15;
  --clr3: #fef9eb;
  --clr4: #f3bb01;
  --clr5: #f9cb81;
  --clr6: #4d3523;
  --clr7: #fafaf6;
  --clr8: #f0ece4;
  --clr9: #b1a799;
  --clr10: #63b160;
  --clr11: #fdfeeb;
  --clr12: #f9f081;
  --clr13: #4a433c;
  --clr14: #fa9e05;
  --clr15: #f9e081;
  --clr16: #fbf2df;
  --clr17: #bcd3be;
  --white: #fff;
  --black: #000;
  --grad: linear-gradient(90deg, var(--main-color) 0%, var(--clr4) 100%);
  --grad-v: linear-gradient(180deg, var(--main-color) 0%, var(--clr4) 100%);
  --ttl_size: calc(120 * var(--desktop-unit, 1px));
  --wrapper: calc(120 * var(--desktop-unit, 1px));
  --border-radius: calc(20 * var(--desktop-unit, 1px));
  --border-position: calc(60 * var(--desktop-unit, 1px));
  --inner: calc(1280 * var(--desktop-unit, 1px));
  --inner_big: calc(1700 * var(--desktop-unit, 1px));
  --inner_mid: calc(1520 * var(--desktop-unit, 1px));
  --inner_feature: calc(1636 * var(--desktop-unit, 1px));
  --gutter: calc(40 * var(--desktop-unit, 1px));
}

@media only screen and (min-width: 769px) and (max-width: 1366px) {
  :root {
    --wrapper: calc(80 * var(--desktop-unit, 1px));
    --ttl_size: calc(96 * var(--desktop-unit, 1px));
    --border-position: calc(48 * var(--desktop-unit, 1px));
    --gutter: calc(30 * var(--desktop-unit, 1px));
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-padding-top: calc(var(--wrapper) + 20 * var(--desktop-unit, 1px));
}

body {
  background-color: var(--white);
  color: var(--clr1);
  font-family: var(--f-b1);
  font-weight: 500;
  letter-spacing: 0.036em;
  line-height: 1.75;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6,
input,
button,
textarea,
select,
p,
blockquote,
th,
td,
pre,
address,
li,
dt,
dd {
  font-size: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  line-height: 1.5;
}

p,
li {
  line-height: 1.75;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s, color 0.3s, background-color 0.3s, border-color 0.3s;
}

button {
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
}

.wrapper {
  position: relative;
  overflow: hidden;
}

.is-static *,
.is-static *::before,
.is-static *::after {
  animation: none !important;
  transition: none !important;
}

.flex {
  display: flex;
  flex-wrap: wrap;
}

.t_center {
  text-align: center;
}

.visually-hidden {
  position: absolute !important;
  width: calc(1 * var(--desktop-unit, 1px));
  height: calc(1 * var(--desktop-unit, 1px));
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media only screen and (min-width: 769px) {
  .sp_only {
    display: none !important;
  }
  a:hover {
    opacity: 0.75;
  }
  .inner,
  .inner_big,
  .inner_mid,
  .inner_feature {
    margin-inline: auto;
    padding-inline: var(--gutter);
    width: 100%;
  }
  .inner {
    max-width: calc(var(--inner) + var(--gutter) * 2);
  }
  .inner_big {
    max-width: calc(var(--inner_big) + var(--gutter) * 2);
  }
  .inner_mid {
    max-width: calc(var(--inner_mid) + var(--gutter) * 2);
  }
  .inner_feature {
    max-width: calc(var(--inner_feature) + var(--gutter) * 2);
  }
  main {
    display: block;
    position: relative;
  }
  .ttl_lg {
    text-align: center;
  }
  .ttl_lg .en {
    display: inline-block;
    background: var(--grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-family: var(--f-en);
    margin-right: -0.07em;
    font-size: var(--ttl_size);
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1;
  }
  .ttl_lg .jp {
    display: block;
    margin-top: calc(8 * var(--desktop-unit, 1px));
    color: var(--clr2);
    font-size: calc(40 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-indent: 0.1em;
  }
  .ttl_lg.white .en {
    background: none;
    color: var(--white);
  }
  .ttl_lg.white .jp {
    color: var(--white);
  }
  .ttl_sm {
    text-align: center;
  }
  .ttl_sm .en {
    display: block;
    color: var(--main-color);
    font-family: var(--f-en);
    font-size: calc(30 * var(--desktop-unit, 1px));
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1;
    text-indent: 0.08em;
  }
  .ttl_sm .jp {
    display: block;
    margin-top: calc(14 * var(--desktop-unit, 1px));
    color: var(--clr2);
    font-size: calc(48 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.2;
    text-indent: 0.2em;
  }
  .sec_ttl {
    margin-bottom: calc(50 * var(--desktop-unit, 1px));
    text-align: center;
  }
  .sec_ttl .h_en {
    color: var(--main-color);
    font-family: var(--f-en);
    font-size: calc(50 * var(--desktop-unit, 1px));
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.2;
  }
  .sec_ttl .jp {
    display: block;
    margin-top: calc(6 * var(--desktop-unit, 1px));
    color: var(--clr2);
    font-size: calc(30 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.8666666667;
  }
  .btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: calc(20 * var(--desktop-unit, 1px));
  }
  .btn.style01 a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    margin-inline: auto;
    padding: 0 calc(44 * var(--desktop-unit, 1px));
    border: calc(2 * var(--desktop-unit, 1px)) solid var(--main-color);
    border-radius: calc(32 * var(--desktop-unit, 1px));
    background: var(--grad);
    width: calc(300 * var(--desktop-unit, 1px));
    max-width: 100%;
    min-height: calc(64 * var(--desktop-unit, 1px));
    color: var(--white);
    font-size: calc(18 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.4;
    text-align: center;
    transition: color 0.3s ease;
    z-index: 1;
  }
  .btn.style01 a span {
    position: relative;
    z-index: 2;
  }
  .btn.style01 a::before {
    position: absolute;
    inset: 0;
    background: var(--white);
    opacity: 0;
    content: "";
    transition: opacity 0.3s ease;
    z-index: -1;
  }
  .btn.style01 a::after {
    position: absolute;
    top: 50%;
    right: calc(20 * var(--desktop-unit, 1px));
    z-index: 3;
    translate: 0 -50%;
    -webkit-mask: url(../images/shared_btn_arr.png) no-repeat center/contain;
    mask: url(../images/shared_btn_arr.png) no-repeat center/contain;
    background-color: currentColor;
    width: calc(16 * var(--desktop-unit, 1px));
    height: calc(16 * var(--desktop-unit, 1px));
    content: "";
    transition: background-color 0.3s ease;
  }
  .btn.style01.white a {
    background: var(--white);
    color: var(--main-color);
  }
  .btn.style01.white a::before {
    background: var(--grad);
  }
  .btn.style01.sm a {
    width: calc(246 * var(--desktop-unit, 1px));
  }
  .btn.style01.wide a {
    width: calc(460 * var(--desktop-unit, 1px));
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) {
  .btn.style01 a:hover {
    opacity: 1;
    color: var(--main-color);
  }
  .btn.style01 a:hover::before {
    opacity: 1;
  }
  .btn.style01.white a:hover {
    color: #fff;
  }
  .btn.style01.white a:hover::before {
    opacity: 1;
  }
}
@media only screen and (min-width: 769px) {
  .tab_nav {
    display: flex;
    gap: calc(10 * var(--desktop-unit, 1px));
  }
  .tab_btn {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    gap: calc(22 * var(--desktop-unit, 1px));
    border: calc(1 * var(--desktop-unit, 1px)) solid var(--clr2);
    border-radius: var(--border-radius);
    background: var(--white);
    padding-top: calc(4 * var(--desktop-unit, 1px));
    height: calc(90 * var(--desktop-unit, 1px));
    color: var(--clr2);
    font-size: calc(24 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.4166666667;
    transition: background-color 0.3s, color 0.3s, border-color 0.3s;
    font-family: var(--f-b1);
  }
  .tab_btn::after {
    flex-shrink: 0;
    -webkit-mask: url(../images/idx_tab_icon_arr.svg) no-repeat center/contain;
    mask: url(../images/idx_tab_icon_arr.svg) no-repeat center/contain;
    background: currentColor;
    width: calc(30 * var(--desktop-unit, 1px));
    height: calc(30 * var(--desktop-unit, 1px));
    content: "";
  }
  .tab_btn.is-active, .tab_btn:hover {
    border-color: var(--main-color);
    background: var(--main-color);
    color: var(--white);
  }
  .tab_panel {
    display: none;
  }
  .tab_panel.is-active {
    display: block;
    animation: tabIn 0.5s ease both;
  }
  .site_bnr {
    text-align: center;
  }
  .time_sheet table {
    position: relative;
    z-index: 0;
    border: 0;
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    table-layout: fixed;
  }
  .time_sheet table col.c_time {
    width: 33.27%;
  }
  .time_sheet table col.c_day {
    width: 8.46%;
  }
  .time_sheet table col.c_off {
    width: 15.97%;
  }
  .time_sheet table th,
  .time_sheet table td {
    padding: 0;
    border: 0;
    background: none;
    color: var(--clr6);
    font-size: calc(18 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.036em;
    line-height: 1.4;
    text-align: center;
    vertical-align: middle;
  }
  .time_sheet table th:first-child,
  .time_sheet table td:first-child {
    width: auto;
  }
  .time_sheet table th:last-child,
  .time_sheet table td:last-child {
    letter-spacing: 0.0556em;
    padding-right: 0.5556em;
  }
  .time_sheet table thead th {
    height: calc(56 * var(--desktop-unit, 1px));
    color: var(--white);
  }
  .time_sheet table thead th:first-child::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: -1;
    border-radius: calc(10 * var(--desktop-unit, 1px));
    background: var(--grad);
    height: calc(56 * var(--desktop-unit, 1px));
    content: "";
  }
  .time_sheet table tbody th,
  .time_sheet table tbody td {
    height: calc(64 * var(--desktop-unit, 1px));
    border-bottom: calc(1 * var(--desktop-unit, 1px)) solid var(--clr17);
  }
  .time_sheet table tbody tr:last-child th,
  .time_sheet table tbody tr:last-child td {
    border-bottom: 0;
  }
  .time_sheet table tbody th {
    font-family: var(--f-en);
    font-weight: 500;
  }
  .time_sheet table tbody td {
    font-family: var(--f-jp);
  }
  .time_sheet table tbody td:first-child {
    padding-top: 0;
    font-family: var(--f-en);
    font-weight: 500;
    padding-right: 0.5556em;
  }
  .time_sheet .note {
    margin-top: calc(18 * var(--desktop-unit, 1px));
  }
  .time_sheet .note li {
    font-size: calc(16 * var(--desktop-unit, 1px));
    line-height: 2;
  }
  .time_sheet .note .en {
    font-family: var(--f-en);
  }
  .fixed_banner {
    position: fixed;
    top: calc(316 * var(--desktop-unit, 1px));
    right: 0;
    z-index: 90;
    display: flex;
    flex-direction: column;
    gap: calc(8 * var(--desktop-unit, 1px));
  }
  .fixed_banner > div {
    position: relative;
    border-radius: calc(10 * var(--desktop-unit, 1px)) 0 0 calc(10 * var(--desktop-unit, 1px));
    width: calc(80 * var(--desktop-unit, 1px));
    height: calc(80 * var(--desktop-unit, 1px));
    overflow: hidden;
    transition: width 0.3s;
  }
  .fixed_banner > div a {
    display: flex;
    align-items: center;
    gap: calc(12 * var(--desktop-unit, 1px));
    padding-left: calc(16 * var(--desktop-unit, 1px));
    height: 100%;
    color: var(--white);
    white-space: nowrap;
  }
  .fixed_banner > div a::before {
    flex-shrink: 0;
    background: no-repeat center/contain;
    width: calc(48 * var(--desktop-unit, 1px));
    height: calc(48 * var(--desktop-unit, 1px));
    content: "";
  }
  .fixed_banner > div a:hover {
    opacity: 1;
  }
  .fixed_banner > div .tt {
    font-family: var(--f-en);
    font-size: calc(20 * var(--desktop-unit, 1px));
    font-weight: 600;
    letter-spacing: 0.04em;
  }
  .fixed_banner > div.tel:hover {
    width: calc(260 * var(--desktop-unit, 1px));
  }
  .fixed_banner .tel {
    background: var(--grad-v);
  }
  .fixed_banner .tel a::before {
    background-image: url(../images/fixed_icon_tel.svg);
  }
  .fixed_banner .web {
    background: var(--clr2);
  }
  .fixed_banner .web a::before {
    background-image: url(../images/fixed_icon_web.svg);
  }
  .fixed_banner .web:hover {
    background: var(--main-color);
  }
  .totop {
    position: fixed;
    right: calc(22 * var(--desktop-unit, 1px));
    bottom: calc(11 * var(--desktop-unit, 1px));
    z-index: 90;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
  }
  .totop.show {
    opacity: 1;
    pointer-events: auto;
  }
  .totop span {
    cursor: pointer;
    display: block;
    background: url(../images/totop.png) no-repeat center/contain;
    width: 64px;
    height: 64px;
  }
  .totop:hover {
    opacity: 1;
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) {
  .totop:hover span {
    opacity: 0.9;
    animation-name: bounces;
  }
}
a.tel_click {
  text-decoration: none;
  color: inherit;
}

@media only screen and (min-width: 769px) {
  a:not(.tel_click, [target*=_blank]) {
    transition: all 0.3s ease;
  }
  a:not(.tel_click, [target*=_blank]):hover {
    opacity: 0.7;
  }
  a.tel_click {
    pointer-events: none;
  }
  a:not(.tel_click, [target*=_blank]):hover,
  a:not(.tel_click, [target*=_blank]):active {
    color: #64b5f7;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .ttl_lg .jp {
    margin-top: calc(14 * var(--desktop-unit, 1px));
    font-size: calc(32 * var(--desktop-unit, 1px));
  }
  .ttl_sm .en {
    font-size: calc(26 * var(--desktop-unit, 1px));
  }
  .ttl_sm .jp {
    margin-top: calc(16 * var(--desktop-unit, 1px));
    font-size: calc(40 * var(--desktop-unit, 1px));
  }
  .sec_ttl .h_en {
    font-size: calc(42 * var(--desktop-unit, 1px));
  }
  .sec_ttl .jp {
    font-size: calc(26 * var(--desktop-unit, 1px));
  }
  .btn.style01 a {
    width: calc(280 * var(--desktop-unit, 1px));
    min-height: calc(58 * var(--desktop-unit, 1px));
    font-size: calc(16 * var(--desktop-unit, 1px));
  }
  .btn.style01.sm a {
    width: calc(220 * var(--desktop-unit, 1px));
  }
  .btn.style01.wide a {
    width: calc(420 * var(--desktop-unit, 1px));
  }
  .time_sheet table th,
  .time_sheet table td {
    font-size: calc(16 * var(--desktop-unit, 1px));
  }
  .time_sheet table thead th {
    height: calc(50 * var(--desktop-unit, 1px));
  }
  .time_sheet table thead th:first-child::before {
    height: calc(50 * var(--desktop-unit, 1px));
  }
  .time_sheet table tbody th,
  .time_sheet table tbody td {
    height: calc(56 * var(--desktop-unit, 1px));
  }
  .time_sheet .note li {
    font-size: calc(14 * var(--desktop-unit, 1px));
  }
  .site_bnr {
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
  }
  .fixed_banner {
    top: calc(240 * var(--desktop-unit, 1px));
  }
  .fixed_banner > div {
    width: calc(64 * var(--desktop-unit, 1px));
    height: calc(64 * var(--desktop-unit, 1px));
  }
  .fixed_banner > div a {
    padding-left: calc(12 * var(--desktop-unit, 1px));
  }
  .fixed_banner > div a::before {
    width: calc(40 * var(--desktop-unit, 1px));
    height: calc(40 * var(--desktop-unit, 1px));
  }
}
@keyframes tabIn {
  from {
    opacity: 0;
    translate: 0 calc(12 * var(--desktop-unit, 1px));
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@media only screen and (min-width: 769px) {
  header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 100;
  }
  header .header_top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 2;
    padding-left: calc(40 * var(--desktop-unit, 1px));
    background: var(--white);
    height: var(--wrapper);
  }
  header .logo {
    line-height: 1;
  }
  header .logo img {
    width: calc(324 * var(--desktop-unit, 1px));
  }
  header .right_head {
    display: flex;
    align-items: center;
    height: 100%;
  }
  header .pc_navi > ul {
    display: flex;
    gap: calc(40 * var(--desktop-unit, 1px));
    margin-right: calc(40 * var(--desktop-unit, 1px));
  }
  header .pc_navi .h_center a {
    display: flex !important;
    align-items: center;
    height: 100%;
  }
  header .pc_navi .h_center a::before {
    top: unset !important;
  }
  header .pc_navi>ul>li {
    display: flex;
    align-items: center;
    position: relative;
    height: var(--wrapper);
  }
  header .pc_navi>ul>li > p,
  header .pc_navi>ul>li > a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(8 * var(--desktop-unit, 1px));
    color: var(--clr2);
    font-size: calc(18 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.026em;
    line-height: 1;
	min-height: 2.11111111111em;
  }
  header .pc_navi .lv2 > p::after,
  header .pc_navi .lv2 > a::after {
    mask-image: url(../images/hd_arr.png);
    background-color: var(--main-color);
    mask-repeat: no-repeat;
    mask-size: contain;
    content: "";
    transition: all 0.3s;
    width: 0.6667em;
    height: 0.6667em;
  }
  header .pc_navi .lv2:hover > p,
  header .pc_navi .lv2:hover > a {
    color: var(--main-color);
  }
  header .pc_navi .lv2:hover > p::after,
  header .pc_navi .lv2:hover > a::after {
    transform: translateY(2px);
  }
  header .pc_navi .lv2 .subInner {
    position: absolute;
    top: 100%;
    left: 50%;
    translate: -50% calc(10 * var(--desktop-unit, 1px));
    opacity: 0;
    visibility: hidden;
    border-radius: 0 0 calc(20 * var(--desktop-unit, 1px)) calc(20 * var(--desktop-unit, 1px));
    background: var(--white);
    padding: calc(18 * var(--desktop-unit, 1px)) calc(26 * var(--desktop-unit, 1px)) calc(22 * var(--desktop-unit, 1px));
    min-width: calc(260 * var(--desktop-unit, 1px));
    box-shadow: 0 calc(8 * var(--desktop-unit, 1px)) calc(16 * var(--desktop-unit, 1px)) color-mix(in srgb, var(--clr2) 12%, transparent);
    transition: opacity 0.3s, translate 0.3s, visibility 0.3s;
  }
  header .pc_navi .lv2 .subInner li {
    border-bottom: 1px var(--main-color) dashed;
  }
  header .pc_navi .lv2 .subInner a {
    display: block;
    position: relative;
    padding: calc(9 * var(--desktop-unit, 1px)) 0 calc(9 * var(--desktop-unit, 1px)) calc(16 * var(--desktop-unit, 1px));
    color: var(--clr6);
    font-size: calc(16 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.5;
    white-space: nowrap;
  }
  header .pc_navi .lv2 .subInner a::before {
    position: absolute;
    top: 1.1em;
    left: 0;
    border-radius: 50%;
    background: var(--main-color);
    width: calc(6 * var(--desktop-unit, 1px));
    height: calc(6 * var(--desktop-unit, 1px));
    content: "";
  }
  header .pc_navi a:hover {
    opacity: 1;
    color: var(--main-color);
  }
  header .pc_navi .lv2.col2 .subInner {
    width: calc(600 * var(--desktop-unit, 1px));
    max-width: calc(100vw - 40px);
  }
  header .pc_navi .lv2.col2 .subInner > ul {
    display: flex;
    flex-wrap: wrap;
    column-gap: 4%;
  }
  header .pc_navi .lv2.col2 .subInner > ul > li {
    width: 48%;
    min-width: 0;
  }
  header .pc_navi .lv2.col2 .subInner > ul > li:nth-child(-n+2) {
    border-top: 0;
  }
  header .pc_navi .lv2.col2 .subInner a {
    white-space: normal;
  }
  header .pc_navi .lv2:hover > a::after, header .pc_navi .lv2:focus-within > a::after, header .pc_navi .lv2.is-hover > a::after {
    translate: 0 calc(3 * var(--desktop-unit, 1px));
  }
  header .pc_navi .lv2:hover .subInner, header .pc_navi .lv2:focus-within .subInner, header .pc_navi .lv2.is-hover .subInner {
    translate: -50% 0;
    opacity: 1;
    visibility: visible;
  }
  header .pc_navi .lv2:nth-last-child(-n+2) .subInner {
    right: calc(-40 * var(--desktop-unit, 1px));
    left: auto;
    translate: 0 calc(10 * var(--desktop-unit, 1px));
  }
  header .pc_navi .lv2:nth-last-child(-n+2):hover .subInner, header .pc_navi .lv2:nth-last-child(-n+2):focus-within .subInner, header .pc_navi .lv2:nth-last-child(-n+2).is-hover .subInner {
    translate: 0 0;
  }
  header .button-toggle {
    display: block;
    position: relative;
    border-radius: 0 0 0 calc(20 * var(--desktop-unit, 1px));
    background: var(--grad-v);
    width: calc(120 * var(--desktop-unit, 1px));
    height: var(--wrapper);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  header .button-toggle #nav-icon {
    width: calc(44 * var(--desktop-unit, 1px));
    height: calc(24 * var(--desktop-unit, 1px));
    position: relative;
  }
  header .button-toggle #nav-icon span {
    position: absolute;
    left: 0;
    background: var(--white);
    width: 100%;
    height: calc(2 * var(--desktop-unit, 1px));
    transition: top 0.3s, rotate 0.3s, opacity 0.3s;
  }
  header .button-toggle #nav-icon span:nth-child(1) {
    top: 0;
  }
  header .button-toggle #nav-icon span:nth-child(2) {
    top: calc(11 * var(--desktop-unit, 1px));
  }
  header .button-toggle #nav-icon span:nth-child(3) {
    top: calc(22 * var(--desktop-unit, 1px));
  }
  header .button-toggle #menu_btn {
    color: var(--white);
    font-size: calc(14 * var(--desktop-unit, 1px));
    line-height: 1;
    text-align: center;
    font-family: var(--f-b1);
    letter-spacing: 0.05em;
    margin-top: 0.5714em;
    font-weight: 700;
    padding-bottom: 0.2857em;
  }
  header .sp_navi {
    position: fixed;
    top: var(--wrapper);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    opacity: 0;
    visibility: hidden;
    overflow-y: auto;
    background: color-mix(in srgb, var(--clr3) 55%, transparent);
    -webkit-backdrop-filter: blur(calc(18 * var(--desktop-unit, 1px)));
    backdrop-filter: blur(calc(18 * var(--desktop-unit, 1px)));
    transition: opacity 0.4s, visibility 0.4s;
  }
  header .menu_toggle.active {
    --desktop-unit: min(1px, calc((100dvh - var(--wrapper)) / 850));
  }
  header .menu_toggle {
    display: flex;
    min-height: 100%;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
  }
  header .menu_toggle .inside {
    display: grid;
    grid-template-columns: minmax(0, 438fr) minmax(0, 402fr) minmax(0, 440fr);
    align-content: start;
    margin-inline: auto;
    padding: calc(32 * var(--desktop-unit, 1px)) var(--gutter) calc(20 * var(--desktop-unit, 1px));
    width: 100%;
    max-width: calc(var(--inner) + var(--gutter) * 2);
  }
  header .menu_toggle .nav_en {
    color: var(--main-color);
    font-family: var(--f-en);
    font-size: clamp(24px, 2.0833333333vw, 40px);
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.4;
  }
  header .menu_toggle .col_trouble {
    padding-top: calc(clamp(24px, 2.0833333333vw, 40px) * 1.4);
  }
  header .menu_toggle .col_trouble .nav_sub {
    margin-right: 0;
  }
  header .menu_toggle .nav_sub {
    margin-top: calc(16 * var(--desktop-unit, 1px));
    margin-right: calc(60 * var(--desktop-unit, 1px));
    border-bottom: calc(2 * var(--desktop-unit, 1px)) solid var(--main-color);
    padding: 0 0 calc(4 * var(--desktop-unit, 1px)) calc(7 * var(--desktop-unit, 1px));
    color: var(--main-color);
    font-size: clamp(18px, 1.1458333333vw, 22px);
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.4;
  }
  header .menu_toggle ul {
    margin-top: calc(11 * var(--desktop-unit, 1px));
  }
  header .menu_toggle .col_clinic ul {
    margin-top: calc(27 * var(--desktop-unit, 1px));
  }
  header .menu_toggle li {
    line-height: 1;
  }
  header .menu_toggle li + li {
    margin-top: calc(2 * var(--desktop-unit, 1px));
  }
  header .menu_toggle li:nth-child(-n+3) {
    margin-bottom: calc(-2 * var(--desktop-unit, 1px));
  }
  header .menu_toggle li a {
    display: inline-block;
    position: relative;
    padding: calc(10 * var(--desktop-unit, 1px)) 0 calc(10 * var(--desktop-unit, 1px)) calc(13 * var(--desktop-unit, 1px));
    color: var(--clr6);
    font-size: max(14px, 18 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    white-space: nowrap;
  }
  header .menu_toggle li a::before {
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
    border-radius: 50%;
    background: var(--main-color);
    width: calc(6 * var(--desktop-unit, 1px));
    height: calc(6 * var(--desktop-unit, 1px));
    content: "";
  }
  header .menu_toggle li a:hover {
    opacity: 1;
    color: var(--main-color);
  }
  header .menu_toggle .nav_bnr {
    grid-column: 1/2;
    margin-top: calc(16 * var(--desktop-unit, 1px));
    width: min(100%, 320 * var(--desktop-unit, 1px));
  }
  header .menu_toggle .nav_marquee {
    display: flex;
    overflow: hidden;
    color: var(--main-color);
    font-family: var(--f-en);
    font-size: max(14px, 120 * var(--desktop-unit, 1px));
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0.18;
  }
  header .menu_toggle .nav_marquee span {
    flex-shrink: 0;
    animation: marquee 40s linear infinite;
  }
  footer .ft_info {
    position: relative;
    z-index: 0;
    background: url(../images/shared_ft_bg.jpg) no-repeat center/cover;
    padding: calc(100 * var(--desktop-unit, 1px)) 0;
    color: var(--white);
  }
  footer .ft_info::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.8553;
    background: linear-gradient(92deg, var(--clr14) 12.5%, var(--clr4) 102%);
    content: "";
  }
  footer .ft_flex {
    display: flex;
    justify-content: space-between;
    gap: calc(48 * var(--desktop-unit, 1px));
    padding: 0 calc(70 * var(--desktop-unit, 1px)) 0 calc(72 * var(--desktop-unit, 1px));
  }
  footer .info {
    flex: 0 1 calc(520 * var(--desktop-unit, 1px));
    text-align: center;
  }
  footer .info .ft_logo img {
    width: calc(324 * var(--desktop-unit, 1px));
  }
  footer .info .address {
    margin-top: calc(20 * var(--desktop-unit, 1px));
    font-size: calc(18 * var(--desktop-unit, 1px));
    line-height: 2;
  }
  footer .info .tel {
    display: flex;
    justify-content: center;
    margin-top: calc(14 * var(--desktop-unit, 1px));
  }
  footer .info .tel a {
    display: flex;
    align-items: center;
    gap: calc(9 * var(--desktop-unit, 1px));
    font-family: var(--f-en);
    font-size: calc(50 * var(--desktop-unit, 1px));
    font-weight: 500;
    letter-spacing: 0.036em;
    line-height: 0.96;
  }
  footer .info .tel a::before {
    background: url(../images/icon_tel.svg) no-repeat center/contain;
    width: calc(48 * var(--desktop-unit, 1px));
    height: calc(48 * var(--desktop-unit, 1px));
    content: "";
  }
  footer .time_sheet {
    margin-top: calc(35 * var(--desktop-unit, 1px));
    text-align: left;
  }
  footer .time_sheet table {
    overflow: hidden;
    border-radius: calc(10 * var(--desktop-unit, 1px));
    background: var(--white);
  }
  footer .time_sheet table thead th {
    background: var(--clr2);
  }
  footer .time_sheet table thead th:first-child::before {
    display: none;
  }
  footer .time_sheet table tbody th,
  footer .time_sheet table tbody td {
    height: calc(63 * var(--desktop-unit, 1px));
  }
  footer .time_sheet .note {
    margin-top: calc(13 * var(--desktop-unit, 1px));
    color: var(--white);
  }
  footer .ft_bnr {
    margin-top: calc(17 * var(--desktop-unit, 1px));
  }
  .site_bnr img,
  .recruit_bnr img,
  .nav_bnr img,
  .ft_bnr img {
	  border-radius: 20px 20px 0 20px;
  }
  footer .access {
    flex: 0 1 calc(570 * var(--desktop-unit, 1px));
    padding-top: calc(3 * var(--desktop-unit, 1px));
  }
  footer .access .map {
    border-radius: var(--border-position);
    aspect-ratio: 570/299;
    overflow: hidden;
  }
  footer .access .map a,
  footer .access .map img {
    display: block;
    width: 100%;
    height: 100%;
  }
  footer .access .map img {
    object-fit: cover;
  }
  footer .access_box {
    margin-top: calc(30 * var(--desktop-unit, 1px));
    border: calc(1 * var(--desktop-unit, 1px)) solid var(--main-color);
    border-radius: var(--border-position);
    background: var(--white);
    color: var(--clr1);
    text-align: left;
  }
  footer .access_box .row {
    display: grid;
    grid-template-columns: calc(80 * var(--desktop-unit, 1px)) 1fr;
    column-gap: calc(40 * var(--desktop-unit, 1px));
    align-items: center;
    position: relative;
    padding: calc(31 * var(--desktop-unit, 1px)) calc(30 * var(--desktop-unit, 1px)) calc(20 * var(--desktop-unit, 1px)) calc(33 * var(--desktop-unit, 1px));
  }
  footer .access_box .row::before {
    grid-row: 1/3;
    background: no-repeat center/contain;
    width: calc(80 * var(--desktop-unit, 1px));
    height: calc(80 * var(--desktop-unit, 1px));
    content: "";
  }
  footer .access_box .row + .row {
    padding: calc(27 * var(--desktop-unit, 1px)) calc(30 * var(--desktop-unit, 1px)) calc(29 * var(--desktop-unit, 1px)) calc(33 * var(--desktop-unit, 1px));
  }
  footer .access_box .row + .row::after {
    position: absolute;
    top: 0;
    right: calc(38 * var(--desktop-unit, 1px));
    left: calc(39 * var(--desktop-unit, 1px));
    background: linear-gradient(90deg, var(--main-color) calc(2 * var(--desktop-unit, 1px)), transparent calc(2 * var(--desktop-unit, 1px))) repeat-x 0 0/calc(5 * var(--desktop-unit, 1px)) 2px;
    height: calc(2 * var(--desktop-unit, 1px));
    content: "";
  }
  footer .access_box .train::before {
    background-image: url(../images/ft_icon1.png);
  }
  footer .access_box .car::before {
    background-image: url(../images/ft_icon2.png);
  }
  footer .access_box dt {
    align-self: end;
    color: var(--clr2);
    font-size: calc(22 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.6363636364;
  }
  footer .access_box dd {
    align-self: start;
    margin-top: calc(10 * var(--desktop-unit, 1px));
    font-size: calc(18 * var(--desktop-unit, 1px));
    line-height: 1.6666666667;
  }
  footer .ft_link {
    background: var(--clr3);
    padding: calc(80 * var(--desktop-unit, 1px)) 0 calc(115 * var(--desktop-unit, 1px));
  }
  footer .ft_link .inner {
    display: grid;
    grid-template-columns: calc(438 * var(--desktop-unit, 1px)) calc(402 * var(--desktop-unit, 1px)) 1fr;
  }
  footer .ft_link .nav_en {
    color: var(--main-color);
    font-family: var(--f-en);
    font-size: calc(40 * var(--desktop-unit, 1px));
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.4;
  }
  footer .ft_link .col_trouble {
    padding-top: calc(56 * var(--desktop-unit, 1px));
  }
  footer .ft_link .nav_sub {
    margin-top: calc(31 * var(--desktop-unit, 1px));
    border-bottom: calc(2 * var(--desktop-unit, 1px)) solid var(--main-color);
    padding: 0 0 calc(7 * var(--desktop-unit, 1px)) calc(7 * var(--desktop-unit, 1px));
    color: var(--main-color);
    font-size: calc(20 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.5;
  }
  footer .ft_link .col_menu .nav_sub {
    margin-right: calc(60 * var(--desktop-unit, 1px));
  }
  footer .ft_link ul {
    margin-top: calc(8 * var(--desktop-unit, 1px));
  }
  footer .ft_link .col_clinic ul {
    margin-top: calc(24 * var(--desktop-unit, 1px));
  }
  footer .ft_link li {
    line-height: 1;
  }
  footer .ft_link li + li {
    margin-top: calc(2 * var(--desktop-unit, 1px));
  }
  footer .ft_link li:nth-child(-n+3) {
    margin-bottom: calc(-2 * var(--desktop-unit, 1px));
  }
  footer .ft_link a {
    display: inline-block;
    position: relative;
    padding: calc(10 * var(--desktop-unit, 1px)) 0 calc(10 * var(--desktop-unit, 1px)) calc(13 * var(--desktop-unit, 1px));
    color: var(--clr6);
    font-size: calc(18 * var(--desktop-unit, 1px));
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    white-space: nowrap;
  }
  footer .ft_link a::before {
    position: absolute;
    top: 53%;
    left: 0;
    border-radius: 50%;
    background: var(--main-color);
    width: calc(5 * var(--desktop-unit, 1px));
    height: calc(5 * var(--desktop-unit, 1px));
    content: "";
  }
  footer .ft_link a:hover {
    opacity: 1;
    color: var(--main-color);
  }
  footer .copyright {
    background: var(--clr2);
    padding: calc(36 * var(--desktop-unit, 1px)) 0;
  }
  footer .copyright p {
    color: var(--white);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.6;
  }
  .menu-open {
    overflow: hidden;
  }
  .menu-open header .sp_navi {
    opacity: 1;
    visibility: visible;
  }
  .menu-open header .button-toggle #nav-icon span:nth-child(1) {
    top: calc(11 * var(--desktop-unit, 1px));
    rotate: 45deg;
  }
  .menu-open header .button-toggle #nav-icon span:nth-child(2) {
    opacity: 0;
  }
  .menu-open header .button-toggle #nav-icon span:nth-child(3) {
    top: calc(11 * var(--desktop-unit, 1px));
    rotate: -45deg;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  header .header_top {
    padding-left: calc(24 * var(--desktop-unit, 1px));
  }
  header .logo img {
    width: calc(260 * var(--desktop-unit, 1px));
  }
  header .pc_navi > ul {
    gap: calc(28 * var(--desktop-unit, 1px));
    margin-right: calc(28 * var(--desktop-unit, 1px));
  }
  header .pc_navi .lv2 > p,
  header .pc_navi .lv2 > a {
    font-size: calc(16 * var(--desktop-unit, 1px));
  }
  header .button-toggle {
    width: calc(80 * var(--desktop-unit, 1px));
  }
  header .button-toggle #nav-icon {
    width: calc(40 * var(--desktop-unit, 1px));
  }
  header .button-toggle #menu_btn {
    font-size: calc(13 * var(--desktop-unit, 1px));
  }
  header .ft_link li a {
    font-size: calc(16 * var(--desktop-unit, 1px));
  }
  header .menu_toggle .inside {
    padding-top: calc(16 * var(--desktop-unit, 1px));
  }
  header .menu_toggle .nav_en {
    font-size: clamp(24px, 2.0833333333vw, 40px);
  }
  header .menu_toggle .nav_sub {
    margin-right: calc(30 * var(--desktop-unit, 1px));
    font-size: clamp(18px, 1.1458333333vw, 22px);
  }
  header .menu_toggle li a {
    letter-spacing: 0;
    font-size: max(14px, 16 * var(--desktop-unit, 1px));
  }
  header .menu_toggle .nav_marquee {
    font-size: max(14px, 90 * var(--desktop-unit, 1px));
  }
  footer .ft_flex {
    gap: calc(36 * var(--desktop-unit, 1px));
    padding: 0 calc(20 * var(--desktop-unit, 1px));
  }
  footer .info .ft_logo img {
    width: calc(280 * var(--desktop-unit, 1px));
  }
  footer .info .address {
    font-size: calc(16 * var(--desktop-unit, 1px));
  }
  footer .info .tel a {
    font-size: calc(40 * var(--desktop-unit, 1px));
  }
  footer .info .tel a::before {
    width: calc(40 * var(--desktop-unit, 1px));
    height: calc(40 * var(--desktop-unit, 1px));
  }
  footer .access_box .row {
    grid-template-columns: calc(64 * var(--desktop-unit, 1px)) 1fr;
    column-gap: calc(24 * var(--desktop-unit, 1px));
    padding: calc(26 * var(--desktop-unit, 1px)) calc(24 * var(--desktop-unit, 1px)) calc(18 * var(--desktop-unit, 1px)) calc(26 * var(--desktop-unit, 1px));
  }
  footer .access_box .row::before {
    width: calc(64 * var(--desktop-unit, 1px));
    height: calc(64 * var(--desktop-unit, 1px));
  }
  footer .access_box .row + .row {
    padding: calc(22 * var(--desktop-unit, 1px)) calc(24 * var(--desktop-unit, 1px)) calc(26 * var(--desktop-unit, 1px)) calc(26 * var(--desktop-unit, 1px));
  }
  footer .access_box dt {
    font-size: calc(20 * var(--desktop-unit, 1px));
  }
  footer .access_box dd {
    font-size: calc(16 * var(--desktop-unit, 1px));
  }
  footer .ft_link .inner {
    grid-template-columns: 1fr 1fr 1.2fr;
  }
  footer .ft_link .nav_en {
    font-size: calc(34 * var(--desktop-unit, 1px));
  }
  footer .ft_link .nav_sub {
    font-size: calc(18 * var(--desktop-unit, 1px));
  }
  footer .ft_link .col_menu .nav_sub {
    margin-right: calc(30 * var(--desktop-unit, 1px));
  }
  footer .ft_link a {
    font-size: calc(16 * var(--desktop-unit, 1px));
  }
}
@keyframes marquee {
  from {
    translate: 0 0;
  }
  to {
    translate: -100% 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  footer .ft_info .inner {
    max-width: 93%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  header .menu_toggle .col_trouble {
    padding-top: calc(clamp(24px, 2.0833333333vw, 40px) * 1.4);
  }
  footer .ft_link .inner {
    grid-template-columns: 1.2fr 1fr 1fr;
  }
  header .pc_navi .lv2 > p, header .pc_navi .lv2 > a {
    font-size: 14px;
  }
}
/* Keep footer access information comfortably sized on tablets. */
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  footer .access_box {
    margin-top: 24px;
    border-width: 1px;
  }
  footer .access_box .row,
  footer .access_box .row + .row {
    grid-template-columns: 56px minmax(0, 1fr);
    column-gap: 16px;
    padding: 22px 18px;
  }
  footer .access_box .row::before {
    width: 56px;
    height: 56px;
  }
  footer .access_box .row + .row::after {
    right: 18px;
    left: 18px;
  }
  footer .access_box dt {
    font-size: 18px;
    letter-spacing: 0.04em;
    line-height: 1.5;
  }
  footer .access_box dd {
    margin-top: 8px;
    font-size: 16px;
    line-height: 1.6;
  }
}
@media only screen and (min-width: 1919px) {
  header .menu_toggle .nav_bnr {
    min-width: 520px;
  }
}
/* Align footer subheadings with the English heading's actual height. */
@media only screen and (min-width: 769px) and (max-width: 1367px) {
  footer .ft_link {
    --footer-nav-heading-size: calc(34 * var(--desktop-unit, 1px));
  }
  footer .ft_link .nav_en {
    font-size: var(--footer-nav-heading-size);
    line-height: 1.4;
  }
  footer .ft_link .col_trouble {
    padding-top: calc(var(--footer-nav-heading-size) * 1.4);
  }
}
/* Scale the desktop composition only in the tablet range. */
@media only screen and (min-width: 769px) and (max-width: 1170px) {
  :root {
    --desktop-unit: calc(100vw / 1280);
  }
}
/* Keep tablet controls readable without scaling their text below 18px. */
@media only screen and (min-width: 769px) and (max-width: 1170px) {
  .tab_btn {
    font-size: 18px;
  }
}
.br769 {
  display: none;
}

@media only screen and (min-width: 769px) and (max-width: 1170px) {
  .br769 {
    display: block !important;
  }
}
/* Desktop menu hover and readable compact-header sizing. */
@media only screen and (min-width: 770px) {
  header .button-toggle:hover,
  header .button-toggle:focus-visible {
    background: var(--clr2);
    transition: 0.3s all;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1023px) {
  :root {
    --wrapper: 70px;
  }
  header,
  header .pc_navi .lv2 > a,
  header .pc_navi .lv2 .subInner a,
  header .menu_toggle li a,
  header .button-toggle #menu_btn {
    font-size: 16px;
  }
  header .button-toggle {
    width: 70px;
    flex-shrink: 0;
  }
}
/* Keep opening hours and notes readable at 1366px and below. */
@media only screen and (max-width: 1366px) {
  :root .time_sheet table th,
  :root .time_sheet table td {
    font-size: 16px;
  }
  :root .note,
  :root .note li,
  :root .time_sheet .note li {
    font-size: 14px;
  }
}
@media only screen and (max-width: 345px) {
  :root .time_sheet table th,
  :root .time_sheet table td {
    font-size: min(4vw, 14px);
  }
  :root .note,
  :root .note li,
  :root .time_sheet .note li {
    font-size: 14px;
  }
}
@media only screen and (min-width: 769px) {
  .fixed_banner {
    align-items: flex-end;
  }
  .fixed_banner .tel a::before {
    background-size: 75%;
  }
  .fixed_banner .web {
    transition: background-color 0.3s;
  }
  .fixed_banner .web a {
    justify-content: center;
    padding-left: 0;
  }
  .fixed_banner .web .tt {
    display: block;
  }
}
/* CTA dimensions match the supplied 251 x 80 hover artwork. */
@media only screen and (min-width: 769px) {
  .fixed_banner > div {
    width: calc(80 * var(--cta-unit, 1px));
    height: calc(80 * var(--cta-unit, 1px));
    border-radius: calc(10 * var(--cta-unit, 1px)) 0 0 calc(10 * var(--cta-unit, 1px));
  }
  .fixed_banner > div.tel:hover,
  .fixed_banner > div.tel:focus-within {
    width: calc(251 * var(--cta-unit, 1px));
  }
  .fixed_banner .tel a {
    gap: 0;
    padding-left: 0;
    width: calc(251 * var(--cta-unit, 1px));
  }
  .fixed_banner .tel a::before {
    width: calc(81 * var(--cta-unit, 1px));
    height: calc(80 * var(--cta-unit, 1px));
    border-right: 1px solid var(--white);
    background-size: calc(36 * var(--cta-unit, 1px)) calc(36 * var(--cta-unit, 1px));
    background-position: calc(22 * var(--cta-unit, 1px)) center;
  }
  .fixed_banner .tel .tt {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(170 * var(--cta-unit, 1px));
    height: calc(80 * var(--cta-unit, 1px));
    font-size: calc(20 * var(--cta-unit, 1px));
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1;
  }
  .fixed_banner .web a::before {
    width: calc(48 * var(--cta-unit, 1px));
    height: calc(48 * var(--cta-unit, 1px));
  }
}
/* Two compact desktop CTA sizes; preserve the mobile bottom bar. */
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .fixed_banner {
    --cta-unit: 0.8px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .fixed_banner {
    --cta-unit: 0.7px;
  }
}
@keyframes galleryLoop {
  to {
    translate: -50% 0;
  }
}
h1 {
  position: absolute;
  overflow: hidden;
  height: 1px;
  width: 1px;
  padding: 0;
  border: 0;
}

@media only screen and (min-width: 769px) and (max-width: 1025px) {
  :root .time_sheet table th,
  :root .time_sheet table td {
    font-size: 14px;
    letter-spacing: 0;
  }
  :root .time_sheet table th:last-child,
  :root .time_sheet table td:last-child {
    letter-spacing: 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1025px) {
  header .menu_toggle li a,
  footer .ft_link a,
  footer .ft_link li a {
    font-size: 14px;
    letter-spacing: 0;
  }
}
/* Keep tablet buttons readable without scaling down their touch area. */
@media only screen and (min-width: 769px) and (max-width: 1025px) {
  :root .btn.style01 a {
    width: 280px;
    max-width: 100%;
    min-height: 52px;
    padding: 10px 36px;
    border-width: 2px;
    border-radius: 32px;
    font-size: 16px;
  }
  :root .btn.style01.sm a {
    width: 220px;
  }
  :root .btn.style01.wide a {
    width: 420px;
  }
  :root .btn.style01 a::after {
    right: 16px;
    width: 14px;
    height: 14px;
  }
}
/* Show the booking label below its icon on desktop. */
@media only screen and (min-width: 769px) {
  .fixed_banner > .web {
    width: max(72px, 80 * var(--cta-unit, 1px));
    height: max(72px, 80 * var(--cta-unit, 1px));
  }
  .fixed_banner .web a {
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 8px 4px;
    color: var(--white);
  }
  .fixed_banner .web a::before {
    width: 26px;
    height: 26px;
  }
  .fixed_banner .web .tt {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0;
    text-align: center;
  }
  .fixed_banner .web a:hover,
  .fixed_banner .web a:focus-visible {
    color: var(--white);
  }
}
/* Leave a small inset around the arrow mask to avoid clipped edges. */
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  :root .btn.style01 a {
    padding-inline: 40px;
  }
  :root .btn.style01 a::after {
    width: 18px;
    height: 18px;
    right: 16px;
    -webkit-mask-size: 16px 16px;
    mask-size: 16px 16px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  header .menu_toggle li a,
  footer .ft_link a,
  footer .ft_link li a {
    line-height: 1.4;
    padding-left: 13px;
  }
  header .menu_toggle li a::before,
  footer .ft_link a::before,
  footer .ft_link li a::before {
    top: calc(10 * var(--desktop-unit, 1px) + 0.7em);
    left: 0;
    width: 5px;
    height: 5px;
    translate: 0 -50%;
  }
}
/* Match the two desktop fixed-banner tiles and center the phone icon. */
@media only screen and (min-width: 769px) {
  .fixed_banner {
    --fixed-tile-size: max(72px, calc(80 * var(--cta-unit, 1px)));
    gap: 8px;
  }
  .fixed_banner > div.tel,
  .fixed_banner > div.web {
    width: var(--fixed-tile-size);
    height: var(--fixed-tile-size);
  }
  .fixed_banner > div.tel:hover,
  .fixed_banner > div.tel:focus-within {
    width: calc(var(--fixed-tile-size) + 170 * var(--cta-unit, 1px));
  }
  .fixed_banner .tel a {
    width: calc(var(--fixed-tile-size) + 170 * var(--cta-unit, 1px));
  }
  .fixed_banner .tel a::before {
    width: var(--fixed-tile-size);
    height: var(--fixed-tile-size);
    background-position: center;
    background-size: 32px 32px;
  }
  .fixed_banner .tel .tt {
    flex-shrink: 0;
    height: var(--fixed-tile-size);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .totop span {
    width: 48px;
    height: 48px;
  }
  header .menu_toggle .inside {
    max-width: 80%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  header .menu_toggle .inside {
    max-width: 100%;
  }
}
@media only screen and (min-width: 769px) {
  .fixed_banner .tel a::before {
    border-right-color: transparent;
  }
  .fixed_banner .tel:hover a::before {
    border-right-color: var(--white);
  }
}
/* Compact fixed controls beside the hero on narrow desktop screens. */
@media only screen and (min-width: 769px) and (max-width: 850px) {
  .fixed_banner {
    --fixed-tile-size: 56px;
    gap: 6px;
  }
  .fixed_banner .tel a::before {
    background-size: 26px 26px;
  }
  .fixed_banner .web a {
    gap: 4px;
    padding: 6px 2px;
  }
  .fixed_banner .web a::before {
    width: 22px;
    height: 22px;
  }
  .fixed_banner .web .tt {
    font-size: 12px;
  }
}
/* Match the footer address and access sizing to idx02 on tablets. */
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  footer .info .address {
    font-size: 16px;
    line-height: 2;
  }
  footer .access_box {
    margin-top: calc(30 * var(--desktop-unit, 1px));
    border-width: calc(1 * var(--desktop-unit, 1px));
  }
  footer .access_box .row {
    grid-template-columns: calc(64 * var(--desktop-unit, 1px)) minmax(0, 1fr);
    column-gap: calc(24 * var(--desktop-unit, 1px));
    padding: calc(26 * var(--desktop-unit, 1px)) calc(24 * var(--desktop-unit, 1px)) calc(18 * var(--desktop-unit, 1px)) calc(26 * var(--desktop-unit, 1px));
  }
  footer .access_box .row + .row {
    padding: calc(22 * var(--desktop-unit, 1px)) calc(24 * var(--desktop-unit, 1px)) calc(26 * var(--desktop-unit, 1px)) calc(26 * var(--desktop-unit, 1px));
  }
  footer .access_box .row::before {
    width: calc(64 * var(--desktop-unit, 1px));
    height: calc(64 * var(--desktop-unit, 1px));
  }
  footer .access_box .row + .row::after {
    right: calc(38 * var(--desktop-unit, 1px));
    left: calc(39 * var(--desktop-unit, 1px));
  }
  footer .access_box dt {
    font-size: calc(20 * var(--desktop-unit, 1px));
    letter-spacing: 0.12em;
    line-height: calc(36 / 22);
  }
  footer .access_box dd {
    margin-top: calc(10 * var(--desktop-unit, 1px));
    font-size: inherit;
    line-height: calc(30 / 18);
  }
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
  footer .ft_link .col_menu .nav_sub,
  footer .ft_link .col_trouble .nav_sub {
    font-size: 18px;
  }
}
