/*
* jdmain.css — Junior-Doctor Chokai Academy 全ページ共通スタイル
* ================================================================
*
* 【テーマカラーの変更方法】
* 下の :root {} 内の変数を編集するだけでサイト全体に反映されます。
* 個別の色指定はこのファイル内に一切ありません。
*
* 【このファイルの構成】
* 1. CSS変数(テーマカラー・サイズ等)
* 2. リセット・基本設定
* 3. ヘッダー
* 4. 共通レイアウト(wrapper / section-title 等)
* 5. メインビジュアル
* 6. ボタン類
* 7. home-about
* 8. home-notice(お知らせ)
* 9. home-class_content(活動カード一覧)
* 10. home-QA / FAQ アコーディオン
* 11. home-info(アクセス・概要)
* 12. about
* 13. 活動掲載ページ(#active / main.activity / aside#sidebar)
* 14. apply(注意ボックス)
* 15. class-content(授業内容)
* 16. テーブル共通
* 17. Zoom向け表示
* 18. main.disp
* 19. フッター
* 20. ハンバーガーメニュー(≤1024px)
* 21. スマートフォン対応(≤746px)
* 22. ユーティリティ
* ================================================================
*/
/* ================================================================
1. CSS変数
================================================================ */
:root {
/* ─── テーマカラー(ここだけ変えれば全体に反映)─── */
--color-school: #2e7d32;
/* 学校カラー:深緑 */
--color-school-light: #66bb6a;
/* 学校カラー:明るい緑(ホバー等) */
--color-school-pale: #e8f5e9;
/* 学校カラー:淡い緑(背景・縞等) */
--color-foundation: #1565c0;
/* 財団カラー:深青 */
--color-foundation-light: #42a5f5;
/* 財団カラー:明るい青 */
--color-foundation-pale: #e3f2fd;
/* 財団カラー:淡い青(背景等) */
--color-accent: #f57c00;
/* アクセント(CTAボタン・注意ボックス) */
--color-alert: #c62828;
/* 警告・強調 */
--color-new: #c62828;
/* NEWバッジ */
/* ─── テキスト ─── */
--color-text: #1a1a2e;
--color-text-light: #555;
--color-text-white: #fff;
--color-link: var(--color-foundation);
/* ─── 背景 ─── */
--color-bg: #f0f7f0;
--color-bg-white: #fff;
--color-bg-header: rgba(255, 255, 255, .92);
/* ─── ボーダー・シャドウ ─── */
--color-border: #b0bec5;
--shadow-card: 0 2px 12px rgba(0, 0, 0, .09);
--shadow-hover: 0 6px 24px rgba(0, 0, 0, .14);
/* ─── レイアウト ─── */
--max-width: 1150px;
--header-height: 70px;
/* ─── 角丸 ─── */
--radius-sm: 6px;
--radius-md: 12px;
--radius-lg: 20px;
}
/* ================================================================
2. リセット・基本設定
================================================================ */
html,
body,
div,
section,
article,
p,
a,
img,
figure,
h1,
h2,
h3,
h4,
dl,
dt,
dd {
margin: 0;
padding: 0;
}
html {
font-size: 100%;
scroll-behavior: smooth;
}
body {
font-family: 'Noto Sans JP', sans-serif;
color: var(--color-text);
line-height: 1.7;
background-color: var(--color-bg);
}
img {
max-width: 100%;
}
dt {
font-weight: bold;
}
dd {
margin-left: 1.5em;
}
.erase-line {
text-decoration: line-through;
}
div.scrollbox {
height: 6em;
overflow: auto;
background: var(--color-school-pale);
}
/* ================================================================
3. ヘッダー
================================================================ */
.header {
width: 100vw;
z-index: 99;
position: fixed;
top: 0;
padding-top: 10px;
padding-bottom: 10px;
transition: background .4s, box-shadow .4s, padding .3s;
}
#hamburger-menu {
opacity: 0;
position: fixed;
}
.header-nav {
max-width: 1400px;
margin: 0 auto;
padding: 0 5%;
& .sp-logo {
display: none;
}
& nav ul {
display: flex;
justify-content: space-around;
align-items: center;
font-size: 1rem;
& li {
list-style: none;
border-left: var(--color-border) 2px dotted;
border-right: var(--color-border) 2px dotted;
&:last-child {
margin-right: 50px;
}
&.bd-no {
border: none;
}
& a {
text-decoration: none;
color: var(--color-text);
transition: .3s;
display: block;
&:hover {
border-bottom: var(--color-school) 3px dotted;
}
&.bd-none:hover {
border-bottom: none;
}
}
}
}
}
.apply-menu {
color: var(--color-accent);
}
.top-logo {
width: 65px;
height: 65px;
object-fit: cover;
}
header.scroll-nav {
background: var(--color-bg-header);
box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1);
padding-top: 0;
padding-bottom: 0;
}
label .buns .patty-name {
display: none;
}
/* ================================================================
4. 共通レイアウト
================================================================ */
.wrapper {
max-width: var(--max-width);
margin: 0 auto;
padding: 30px 5% 80px;
}
/*
* .section-title(h2)— 全ページ共通
* 学校カラー(緑)で統一。グラデーション下線(緑→青)付き。
* 画像ファイル(yellow-green.png 等)への依存を廃止。
*/
.section-title {
font-size: 2.1rem;
text-align: center;
position: relative;
width: 100%;
margin-top: 30px;
margin-bottom: 20px;
color: var(--color-school);
letter-spacing: .04em;
&::before {
content: none;
}
&::after {
content: '';
display: block;
width: 80px;
height: 4px;
margin: 10px auto 0;
border-radius: 2px;
background: linear-gradient(to right, var(--color-school), var(--color-foundation));
}
}
.section-text {
text-align: center;
font-size: 1.3rem;
padding: 10px 0 30px;
max-width: 800px;
margin: 0 auto;
line-height: 1.7;
color: var(--color-text-light);
}
/* ================================================================
5. メインビジュアル
================================================================ */
#mainvisual {
height: 660px;
position: relative;
width: 100%;
& .top-text {
position: absolute;
z-index: 10;
top: 85px;
left: 6%;
overflow: hidden;
& .text {
font-size: 1.8rem;
font-weight: bold;
margin-bottom: 10px;
color: var(--color-text-white);
line-height: 4rem;
-ms-writing-mode: tb-rl;
writing-mode: vertical-rl;
text-shadow: 0 4px 6px #000;
}
}
& .top-title {
position: absolute;
z-index: 10;
bottom: 30%;
right: 30%;
overflow: hidden;
& .site-title {
font-size: 3.1rem;
font-weight: bold;
color: var(--color-text-white);
text-shadow: 0 4px 6px #000;
text-align: center;
& .small {
font-size: 1.6rem;
color: var(--color-school-light);
text-shadow: 0 4px 6px #000;
font-weight: bold;
text-align: center;
}
}
}
& .fade li {
max-width: 100%;
position: absolute;
top: 0;
right: 0;
opacity: 0;
animation: fade 25s infinite;
list-style: none;
&:nth-child(1) {
animation-delay: 0s;
}
&:nth-child(2) {
animation-delay: 5s;
}
&:nth-child(3) {
animation-delay: 10s;
}
&:nth-child(4) {
animation-delay: 15s;
}
&:nth-child(5) {
animation-delay: 20s;
}
& img {
width: 1500px;
height: 610px;
object-fit: cover;
border-radius: 1%;
}
&::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
box-shadow: inset 0 0 10px 10px #fff;
}
}
@media screen and (max-width: 746px) {
& .top-text .text {
font-size: 1.4rem;
line-height: 2.5rem;
text-shadow: 0 3px 5px #000;
}
}
@media screen and (max-width: 499px) {
height: 460px;
& .fade li img {
width: 100%;
height: 450px;
}
}
}
.mainvisual-inner {
margin-top: 110px;
max-width: 100%;
}
.mainvisual-img {
position: relative;
max-width: 100%;
& .top-title {
position: absolute;
top: 270px;
right: 30%;
z-index: 10;
font-size: 2.8rem;
}
}
@keyframes fade {
0% {
opacity: 0;
}
15% {
opacity: 1;
}
25% {
opacity: 1;
}
35% {
opacity: 0;
}
100% {
opacity: 0;
}
}
/* ================================================================
6. ボタン類
================================================================ */
.top-text-color {
color: var(--color-school-light);
}
.top-text-call {
color: var(--color-accent);
letter-spacing: 7px;
}
.HomeToApply {
position: relative;
margin: 3% 28%;
color: var(--color-text-white);
border: 2px solid var(--color-accent);
background-color: var(--color-accent);
font-weight: bold;
font-size: 20px;
text-align: center;
padding: 10px;
&::before {
position: absolute;
top: -7px;
left: -7px;
width: 100%;
height: 100%;
border: 3px solid var(--color-text-white);
content: '';
pointer-events: none;
}
}
.HomeToApplyColor {
color: #ffe082;
}
.HomeToQA {
position: relative;
margin: 3% 28%;
color: var(--color-text);
border: 2px solid var(--color-foundation-light);
background-color: var(--color-foundation-pale);
font-weight: bold;
font-size: 20px;
text-align: center;
padding: 10px;
&::before {
position: absolute;
top: -7px;
left: -7px;
width: 100%;
height: 100%;
border: 3px solid var(--color-foundation);
content: '';
pointer-events: none;
}
}
.HomeToQAColor {
color: var(--color-foundation);
}
/* ================================================================
7. home-about
================================================================ */
#home-about {
& .scroll {
opacity: 0;
}
& .show {
opacity: 1;
transition: 1s;
transform: translateY(-50px);
}
& .home-items {
& h3 {
font-size: 1.4rem;
}
& p {
font-size: 1.2rem;
line-height: 2.0;
}
}
@media screen and (max-width: 746px) {
& h2 {
font-size: 1.3rem;
}
& .home-items img {
width: 200px;
height: 150px;
}
& .home-items h3 {
font-size: 1rem;
}
& .home-items p {
font-size: .8rem;
line-height: 1.85;
}
}
}
.home-items {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-evenly;
align-items: center;
margin-top: 30px;
opacity: 0;
&.show {
opacity: 1;
transition: 1s;
transform: translateY(-50px);
}
& img {
width: 300px;
height: 216px;
}
& .what_study {
@media screen and (max-width: 1024px) {
order: 1;
}
}
}
.what_study {
width: 730px;
margin-bottom: 10px;
& h3 {
padding-bottom: 2px;
font-size: 1.3rem;
margin-bottom: 5px;
}
& p {
font-size: 1.2rem;
line-height: 2.0;
}
@media screen and (max-width: 746px) {
margin-bottom: 0;
}
}
.aiming_top {
width: 730px;
margin-top: 50px;
& h3 {
padding-bottom: 2px;
font-size: 1.3rem;
margin-bottom: 5px;
}
& p {
font-size: 1.2rem;
line-height: 2.0;
}
@media screen and (max-width: 746px) {
max-width: 600px;
}
}
em.see {
font-style: normal;
font-weight: bold;
background: linear-gradient(to top, #ffe082, transparent);
}
.text-bg {
background: linear-gradient(transparent 50%, var(--color-school-pale) 50%);
}
.home-about-title {
@media screen and (max-width: 746px) {
margin-top: 90px;
}
}
.umi-img {
@media screen and (max-width: 746px) {
margin-top: 35px;
margin-bottom: 35px;
}
}
/* ================================================================
8. home-notice(お知らせ)
================================================================ */
.notice {
& li {
border-bottom: 1px dotted var(--color-border);
list-style: none;
padding: 10px;
width: 800px;
margin: 0 auto;
& a {
color: var(--color-text);
text-decoration: none;
& .news-title {
background-color: var(--color-foundation);
border-radius: var(--radius-sm);
color: var(--color-text-white);
display: inline-block;
margin-right: 20px;
padding: 5px;
}
& time {
display: inline-block;
font-weight: bold;
margin-right: 40px;
}
& p {
color: var(--color-foundation);
display: inline-block;
text-decoration: underline;
}
& .erase-line {
text-decoration: line-through;
}
& .erase-line-comment {
margin-left: 10px;
}
}
@media screen and (max-width: 746px) {
padding: 5px;
width: auto;
& a span {
margin-right: 20px;
padding: 4px;
font-size: .8rem;
}
& a time {
display: block;
font-size: .8rem;
}
& a p {
display: block;
font-size: .8rem;
}
}
}
}
.new::after {
content: "NEW";
color: var(--color-new);
font-size: 1.1rem;
border: 1px solid var(--color-new);
padding: 4px 8px;
margin: 0 0 0 20px;
display: inline-block;
line-height: 1;
@media screen and (max-width: 746px) {
font-size: .8rem;
padding: 3px 7px;
}
}
.home-notice-title {
margin-top: 0;
}
/* ================================================================
9. home-class_content(活動カード一覧)
================================================================ */
#home-class_content {
padding: 50px 16px;
margin: -50px auto 10px;
& .scroll {
opacity: 0;
}
& .show,
& .grid .show {
opacity: 1;
transition: 1s;
transform: translateY(-50px);
}
& .grid {
display: grid;
gap: 26px;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
& .class_content-item {
text-decoration: none;
color: var(--color-text);
}
& .item {
transition: all .3s ease;
box-shadow: var(--shadow-card);
border-radius: var(--radius-lg);
background: var(--color-bg-white);
}
& img {
vertical-align: top;
height: 300px;
width: 100%;
object-fit: cover;
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
& .item-content {
padding: 30px;
}
& .item-cat {
font-size: 1.0rem;
margin-bottom: 20px;
color: var(--color-foundation);
}
& .item-text {
font-weight: bold;
margin-bottom: 20px;
font-size: 1.1rem;
}
& .item-date {
font-size: .85rem;
text-align: right;
color: var(--color-text-light);
}
}
}
.class_content-item>.item:hover {
opacity: .7;
}
.home-class_content-btn {
text-align: center;
margin-top: 30px;
& a {
border-bottom: 5px solid var(--color-school);
text-decoration: none;
color: var(--color-text-white);
border-radius: 100vh;
background-color: var(--color-school);
padding: 10px 30px;
transition: .3s;
font-size: 1.4rem;
&:hover {
margin-top: 3px;
border-bottom: 2px solid var(--color-school);
background-color: var(--color-school-light);
}
}
}
.fa-position-right {
position: absolute;
top: calc(50% - .5em);
right: 1rem;
}
/* ================================================================
10. home-QA / FAQ アコーディオン
================================================================ */
@keyframes slidein {
0% {
opacity: 0;
transform: translateY(-5px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
#home-qa {
margin: 0 auto;
padding-bottom: 40px;
& .scroll {
opacity: 0;
}
& .show {
opacity: 1;
transition: 1s;
transform: translateY(-50px);
}
}
.qa_list {
position: relative;
margin: 20px 20px 30px;
border: dashed var(--color-border);
border-width: 0 0 2px 0;
color: var(--color-text);
&:hover {
color: var(--color-school);
}
& .plus {
position: relative;
display: inline-flex;
font-size: 25px;
padding: 5px;
transition: .3s;
}
& input[type="checkbox"]:checked~.plus {
transform: rotate(45deg);
}
& label {
position: absolute;
top: 3px;
left: 30px;
padding: 5px;
font-size: 23px;
cursor: pointer;
@media screen and (max-width: 746px) {
font-size: 17.5px;
z-index: 1;
}
}
& .ans {
position: relative;
max-height: 0;
overflow: hidden;
color: var(--color-text);
margin: 5px;
transition: max-height .4s ease;
& span {
font-size: 25px;
@media screen and (max-width: 746px) {
font-size: 19px;
}
}
@media screen and (max-width: 746px) {
margin-top: 10px;
font-size: 17.5px;
}
}
& input[type="checkbox"]:checked~div.ans {
max-height: 300px;
animation: slidein .5s;
transition: max-height .6s ease;
}
& input {
display: none;
}
}
h2.faq-section {
text-align: center;
margin: 3rem 0;
width: 100%;
}
div.faq-list {
width: 100%;
& dl {
position: relative;
left: 50%;
transform: translateX(-50%);
width: 70%;
padding: 15px;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
background-color: var(--color-bg-white);
margin-bottom: 2rem;
border-radius: var(--radius-md);
border-left: 4px solid var(--color-school);
transition: box-shadow .2s;
cursor: default;
&:hover {
box-shadow: var(--shadow-card);
cursor: pointer;
}
&.act {
background-color: var(--color-school-pale);
}
& dt {
width: 100%;
font-size: 1rem;
padding: 15px;
&::before {
padding: 0 1rem 1rem;
font-size: 1.5rem;
color: var(--color-school);
content: "Q";
}
&::after {
font-size: 1.5rem;
float: right;
transition: .3s;
content: "+";
}
&.question {
color: var(--color-school);
font-weight: bold;
&::after {
transform: rotate(-45deg);
}
}
}
& dd {
width: 100%;
max-height: 0px;
overflow: hidden;
transition: max-height .4s ease;
&::before {
padding: 0 1rem 1rem;
font-size: 1.5rem;
color: var(--color-foundation);
content: "A";
}
&.faq-show {
max-height: 300px;
transition: max-height .8s ease;
}
}
@media screen and (max-width: 1024px) {
width: 85%;
& dd,
& dt {
width: 100%;
font-size: 1rem;
}
& dt::after,
& dd::before,
& dt::before {
font-size: 1.2rem;
}
}
}
}
/* ================================================================
11. home-info(アクセス・概要)
================================================================ */
#home-info {
background-color: var(--color-bg-white);
padding: 60px;
margin-bottom: 60px;
margin-top: 60px;
& .scroll {
opacity: 0;
}
& .show {
opacity: 1;
transition: 1s;
transform: translateY(-50px);
}
& img {
object-fit: cover;
width: 100%;
height: 450px;
}
@media screen and (max-width: 746px) {
padding: 0 20px 20px;
& img {
height: 200px;
}
}
}
figure {
& .scroll {
opacity: 0;
}
& .show {
opacity: 1;
transition: 1s;
transform: translateY(-50px);
}
}
.home-info-items {
display: flex;
justify-content: space-evenly;
align-items: center;
}
.home-info-address_title {
font-size: 1.8rem;
color: var(--color-school);
@media screen and (max-width: 746px) {
font-size: 1em;
}
}
.info-item {
display: flex;
justify-content: space-evenly;
align-items: center;
padding-top: 70px;
@media screen and (max-width: 746px) {
flex-direction: column;
margin: 0 auto;
}
@media screen and (max-width: 1024px) {
flex-direction: column;
margin: 0 auto;
}
}
.info-text .info-small {
font-size: .9rem;
}
.info-address {
font-size: 15px;
text-align: justify;
box-sizing: border-box;
letter-spacing: .15em;
white-space: nowrap;
line-height: 1.9;
display: inline-block;
padding-bottom: 10px;
}
.line-dl {
& div {
display: flex;
border-bottom: solid 1px var(--color-school-pale);
padding: 11px 5px 14px;
align-items: flex-start;
&:nth-child(1) {
border-top: solid 1px var(--color-school-pale);
}
& .font-mg {
width: 110px;
text-align: justify;
box-sizing: border-box;
letter-spacing: .15em;
white-space: nowrap;
color: var(--color-school);
font-size: 15px;
line-height: 1.9;
}
& dd {
width: calc(100% - 110px);
font-size: 14px;
letter-spacing: .04em;
color: var(--color-text);
line-height: 1.9;
display: inline-block;
transform: translateY(3px);
& a {
width: calc(100% - 10px);
font-size: 14px;
letter-spacing: .04em;
color: var(--color-link);
line-height: 1.9;
display: inline-block;
transform: translateY(3px);
&:hover {
opacity: .6;
}
}
& .info-small {
font-size: 13px;
}
}
}
}
iframe {
width: 450px;
height: 600px;
@media screen and (max-width: 746px) {
width: 100%;
height: 300px;
}
}
.iframe-wrap {
@media screen and (max-width: 746px) {
padding-top: 50px;
width: 100%;
}
@media screen and (max-width: 1024px) {
padding-top: 50px;
width: 100%;
}
}
.info-bottom-text {
margin-top: 40px;
}
/* ================================================================
12. about
================================================================ */
#about {
margin-bottom: 60px;
margin-top: 60px;
}
.about-text {
font-size: 1.2rem;
@media screen and (max-width: 746px) {
font-size: .9rem;
}
}
/* ================================================================
13. 活動掲載ページ(#active / main.activity / aside#sidebar)
================================================================
対象: 2025-activities/index.html など
HTMLの構造:
<section id="active">
<h2 class="section-title">...</h2>
<div class="box">...</div>
<main class="activity">
<article id="classXX">
<h3>タイトル</h3>
<h4>YYYY-MM-DD</h4>
<p><img src="..." alt="..."> 説明文</p>
</article>
</main>
<aside id="sidebar">...</aside>
</section>
================================================================ */
/* ── ページ全体グリッド ── */
#active {
display: grid;
grid-template-columns: 1fr 280px;
gap: 0 32px;
max-width: 1200px;
margin: 0 auto;
padding: calc(var(--header-height) + 20px) 5% 60px;
align-items: start;
}
/* タイトルと.boxは全幅 */
#active>h2.section-title,
#active>.box {
grid-column: 1 / -1;
}
/* ── 各記事カード ── */
main.activity {
grid-column: 1;
}
main.activity article {
background: var(--color-bg-white);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-card);
margin-bottom: 36px;
padding: 28px 32px;
border-top: 3px solid var(--color-school);
transition: box-shadow .2s;
&:hover {
box-shadow: var(--shadow-hover);
}
}
/* h3:活動タイトル(左に学校カラーの縦線) */
main.activity article h3 {
font-size: 1.25rem;
font-weight: bold;
color: var(--color-text);
padding-left: 12px;
border-left: 4px solid var(--color-school);
margin-bottom: 4px;
line-height: 1.4;
}
/* h4:日付(財団カラー) */
main.activity article h4 {
font-size: .875rem;
color: var(--color-foundation);
font-weight: normal;
padding-left: 12px;
margin-bottom: 18px;
letter-spacing: .04em;
}
/* p:写真+本文のブロック */
main.activity article p {
display: flex;
flex-wrap: wrap;
gap: 16px;
align-items: flex-start;
margin-bottom: 18px;
font-size: .97rem;
line-height: 1.85;
}
/* 写真(通常) */
main.activity article p img {
width: 220px;
height: 165px;
object-fit: cover;
border-radius: var(--radius-md);
flex-shrink: 0;
box-shadow: 0 2px 8px rgba(0, 0, 0, .10);
}
/* class="full" → 全幅写真 */
main.activity article p img.full {
width: 100%;
height: auto;
max-height: 500px;
}
main.activity article a {
color: var(--color-link);
&:hover {
color: var(--color-school);
}
}
/* ── サイドバー ── */
aside#sidebar {
grid-column: 2;
position: sticky;
top: calc(var(--header-height) + 16px);
max-height: calc(100vh - var(--header-height) - 32px);
overflow-y: auto;
}
aside#sidebar #act-list {
margin-bottom: 20px;
}
aside#sidebar section.archive {
background: var(--color-bg-white);
border-radius: var(--radius-md);
box-shadow: var(--shadow-card);
padding: 18px;
}
aside#sidebar section.archive h3 {
font-size: 1rem;
font-weight: bold;
color: var(--color-school);
border-bottom: 2px solid var(--color-school-pale);
padding-bottom: 8px;
margin-bottom: 10px;
}
aside#sidebar section.archive ul {
list-style: none;
padding: 0;
margin: 0;
}
aside#sidebar section.archive li {
font-size: .8rem;
line-height: 1.5;
padding: 5px 2px;
border-bottom: 1px solid var(--color-school-pale);
&:last-child {
border-bottom: none;
}
& a {
display: block;
text-decoration: none;
color: var(--color-link);
transition: color .2s;
&:hover {
color: var(--color-school);
}
}
}
/* スマートフォン:1カラムに切り替え */
@media screen and (max-width: 768px) {
#active {
grid-template-columns: 1fr;
padding-top: calc(var(--header-height) + 10px);
}
#active>h2.section-title,
#active>.box,
main.activity,
aside#sidebar {
grid-column: 1;
}
aside#sidebar {
position: static;
max-height: none;
margin-top: 32px;
}
main.activity article {
padding: 18px 14px;
}
main.activity article p {
flex-direction: column;
}
main.activity article p img {
width: 100%;
height: auto;
max-height: 260px;
}
}
/* ================================================================
14. apply(注意ボックス)
================================================================ */
.box {
padding: 1em;
margin: 2em 0;
color: var(--color-text);
background: #FFFF88;
border-bottom: solid 6px var(--color-foundation-light);
border-radius: var(--radius-sm);
& p {
text-align: center;
font-size: 25px;
margin: 0;
padding: 0;
}
}
/* ================================================================
15. class-content(授業内容ページ)
================================================================ */
.class-content-items {
background-color: var(--color-school-pale);
box-shadow: var(--shadow-card);
padding: 60px;
margin-bottom: 60px;
margin-top: 60px;
font-size: 1.1rem;
@media screen and (max-width: 746px) {
font-size: 1rem;
}
}
.class-content-items-text {
text-align: left;
@media screen and (max-width: 499px) {
display: block;
width: 100%;
text-align: center;
padding-bottom: 15px;
}
}
#class-content {
& .class-content-items {
display: flex;
align-items: center;
justify-content: space-evenly;
flex-direction: row;
flex-wrap: wrap;
@media screen and (max-width: 499px) {
justify-content: start;
}
}
}
.class-content-text {
padding-top: 30px;
}
.class-content-items-left {
width: 60%;
padding-right: 35px;
border-right: solid 2px var(--color-school-light);
}
.class-content-dl-left {
margin-right: 35px;
}
.class-content-dl {
&>dt {
background-color: var(--color-school);
color: var(--color-text-white);
padding: 3px 4px;
display: inline-block;
margin-bottom: 4px;
}
&>dd {
margin-left: 60px;
margin-bottom: 5px;
@media screen and (max-width: 499px) {
margin-left: 25px;
}
}
& dt {
margin: 0 1ex;
padding: 0 1ex;
width: 6em;
border: var(--color-foundation-light) solid;
border-width: 0 0 1px 1.2em;
}
}
.bottom {
margin-left: 25px;
}
.page-btn-ul {
display: flex;
justify-content: center;
& li {
list-style: none;
margin-right: 30px;
margin-left: 30px;
font-size: 1.6rem;
& a {
color: var(--color-text);
text-decoration: none;
}
&:hover {
border-bottom: var(--color-text) double 7px;
}
}
}
@media screen and (min-width: 1100px) {
.framebox {
border: double 5px var(--color-school-light);
display: block;
position: absolute;
left: 60%;
bottom: 10px;
}
.clear {
clear: both;
}
}
@media screen and (max-width: 1099px) {
.framebox {
border: double 5px var(--color-school-light);
display: block;
margin-left: 40px;
}
}
/* ================================================================
16. テーブル共通
================================================================ */
table.LectureSchedule {
text-align: center;
border-collapse: collapse;
border: 1px solid black;
margin: 0 auto;
& td.num {
text-align: right;
padding-right: 1em;
@media screen and (max-width: 499px) {
padding: 0;
}
}
& td.time {
text-align: left;
padding-left: .7em;
}
& td.time_color {
text-align: left;
color: var(--color-alert);
padding: 0 .5em;
border: black;
}
& td.date {
text-align: left;
padding-left: .7em;
}
& td.room {
text-align: left;
padding: 0 .5em;
}
& td.lesson {
text-align: left;
padding: 0 .5em;
}
@media screen and (max-width: 499px) {
font-size: 13px;
}
}
.guide {
& a {
color: var(--color-foundation);
display: block;
border: var(--color-foundation) solid 2px;
border-radius: var(--radius-sm);
background-color: var(--color-bg-white);
margin-left: 4px;
margin-bottom: 4px;
&:hover {
color: var(--color-text-white);
transition: .7s;
background-color: var(--color-foundation);
}
}
}
ul.guide {
display: flex;
flex-wrap: wrap;
margin-bottom: 1rem;
& li {
position: relative;
list-style: none;
& a {
text-decoration: none;
padding: 0 12px;
@media screen and (max-width: 499px) {
font-size: 17px;
}
}
}
}
table.school {
& tr {
visibility: collapse;
}
& tr.match {
visibility: visible;
}
}
table.border {
border-collapse: collapse;
&,
& td,
& th {
border: 1px solid #446;
padding: .2ex .4ex;
}
& th {
text-align: left;
padding: .2ex .8ex;
}
}
table.form {
&>th:first-child {
min-width: 10em;
}
& table tr:nth-child(even) {
background: #fed;
}
}
/* ================================================================
17. Zoom向け表示
================================================================ */
.zoom-h1 {
text-align: center;
color: var(--color-foundation);
border: solid 3px var(--color-foundation);
padding: .5em;
border-radius: .5em;
}
.zoom-p {
font-size: 150%;
text-indent: 1em;
}
.zoom-h3 {
text-indent: 1em;
counter-increment: section;
&::before {
text-indent: 1em;
content: counter(number) "-" counter(section);
}
}
.zoom-h2 {
counter-increment: number;
&::before {
content: counter(number) ".";
}
}
.zoom-title {
margin-top: 100px;
}
/* ================================================================
18. main.disp
================================================================ */
main.disp {
margin: 1ex;
& ul {
margin-left: 1em;
}
}
/* ================================================================
19. フッター
================================================================ */
footer {
border-top: 1px dashed var(--color-border);
text-align: center;
font-size: 70%;
}
/* ================================================================
20. ハンバーガーメニュー(≤1024px)
================================================================ */
@media screen and (max-width: 1024px) {
#hamburger-menu {
opacity: 0;
position: fixed;
}
label .buns {
position: fixed;
top: .8em;
right: 1em;
z-index: 3;
height: 2em;
width: 2em;
&::before,
&::after,
& .patty {
position: absolute;
left: 0;
width: 100%;
height: 3.5px;
border-radius: 5px;
background: var(--color-school);
content: "";
transition: all .3s;
}
& .patty-name {
display: block;
position: absolute;
left: 0;
width: 100%;
transition: all .3s;
top: 115%;
font-size: .7rem;
}
&::before {
top: 0;
transform-origin: top left;
}
& .patty {
top: 45%;
}
&::after {
bottom: 0;
transform-origin: bottom left;
}
}
.header-nav {
line-height: 1.0;
padding: 0 2%;
& .sp-logo {
display: block;
}
& nav ul {
position: fixed;
top: 0;
left: 0;
bottom: 0;
z-index: 2;
display: flex;
flex-flow: column nowrap;
justify-content: center;
align-items: flex-start;
transform: translateX(-120%);
&::before {
position: absolute;
top: 0;
bottom: 0;
left: 0;
z-index: -1;
width: 25em;
background: var(--color-school-pale);
transform: skewX(-20deg) translateX(-200%);
transform-origin: bottom left;
transition: transform .3s;
content: "";
}
& li {
margin: 1em;
padding: .2em 1em;
transform: translateX(-120%);
transition: all .3s, transform .5s;
transition-timing-function: cubic-bezier(.19, 1, .22, 1);
}
}
}
.bd-no {
display: none;
}
.section-title {
font-size: 1.75rem;
}
header.scroll-nav {
background: var(--color-bg-header);
box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1);
align-items: center;
}
#mainvisual .top-title .site-title {
display: none;
}
#hamburger-menu:checked {
&+label .buns {
&::before,
&::after {
width: 130%;
}
& .patty {
transform: scale(0);
}
&::before {
transform: rotate(45deg);
}
&::after {
transform: rotate(-45deg);
}
}
&~nav ul {
transform: translateX(0%);
&::before {
transform: skewX(-20deg) translateX(-60%);
}
& li {
transform: translateX(0);
}
}
&~.light-dark {
background: #000;
opacity: .5;
position: fixed;
left: 0;
top: 0;
height: 100%;
width: 100%;
}
}
}
/* ================================================================
21. スマートフォン対応(≤746px)
================================================================ */
@media screen and (max-width: 746px) {
#home {
& h3 {
font-size: 1.2rem;
}
& p {
font-size: .8rem;
line-height: 1.85;
}
}
.section-title {
font-size: 1.3rem;
position: relative;
display: inline-block;
margin-bottom: 50px;
margin-top: 50px;
&::before {
content: none;
}
&::after {
width: 60px;
height: 5px;
margin: 8px auto 0;
}
}
.section-text {
font-size: .8rem;
}
header.scroll-nav {
background: var(--color-bg-header);
box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1);
align-items: center;
}
.header-nav .sp-logo {
display: block;
}
.header-nav nav ul {
display: none;
}
#mainvisual .top-title .site-title {
display: none;
}
.class-content-items {
padding: 10px;
}
.wrapper {
padding-top: 0;
padding-bottom: 30px;
}
}
/* ================================================================
22. ユーティリティ
================================================================ */
.vmenuspace {
margin-top: 2em;
border-top: 3px solid var(--color-school);
}
</style>