@charset "utf-8";
/* CSS Document -----------------------------

 2025.12.22

--------------------------------------------*/
/* Futura PT */
@import url("https://use.typekit.net/ohe4tfq.css");
/* ----------------------------------------------

 * デザイントークン

---------------------------------------------- */
:root {
  --size308: clamp(208px, calc(208px + 100 * ((100vw - 375px) / 1545)), 308px);
  --size240: clamp(100px, calc(100px + 140 * ((100vw - 375px) / 1545)), 240px);
  --size200: clamp(120px, calc(120px + 80 * ((100vw - 375px) / 1545)), 200px);
  --size180: clamp(130px, calc(130px + 50 * ((100vw - 375px) / 1545)), 180px);
  --size100-180: clamp(100px, calc(100px + 80 * ((100vw - 375px) / 1545)), 180px);
  --size160: clamp(60px, calc(60px + 100 * ((100vw - 375px) / 1545)), 160px);
  --size150: clamp(50px, calc(50px + 100 * ((100vw - 375px) / 1545)), 150px);
  --size100-130: clamp(100px, calc(100px + 30 * ((100vw - 375px) / 1545)), 130px);
  --size130: clamp(50px, calc(50px + 80 * ((100vw - 375px) / 1545)), 130px);
  --size110: clamp(70px, calc(70px + 40 * ((100vw - 375px) / 1545)), 110px);
  --size100: clamp(50px, calc(50px + 50 * ((100vw - 375px) / 1545)), 100px);
  --size70-100: clamp(70px, calc(70px + 30 * ((100vw - 375px) / 1545)), 100px);
  --size60-100: clamp(60px, calc(60px + 40 * ((100vw - 375px) / 1545)), 100px);
  --size20-100: clamp(20px, calc(20px + 80 * ((100vw - 375px) / 1545)), 100px);
  --size90: clamp(50px, calc(50px + 40 * ((100vw - 375px) / 1545)), 90px);
  --size80: clamp(50px, calc(50px + 30 * ((100vw - 375px) / 1545)), 80px);
  --size46-80: clamp(46px, calc(46px + 34 * ((100vw - 375px) / 1545)), 80px);
  --size60-80: clamp(60px, calc(60px + 20 * ((100vw - 375px) / 1545)), 80px);
  --size20-80: clamp(20px, calc(20px + 60 * ((100vw - 375px) / 1545)), 80px);
  --size70: clamp(50px, calc(50px + 20 * ((100vw - 375px) / 1545)), 70px);
  --size30-70: clamp(30px, calc(30px + 40 * ((100vw - 375px) / 1545)), 70px);
  --size20-70: clamp(20px, calc(20px + 50 * ((100vw - 375px) / 1545)), 70px);
  --size60: clamp(40px, calc(40px + 20 * ((100vw - 375px) / 1545)), 60px);
  --size20-60: clamp(20px, calc(20px + 40 * ((100vw - 375px) / 1545)), 60px);
  --size10-60: clamp(10px, calc(10px + 50 * ((100vw - 375px) / 1545)), 60px);
  --size50: clamp(40px, calc(40px + 10 * ((100vw - 375px) / 1545)), 50px);
  --size20-50: clamp(20px, calc(20px + 30 * ((100vw - 375px) / 1545)), 50px);
  --size40: clamp(30px, calc(30px + 10 * ((100vw - 375px) / 1545)), 40px);
  --size20-40: clamp(20px, calc(20px + 20 * ((100vw - 375px) / 1545)), 40px);
  --size30: clamp(20px, calc(20px + 10 * ((100vw - 375px) / 1545)), 30px);
  --size20: clamp(10px, calc(10px + 10 * ((100vw - 375px) / 1545)), 20px);
  --size75: clamp(55px, calc(55px + 20 * ((100vw - 375px) / 1545)), 75px);
  --size30-60: clamp(30px, calc(30px + 30 * ((100vw - 375px) / 1545)), 60px);
  --size55: clamp(35px, calc(35px + 20 * ((100vw - 375px) / 1545)), 55px);
  --size30-50: clamp(30px, calc(30px + 20 * ((100vw - 375px) / 1545)), 50px);
  --size35: clamp(25px, calc(25px + 10 * ((100vw - 375px) / 1545)), 35px);
  --size15-35: clamp(15px, calc(15px + 20 * ((100vw - 375px) / 1545)), 35px);
  --size25-30: clamp(25px, calc(25px + 5 * ((100vw - 375px) / 1545)), 30px);
  --size15-30: clamp(15px, calc(15px + 15 * ((100vw - 375px) / 1545)), 30px);
  --size25: clamp(15px, calc(15px + 10 * ((100vw - 375px) / 1545)), 25px);
  --size10-18: clamp(10px, calc(10px + 10 * ((100vw - 375px) / 1545)), 18px);
  --size15-20: clamp(15px, calc(15px + 5 * ((100vw - 375px) / 1545)), 20px);
  --size16: clamp(13px, calc(13px + 3 * ((100vw - 375px) / 1545)), 16px);
  --size10-15: clamp(10px, calc(10px + 5 * ((100vw - 375px) / 1545)), 15px);
  --size10: clamp(5px, calc(5px + 5 * ((100vw - 375px) / 1545)), 10px);
  
  --font120: clamp(60px, calc(60px + 60 * ((100vw - 375px) / 1545)), 120px);
  --font72: clamp(38px, calc(38px + 34 * ((100vw - 375px) / 1545)), 72px);
  --font50: clamp(30px, calc(30px + 20 * ((100vw - 375px) / 1545)), 50px);
  --font45: clamp(25px, calc(25px + 20 * ((100vw - 375px) / 1545)), 45px);
  --font40: clamp(24px, calc(24px + 16 * ((100vw - 375px) / 1545)), 40px);
  --font38: clamp(22px, calc(22px + 16 * ((100vw - 375px) / 1545)), 38px);
  --font36: clamp(20px, calc(20px + 16 * ((100vw - 375px) / 1545)), 36px);
  --font34: clamp(20px, calc(20px + 14 * ((100vw - 375px) / 1545)), 34px);
  --font33: clamp(28px, calc(28px + 5 * ((100vw - 375px) / 1545)), 33px);
  --font32: clamp(20px, calc(20px + 12 * ((100vw - 375px) / 1545)), 32px);
  --font30: clamp(20px, calc(20px + 10 * ((100vw - 375px) / 1545)), 30px);
  --font28: clamp(18px, calc(18px + 10 * ((100vw - 375px) / 1545)), 28px);
  --font26: clamp(20px, calc(20px + 6 * ((100vw - 375px) / 1545)), 26px);
  --font24: clamp(16px, calc(16px + 8 * ((100vw - 375px) / 1545)), 24px);
  --font23: clamp(18px, calc(18px + 6 * ((100vw - 375px) / 1545)), 23px);
  --font22: clamp(16px, calc(16px + 6 * ((100vw - 375px) / 1545)), 22px);
  --font21: clamp(16px, calc(16px + 5 * ((100vw - 375px) / 1545)), 21px);
  --font20: clamp(15px, calc(15px + 5 * ((100vw - 375px) / 1545)), 20px);
  --font19: clamp(16px, calc(16px + 3 * ((100vw - 375px) / 1545)), 19px);
  --font18: clamp(14px, calc(14px + 4 * ((100vw - 375px) / 1545)), 18px);
  --font17: clamp(14px, calc(14px + 3 * ((100vw - 375px) / 1545)), 17px);
  --font15: clamp(12px, calc(12px + 3 * ((100vw - 375px) / 1545)), 15px);
  --font14: clamp(12px, calc(12px + 2 * ((100vw - 375px) / 1545)), 14px);
  --font13: clamp(10px, calc(10px + 3 * ((100vw - 375px) / 1545)), 13px);
  --font12: clamp(10px, calc(10px + 2 * ((100vw - 375px) / 1545)), 12px);

  --color-text: #222;
  --font-w: 400;
  --font-jp: "Helvetica Neue", Arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "BIZ UDPGothic", Meiryo, sans-serif;
  --font-base: clamp(13px, calc(13px + 3 * ((100vw - 375px) / 1545)), 16px);
  --line-height-base: 1.7;
  --spacing-base: .018em;
}
.FuturaPTM {font-family: "futura-pt", sans-serif;font-weight: 500;font-style: normal;}
.inner {width: 90%;max-width: 1638px;margin: 0 auto;}
.blank {padding: var(--size70) 0 var(--size75);}
.blank2 {padding: var(--size110) 0;}
/* ----------------------------------------------

 * タグの設定

---------------------------------------------- */
a {
	display: inline-block;
	outline:none;
	color: var(--color-text);
	cursor: pointer;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
  transition: all .3s ease;
}
a.link {position: absolute;top: 0;left: 0;z-index: 2;width: 100%;height: 100%;}
input,
input[type="submit"],
input[type="button"],
button {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  box-sizing: border-box;
  outline: none;
  color: var(--color-text);
  font-style: normal;
  font-weight: var(--font-w);
  font-family: var(--font-jp);
  cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {display: none;}
input[type="button"],
input[type="text"],
input[type="submit"],
input[type="image"],
textarea {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  color: var(--color-text);
}
select {
  font-family: var(--font-jp);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
select::-ms-expand {font-family: var(--font-jp);}
/*------------------------------------------------*/
html {
	margin: 0;
	padding: 0;
	background: #fff;
	color: var(--color-text);
	font-style: normal;
	font-weight: var(--font-w);
	font-size: 62.5%;
	line-height: var(--line-height-base);
  font-family: var(--font-jp);
	-webkit-font-smoodting: antialiased;
	-moz-osx-font-smoodting: grayscale;
	word-break: break-all;
}
body {font-size: var(--font15);line-height: var(--line-height-base);}
h3,h4,h5 {line-height: 1.5;}
p {font-size: var(--font15);line-height: var(--line-height-base);}
li,th,td,dt,dd,figcaption {font-size: var(--font15);line-height: var(--line-height-base);}
.flexbox {display: flex;flex-wrap: wrap;justify-content: space-between;}
.title_common {display: inline-block;margin-bottom: clamp(50px, calc(50px + 20 * ((100vw - 375px) / 1545)), 70px);text-align: center;}
.title_common h2 {
	margin-bottom: clamp(10px, calc(10px + 10 * ((100vw - 375px) / 1545)), 20px);
	color: #EB1734;
	font-size: clamp(14px, calc(14px + 3 * ((100vw - 375px) / 1545)), 17px);
	letter-spacing: .2em;
	text-align: center;
}
.title_common p.jp {
	margin-bottom: 5px;
	background: linear-gradient(45deg, #EB1734, #FF6F4A);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	font-weight: bold;
	font-size: clamp(60px, calc(60px + 60 * ((100vw - 375px) / 1545)), 120px);
	line-height: 1;
	text-align: center;
}
.title_common b {
	display: inline-block;
	position: relative;
	transform: skewX(-5deg) !important;
	margin-top: 10px;
	padding: 5px clamp(30px, calc(30px + 30 * ((100vw - 375px) / 1545)), 60px);
	background: #222;
	color: #fff;
	font-weight: bold;
	font-size: clamp(20px, calc(20px + 14 * ((100vw - 375px) / 1545)), 34px);
	letter-spacing: .2em;
	text-align: center;
}
.title_common b span {display: block;transform: skewX(5deg) !important;}
.title_common2 {margin-bottom: clamp(50px, calc(50px + 40 * ((100vw - 375px) / 1545)), 90px);}
.title_common2 h2 {
	margin-bottom: clamp(5px, calc(5px + 5 * ((100vw - 375px) / 1545)), 10px);
	color: #EB1734;
	font-size: clamp(14px, calc(14px + 2 * ((100vw - 375px) / 1545)), 16px);
	letter-spacing: .2em;
	text-align: center;
}
.title_common2 p.jp {
	font-weight: bold;
	font-size: clamp(30px, calc(30px + 20 * ((100vw - 375px) / 1545)), 50px);
	text-align: center;
}
.title_common3 {
	padding-top: clamp(30px, calc(30px + 20 * ((100vw - 375px) / 1545)), 50px);
	padding-bottom: clamp(30px, calc(30px + 20 * ((100vw - 375px) / 1545)), 50px);
	background: no-repeat center / cover;
}
.title_common3 h2 {color: #fff;font-size: clamp(28px, calc(28px + 5 * ((100vw - 375px) / 1545)), 33px);text-align: center;}
a[href^="tel:"] {pointer-events: none;}
.pc,.pc2 {display: block;}
.sp,.sp2 {display: none;}
@media only screen and ( max-width : 1024px ) {
	.pc2 {display: none;}
	.sp2 {display: block;}
}
@media only screen and ( max-width : 767px ) {
	a[href^="tel:"] {pointer-events: visible;}
	.pc {display: none;}
	.sp {display: block;}
}
/*--------------------------------------------------

    header

--------------------------------------------------*/
header {
	display: flex;
	align-items: center;
	position: sticky;
	top: 0;
	left: 0;
	z-index: 9;
	padding: 10px var(--size20-50);
	box-shadow: 0 3px 6px rgba(0, 0, 0, 16%);
	background: #fff;
	transition: .3s;
}
header .logo {position: relative;z-index: 10;width: var(--size308);}
header .logo span {
  display: inline-block;
  width: 100%;
  margin-top: .5em;
  padding: .2em 0;
  background: #EB1734;
  color: #fff;
  font-weight: 900;
  font-size: .8em;
	line-height: 1.2;
  letter-spacing: .2em;
  text-align: center;
}
header nav {display: flex;align-items: center;justify-content: flex-end;gap: var(--size20-60);width: 100%;}
header nav ul {display: flex;align-items: center;justify-content: flex-end;gap: var(--size20-60);margin-left: 2%;}
header nav ul li a {position: relative;color: #EB1734;font-size: .95vw;text-align: center;}
header nav ul li a::after {
	content: '';
	position: absolute;
	bottom: -5px;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 1px;
	background: #EB1734;
	transition: .3s;
}
header nav ul li a:hover::after {width: 100%;}
header nav .entry a {
	position: relative;
	z-index: 1;
	width: var(--size240);
	padding: 15px 0;
	overflow: hidden;
	border: 1px solid #EB1734;
	border-radius: 40px;
	background: #EB1734;
	color: #fff;
	font-size: var(--font20);
	letter-spacing: .1em;
	text-align: center;
}
header nav .entry a:hover {background-position: 99% 50%;color: #EB1734;}
header nav .entry a::before {
	content: '';
	position: absolute;
	top: -1px;
	right: -1px;
	bottom: -1px;
	left: -1px;
	z-index: -5;
	transform-origin: left top;
	transform: scale(0, 1);
	background: #fff;
	transition: transform .3s;
}
header nav .entry a:hover::before {transform-origin: left top;transform: scale(1, 1);}
header .hamburger {display: none;}
@media only screen and ( max-width : 1024px ) {
	header {height: 70px;}
  header .hamburger {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 30;
    width: 70px;
    height: 70px;
    padding-top: 30px;
    border: none;
    overflow: hidden;
    background: #fff;
    color: #EB1734;
    font-weight: 700;
    font-size: 1.2rem;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  header .hamburger span {
    display: block;
    position: absolute;
    width: 30px;
    height: 2px;
    border-radius: 2px;
    background: #EB1734;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
  }
  header .hamburger span:nth-child(1) {top: 25px;}
  header .hamburger span:nth-child(2) {top: 35px;}
  header .hamburger.is-active span:nth-child(1) {transform: translateY(5.5px) rotate(45deg);}
  header .hamburger.is-active span:nth-child(2) {transform: translateY(-5.5px) rotate(-45deg);}
  /* ナビゲーションメニュー */
  header nav {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 20;
    width: 80%;
    max-width: 320px;
    height: 100vh;
    padding: 80px 40px 30px;
    background: #fff;
    backdrop-filter: blur(20px);
    box-shadow: -10px 0 32px rgba(114, 90, 81, 24%);
    clip-path: inset(0 0 0 100%);
    pointer-events: none;
    transition: clip-path 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
  header nav.is-active {clip-path: inset(0 0 0 0%);pointer-events: auto;}
  header nav ul {position: initial;transform: none;display: block;margin-bottom: 20px;}
  header nav ul li {
    opacity: 0;
    transform: translateX(30px);
    margin-bottom: 20px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  header nav.is-active ul li {opacity: 1;transform: translateX(0);}
  header nav.is-active ul li:nth-child(1) {transition-delay: .1s;}
  header nav.is-active ul li:nth-child(2) {transition-delay: .2s;}
  header nav.is-active ul li:nth-child(3) {transition-delay: .3s;}
  header nav.is-active ul li:nth-child(4) {transition-delay: .4s;}
  header nav.is-active ul li:nth-child(5) {transition-delay: .5s;}
  header nav.is-active ul li:nth-child(6) {transition-delay: .6s;}
  header nav.is-active ul li:nth-child(7) {transition-delay: .7s;}
  header nav.is-active ul li:nth-child(8) {transition-delay: .8s;}
  header nav .entry {opacity: 0;transform: translateX(30px);transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);}
  header nav.is-active .entry {opacity: 1;transform: translateX(0);transition-delay: .8s;}
  header nav ul li a {font-size: 1.6rem;text-align: left;}
	header nav ul li a::after {left: 0;transform: none;}
  header nav .entry a {width: 100%;padding: 20px 0;border-radius: 50px;font-size: 2rem;text-align: center;}
  header nav ul li a:hover {transform: translateX(10px);}
  header nav ul li a span {text-align: left;}
}
/*--------------------------------------------------

    footer

--------------------------------------------------*/
footer {
	padding-top: clamp(20px, calc(20px + 10 * ((100vw - 375px) / 1545)), 30px);
	padding-bottom: clamp(20px, calc(20px + 10 * ((100vw - 375px) / 1545)), 30px);
	background: #222;
}
footer small {
	display: block;
	color: #fff;
	font-size: clamp(10px, calc(10px + 2 * ((100vw - 375px) / 1545)), 12px);
	text-align: center;
}
/*--------------------------------------------------

　   back top

--------------------------------------------------*/
.wrapper {position: relative;}
.page_top {
	display: block;
	position: fixed;
	bottom: 5%;
	right: 1%;
	z-index: 10;
	font-size: clamp(14px, calc(14px + 4 * ((100vw - 375px) / 1545)), 18px);
	letter-spacing: .14em;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}
.page_top #goToTop {color: #EB1734;}
.page_top #goToTop:after {
	content: '';
	display: block;
	position: absolute;
	top: -55px;
	left: 55%;
	transform: translateX(-50%);
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #EB1734;	
	transition: .3s ease all;
}
.page_top #goToTop:before {
	content: '';
	display: block;
	position: absolute;
	top: -44px;
	left: 55%;
	transform: translateX(-50%);
	width: 1px;
	height: 38px;
	background: #EB1734;
	transition: 0.3s ease all;
}
.page_top #goToTop:hover:after {top: -60px;}
.page_top #goToTop:hover:before {height: 43px;top: -50px;}