@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');
/*
font-family: "Noto Sans JP", sans-serif; 100 to 900
font-family: "Noto Serif JP", serif;  200 to 900
font-family: "Zen Old Mincho", serif; 400 to 900
*/
*, *::before, *::after {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

* {
    margin: 0;
    padding: 0;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, main {
    display: block;
}

body {
    line-height: 1.7;
    color: #221815;
    background-color: #fff;
    font-family: "Noto Sans JP", serif;
    font-weight: 400;
    overflow-x: auto;
    letter-spacing: 0.05em;
    padding-top: var(--header-h, 80px);
    scrollbar-gutter: stable;
}

h1, h2, h3, h4, h5, h6 {
    font-size: 1.6rem; 
    font-weight: 700;
    line-height: 1.3;
}

ul, ol {
    list-style: none;
}

a {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.3s;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
}

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

input, button, select, textarea {
    font-family: inherit;
    font-size: inherit;
    border: none;
    outline: none;
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
}

:root {
    --font-family-serif: "Noto Serif JP";
    --font-size-xs: 0.75rem; /* 12px */
    --font-size-s: 0.875rem; /* 14px */
    --font-size-m: 1rem;    /* 16px base */
    --font-size-l: 1.25rem;  /* 20px */
    --font-size-xl: 1.5rem;  /* 24px */
    --font-size-xxl: 2.25rem;  /* 36px */
    --section-base-pt:7.5rem;
    --section-bgcolor-gray:#eee;
    --wrap-s:860px;
    --wrap-m:1000px;
    --space-s: 2.25rem;/*36*/
    --space-m: 3.75rem;/*60*/
    --space-l: 5rem;/*80*/
    --space-xl: 6.5rem;/*100*/
    --space-xxl: 7.5rem;/*120*/
    --color-green:#60a879;
    --color-purple:#9960a0;
    --color-brown:#a07e60;
    --color-khaki:#a3a161;
    --color-blue:#7499af;
    --color-gray:#bababa;
    --color-light-green:#afd3bc;
    --color-light-purple:#ccafcf;
    --color-light-blue:#baccd7;
    --color-light-khaki:#d1d0b0;
    --transition-speed: 0.3s;
    --transition-timing: ease;
}

.pc-only { display: block; }
.sp-only { display: none; }

@media (max-width: 767px) {
    .pc-only { display: none; }
    .sp-only { display: block; }
}

/*default*/
.hidden {
    display: none !important;
}
#wrapper {
    position: relative;
    overflow-x: hidden;
    opacity: 0;
    transition: opacity 0.8s ease;
}
#wrapper.is-loaded {
  opacity: 1;
}
.rollover {
    transition: opacity 0.3s;
}
sup ,sub,
.txt-small {
    font-size: var(--font-size-xs);
}
.icon-blank,
.icon-blank-w {
    background-image: url(/assets/img/common/icon-blank-b.png);
    background-repeat: no-repeat;
    background-position: right top;
    padding-right: 1.5rem;
}
.icon-blank-w {
     background-image: url(/assets/img/common/icon-blank-w.png);
}
i.icon-blank-w {
    font-style: normal;
    display: inline-block;
    padding-right: 1.6rem;
    background-position: right 0.3em top 1px;
}

/*header*/
header {
    padding: 1.25rem;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #fff;
}
.headerwrap {
	max-width: 1400px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
    align-items: center;
}
/*img replace*/
.headerwrap h1 a,
.co-info p:first-child {
	height: 0;
	line-height: 1;
	overflow: hidden;
    background-repeat: no-repeat;
    background-size: 100% auto;
}
.headerwrap h1 a {
    display: block;
	background-image: url(../img/common/headerlogo.png);
	width: 249px;
	padding-top: 41px;
}
.headernav p {
    display: block;
    position: relative;
    width: 2.25em;;
    height: 1.875em;
    cursor: pointer;
    overflow: hidden;
}
.headernav p span {
    display: block;
    height: 0;
    padding-top: 2em;
    line-height: 2;
}
.headernav p::before ,
.headernav p span::before,
.headernav p span::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    height: 0.25em;
    background: #383838;
    border-radius: 0.125em;
    transition: all 0.3s ease;
}
.headernav p::before {
    top: 50%;
    transform: translateY(-50%) perspective(1px);
    will-change: transform;
}
.headernav p span::before {
    top: 0;
}
.headernav p span::after {
    bottom: 0;
}
.headernav p.is-active::before {
    width: 0;
    left: 50%;
    opacity: 0;
}
.headernav p.is-active span::before {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
.headernav p.is-active span::after {
    bottom: 50%;
    transform: translateY(50%) rotate(-45deg);
}
@media (min-width: 768px) {
    .headernav p.sp-only {
        display: none;
    }
}
.headernav span {
    height: 0;
    padding-top: 2em;
    line-height: 2;    
}
.h-nav-wrap {
    width: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    display: none;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 100;
    padding: var(--space-m) 0 var(--space-l);
}
.h-nav-inner {
    max-width: 920px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    color: #fff;
    gap: 0 2.5rem;
}
.h-nav-inner > ul {
    flex: 1;
}
.h-nav-inner li + li,
.h-nav-inner li ul {
    margin-top: 1.75rem;
}
.h-nav-inner a:link,
.h-nav-inner a:visited {
    color: #fff;
}

/*main*/
.content-wrap {
    max-width: var(--wrap-s);
    margin: 0 auto;
}
.content-wrap-w {
    max-width: var(--wrap-m);
    margin: 0 auto;
}
section a:link,
section a:visited {
    text-decoration: underline;
    text-decoration-thickness: 1px;
}
.slide-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.2s ease, transform 1.2s ease;
}
.slide-up.is-show {
  opacity: 1;
  transform: translateY(0);
}
.el-hd-1 {
    text-align: center;
    font-size: var(--font-size-xxl);
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    letter-spacing: 0.2em;
    padding-bottom: 0.9em;
    position: relative;
    margin-bottom: 2.22rem;
}
.el-hd-1 em {
    display: block;
    font-size: var(--font-size-l);
    font-style: normal;
}
.el-hd-1::after {
    content: "";
    display: block;
    width: 0.8em;
    height: 2px;
    background-color: #333333;
    position: absolute;
    left: 50%;
    bottom: 0;
    margin-left: -0.4em;
}
.el-hd-2 {
    font-size: var(--font-size-l);
    font-weight: 600;
    margin-bottom: 1.5rem;
}
.btn {
    display: flex;
    justify-content: center;
}
.btn a:link,
.btn a:visited,
a.arrow-r:link,
a.arrow-r:visited {
    text-decoration: none;
    transition: opacity var(--transition-speed) var(--transition-timing);
    background-color: #848484;
    color: #fff;
    text-align: center;
    display: block;
    min-width: 14.375em;
    line-height: 1;
    padding: 0.85em;
    box-shadow: 4px 4px 0px 0px #C1C1C1;
}
.btn a span,
a.arrow-r span,
a.txt-arrow-r span,
span.arrow-r {
    display: inline-block;
    padding: 0 1.25em;
    position: relative;
}
a.txt-arrow-r span {
    text-decoration: underline;
}
.btn a span::after,
.h-nav-inner li a::before,
#subfooter ul a span::after,
.footernav li a::before,
a.arrow-r span::after,
a.txt-arrow-r span::after,
span.arrow-r::after {
    content: "";
    width: 0.5rem; 
    height: 0.55rem;
    background-color: #fff;    
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%); 
}
.btn.sd-toggle a span::after {
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.btn.bak-btn a span {
    padding-right: 0;
}
.btn.bak-btn a span::after {
    right: inherit;
    left: 0;
    clip-path: polygon(100% 0, 100% 100%, 0 50%);
}
a.txt-arrow-r span::after {
    background-color: #221815;
}
.tablewrap {
    max-width: var(--wrap-s);
    margin: 0 auto;
    background-color: #fff;
    padding: 3.75rem;
    border-radius: 3px;
}
.table1,
.tabel2 {
    /*th,td下線つきtable*/
    border-collapse: collapse;    
}
.table1 th,
.table1 td {
    border-bottom: solid 1px #a7a7a7;
    line-height: 2;
    padding: 0.5rem;
}
.table1 th,
.tabel2 th {
    width: 17%;
    text-align: left;
    vertical-align: top;
}
.table1 tr:last-of-type th,
.table1 tr:last-of-type td {
    border-bottom: none;
}
a.map-icon {
    background-image: url(../img/common/icon-map.png);
    background-size: 0.9375em 1.25em;
    background-repeat: no-repeat;
    background-position: right center;
    padding-right: 1.2em;
}
.tabel2 {
    /*罫線なしテーブル*/
    line-height: 2;
}
.tabel2 th,
.tabel2 td {
    padding: 1em 0;
}
.accent-text {
    font-size: var(--font-size-l);
    font-family: var(--font-family-serif);
    line-height: 2;
}
figure.tb-margin {
    margin: var(--space-l) 0;
    text-align: center;
}
.al-center {
    text-align: center;
}
.al-right {
    text-align: right;
}
ol.ol-type-def {
    list-style: decimal;
    margin-left: 3ch;
}
ol.ol-type-alp {
    list-style-type: upper-latin;
    margin-left: 3ch;
}
p + ol.ol-type-def ,
ol.ol-type-def li + li,
p + ul.ul-type-def,
p + ol.ol-type-alp {
    margin-top: 1.5rem;
}
ul.ul-type-def {
    list-style: disc;
    margin-left: 3ch;
    margin-bottom: 2.5rem;
}
p + ul.ul-type-def li + li,
ol.ol-type-alp li + li {
    margin-top: 1rem;
}

/*subfooter*/
#subfooter {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: translateY(100%);
    transition: transform 0.6s ease, opacity 0.6s ease;
    z-index: 900;
    background-color: var(--color-blue);
    padding: 1.56rem 0 1.875em;
}
#subfooter ul {
    display: flex;
    justify-content: space-between;
    max-width: var(--wrap-m);
    margin: 0 auto;
    flex-shrink: 1;
}
#subfooter ul li {
    width: 31.6%;
}
#subfooter ul li a:link,
#subfooter ul li a:visited {
    display: block;
    background-color: #fff;
    border-radius: 0.3em;
    text-align: center;
    color: var(--color-blue);
    font-weight: 700;
    padding: 1.25em;
    line-height: 1;
    background-size: clamp(21px, 4.2vw, 58px) auto;
    background-repeat: no-repeat;
     background-position: left 0.8em center;   
    box-shadow: 3px 3px 0 0 var(--color-light-blue);
    transition: opacity var(--transition-speed) var(--transition-timing);
}
#subfooter ul li a.inq-a {
    background-image: url(../img/common/icon-inquiry-a.png);
}
#subfooter ul li a.inq-r {
    background-image: url(../img/common/icon-inquiry-r.png);
}
#subfooter ul li a.inq-o {
    background-image: url(../img/common/icon-inquiry-o.png);
    background-position: left 0.2em center;
}
#subfooter ul li a span.pc-only {
    display: inline-block;
    position: relative;
    padding: 0 1em 0 0;
    margin-right: -3em;
}
#subfooter ul a span::after {
    background-color: var(--color-blue)
}
/*footer*/
footer {
    background-color: #666666;
    color: #fff;
    padding: 4.75rem 0 1.875rem;
}
.footerwrap {
    max-width: var(--wrap-s);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
}
.co-info p:first-child {
    background-image: url(../img/common/footerlogo.png);
    background-size: 224px 36px;
    padding-top: 36px;
    margin-bottom: 3rem;
}
.footernav {
    display: flex;
    justify-content: space-between;
    gap: 0 3.75rem;
}
.h-nav-inner li,
.footernav li {
    position: relative;
    padding-left: 1em;
}
.h-nav-inner li a,
.footernav li a {
    transition: opacity var(--transition-speed) var(--transition-timing);
}
.h-nav-inner li a::before,
.footernav li a::before {
    right: inherit;
    left: 0;
    top: 0.85em;
}
.footernav li + li {
    margin-top: 0.6em;
}
.footernav li ul {
    margin-top: 0.6em;
}
.footernav li.improve {
    margin-top: 3em;
}
.footer-copyright {
    text-align: center;
    font-size: var(--font-size-xs);
    margin-top: var(--space-xl);
}

/*modal*/
.modalwrap {
    display: none;
}
.modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: 1000;
  place-items: center;
}
.modal-window {
  position: relative;
  background: #eeeeee;
  padding: 1rem;
  display: inline-block;
  max-width: 90vw;
  max-height: 80vh;
  border-radius: 10px;
}
.modal-close {
  position: absolute;
  top: -3rem;
  right: 0;
  width: 2.25rem;
  height: 2.25rem;
  background: none;
  border: none;
  cursor: pointer;
}
.modal-close::before, .modal-close::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 1px;
  background: #fff;
}
.modal-close::before { transform: translate(-50%, -50%) rotate(45deg); }
.modal-close::after { transform: translate(-50%, -50%) rotate(-45deg); }

/* スクロールエリア：min-height指定 */
.modal-body {
  min-height: 200px;
  max-height: 70vh;
  overflow-y: auto;
  padding-right: 10px;
}
.modal-content {
    padding: 1.25rem 1rem;
}

/* スクロールバー */
.modal-body::-webkit-scrollbar {
  width: 16px;
}
.modal-body::-webkit-scrollbar-track {
  background: #fff;
  border-radius: 16px;
}
.modal-body::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 14px;
  border: solid 2px #fff;
}

@media (hover: hover) {
    section a:hover,
    a.txt-arrow-r span:hover {
        text-decoration: none;
    }
    .btn a:hover,
    #subfooter ul li a:hover,
    .h-nav-inner li a:hover,
    .footernav li a:hover,
    .rollover:hover {
        opacity: 0.7;
    }
}

@media (max-width: 1024px) {
    .content,
    #subfooter ul {
        width: 95%;
    }
    .h-nav-inner {
        width: 90%;
    }
}
@media (max-width: 860px) {
    .footerwrap {
        width: 90%;
    }    

    .co-info {
        margin-right: 2rem;
    }

    .footernav {
        gap: 0 2rem;
    }

    :root {
        --font-size-l: 1.125rem;  /* 18px */
        --font-size-xl: 1.25rem;  /* 20px */
        --font-size-xxl: 1.8rem;  /* 30px */
        --section-base-pt: 5rem;
        --section-bgcolor-gray: #eee;
        --wrap-s: 90%;
        --wrap-m: 95%;
        --space-s: 1.25rem;/*20*/
        --space-m: 2.25rem;/*36*/
        --space-l: 3.75rem;/*60*/
        --space-xxl: 5rem;/*80*/        
    }
}
@media (min-width: 768px) and (max-width: 860px) {
    #subfooter ul li,
    .footerwrap {
        font-size: min(2vw, var(--font-size-m));
    }
}
@media (max-width: 767px) {
    body.is-fixed {
        overflow: hidden;
        height: 100%;
    }
    .h-nav-wrap {
        position: fixed; 
        left: 0;
        width: 100%;
        height: calc(100vh - 60px); 
        overflow-y: auto; 
        -webkit-overflow-scrolling: touch; 
    }
    .headernav .h-nav-wrap > p.is-active {
        margin: 2rem 1.8rem -1rem auto;
    }
    .headernav .h-nav-wrap > p.is-active span.closemenu::before,
    .headernav .h-nav-wrap > p.is-active span.closemenu::after {
        background: #fff;
    }
    .headerwrap h1 a {
        width: 54.16vw;
        padding-top: 8.888vw;
    }
    .h-nav-inner {
        display: block;
        width: 76%;
    }
    .h-nav-inner > ul + ul {
        margin-top: 1.75rem;
    }
    .tablewrap {
        padding: 1.5rem;
    }
    .table1 th, .tabel2 th {
        width: 30%;
    }
    #subfooter {
        display: flex;        
        padding: 1.56rem 0;
    }
    #subfooter p.sp-only {        
        width: 13%;
        writing-mode: vertical-rl;
        color: #fff;
        font-weight: 700;
        font-size: 0.81rem;
        letter-spacing: 0.5em;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    #subfooter ul {
        width: 83.3%;
        margin: 0;
    }
    #subfooter ul li {
        width: 30.4%;
    }
    #subfooter ul li a span.pc-only {
        display: none;
    }
    #subfooter ul li a:link,
    #subfooter ul li a:visited {
        border-radius: 50%;
        padding: 0;
        aspect-ratio: 1 / 1;
        background-size: 11.66vw auto;
        background-position: center top 1rem;
        display: flex;
        align-items: center;
        justify-content: center;        
    }
    #subfooter ul li a span.sp-only {
        margin-top: 2.5rem;
        font-weight: 700;
    }
    #subfooter ul a span::after {
        display: none;
    }
    footer {        
        padding: 3.75rem 0 3rem;
    }
    .footerwrap {
        width: 83.3%;
        display: block;
    }
    .footernav {
        display: block;
    }
    .co-info {
        margin-right: 0;
        margin-bottom: 2.8rem;
    }
    .co-info p:first-child {
        width: 62.22vw;
        padding-top: 10vw;
    }
    .footernav ul + ul {
        margin-top: 0.6em;
    }
    .footernav li.improve {
        margin-top: 2.5em;
    }
    .footer-copyright {
        margin-top: 5rem;
    }
    .modal-content {
        padding-right: 0.5rem;
        padding-left: 0.5rem;
    }
}
@media (max-width: 430px) {
    :root {
        --font-size-l: 4.18vw;  /* 18px */
        --font-size-xl: 4.65vw;  /* 20px */
        --font-size-xxl: 6.9vw;  /* 30px */
    }
    body {
        font-size: clamp(0.875rem, 3.7vw, 1rem);
    }
}
@media print {
body {
	width: 210mm;
  height: 296mm;
}
}