@charset "UTF-8";
/* import font from gg font*/
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300..700&family=EB+Garamond:wght@400..800&family=Roboto:wght@100..900&display=swap');
/* import font from gg font*/

:root {
  --font-main: "Cormorant Garamond", serif;;
  --font-eb: "EB Garamond", serif;
  --font-roboto:  "Roboto", sans-serif;
  --txt: #000;     
  --mcolor: #cae5cd;
  --scolor: #505050;
  --light-green: #edf0eb;
  --site_size: 1260px;
  --mfont-size: 18px;
  --border-color: #ededed;
  --green: #269558;
  
  --gray: #505050;
  --gray_txt: #5f5e5e;
}

.font-eb{font-family: var(--font-eb);}
.font-roboto{font-family: var(--font-roboto);}
.fw_normal{font-weight: 400}
.txt_gray{color: var(--gray_txt);}

/*==========================================================================*/
/*                           Common-Setting                                 */
/*==========================================================================*/
h1, h2, h3, h4, h5, h6, input, button, textarea, select, p, blockquote, th, td, pre, address, li, dt, dd {
font-size: var(--mfont-size);
-webkit-text-size-adjust: none;
font-weight: 600;
}
html:focus-within {scroll-behavior: smooth;}
img {vertical-align: middle;max-width: 100%;flex-shrink: 0;height: auto;}
*,
::before,
::after{box-sizing:border-box;outline: none;}
select { visibility: visible !important; }
a{transition:all ease 0.3s;text-decoration:none;}
a[href^="tel:"] {word-break: keep-all;}
/*==========================================================================*/
/*                               Container                                  */
/*==========================================================================*/
html{background:#fff}
body{color:var(--txt);-webkit-text-size-adjust:none;min-width:320px;font-family: var(--font-main);font-size: var(--mfont-size);margin: 0;background-color: #f9faf8}
table {width: 100%}
h1,h2,h3,h4,h5,h6{line-height: 1.5;margin: 0}
p,
dd,
dt,
li,
th,
td,
address{line-height: 1.7em;letter-spacing: 0;margin: 0}
p {margin: 0 0 1.5em;font-size: var(--mfont-size);}
p:last-child{margin-bottom: 0}
ul{padding: 0;margin: 0;list-style-type: none;}
ol{margin: 0;padding: 0 0 0 16px}

.bold{font-weight: bold;}
.left{text-align:left}
.right{text-align: right;}
.auto{margin-left: auto; margin-right: auto;}
.red{color: var(--red);}
.txt_line{text-decoration: underline;}
.m0a{display: block;margin: 0 auto;}
.f_big{font-size: 150%;}
.f_sm{font-size: 80%;}
.d-inline-block{display: inline-block;}
.d-flex {display: flex; }
.justify-between {justify-content: space-between; }
.justify-center {justify-content: center; }
.align-center {align-items: center;}
.align-start {align-items: flex-start; }
.center, .text-center {text-align: center; }
.text-left {text-align: left; }
.text-right {text-align: right; }
.text-justify{text-align: justify;}

.mb0{margin-bottom: 0}
.mb10{margin-bottom: 10px}
.mb20{margin-bottom: 20px}
.mb30{margin-bottom: 30px}
.mb40{margin-bottom: 40px}
.mb50{margin-bottom: 50px}

.container{width: var(--site_size);margin:0 auto;position:relative;max-width: 100%;padding: 0 20px;}

/*==========================================================
                       H E A D E R  
==========================================================*/
header{position: fixed; z-index: 10;transition: .3s;top: 0;left: 0;width: 100%}
header.show .h_box{box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);}
.h_box{width:100%;background-color: #fff;padding: 15px 0}
.h_inner{display:flex;justify-content:space-between;align-items: center;height: 100%;margin-bottom: 0;}
.h_right{display: flex;align-items: center;gap: 32px}
#logo{width: 540px}
#logo img {width: 50%}
.h_contact{display: flex;align-items: center;}
.h_contact > p{margin-bottom: 0;}
.h_contact > p:not(:last-child){margin-right: 20px;}
.h_contact_mail a{color:#FFF;font-weight: bold;text-align: center;background-color:var(--mcolor);display: flex;justify-content: center;align-items: center;width: 250px;height: 60px;position: relative;border-radius: 50px}
.h_contact_mail a span{position: relative; z-index: 2;font-size: 20px;display: inline-block; padding-left: 30px;}
.h_contact_mail a span::before{content: ''; position: absolute; width: 20px; height: 20px; left: 0; top: calc(50% - 10px); background: url('../images/ic_h_mail.png') no-repeat center /cover;}

.nav_list a{font-family: var(--font-roboto);}

/* HAMBUGER BUTTON */
.hamburger{font:inherit;display:block;overflow:visible;margin:0;padding:10px 8px 5px;cursor:pointer;transition-timing-function:linear;transition-duration:.15s;transition-property:opacity,filter;text-transform:none;color:inherit;border:0}
.hamburger-box{position:relative;display:inline-block;width:35px;height:24px}
.hamburger-inner{top:50%;display:block;margin-top:-2px}
.hamburger-inner,
.hamburger-inner::after,
.hamburger-inner::before{position:absolute;width:35px;height:2px;transition:all ease 0.15s;background-color:#000}
.hamburger-inner::after,
.hamburger-inner::before{display:block;content:""}
.hamburger-inner::before{top:-10px}
.hamburger-inner::after{bottom:-10px}
.hamburger--3dxy .hamburger-box{perspective:80px}
.hamburger--3dxy .hamburger-inner{transition:transform .15s cubic-bezier(0.645,0.045,0.355,1),background-color 0 cubic-bezier(0.645,0.045,0.355,1) .1s}
.hamburger--3dxy .hamburger-inner::after,
.hamburger--3dxy .hamburger-inner::before{transition:transform cubic-bezier(0.645,0.045,0.355,1) .1s}
.hamburger--3dxy.is_active .hamburger-inner{transform:rotateX(180deg) rotateY(180deg);background-color:transparent!important}
.hamburger--3dxy.is_active .hamburger-inner::before{transform:translate3d(0,10px,0) rotate(45deg)}
.hamburger--3dxy.is_active .hamburger-inner::after{transform:translate3d(0,-10px,0) rotate(-45deg)}

/*==========================================================
                  M A I N    V I S U A L
==========================================================*/
main{position: relative;padding-top: 100px;z-index: 2;}

/*==========================================================
                M A I N    C O N T E N T
==========================================================*/
/* DEFAULT TITLE */
.ttl{font-weight: 400;font-family: var(--font-eb);margin-bottom: 35px}
.ttl span{display: block;}
.ttl .ja{font-size: 72px;}

.btn_center_box{gap: 20px;margin-bottom: 30px;display: flex;justify-content: center;align-items: center;}
.btn_center_box .btn{margin-bottom: 0}
.btn a {display: flex; align-items: center; position: relative; color: var(--txt);width: fit-content; padding: 0; z-index: 1; font-weight: 700;font-family: var(--font-roboto);font-size: var(--mfont-size);padding-bottom: 9px;letter-spacing: 0.05em}
.btn a::after{content: '>';font-family: var(--font-roboto);font-size: 100%;font-weight: 300;color: currentColor;margin-left: 10px}
.btn a::before{content: '';position: absolute;width: 100%;height: 1px;background-color: var(--txt);left: 0;bottom: 0;transition: .3s}

.btn_box a{width: fit-content;padding: 12px 25px 9px;border-radius: 50px;background-color: var(--txt);color: #fff;text-align: center;display: flex;justify-content: center;align-items: center;overflow: hidden;z-index: 2;position: relative;transition: .3s;font-size: 16px;font-family: var(--font-roboto);letter-spacing: 0.04em;line-height: 1.5}
.btn_box a::before{content: '';position: absolute;width: 100%;height: 0;left: 0;bottom: 0;background-color: var(--mcolor);transition: .3s;z-index: -1}
.btn_box.center{display: flex;justify-content: center;}

.btn_100{width: 100%}
.btn_100 a{width: 100%;text-align: center;justify-content: center;}

section{padding: 80px 0;}
.content_2col{display: flex;align-items: flex-start;justify-content: space-between;}
.content_2col.reverse{flex-direction: row-reverse;}

/*==================== SEC01 ===================*/
.sec01{padding: 33px 0;background-color: #eef0eb;}
.sec01 .content_2col{align-items: center;}
.s01_ttl{font-family: var(--font-eb);font-size: 73px;display: flex;justify-content: flex-start;align-items: flex-start;flex-direction: column;line-height: 1;font-weight: 400;margin-top: 0;letter-spacing: 0.05em}
.s01_ttl .sm{font-size: 36px;line-height: 1}
.s01_img{width: 615px;flex-shrink: 0}


/*==================== SEC02 ===================*/
.sec02{padding-top: 70px;padding-bottom: 121px}
.s02_img{width: 380px;flex-shrink: 0;margin-left: 90px}
.s02_img02{width: 346px;margin-right: 90px;margin-left: 0}
.sec02 .content_2col.reverse{margin-top: 124px}
.sec02 .content_2col.reverse .s02_content{margin-top: 15px}
.s02_content .btn{margin-top: 38px}
.s02_img01{margin-top: 36px}
/*.s02_content p{text-align: justify;}*/

/*==================== SEC03 ===================*/
.sec03{background: #fff;padding: 77px 0}
.sec03_mb{margin-bottom: 160px}
.s03_img{width: 271px;flex-shrink: 0;margin-top: 30px}
.s03_content .content_box .s03_img_ttl{font-size: 36px;display: flex;align-items: flex-start;gap: 20px;margin-top: 30px;letter-spacing: 0.05em}
.s03_img_ttl .sm{font-size: 18px;margin-top: -5px}
.sec03 .content_2col{gap: 60px}
.s03_ttl{font-size: 48px;margin-bottom: 8px}
.s03_content{display: flex;flex-direction: column;gap: 0}
.s03_content .content_box p{letter-spacing: 0.01em}
/*.s03_content .content_box p{text-align: justify;}*/
.s03_img_transparent{opacity: 0}
.cus_line-height{line-height: 1.8}
.s03_th_w{width: 150px}
.s03_content02 .content_box{margin-bottom: 30px}
.s03_content02 .content_box:last-child{margin-bottom: 0}

/*==================== SEC04 ===================*/
.sec04{padding-top: 160px}
.s04_img{width: 430px;flex-shrink: 0;margin-left: 40px}
.s04_content{margin-top: 15px}
/*.s04_content p{text-align: justify;}*/
.s04_ttl{margin-bottom: 5px}
.s04_ttl{letter-spacing: 0.05em}

/*==================== SEC05 ===================*/
.sec05{margin: 130px 0;padding-top: 0}
.s05_ttl{margin-bottom: 70px;letter-spacing: 0.05em}
.btn_box_big a{padding: 8px 25px 12px;font-size: 22px;font-family: var(--font-eb);font-weight: 500}

/*==========================================================
                        F O O T E R
==========================================================*/
footer{background-color: var(--gray);position: relative;z-index: 3;padding: 102px 0 130px;overflow: hidden;}
footer::before{content: 'MEDIVA';position: absolute;font-family: var(--font-eb);font-size: 400px;font-weight: 400;color: var(--gray_txt);left: calc(50% - 1133px/2);top: -151px;line-height: 1em;display: none;}
.ft_content{display: flex;justify-content: space-between;align-items: flex-start;}
.ft_logo{margin-bottom: 24px}
.ft_logo a{font-size: 60px;color: #fff;margin-bottom: 20px;letter-spacing: 0.05em}
.ft_info{display: flex;flex-direction: column;gap: 4px}
.ft_info li,
.ft_info li a{color: #fff}
.ft_info ul{display: flex;align-items: flex-start;gap: 10px}
.ft_info ul li{font-family: var(--font-eb);font-weight: 400;letter-spacing: 0.05em}
.ft_info ul li.label{width: 100px}
.ft_info ul li .detail_link{margin-bottom:6px;font-weight: 400;width: fit-content;}
.ft_info ul li .detail_link a{position: relative;}
.ft_link a{color: #fff;position: relative;letter-spacing: 0.05em}
.ft_info ul li .detail_link a::before,
.ft_link a::before{content: '';position: absolute;width: 0;border-bottom: 1px solid #fff;left: 0;bottom: 0;transition: .3s}


.ft_link{display: flex;flex-direction: column;gap: 5px;margin-top: 12px}
.ft_link a::before{width: 100%}


/* BACK TO TOP */
.to_top{position:fixed;z-index:9;width:80px;height:80px;bottom:20px;right:20px;cursor:pointer;transition:all .2s;opacity:0;visibility:hidden;background: var(--green);display: flex;justify-content: center;align-items: center;}
.to_top img{width: 26px}
.to_top.show{transform:scale(1);opacity:1;visibility:visible}


/*==========================================================
                        T A B L E
==========================================================*/
table {border-collapse: collapse; border-spacing: 0; border: none;margin-bottom:0;padding:0 }
table.td_top td{vertical-align:top}
table.tb_fix{table-layout: fixed;}
table td.line-heigth{line-height: 2.2}
table{margin-bottom: 30px;border: 0}
table th,
table td{padding:0 15px;border: 12px solid transparent;border-left: 0;border-right: 0;text-align: left;}
table th{vertical-align: top;}
table td{padding-left: 33px}
table tr:first-child th,
table tr:first-child td{border-top-width: 0}
table tr:last-child th,
table tr:last-child td{border-bottom-width: 0}
table th{font-size: 18px;border-right: 1px solid var(--txt)}
table img{display:block;margin:auto;}

/*============ LIST ============ */
/* LIST 01 */
.list01{margin-bottom: 30px;}
.ml-30{margin-left: 30px}
.list01 li{display:block;padding-left:15px;margin-bottom:5px;position:relative;font-family: var(--font-main);}
.list01 li::before{content:'・';position: absolute;left: 0;top: 2px;margin-right: -3px}