@charset "utf-8";
/*
Theme Name: Be filled with
*/
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

* { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 62.5%; scroll-behavior: smooth; }
body { background: #fff; color: #222; font-family: "Noto Serif JP", serif; font-size: 1.6rem; font-weight: 300; line-height: 1.6; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1,h2,h3,h4,h5,h6 { font-weight: 300;}
strong { font-weight: 500;}
ul, ol { list-style: none; }
button, input, select, textarea { font: inherit; }
section { overflow: hidden;}
:root {
	--blue: #7CAABE;
	--deep-blue: #587886;
	--pale-blue: #eef6f8;
	--soft-blue: #dce9ee;
	--rose: #BE5F69;
	--ink: #6788AE;
	--line: #d8e3e7;
	--grey: #F0F3F7;
	--max: 1000px;
}
.center { text-align: center!important;}
.right { text-align: right!important;}
.left { text-align: left;}
.mt0 { margin-top: 0 !important;}
.mt8 { margin-top: 8px !important;}
.mt16 { margin-top: 16px !important;}
.mt24 { margin-top: 24px !important;}
.mt32 { margin-top: 32px !important;}
.mt40 { margin-top: 40px !important;}
.mt48 { margin-top: 48px !important;}
.mt56 { margin-top: 56px !important;}
.mt64 { margin-top: 64px !important;}
.mt80 { margin-top: 80px !important;}
.mt160 { margin-top: 160px !important;}
.pt0 { padding-top: 0 !important;}
.fs10 { font-size: clamp(0.8rem,1.0vw,1.0rem) !important;}
.fs11 { font-size: clamp(0.9rem,1.1vw,1.1rem) !important;}
.fs12 { font-size: clamp(1.0rem,1.2vw,1.2rem) !important;}
.fs13 { font-size: clamp(1.1rem,1.3vw,1.3rem) !important;}
.fs14 { font-size: clamp(1.2rem,1.4vw,1.4rem) !important;}
.fs15 { font-size: clamp(1.3rem,1.5vw,1.5rem) !important;}
.fs16 { font-size: clamp(1.4rem,1.6vw,1.6rem) !important;}
.fs18 { font-size: clamp(1.5rem,1.7vw,1.7rem) !important;}
.fs18 { font-size: clamp(1.5rem,1.7vw,1.8rem) !important;}
.fs20 { font-size: clamp(1.6rem,1.8vw,2.0rem) !important;}
.fs22 { font-size: clamp(1.7rem,1.9vw,2.2rem) !important;}
.fs24 { font-size: clamp(1.8rem,2.0vw,2.4rem) !important;}
.fs26 { font-size: clamp(1.9rem,2.1vw,2.6rem) !important;}
.fs28 { font-size: clamp(2.0rem,2.2vw,2.8rem) !important;}
.fs30 { font-size: clamp(2.1rem,2.3vw,3.0rem) !important;}
.fs32 { font-size: clamp(2.2rem,2.4vw,3.2rem) !important;}
.fs34 { font-size: clamp(2.3rem,2.5vw,3.4rem) !important;}
.fs36 { font-size: clamp(2.4rem,2.6vw,3.6rem) !important;}
.fs38 { font-size: clamp(2.5rem,2.7vw,3.8rem) !important;}
.fs40 { font-size: clamp(2.6rem,2.8vw,4.0rem) !important;}
.fs42 { font-size: clamp(2.7rem,2.9vw,4.2rem) !important;}
.fs44 { font-size: clamp(2.8rem,3.0vw,4.4rem) !important;}
.fs46 { font-size: clamp(2.9rem,3.1vw,4.6rem) !important;}
.fs48 { font-size: clamp(3.0rem,3.2vw,4.8rem) !important;}
.fs50 { font-size: clamp(3.1rem,3.3vw,5.0rem) !important;}
.fs52 { font-size: clamp(3.2rem,3.4vw,5.2rem) !important;}
.fs54 { font-size: clamp(3.3rem,3.5vw,5.4rem) !important;}
.fs56 { font-size: clamp(3.4rem,3.6vw,5.6rem) !important;}
.fs58 { font-size: clamp(3.5rem,3.7vw,5.8rem) !important;}
.fs60 { font-size: clamp(3.6rem,3.8vw,6.0rem) !important;}
.fs62 { font-size: clamp(3.7rem,3.9vw,6.2rem) !important;}
.fs64 { font-size: clamp(3.8rem,4.0vw,6.4rem) !important;}
.fs72 { font-size: clamp(4.0rem,7.2vw,7.2rem) !important;}
.fs76 { font-size: clamp(4.1rem,7.6vw,7.6rem) !important;}
.fs80 { font-size: clamp(4.2rem,8.0vw,8.0rem) !important;}
.fs96 { font-size: clamp(4.2rem,7.2vw,9.6rem) !important;}
.fs128 { font-size: clamp(8.0rem,10vw,12.8rem) !important;}
.fs200 { font-size: clamp(8.0rem,10vw,200rem) !important;}
.lora { font-family: "Lora", serif; font-optical-sizing: auto; font-weight: 700; font-style: normal;}
.tin { font-weight: 200;}
.light { font-weight: 300;}
.regular { font-weight: 400;}
.medium { font-weight: 500;}
.semi-bold { font-weight: 600;}
.bold { font-weight: 700;}
.black { font-weight: 900;}
.ink { color: var(--ink) !important;}
.blue { color: var(--blue) !important;}
.deep-blue { color: var(--deep-blue) !important;}
.rose { color: var(--rose) !important;}
.white { color: #FFF !important;}
.serif { font-family: "Cormorant Garamond", "Times New Roman", serif; font-weight: 300; letter-spacing: 0.03em;}
.sans-serif { font-family: "Noto Sans JP", sans-serif;}
.underline { text-decoration: underline;}
.container { width: min(86%, var(--max)); margin-inline: auto; }
.wide { width: min(90%, 1200px); margin-inline: auto; }
.section { padding: 32px 0; }
.section-sm { padding: 32px 0; }
.bg { background: var(--grey); }
.blue-bg { background: var(--blue); }
.center { text-align: center; }
.lead { font-size: clamp(1.4rem,1.8vw,1.8rem); line-height: 2.4; }
.muted { color: #78858b; }

#site-header { position: absolute; inset: 0 0 auto; z-index: 20; display: flex; align-items: flex-start; justify-content: space-between; padding: 24px 42px;}
.logo img { width: 200px; }
.global-nav > ul { display: flex; gap: 34px; align-items: flex-start; }
.global-nav > ul > li { position: relative;}
.global-nav > ul > li > a { display: block; padding: 16px 0; text-align: center; font-family: "Cormorant Garamond", serif; font-size: 1.9rem; font-weight: 400; line-height: 1.1; color: #2f363b; }
.global-nav span { display: block; margin-top: 3px; font-family: "Noto Sans JP", sans-serif; font-size: 1rem; font-weight: 400; }
.menu-toggle { display: none; }

.hero { position: relative; background: #edf4f7;}
.hero .swiper-wrapper { min-height: 768px;}
.hero .swiper-slide { height: auto;}
.hero-img { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 1560px; height: 100%; object-position: center top; object-fit: cover; }
.hero-body { position: relative; z-index: 1; width: min(86%, var(--max)); margin: 0 auto; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);}
.hero-kicker { display: flex; align-items: center; gap: 1em; margin-bottom: 24px; font-size: 1.4rem; font-weight: 400;}
.hero-kicker::after { content: ''; display: block; width: 96px; height: 1px; background: #707070; opacity: 0.54;}
.hero h1 { color: #2f383f; font-size: clamp(2.4rem, 3.7vw, 3.7rem); line-height: 1.08; }
.hero .white h1 { color: #FFF;}
.hero .white .hero-kicker::after { background: #FFF;}
.hero-copy { margin-top: 24px; line-height: 2.1;}
.hero-slider .hero-title { max-width: 520px; font-size: clamp(2.7rem, 3.2vw, 4.2rem); font-weight: 400; line-height: 1.75; }
.hero-slider::after { content: "Be filled with"; position: absolute; left: 50%; transform: translateX(-50%); bottom: 0; color: rgba(255,255,255,.3); font-family: "Cormorant Garamond", serif; font-size: clamp(8rem, 18vw, 23rem); font-weight: 300; font-style: italic; line-height: .7; white-space: nowrap; }

.page-hero { min-height: 400px; }
.page-hero .hero-img { object-position: right center;}
.page-hero .hero-kicker { flex-direction: column; align-items: flex-start; gap: 4px; font-size: clamp(1.8rem, 2.2vw, 2.2rem); font-weight: 500;}
.page-hero h1 { font-size: clamp(4.4rem, 5.5vw, 7.0rem); }
.page-hero .hero-copy { margin-top: 10px; }

.home-cta { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(2, 1fr); width: min(920px, 80%); margin: -58px auto 0; }
.home-cta a { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 116px; padding: 0 38px; background: url(img/top/personal.png) right bottom no-repeat; background-size: cover; font-size: 2.4rem; font-weight: 400; color: #fff;}
.home-cta a:nth-child(2) { background-image: url(img/top/corporate.png);}
.home-cta span { display: block; font-size: 1.1rem; }
.arrow::after { content: ""; position: absolute; top: 50%; right: 32px; transform: translateY(-50%); width: 32px; height: 12px; background: url(img/common/arrow_white.svg) center no-repeat;}

.section-title { margin-bottom: 24px; color: var(--rose); font-family: "Cormorant Garamond", serif; font-size: clamp(5.2rem, 10vw, 10rem); font-weight: 300; line-height: .9; text-align: center; }
.section-title span { display: block; margin-top: 12px; font-family: "Noto Serif JP", serif; color: #333; font-size: 1.8rem; line-height: 1.4; }

.split-choice { background: url("img/top/about_bg.png") center/cover;}
.choice-tabs { display: grid; grid-template-columns: repeat(2, 1fr); margin: 34px auto 0; background: rgba(255,255,255,.75);}
.choice-tabs h3 { padding: 9px; background: #8994A2; color: #fff; text-align: center; }
.choice-tabs div:nth-child(2) h3 { background: var(--blue); }
.choice-tabs ul { padding: 22px 34px 26px; text-align: left; line-height: 1.9; }
.choice-tabs li::before { content: "・"; }

.service-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.service-card { position: relative; min-height: 340px; overflow: hidden; }
.service-card img { width: 100%; height: 100%; object-fit: cover; }
.service-card .panel { position: absolute; left: 0; bottom: 0; width: min(72%, 420px); padding: 40px 32px; background: rgba(255,255,255,.9); }
.service-card .num { position: absolute; left: 32px; top: -48px; color: #8B9498; opacity: 0.6; font-size: 7.6rem; line-height: 1; }
.service-card h3 { color: #63717a; font-size: clamp(1.8rem,2.4vw,2.4rem); line-height: 1.2; color: #7CAABC;}
.service-card h3 span { font-size: 1.8rem;}
.service-card p { margin-top: 8px; line-height: 1.8; }
.btn { position: relative; display: flex; flex-direction: column; justify-content: center; max-width: 320px; min-width: 210px; margin-top: 24px; padding: 16px 80px 16px 24px; background: url(img/top/personal.png) right bottom / cover;  color: #fff; font-family: "Cormorant Garamond", serif; font-size: clamp(2rem,2.8vw,2.8rem); line-height: 1;  transition: .2s ease-out;}
.btn small { display: block; margin-top: 5px; font-family: "Noto Sans JP", sans-serif; font-size: 1.1rem; }
.btn.long { max-width: 440px;}
.btn.outline { background: transparent; border: 1px solid rgba(255,255,255,.75); }
.btn.alt { background-image: url(img/top/corporate.png);}

.profile-mini { display: grid; grid-template-columns: 264px 1fr; gap: 24px 54px; align-items: center; width: min(720px, 90%); margin: 0 auto; }
.profile-mini img { aspect-ratio: 1; object-fit: cover; }
.profile-mini h3 { font-size: 2.1rem; letter-spacing: .25em; }
.profile-mini h3 .muted { font-size: 1.7rem; color: #BBCDD4; letter-spacing: 0; }
.profile-mini .blue { margin-bottom: 12px; font-size: 1.5rem;}
.profile-mini p { font-size: 1.4rem;}

.topics-slider { overflow: visible;}
.topics-slider .swiper-slide { width: 25%;}
.topics-slider .swiper-slide a { display: block; }
.topic-thumb { aspect-ratio: 1.55; background: #ddd; }
.swiper-pagination-bullets { position: relative; margin-top: 16px;}
.swiper-pagination-bullet { background: #DDD; border-radius: 0; height: 5px; opacity: 1; width: 40px;}
.swiper-pagination-bullet-active { background: #7CAABC;}

.contact-band { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; margin: 0 auto; border-radius: 100px 100px 0 0; overflow: hidden; }
.contact-band img { width: 100%; height: 100%; object-fit: cover; }
.contact-band .contact-panel { display: flex; flex-direction: column; justify-content: center; padding: 60px 70px; background: var(--blue); color: #fff; }
.contact-band .section-title { margin: 0 0 26px; color: #fff; text-align: left; }
.contact-band .section-title span { color: #FFF;}

.copy-block p + p { margin-top: 28px; }

.price-table { width: calc(100% + 60px); border-collapse: separate; border-spacing: 30px 0; margin: 0 -30px;}
.price-table th { padding: 10px; background: var(--deep-blue); color: #fff; }
.price-table td { padding: 18px; text-align: center; background: #FFF;}
.note { margin-top: 14px; font-size: 1.1rem; line-height: 1.8; }

.voice-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.voice-card { padding: 24px; background: #fff; border: 1px solid var(--line); box-shadow: 0 3px 6px rgba(0,0,0,.18); }
.voice-card .person { display: flex; gap: 16px; align-items: center; }
.voice-card .person img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.voice-card .sec { display: block; width: 100%; margin-top: 8px; padding-top: 8px; border-top: 1px solid #EEEEEE;}
.label { display: inline-block; margin: 10px 0 10px -32px; padding: 4px 12px; background: #5f7d88; color: #fff; font-size: clamp(1.6rem,1.8vw,1.8rem); }
.voice-slider .swiper-wrapper { align-items: stretch; }
.voice-slider .swiper-slide { height: auto; }
.voice-slider .voice-card { display: flex; flex-direction: column; align-items: flex-start; padding: 32px; }
.voice-slider .voice-card p { font-size: 1.4rem; line-height: 2; }
.voice-slider .voice-card .person { align-items: flex-start; min-height: 104px; }
.voice-slider .voice-card .person img { width: 92px; height: 92px; flex: 0 0 92px; }
.voice-slider .voice-card .person b { color: #586A71; font-size: clamp(1.6rem,2vw,2rem); font-weight: 300; line-height: 1.6; }
.voice-slider .blue-label { background: var(--blue); }
.voice-slider .swiper-pagination { margin-bottom: 28px; }

.faq dt { position: relative; padding: 22px 48px; border-bottom: 1px solid var(--line); cursor: pointer; }
.faq dt::before { content: "Q"; position: absolute; top: 0.2em; left: 4px; color: var(--blue); font-family: "Cormorant Garamond", serif; font-size: 4.6rem; line-height: 1; }
.faq dt::after { content: "+"; position: absolute; right: 12px; top: 20px; font-size: 1.8rem; color: #586A71; }
.faq dt.open { border-bottom: none;}
.faq dt.open::after { content: "-"; }
.faq dd { position: relative; display: none; padding: 0 0 24px 48px; border-bottom: 1px solid var(--line); font-family: "Noto Sans JP", sans-serif; }
.faq dd::before { content: "A"; position: absolute; left: 4px; color: var(--blue); font-family: "Cormorant Garamond", serif; font-size: 4.6rem; line-height: 1; }

.entry-block { display: grid; grid-template-columns: 1.3fr .7fr; gap: 36px; align-items: center;}
.entry-box, .outline-box { border: 6px solid #dfecef; background: #fff; padding: 22px 28px; }
.entry-box h3, .outline-box h3 { margin-bottom: 12px; color: #5f7d88; }
.entry-contents { background: #FFF; border: 8px solid #E0E8EB;}
.entry-contents h3 { padding: 0.5em; text-align: center; background: #E0E8EB; color: #FFF;}
.entry-contents dl { display: grid; grid-template-columns: auto 1fr; gap: 2em; padding: 1em;}
.entry-contents dl:last-child { border-top: 1px solid #EEEEEE;}

.roadmap { background: url("img/new-version-of-me/roadmap_bg.png") center top/cover; }
.roadmap h3 { margin: 1em 0 0.5em; font-size: clamp(1.8rem,2.2vw,2.2rem); color: var(--blue);}
.road-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.road-item { display: flex; flex-direction: column; gap: 8px; background: #FFF; border-bottom: 6px solid var(--blue); text-align: center; }
.road-item b { display: block; padding: 16px; color: var(--blue); font-size: clamp(3rem,5vw,5rem); font-weight: 400; line-height: 1; }
.road-item span { margin-top: auto; padding: 8px 4px 4px; background: var(--blue); font-family: "Noto Sans JP", sans-serif; font-size: clamp(1rem,1.2vw,1.2rem); line-height: 1; color: #FFF;}
.road-weekly { display: flex; justify-content: center; align-items: center; gap: 24px 40px; margin-top: 40px; padding: 24px; background: #FFF; border: 1px solid var(--blue); line-height: 1.4;}
.road-weekly h3 { margin: 0; line-height: 1;}

.program { position: relative; overflow: hidden;}
.program::after { content: "PROGRAM FLOW"; position: absolute; top: 0; left: 0; transform-origin: left top; transform: rotate(90deg) translateY(-96%); font-family: "Cormorant Garamond", serif; font-size: clamp(8rem, 18vw, 23rem); font-weight: 300; line-height: .7; white-space: nowrap; color: var(--blue); z-index: -1; opacity: 0.3;}
.program h2 { position: absolute; transform-origin: left top; transform: rotate(90deg) translateY(-100%);}
.program .container { display: grid; grid-template-columns: auto 1fr;}
.program-list { display: grid; gap: 12px; padding-left: 3em; }
.program-item { position: relative; display: grid; grid-template-columns: 1fr 260px; gap: 26px; padding-left: 32px; background: url(img/new-version-of-me/flow.svg) left bottom no-repeat; }
.program-item::before { content: ''; position: absolute; top: 0; left: 2px; width: 8px; height: 8px; background: #7CAABE; border-radius: 50%;}
.program-item img { width: 100%; height: 140px; object-fit: cover; }
.program p.fs20 { transform-origin: left top; transform: rotate(90deg) translateY(-70%);}

.recommend { background: url("img/new-version-of-me/recommend_bg.png") center/cover; }
.recommend-list { display: grid; gap: 18px;}
.recommend-item { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 24px 40px; padding: 24px; background: #FFF; }
.recommend-item b { color: var(--blue); font-size: clamp(5rem,5vw,8rem); line-height: 1; }
.recommend-item ul { text-align: left; line-height: 1.9; }
.recommend-item li { position: relative; padding-left: 1em;}
.recommend-item li::before { content: "・"; position: absolute; top: 0; left: 0;}

.difference { display: grid; grid-template-columns: 1fr 390px; gap: 56px; align-items: center; }
.difference ul { display: flex; flex-wrap: wrap; gap: 8px;}
.difference li { padding: 0.4em 1em; background: var(--rose); border-radius: 40px; color: #FFF;}

.training-box { padding: 32px; border: 8px solid var(--blue); }
.training-box h2 { margin: -40px -40px 28px; padding: 14px; background: #4E8BA5; background: linear-gradient(90deg, rgba(78, 139, 165, 1) 0%, rgba(117, 171, 194, 1) 50%, rgba(78, 139, 165, 1) 100%); color: #fff; text-align: center; }
.training-box.blue2 { border-color: #7C92BE; }
.training-box.blue2 h2 { background: #4E74A5; background: linear-gradient(90deg, rgba(78, 116, 165, 1) 0%, rgba(117, 156, 194, 1) 50%, rgba(78, 116, 165, 1) 100%);}
.training-box h3 { margin-top: 26px; padding: 8px 16px; background: #eaf2f5; color: #637b86; }
.training-box ul { margin-left: 1.5em; list-style: disc; }
.training-box li::marker { color: #7CAABE;}
.scadule { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;}
.scadule dl { display: grid; grid-template-columns: auto 1fr; border: 1px solid #B8CAD2;}
.scadule dt { display: flex; justify-content: center; align-items: center; padding: 16px; background: #E8F2F6; border-right: 1px solid #B8CAD2;}
.scadule dd { padding: 16px;}
.reference { display: grid; grid-template-columns: auto 1fr; gap: 8px;}
.reference table { border-collapse: collapse; text-align: center;}
.reference th, .reference td { padding: 8px; border: 1px solid #B8CAD2;}
.reference th { background: #7CAABE; color: #FFF;}
.reference td:nth-child(2), .reference td:nth-child(4) { background: #E8F2F6;}
.reference caption { caption-side: bottom; text-align: left;}
.training-box .st { padding: 0.2em 0 0.2em 1em; border-left: 4px solid #648BB6;}
.training-box .box { padding: 16px; border: 3px solid #DCE8F2;}

.two-cards { display: grid; grid-template-columns: repeat(2, 1fr); }
.choice-card { position: relative; color: #fff; background: #8299B7; }
.choice-card > div { padding: 32px 80px 32px 32px; background: url(img/common/arrow_white.svg) right 32px top 32px no-repeat; }
.choice-card:nth-child(2) { background: #8994A2; }
.choice-card h2 { margin-bottom: 12px; padding-bottom: 16px; border-bottom: 1px solid #FFF; line-height: 1.5; }
.choice-card .gcs { width: auto !important;}

.profile-lead { background:url('img/profile/first_bg.png') center/cover;}
.profile-story.reverse { grid-template-columns: 280px 1fr; }
.profile-story.reverse figure { order: -1; }
.profile-story h2 { position: relative; margin-bottom: 22px; padding-bottom: 12px; border-bottom: 1px solid #B1B1B1; color: #536069; }
.profile-story h2::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 100px; height: 1px; background: #7CAABE;}
.career { position: relative;}
.career::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 80%; background: #CBD2D9; background: linear-gradient(90deg, rgba(203, 210, 217, 1) 0%, rgba(255, 255, 255, 1) 100%); z-index: -1;}
.career-box { position: relative; padding: 52px 70px; }
.career-box::before { content: ''; position: absolute; top: 0; left: 0; width: 100vw; height: 100%; background: #fff; box-shadow: 0 0 10px rgba(0,0,0,.16); z-index: -1;}
.career-box h3 { position: relative; margin: 25px 0; padding: 8px 20px; background: #65849F; background: linear-gradient(90deg, rgba(101, 132, 159, 1) 0%, rgba(88, 106, 113, 1) 100%); color: #fff; text-align: center; }
.career-box h3::after { content: ''; position: absolute; bottom: 1px; left: 0; width: 100%; height: 2px; background: #FFF;}
.career-box h4 { display: grid; grid-template-columns: 150px 1fr; align-items: center; gap: 1em; margin-bottom: 1em; color: #4E8BA5; }
.career-box h4 b { padding: 8px; text-align: center; background: #7CAABE; color: #fff; text-align: center; }
.career-box ul { margin-left: 1.5em; list-style: disc; }
.career-box li::marker { color: #4E8BA5;}

.form-row { display: grid; grid-template-columns: auto 1fr; }
.form-row dt { padding: 10px 10px 10px 0; border-bottom: 1px solid var(--line);}
.form-row dd { padding: 10px 0; border-bottom: 1px solid var(--line);}
.form-row label { display: block; margin: 2px 0;}
.form-row dt:last-of-type, .form-row dd:last-of-type { border-bottom: none;}
.required { float: right; margin: 4px 0 0 4px; padding: 1px 8px; border-radius: 99px; background: var(--rose); color: #fff; font-size: 1.2rem; }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form input[type="tel"], .contact-form select, .contact-form textarea { width: 100%; padding: 8px 10px; border: 1px solid #d8e5e9; background: #fff; color: #4d575d; }
.contact-form textarea { min-height: 165px; resize: vertical; }
.radio-list label { display: block; line-height: 1.8; }
.submit-wrap { margin-top: 34px; text-align: center; }
.submit-wrap button, .submit-wrap input[type="submit"] { min-width: 170px; padding: 12px 34px; border: 0; background: var(--blue); color: #fff; cursor: pointer; }
.wpcf7-list-item { display: block; margin: 0;}

#site-footer { padding: 48px 42px 70px; border-top: 1px solid #eef2f3; background: #fff url("img/common/footer.png") center bottom/cover no-repeat; }
.footer-inner { display: flex; justify-content: space-between; gap: 40px; align-items: flex-start; }
.footer-nav { display: flex; gap: 34px; }
.footer-nav a { display: block; text-align: center; font-family: "Cormorant Garamond", serif; font-size: 1.9rem; line-height: 1.3; }
.footer-nav span { display: block; font-family: "Noto Sans JP", sans-serif; font-size: 1rem; }
.gcs { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px; background: #FFF; border-radius: 8px; font-family: "Noto Sans JP", sans-serif; font-size: clamp(1rem,1.4vw,1.4rem);}
.copyright { margin-top: 70px; text-align: center; font-size: 1.4rem; }

#newscontainer { display: grid; grid-template-columns: 1fr 25%; gap: 60px;}
#newscontainer #cat { margin-bottom: 80px;}
.st { position: relative; margin-bottom: 22px; padding-bottom: 12px; border-bottom: 1px solid #B1B1B1; color: #536069; }
.st::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 100px; height: 1px; background: #7CAABE;}
.career { position: relative;}
.list { display: grid; grid-template-columns: repeat(auto-fill,minmax(255px,1fr)); gap: 30px;}
.list li { display: flex; flex-direction: column; gap: 0.6em; font-family: "Noto Sans JP", sans-serif; cursor: pointer;}
.list figure { position: relative; padding-top: calc(200 / 310 * 100%); background: #EDEDED; overflow: hidden;}
.list figure img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: 1s cubic-bezier(0.34, 1.56, 0.64, 1);}
.list h3 { margin: 0 !important; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; line-height: 1.4; overflow: hidden; font-weight: 500; color: #7CAABE;}
.list p { margin: 0 !important; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; line-height: 1.4; overflow: hidden;}
.list li .more { position: relative; display: inline-block; margin-left: auto; margin-top: auto; text-align: center; padding: 0.4em 2em; background: #7CAABE; border-radius: 40px;font-size: 1.2rem; font-style: normal; font-weight: 600; color: #FFF;}
#aside h4 { position: relative; padding-bottom: 12px; border-bottom: 2px solid #7CAABE; font-size: clamp(1.8rem,2.1vw,2.1rem);}
#aside .widjet { margin-bottom: 80px;}
#aside ul { margin: 0 !important; padding: 0; font-family: "Noto Sans JP", sans-serif;}
#aside li a, .archive-list a, .archive-list span { display: block; padding: 12px 40px 12px 0; background: url("img/common/arrow_circle.svg") right center no-repeat; background-size: 21px auto; font-size: clamp(1.3rem,1.5vw,1.5rem); cursor: pointer;}
#aside .archive-list > li { border-bottom: 1px solid #222;}
#aside .archive-list > li:not(.on) > ul { display: none;}
#aside .month-archive-list > li { text-indent: 2em;}
#aside .month-archive-list > li a { background-image: url("img/common/arrow_circle_transparent.svg");}
.screen-reader-text { display: none;}
.pagination { margin-top: 56px; text-align: center; white-space: nowrap; font-family: "Noto Sans JP", sans-serif;}
.pagination span { height: auto;}
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px;}
.pagination a:not(.top):not(.prev):not(.next):not(.single-prev):not(.single-next) { display: flex; justify-content: center; align-items: center; border: 1px solid #DDD; border-radius: 2px; font-size: 1.3rem;}
.pagination a:not(.top):not(.single-prev):not(.single-next) { width: 33px; height: 33px;}
.pagination a.prev, .pagination a.next { position: relative; text-indent: -9999px; overflow: hidden;}
.pagination a.prev { transform: scaleX(-1);}
.pagination a.prev::before, .pagination a.next::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%) rotate(45deg); width: 12px; height: 12px; border-top: 1px solid #808495; border-right: 1px solid #808495;}
.pagination a.single-prev, .pagination a.single-next { display: flex; align-items: center; gap: 8px; font-size: 1.5rem;}
.pagination a strong { position: relative; display: inline-block; width: 21px; height: 21px; text-align: center; vertical-align: middle; background: #7CAABE; border-radius: 50%; font-size: 1.6rem; line-height: 1.2; color: #FFF; text-indent: -9999px; overflow: hidden;}
.pagination a strong::before { content: ''; position: absolute; top: 50%; left: 48%; transform: translate(-50%,-50%) rotate(45deg); width: 6px; height: 6px; border-top: 2px solid #FFF; border-right: 2px solid #FFF;}
.pagination a.single-prev strong { transform: scaleX(-1);}
.pagination a.top { margin: 0 16px; padding: 0 16px; border-left: 1px solid #222; border-right: 1px solid #222;}
.pagination span { line-height: 50px;}
.pagination span.current { display: flex; justify-content: center; align-items: center; width: 33px; height: 33px; background: #7CAABE; border-radius: 2px; font-size: 1.3rem; color: #FFF;}
#single h1 { padding-bottom: 0.5em; border-bottom: 2px solid #7CAABE; font-size: clamp(2rem,2.4vw,2.4rem);}
#single .meta { margin: 1em 0;}
.content { font-family: "Noto Sans JP", sans-serif;}
.content h2 { padding-bottom: 0.5em; border-bottom: 2px solid #7CAABE; font-size: clamp(2rem,2.2vw,2.2rem); font-family: "Noto Serif JP", serif;}
.content h3 { margin-bottom: 0; padding-bottom: 0.5em; text-align: left; border-bottom: 1px solid #7CAABE; font-size: clamp(1.7rem,2vw,2rem); font-family: "Noto Serif JP", serif;}
.content h3::after { display: none;}
.content p + p { margin-top: 0.5em;}
.content a { text-decoration: underline; color: #2660EF;}
.content a[target="_blank"]:not(.pdf):not(.wp-block-button__link) { display: inline; padding-right: 20px; background: url("img/common/blank.svg") right center no-repeat;}
.content img { margin-bottom: 8px;}
.content li:not(:first-of-type) { margin-top: 4px;}
.content ul { margin-left: 2em;}
.content ul > li { list-style: disc;}
.content ol { margin-left: 2em;}
.content ol > li { list-style: decimal;}
.content table { width: calc(100% + 32px); margin-left: -16px; margin-right: -16px; border-collapse: separate; border-spacing: 16px 0; border-top: none!important; border-left: none!important; overflow: hidden;}
.content th, .content td { padding: 24px 0; text-align: left; vertical-align: top; border: none !important;}
.content th { width: 25%; border-bottom: 2px solid #7CAABE !important;}
.content td { border-bottom: 2px solid #D1D1D1 !important;}
.content * + p, .content > * + ul, .content * + ol, .content * + .wp-block-image, .content * + .wp-block-table, .content * + blockquote, .content * + table, .content * + .wp-block-columns, .content * + .wp-block-buttons { margin-top: 2em;}
.content * + h2, .content * + h3, .content * + h4, .content * + h5 { margin-top: 3em!important;}
.content h1 + *, .content h2 + *, .content h3 + *, .content h4 + *, .content h5 + *, .mainimg + * { margin-top: 2em!important;}
.content .youtube { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1em auto 0;}
.content .youtube iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
.meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; font-family: "Noto Sans JP", sans-serif;}
.meta time { font-size: clamp(1.2rem,1.4vw,1.4rem); color: #BE5F69;}
.cat { display: flex; flex-wrap: wrap; gap: 8px; margin: 0;}
.cat a { display: inline-block; padding: 4px 1em; text-align: center; background: #ECEFF2; border-radius: 40px; font-size: clamp(1.8rem,2.0vw,2.4rem); line-height: 1; font-size: 1.2rem; color: #8994A2;}
#information .cat a { background: #FFF; border: 1px solid #7CAABE;}
#cat { width: 92%; max-width: 1000px; margin: 0 auto;}
#cat .cat { justify-content: center;}
#cat .cat a { background: #7CAABE; font-size: 1.5rem; color: #FFF;}
.content .alignright { float: right; margin-left: 2em; margin-bottom: 2em;}
.content .alignleft { float: left; margin-right: 2em; margin-bottom: 2em;}
.content .aligncenter { display: block; margin: 2em auto; text-align: center;}
.size-thumbnail { max-width: 400px;}

@media (min-width: 901px) {
	a { transition: .2s ease-out;}
	a:hover { filter:brightness(1.1)}
	.pc-center { text-align: center;}
	.sp { display: none;}
	.global-nav > ul > li > ul { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); opacity: 0; visibility: hidden; padding: 8px 24px; background: #FFF; border-radius: 5px; transition: opacity .2s ease, visibility .2s ease; box-shadow: 0 0 6px rgba(0,0,0,.16);}
	.global-nav > ul > li > ul > li { padding: 16px 0; font-size: 1.4rem; white-space: nowrap;}
	.global-nav > ul > li > ul > li:not(:last-child) { border-bottom: 1px solid rgba(51,51,51,.5);}
	.global-nav > ul > li:hover > ul { opacity: 1; visibility: visible;}
}

@media (max-width: 900px) {
	#site-header { position: sticky; padding: 16px 20px; background: rgba(255,255,255,.9); backdrop-filter: blur(8px); }
	.logo img { width: 150px; }
	.menu-toggle { display: block; width: 44px; height: 44px; border: 0; background: transparent; position: relative; z-index: 22; }
	.menu-toggle span { display: block; width: 28px; height: 2px; margin: 8px auto; background: #46535a; }
	.global-nav { position: fixed; inset: 0 0 auto auto; width: 100%; padding: 100px 10px; background: rgba(255,255,255,.97); transform: translateY(-100%); transition: transform .25s ease; }
	.global-nav.open { transform: translateY(0); }
	.global-nav > ul { display: grid; gap: 16px; justify-content: center; }
	.global-nav > ul > li { padding: 0 0 16px; border-bottom: 1px solid rgba(51,51,51,.5);}
	.global-nav > ul > li:last-child { padding: 0; border-left: none; border-bottom: none;}
	.global-nav > ul > li > ul { display: grid; gap: 8px; margin: 8px 0 8px 1.5em; list-style: disc;}
	.hero .swiper-wrapper { min-height: 560px; }
	.page-hero .hero-body { padding: 24px 0; }
	.home-cta, .service-grid, .choice-tabs, .contact-band, .voice-row, .road-grid, .difference, .entry-block, .two-cards, .profile-story, .profile-story.reverse, .program-item, .recommend-item, .form-row, .footer-inner { grid-template-columns: 1fr; }
	.home-cta { width: 90%; margin-top: -30px; }
	.home-cta a { min-height: 88px; }
	.service-card { min-height: 480px; }
	.service-card .panel { left: 24px; right: 24px; bottom: 24px; width: auto; }
	.profile-mini { grid-template-columns: 1fr; }
	.topics-slider .swiper-slide { width: 50%;}
	.contact-band { border-radius: 48px; }
	.contact-band .contact-panel { padding: 46px 34px; }
	.price-table { width: calc(100% + 20px); border-spacing: 10px 0; margin: 0 -10px;}
	.program-item img { height: auto; }
	.recommend-item { gap: 8px; }
	.entry-block figure { width: 60%; margin: 0 auto;}
	.form-row dt { border-bottom: none; padding-bottom: 0; }
	.form-row .form-row { margin-left: 2em;}
	.training-box { width: 96%;}
	.scadule, .reference { grid-template-columns: 1fr;}
	.reference table { font-size: 1.2rem; }
	.footer-inner { flex-direction: column;}
	.footer-nav { flex-wrap: wrap; justify-content: center;}
	.gcs { width: 260px;}
	#newscontainer { grid-template-columns: 100%;}
	.content table.sp-flat { width:100%; margin-left: 0; margin-right: 0;}
	.content th, .content td { display: block;}
	.content th { width: auto; padding-bottom: 0; border-bottom: none !important;}
	.pc { display: none;}
}

@media (max-width: 560px) {
	body { font-size: 1.4rem; }
	.lead { line-height: 2; }
	.hero .swiper-wrapper { min-height: initial;}
	.hero-img { position: relative; height: 70vw;}
	.hero-body { padding-top: 24px; position: relative; top: auto; left: auto; transform: translate(0,0);}
	.hero-slider .hero-title { font-size: 2.4rem; }
	.hero .white, .hero .white h1 { color: #2f383f !important;}
	.hero .white .hero-kicker::after { background: #2f383f;}
	.hero-kicker { margin-bottom: 16px;}
	.hero-copy { margin-top: 16px; padding-bottom: 24px;}
	.page-hero .hero-copy { padding-bottom: 0;}
	.page-hero { min-height: initial;}
	.page-hero h1 { font-size: 3.2rem; }
	.page-hero .hero-img { position: relative; height: 80vw;}
	.home-cta { width: 90%; margin-top: 24px; }
	.section-title { font-size: 4.4rem; }
	.price-table strong { font-size: 2rem; }
	.training-box { padding: 24px; border-width: 4px; }
	.training-box h2 { margin: -28px -28px 22px; }
	.choice-card > div { padding: 24px 24px 48px; background-position: right 16px bottom 24px;}
	.career-box { padding: 28px 22px; }
	.career-box h4 { grid-template-columns: 1fr; }
	.topics .swiper-slide { width: 75%;}
	.swiper-pagination-bullet { width: 24px;}
}
