@charset "utf-8";

/*======================================================
  LANIKOA HAWAII
  Shared School Page CSS
======================================================*/


/*======================================================
  Reset
======================================================*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

.page-content img {
    display: block;
    max-width: 100%;
    height: auto;
}

.page-content a {
    color: #006699;
    text-decoration: none;
}

.page-content a:hover {
    opacity: .8;
}


/*======================================================
  Base
======================================================*/

.page-content {
    font-family:
        "Yu Mincho",
        "YuMincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 16px;
    line-height: 2;

    color: #333;
    background: #fff;
}

.page-content p {
    margin-bottom: 18px;
}


/*======================================================
  Layout
======================================================*/

.page-content .container {
    width: 90%;
    max-width: 1100px;
    margin: 0 auto;
}

.page-content .content {
    max-width: 750px;
    margin: 0 auto;
}

.page-content .section {
    padding: 40px 0;
}


/* 各セクション */

.about-section {
    margin-top: 0;
}

.mission-section {
    margin-top: -60px;
}

.history-section {
    margin-top: 0;
}

.faq-section {
    margin-top: -60px;
}


/*======================================================
  Heading
======================================================*/


/* Official HP本文の要約 */

.page-content h1 {
    font-size: 100px;
    font-weight: normal;
    color: #005d84;

    margin-bottom: 20px;
    margin-left: 100px;
    margin-top: -90px;
}


/* 言わずと知れただけ */

.page-content h2 {
    font-size: 40px;
    font-weight: normal;

    color: #005d84;

    text-align: center;

    margin-bottom: 0;
    margin-left: 0;
    margin-top: -55px;
}


/* FAQなど学校ページ本文内のh3だけ */

.section h3 {
    font-size: 24px;
    font-weight: bold;

    color: #005d84;

    margin-top: 10px;
    margin-bottom: 10px;
}


/* Photo Galleryの中の文章 */

.page-content h4 {
    font-size: 30px;
    font-weight: normal;

    color: #005d84;

    text-align: left;

    margin-bottom: -40px;
    margin-left: 0;
    margin-top: -75px;
}


/* Boarding Facility と Photo Gallery */

.page-content h5 {
    font-size: 40px;
    font-weight: normal;

    color: #005d84;

    text-align: left;

    margin-bottom: 5px;
    margin-left: 0;
    margin-top: -25px;
}


/*======================================================
  学校ページ上部情報
  Crest / English school name / Japanese school name / Info
======================================================*/

.school-page-header {
    padding-bottom: 45px;
}

.school-page-header .school-header-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 70px;
}

/* 左側：学校クレスト・校章 */
.school-page-header .school-main-logo {
    display: block;
    position: relative;
    flex: 0 0 auto;
    width: 340px;
    max-width: 34%;
    height: auto;
    margin: 0;
}

/* 右側：学校名＋基本情報 */
.school-page-header .school-info {
    width: 560px;
    max-width: 56%;
    margin: 0;
}

/* 英語校名の下に日本語校名を置く。重ねない */
.school-page-header .school-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    margin: 0 0 18px;
    padding: 0;
    line-height: 1;
}

/* 英語校名画像 */
.school-page-header .school-image {
    display: block;
    position: relative;
    z-index: 2;
    width: 520px;
    max-width: 100%;
    height: auto;
    margin: 0;
}

/* 日本語校名画像 */
.school-page-header .school-logo {
    display: block;
    position: relative;
    z-index: 3;
    width: 210px;
    max-width: 46%;
    height: auto;
    margin: 10px 12px 0 auto;
}

.school-page-header .school-info p {
    margin: 18px 0 8px;
    line-height: 1.8;
}

/* 固定LANIKOAヘッダーとの間隔 */
@media screen and (min-width: 769px) {
    .school-page-header {
        margin-top: 0 !important;
        padding-top: calc(var(--header-height) + 40px) !important;
        padding-bottom: 45px !important;
    }
}

/* Tablet / Smartphone */
@media screen and (max-width: 768px) {
    .school-page-header {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        padding-top: 85px !important;
        padding-bottom: 35px !important;
    }

    .school-page-header .school-header-inner {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 16px !important;
        margin: 0 auto !important;
        padding: 0 !important;
        text-align: center;
    }

    .school-page-header .school-main-logo {
        position: static !important;
        width: 210px !important;
        max-width: 58% !important;
        height: auto !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .school-page-header .school-info {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .school-page-header .school-title {
        width: 100% !important;
        align-items: center !important;
        margin: 0 auto 16px !important;
        padding: 0 !important;
    }

    .school-page-header .school-image {
        width: 390px !important;
        max-width: 92% !important;
        height: auto !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .school-page-header .school-logo {
        width: 190px !important;
        max-width: 58% !important;
        height: auto !important;
        margin: 10px auto 0 !important;
        padding: 0 !important;
    }

    .school-page-header .school-info p {
        width: max-content !important;
        max-width: 90% !important;
        margin: 12px auto 0 !important;
        padding: 0 !important;
        text-align: left !important;
        line-height: 1.7 !important;
    }
}

@media screen and (max-width: 600px) {
    .school-page-header .school-main-logo {
        width: 185px !important;
        max-width: 58% !important;
    }

    .school-page-header .school-image {
        width: 350px !important;
        max-width: 94% !important;
    }

    .school-page-header .school-logo {
        width: 175px !important;
        max-width: 60% !important;
        margin-top: 10px !important;
    }
}


/*======================================================
  About School / Mission / History Logo
======================================================*/

.logo2 {
    flex: 1;

    max-width: 350px;

    margin-left: 0;

    position: relative;

    top: -30px;
}


/*======================================================
  Hero
  Mapの写真
======================================================*/

.school-hero {
    margin: 0 auto 50px;
}

.school-hero img {
    width: 100%;

    border-radius: 6px;
}


/* 一番上の画像の下にあった緑背景を消す */

.school-page-header + .school-hero {
    background: transparent;
}


/*======================================================
  Two Column
======================================================*/

.two-column {
    display: flex;

    align-items: flex-start;

    gap: 60px;
}

.two-column .photo {
    flex: 0 0 42%;

    margin-top: -40px;
}

.two-column .text {
    flex: 1;
}


/* 言わずと知れた～の文章全体 */

.intro-text {
    margin-left: 0;

    width: 800px;
    max-width: 100%;
}

.intro-text p {
    width: 800px;
    max-width: 100%;

    margin: 0 auto;
}

.intro-title {
    margin-top: 0;
}


/*======================================================
  Photo
======================================================*/

.photo {
    margin: 0;
}

.photo img {
    display: block;

    width: 100%;
    height: auto;

    border-radius: 0;

    box-shadow:
        0 5px 18px rgba(0, 0, 0, .15);
}


/* Gate・History */

.photo-large {
    width: 100%;
    max-width: 900px;

    margin: 30px auto;
}


/*======================================================
  Vertical Layout
  About / Mission / History
======================================================*/

.vertical-layout {
    display: flex;

    flex-direction: column;

    align-items: center;
}

.vertical-layout .photo {
    width: 100%;
    max-width: 900px;

    margin-bottom: 30px;
}

.vertical-layout .photo img {
    width: 100%;
}

.vertical-layout .text {
    width: 100%;
    max-width: 850px;

    padding-left: 25px;

    margin-top: -15px;
}


/*======================================================
  Interview
======================================================*/

.interview {
    max-width: 900px;

    margin: 0 auto;
}


/* Andrea紹介 */

.interview-text {
    max-width: 700px;

    line-height: 1.8;

    position: relative;

    top: 70px;
    left: 40px;
}

.interview-layout .photo {
    flex: 0 0 42%;

    max-width: 380px;
}

.interview-layout .photo img {
    width: 100%;
    height: auto;
}

.interview-layout {
    display: flex;

    flex-direction: column;

    align-items: center;
}

.interview-title {
    position: relative;

    left: 30px;
}


/*======================================================
  Bullet
======================================================*/

.bullet {
    padding-left: 1.2em;

    text-indent: -1.2em;

    margin-bottom: 10px;
}


/*======================================================
  Admission
======================================================*/

.admission {
    margin: 30px auto;

    padding: 30px;

    background: #fafafa;

    border-left:
        6px solid #005d84;

    border-radius: 6px;
}

.admission h3 {
    margin-top: 0;
}


/*======================================================
  FAQ
======================================================*/

.faq-content {
    width: 100%;
    max-width: 800px;

    margin: 0;

    padding: 5px 0;
    padding-left: 20px;

    box-sizing: border-box;

    overflow-wrap: break-word;
}

.faq-content h3 {
    margin: 10px 0;

    line-height: 1.5;

    overflow-wrap: break-word;

    word-break: break-word;
}

.faq-content p {
    margin-bottom: 30px;

    padding-left: 40px;

    line-height: 1.6;

    overflow-wrap: break-word;
}


/*======================================================
  Gallery
======================================================*/

.gallery {
    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 25px;

    margin-top: 35px;
}

.gallery img {
    width: 100%;
    height: auto;

    border-radius: 8px;

    box-shadow:
        0 4px 12px rgba(0, 0, 0, .15);

    transition: .3s;
}

.gallery img:hover {
    transform: scale(1.02);
}


/*======================================================
  Caption
======================================================*/

.caption {
    margin-top: 15px;

    text-align: center;

    font-size: 15px;

    color: #666;
}


/*======================================================
  Table
======================================================*/

.page-content table {
    width: 100%;

    margin: 25px 0;

    border-collapse: collapse;
}

.page-content th {
    padding: 12px;

    background: #005d84;

    color: #fff;
}

.page-content td {
    padding: 12px;

    border:
        1px solid #ddd;
}


/*======================================================
  強調文字
======================================================*/

.futo {
    font-size: 20px;

    font-weight: bold;

    line-height: 1.6;
}


/*======================================================
  LANIKOA 共通フッター保護
======================================================*/

/*
  学校ページ本文は明朝体ですが、
  LANIKOA共通フッターにはIolani側のフォントを
  引き継がせません。

  色・背景・レイアウトなどは
  ../../../style.css の共通CSSに任せます。
*/

.footer {
    font-family:
        "Noto Sans JP",
        sans-serif;
}

.footer h3 {
    font-family:
        Montserrat,
        "Noto Sans JP",
        sans-serif;
}


/*======================================================
  Responsive
======================================================*/


/*------------------------------------------------------
  Tablet
------------------------------------------------------*/

@media screen and (max-width: 1024px) {

    .page-content .container {
        width: 96%;
    }

    .two-column {
        gap: 30px;
    }

    .interview-text {
        left: 0;
    }

    .interview-title {
        left: 0;
    }

    .page-content h2 {
        margin: 5px 0;

        font-size: 30px;
    }
}


/*------------------------------------------------------
  Smartphone
------------------------------------------------------*/

@media screen and (max-width: 768px) {


    /*--------------------------
      Base
    --------------------------*/

    .page-content {
        overflow-x: hidden;
    }

    .page-content {
        font-size: 15px;

        line-height: 1.7;
    }

    .page-content .container {
        width: 92%;

        margin: 0 auto;

        padding: 0 10px;
    }

    .page-content .section {
        padding: 20px;
    }

    /*--------------------------
      Main Visual
    --------------------------*/

    .school-hero {
        margin: 0 auto;
    }


    /*--------------------------
      Heading
    --------------------------*/

    .page-content h1 {
        margin: 20px 0;

        font-size: 16px;
    }

    .page-content h2 {
        margin: 5px 0;

        font-size: 30px;
    }

    /*
      h3ではなく.section h3に限定。
      共通フッターのh3を変更しないため。
    */

    .section h3 {
        font-size: 22px;
    }


    /*--------------------------
      Two Column
    --------------------------*/

    .two-column {
        flex-direction: column;

        gap: 0;
    }

    .two-column .photo {
        flex: initial;

        margin-top: 0;
    }

    .two-column .text {
        width: 100%;
        max-width: 100%;

        flex: none;

        margin: 0;

        padding: 0;
    }


    /*--------------------------
      Photo
    --------------------------*/

    .photo,
    .photo-large {
        width: 100%;
        max-width: 100%;
    }

    .photo img {
        width: 100%;
        height: auto;
    }

    .logo2 {
        top: 0;
    }


    /*--------------------------
      Gate・History
    --------------------------*/

    .vertical-layout .text {
        width: 100%;
        max-width: 100%;

        padding: 0;

        margin: 0;
    }


    /*--------------------------
      Interview
    --------------------------*/

    .interview-text {
        margin-top: 0;

        position: static;

        top: auto;
        left: auto;
    }

    .interview-title {
        left: 0;
    }


    /*--------------------------
      Gallery
    --------------------------*/

    .gallery {
        grid-template-columns:
            1fr;

        gap: 20px;
    }


    /*--------------------------
      Admission
    --------------------------*/

    .admission {
        padding: 20px;
    }


    /*--------------------------
      FAQ
    --------------------------*/

    .faq-content {
        padding: 0 15px;

        margin: 0;
    }

    .faq-content p {
        padding-left: 0;
    }

    .faq-section {
        transform: none;
    }


    /*--------------------------
      Table
    --------------------------*/

    .page-content table {
        display: block;

        overflow-x: auto;

        white-space: nowrap;
    }


    /*--------------------------
      Intro
    --------------------------*/

    .intro-text p {
        width: 100%;
    }

    .intro-title {
        margin-top: 40px;
    }

    .intro-text h2 {
        margin-top: 0;
    }

    .page-content h2 {
        margin-top: 0;
    }

}


/*======================================================
  School Header / Main Visual
  Tablet & Smartphone final settings
======================================================*/


.school-hero {
    display: block !important;
    width: 100% !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    margin: 0 auto 50px !important;
    padding: 0 !important;

    position: relative !important;
}

.school-hero .container {
    height: auto !important;
    min-height: 0 !important;

    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.school-hero img {
    display: block !important;

    width: 100% !important;
    height: auto !important;

    margin: 0 !important;
}

/*======================================================
  Print
======================================================*/

@media print {

    /*
      共通LANIKOAヘッダー・フッターを印刷時に
      非表示にしたい場合の設定
    */

    .header {
        border: none;
    }

    .footer {
        display: none;
    }

    .gallery img {
        box-shadow: none;
    }

    .page-content a {
        color: #000;

        text-decoration: none;
    }
}


/*======================================================
  Fine Tune
  PCのみ位置調整
======================================================*/

@media screen and (min-width: 769px) {


    /* Andrea紹介 */

    .interview-text {
        margin-top: 0;

        position: relative;

        top: 70px;
        left: 30px;
    }


    /* Gate */

    .vertical-layout .text {
        max-width: 850px;

        padding-left: 25px;

        margin-top: -15px;
    }


    /* 言わずと知れたの最終位置調整 */

    .intro-text h2 {
        margin-top: -55px;

        margin-bottom: -30px;
    }

}



/* =====================================================
   Star of the Sea
   Mission 3画像 最終調整
   ===================================================== */

@media screen and (min-width: 769px) {

    /* Missionセクション自体の上下余白 */
    .mission-section {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
    }

    .mission-section > .container {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .mission-section .two-column {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }


    /* 3画像全体 */
    .mission-section .photo-large3 {
        width: 100% !important;
        max-width: 1050px !important;

        margin: 0 auto !important;
        padding: 0 !important;

        display: flex !important;
        flex-direction: row !important;

        align-items: center !important;
        justify-content: center !important;

        gap: 19px !important;
    }


    /* 左の2画像 */
    .mission-section .photo-large3 .left-images {
        width: 43% !important;
        flex: 0 0 43% !important;

        margin: 0 !important;
        padding: 0 !important;

        display: flex !important;
        flex-direction: column !important;

        justify-content: center !important;
        align-items: flex-start !important;

        gap: 8px !important;
    }

    .mission-section .photo-large3 .left-images img.logo3 {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    /* 右の Nurture-Unite-Inspire */
    .mission-section .photo-large3 .right-image {
        width: 57% !important;
        flex: 0 0 57% !important;

        margin: 0 !important;
        padding: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    .mission-section .photo-large3 .right-image img.logo3.logo-nui {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;

        margin: 0 !important;
        padding: 0 !important;
    }


	
	/* =====================================================
   Star of the Sea
   Mission画像 → 下のシンボル部分の間隔
   ===================================================== */

.mission-section .mission-symbol-content {
    margin-top: -80px !important;
    padding-top: 0 !important;
}

.mission-section .mission-symbol-content .two-column {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.mission-section .mission-symbol-content .photo-large {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
	
	
	
	/* =====================================================
   Star of the Sea
   Mission内の各シンボル画像と文章の間隔を詰める
   ===================================================== */

.mission-section .photo-large {
    margin-top: 0px !important;
    margin-bottom: -20px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.mission-section .photo-large > img {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.mission-section .container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.mission-section .two-column.vertical-layout {
    gap: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.mission-section .logo-eagle,
.mission-section .logo-small {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
	
	
/* =====================================================
   Star of the Sea
   小さいシンボル画像の左位置だけをEagleに揃える
   ===================================================== */

/* Eagleは今の大きさ・位置をそのまま維持 */
.mission-section .logo-eagle {
    width: auto !important;
    max-width: 100% !important;

    margin-left: 0 !important;
    margin-right: auto !important;
}


/* Leaf / People / Star / Ship / Wave */
.mission-section .logo-small {
    width: auto !important;
    max-width: 180px !important;

    margin-left: 0 !important;
    margin-right: auto !important;
}


/* 親枠は動かさない */
.mission-section .photo-large {
    width: 100% !important;
    max-width: 900px !important;

    margin-left: auto !important;
    margin-right: auto !important;
}
	
.mission-section .logo-small {
    transform: translateX(-60px);
}	
	
	
	
	/* =====================================================
   全学校共通
   Admission・モンステラ・Google Map 位置調整
   ===================================================== */

@media screen and (min-width: 769px) {

    /* アドミッション情報：少し右へ */
    .admission .text {
        position: relative;
        left: 30px;
    }

    /* モンステラ：少し左へ */
    .admission .school-image {
        position: relative;
        left: -30px;
    }

    /* アドミッション直後のMap：
       アドミッション情報と同じ位置へ */
    .admission + .section .photo {
        position: relative;
        left: 45px;
    }

}




 /* =====================================================
   REGULAR SCHOOL
   HEADER LOGO
   ===================================================== */

/* PC */
body .header .logo img {
    width: 180px !important;
    max-width: 180px !important;
    height: auto !important;
    max-height: none !important;
}

body .header .logo {
    transform: translateY(22px) !important;
}


/* タブレット */
@media (max-width: 900px) {

    body .header .logo img {
        width: 110px !important;
        max-width: 110px !important;
        height: auto !important;
        max-height: none !important;
    }

    body .header .logo {
        transform: translateY(5px) !important;
    }
}


/* スマートフォン */
@media (max-width: 600px) {

    body .header .logo img {
        width: 120px !important;
        max-width: 120px !important;
        height: auto !important;
        max-height: none !important;
    }

    body .header .logo {
        transform: translateY(8px) !important;
    }
}
	
	
	
	/* =====================================================
   REGULAR SCHOOL
   パンくず下の余白調整
   ===================================================== */

@media screen and (min-width: 769px) {

    .breadcrumb + .page-content .school-page-header,
    .breadcrumb + main .school-page-header {
        padding-top: 25px !important;
    }


}	

	
/* =====================================================
   MARYKNOLL GOOGLE MAP 最終調整
   ===================================================== */

@media screen and (min-width: 769px) {

    /* 地図の枠 */
    .map-section .photo {
        position: relative !important;
        left: 0 !important;
        top: 0 !important;

        flex: 0 0 46% !important;

        margin-top: 0 !important;
        margin-left: 0 !important;

        height: 360px !important;
        overflow: hidden;
    }

    /* Google Map 本体 */
    .map-section .photo iframe {
        display: block !important;

        width: 100% !important;
        height: 360px !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
    }
}

	
	@media screen and (max-width: 768px) {

    .map-section .photo {
        width: 100% !important;
        height: 320px !important;

        margin: 0 0 25px !important;

        position: relative !important;
        left: 0 !important;
        top: 0 !important;
    }

    .map-section .photo iframe {
        width: 100% !important;
        height: 320px !important;
        border: 0 !important;
    }
}
	
	
/* =========================================
   Map → About School の間隔
========================================= */

.map-section {
    margin-bottom: 80px !important;
}

/* スマホ */
@media screen and (max-width: 768px) {
    .map-section {
        margin-bottom: 60px !important;
    }
}
	
	/* KCS サブタイトル */
.school-subtitle {
    display: block;
    width: 100%;
    margin-top: 18px;
    text-align: center;
    font-size: 0.9em;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.7;
}