@charset "utf-8";
.desc p:not(:last-child) {margin-bottom: 1em;}

.greetings .photo {position: relative; margin-bottom: clamp(2.5rem, 1.25rem + 3.125vw, 5rem);}
.greetings .photo:before {position: absolute; z-index: -1; content: ''; top: 0; bottom: -20px; left: 0; width: 58.3333%; background: var(--primary-color); opacity: .2;}
.greetings .photo img {border-radius: 0 225px 225px 0;}
.greetings .txt {width: 63.75%; padding-left: 50px;}
.greetings h2 {margin-bottom: 23px;}

.services {gap: 30px;}
.services .txt {background: var(--primary-color); padding: 15px;}
.services .img {position: relative; width: 100%; padding-bottom: 51.2825%; overflow: hidden;}
.services .img img {position: absolute; width: auto; height: auto; max-width: 100%; max-height: 100%; left: 50%; top: 50%; transform: translate(-50%, -50%); object-fit: contain;}
.service-item {position: relative; overflow: hidden; border-radius: 16px;}
.service-item:before {position: absolute; content: ''; top: 0; right: 0; bottom: 0;	left: 0; border: 1px solid #ddd; border-radius: 16px;}

.program .txt-box {border: 1px solid #ddd; border-radius: 16px; padding: 19px 15px; margin-bottom:clamp(1.875rem, 0.9375rem + 2.3438vw, 3.75rem);}
.program h2 {margin-bottom:clamp(1.5625rem, 1.0938rem + 1.1719vw, 2.5rem);}
.program h3 {margin-bottom: 10px;}
.program .sec:first-child {padding-top: 0;}
.program .sec {padding: var(--padding100-40) 0;}
.program .sec:nth-child(even) {background: #f8f8f8;}
.program .box p {line-height: 1.5em; color: #686868;}
.program .box-items {gap: 60px 20px; flex-wrap: wrap;}
.program .box-items .box {position: relative; width: calc((100% - 60px) / 3); background: #fff;}
.program .box-items.four-items .box {width: calc((100% - 60px) / 4);}
.program .box-items .box:before {position: absolute; content: ''; top: 0; right: 0; bottom: 0; left: 0; border: 1px solid #ddd; pointer-events: none;}
.program .box-items .txt {padding: 25px 22px;}
/* .program .cost-list {margin-top: clamp(0.9375rem, 0.4688rem + 1.1719vw, 1.875rem);} */
.program .cost-list li {display: flex; gap: 0px 4px; flex-wrap: wrap; position: relative; padding-left: 12px; font-size: clamp(0.8125rem, 0.75rem + 0.1563vw, 0.9375rem); line-height: 1.4666em;}
.program .cost-list li:before {position: absolute; content: '※'; left: 0;}
.program .cost-list li .tit {min-width: max-content}

.table-wrap {overflow: hidden; width: 100%;}
.table-wrap table {width: 100%; border-collapse: collapse;}
.table-wrap th {background: var(--primary-color); color: #fff; font-weight: 600; font-size: clamp(1rem, 0.875rem + 0.3125vw, 1.25rem);}
.table-wrap td {color: var(--dark-color); font-size: clamp(0.9375rem, 0.875rem + 0.1563vw, 1.0625rem); background: #fff;}
.table-wrap td:first-child {border-left: 0;}
.table-wrap td:last-child {text-align: center; border-right: 0;}
.table-wrap th, .table-wrap td {border: 1px solid #ddd; padding: 15px 30px;}
.table-wrap tbody tr:nth-child(even) td {background: #f9fcf4;}
.table-wrap .cnt {position: relative; padding-left: 25px; display: block;}
.table-wrap .cnt:before {position: absolute; left: 0; content: '•'; color: var(--secondary-color); font-weight: 700;}

.advantages .sec .img {width: 50%;}
.advantages .sec .img img {border-radius: 20px;}
.advantages .sec .txt {flex: 1; color: var(--dark-color); font-size: clamp(1.125rem, 0.875rem + 0.625vw, 1.625rem); line-height: 1.3077em; font-weight: 500; background: url('/images/sub/advantage-txt-logo.png') no-repeat center center; background-size: 76.3333%;}
.advantages .sec:nth-child(even), .why .sec:nth-child(even) {flex-direction: row-reverse;}
.advantages .sec:not(:last-child), .why .sec:not(:last-child) {margin-bottom: var(--padding100-40);}

.why .txt {position: relative; max-width: 600px; padding-right: var(--why-gap); flex: 1; color: #fff;}
.why .sec:nth-child(even) .txt {padding-right: 0; padding-left: var(--why-gap);}
.why .txt:before {position: absolute; content: ''; top: 50px; right: 0; width: calc(100% + var(--why-gap)); height: calc(100% - 100px); background: var(--primary-color);}
.why .sec:nth-child(even) .txt:before {right: auto; left: 0; background: var(--secondary-color);}
.why .txt:after {position: absolute; content: ''; right: 0; bottom: 50px; width: 100%; height: calc(100% - 50px); background: url('/images/sub/why-logo.png') no-repeat right bottom; background-size: 53.3335%;}
.why .sec:nth-child(even) .txt:after {right: calc(var(--why-gap) * -1);}
.why .txt-inner {position: relative;}
.why .img {width: 50%;}
.why .img-inner {position: relative; width: 100%; height: 0; padding-bottom: 52.08333%; overflow: hidden;}
.why .img-inner img {position: absolute; width: 100%; height: auto; max-width: 100%; min-height: 100%; left: 0; top: 50%; transform: translateY(-50%); object-fit: cover;}
.why h2 {font-size: clamp(1.125rem, 0.875rem + 0.625vw, 1.625rem); line-height: 1.3077em; font-weight: 500;}
.why p {line-height: 1.75em; margin-top: clamp(0.9375rem, 0.4688rem + 1.1719vw, 1.875rem);;}







