@charset "utf-8";

@import url("common.css");

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+　タイトル : ページ共有のスタイル
+　ファイル名 : ファイルのパスを入れます。(ルート、相対どちらでも)
+　概要 : CSSの用途を説明を入れます。
+　サイト名 : サイトの説明を入れます。
+　URL : http://
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/* --------------------------------------------------------------------------------------
 共通
--------------------------------------------------------------------------------------- */

.leftBlock {
	float: left;
}

.rightBlock {
	float: right;
}

.btnArea01 {
	width: 956px;
	margin: 0 auto;
	text-align: center;
}
.btnArea01 a {
	display: block;
	width: 480px;
	height: 130px;
	margin: 0 auto;
	padding-bottom:20px;
	background: url(../../img/top_btn02_off.png) no-repeat left top;
	text-indent: -9999px;
	text-align: center;
}
.btnArea01 a:hover {
	background: url(../../img/top_btn02_on.png) no-repeat left top;
}

/* --------------------------------------------------------------------------------------
 top
--------------------------------------------------------------------------------------- */

/* mainArea ------------------------------ */

.mainArea {
	position: relative;
	width: 950px;
	height: 269px;
	margin: 0 auto;
	background: url(../../img/main_bg_2.jpg) no-repeat top;
	text-align: left;
}

.mainArea p {
	position: absolute;
}
.mainArea p.mainTxt01 {	top: 20px;	left: 28px;}
.mainArea p.mainTxt02 {	top: 48px;	left: 22px;}
.mainArea p.mainTxt03 {	top: -46px;	right: -13px;}
.mainArea p.mainImg01 {	bottom: 4px;	left: 141px;}

/* topTtl ------------------------------ */

h2.topTtl01 {
	padding: 24px 0 0;
}

/* box ------------------------------ */

.topBoxTop01 {
	width: 917px;
	margin: 0 auto 50px;
	padding: 4px 0 0;
	background: url(../../img/top_boxtop01.gif) no-repeat left top;
}
.topBoxBtm01 {
	padding: 0 0 13px;
	background: url(../../img/top_boxbtm01.gif) no-repeat left bottom;
}
.topBoxRep01 {
	background: url(../../img/top_boxrep01.gif) no-repeat;
}

.topBoxBtm02 {
	position: relative;
	width: 902px;
	margin: 0 auto;
	padding: 0 0 3px;
	background: url(../../img/top_boxbtm02.gif) no-repeat left bottom;
}
.topBoxRep02 {
	background: url(../../img/top_boxrep02.gif) repeat-y;
}

.topBoxTop03 {
	width: 956px;
	margin: 0 auto;
	padding: 89px 0 0;
	background: url(../../img/top_boxtop03.gif) no-repeat left top;
}
.topBoxBtm03 {
	padding: 0 0 40px;
	background: url(../../img/top_boxbtm03.gif) no-repeat left bottom;
}
.topBoxRep03 {
	padding: 0 83px 0 60px;
	background: url(../../img/top_boxrep03.gif) repeat-y;
}

.topBoxTop04 {
	width: 950px;
	margin: 15px auto 0;
	padding: 13px 0 0;
	background: url(../../img/top_boxtop04.gif) no-repeat left top;
}
.topBoxBtm04 {
	padding: 0 0 2px;
	background: url(../../img/top_boxbtm04.gif) no-repeat left bottom;
}
.topBoxRep04 {
	padding: 0 13px 0 19px;
	background: url(../../img/top_boxrep04.gif) repeat-y;
}

/* topArea01 ------------------------------ */

.topArea01 {
	width: 956px;
	margin: 20px auto 0;
}

.topArea01 .topBox01 {
	float: left;
	width: 290px;
	padding-right: 35px;
	background: url(../../img/top_bg01.gif) no-repeat left 52px;
}
.topArea01 .topBox01.start {
	padding-left: 10px;
}
.topArea01 .topBox01.last {
	padding-right: 0px;
}

.topArea01 .topBox01 p {
	padding: 15px 15px 50px 20px;
	letter-spacing: 0.02em;
}

.topBoxRep02 h3 {
	padding: 11px 0 11px 210px;
}
.topBoxRep02 h4 {
	padding: 0 0 10px 197px;
}
.topBoxRep02 p.topTxt01 {
	width: 405px;
	padding: 0 0 25px 215px;
	letter-spacing: 0.02em;
	color: #000;
}
.topBoxRep02 p.topImg01 {
	position: absolute;
	top: 0px;
	left: 2px;
	padding: 0;
}
.topBoxRep02 p.topImg02 {
	position: absolute;
	bottom: 3px;
	right: 2px;
	padding: 0;
}

/* topArea02 ------------------------------ */

.topArea02 {
	width: 956px;
	margin: 0 auto 50px;
	color: #333;
}

.topArea02 .leftBlock {
	width: 282px;
}
.topArea02 .leftBlock p.topTxt02 {
	padding: 10px 40px 15px 20px;
}

.topArea02 .rightBlock {
	width: 517px;
}
.topArea02 .rightBlock h3 {
	font-weight: bold;
	color: #2a5283;
}
.topArea02 .rightBlock p {
	margin-bottom: 5px;
	padding-bottom: 5px;
	border-bottom: 1px solid #c4c4c4;
}

/* topArea03 ------------------------------ */

.topArea03 {
	width: 956px;
	margin: 10px auto 70px;
	text-align: center;
	color: #333;
}

/* topArea04 ------------------------------ */

.topArea04 {
	width: 951px;
	margin: 10px auto 35px;
	padding-bottom: 15px;
	border-bottom: 1px solid #d0cfce;
	text-align: center;
	color: #333;
}

.topArea04 .leftBlock {
	padding: 0 0 0 25px;
}
.topArea04 .rightBlock {
	padding: 45px 25px 0 0;
}
.topArea04 .rightBlock li {
	float: left;
}

/* topArea04 ------------------------------ */

.topBoxRep04 .rightBlock {
	padding-left: 19px;
	border-left: 1px solid #d0cfce;
}
.topBoxRep04 .txtBox {
	float: left;
	width: 430px;
	padding: 13px 0 10px;
}
.topBoxRep04 .txtBox h3 {
	padding-bottom: 10px;
}
.topBoxRep04 .topBtn {
	float: left;
	padding: 7px 0 0;
}

.topArea04 .leftBlock {
	padding: 0 0 0 25px;
}
.topArea04 .rightBlock {
	padding: 45px 25px 0 0;
}
.topArea04 .rightBlock li {
	float: left;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
86チーム用の改造コード
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

.top_bt_text_a1{
	margin-top:20px;
	width:956px;
}

.top_bt_text_a2{
float:left;
margin-bottom:20px;
}

.top_bt_text_a3{
padding:15px;
}
.top_bt_text_a3 p{
font-size:128%;
}


.top_bt_text_b1{

}

.top_bt_text_a2 a {
	display: block;
	height: 130px;
	margin: 0 auto;
	background: url(../../img/top_btn02_off.png) no-repeat left top;
	text-indent: -9999px;
}
.top_bt_text_a2 a:hover {
	background: url(../../img/top_btn02_on.png) no-repeat left top;
}


.top_bt_text_b1{
	margin-top:20px;
	width:956px;
}

.top_bt_text_b2{
float:left;
margin-bottom:20px;
}

.top_bt_text_b3 p{
font-size:128%;
padding:10px;
}

.senko img{
margin:15px 15px 15px 15px;
}
.top_bt_text_c1{
margin:25px 15px 15px 15px;
padding:5px;
border: 1px solid #000;
height:300px;
}

.top_bt_text_c1 h2{
clear:both;
}

.top_bt_text_c1 ul{
float:left;
padding:30px 20px 20px 60px;
font-size:140%;

}

.top_bt_text_c1 li{
margin-bottom:15px;
}

.top_bt_text_c1 p{
border-top: 1px solid #d0cfce;
font-size:150%;
}

.btnArea02 {
	width: 460px;
	float:left;
}

.btnArea02 a {
	display: block;
	width: 460px;
	height: 130px;
	margin: 0 auto;
	padding-bottom:20px;
	background: url(../../img/top_btn02_off.png) no-repeat left top;
	text-indent: -9999px;
	text-align: center;
}
.btnArea02 a:hover {
	background: url(../../img/top_btn02_on.png) no-repeat left top;
}

.btnArea03 {
	width: 460px;
	float:left;
}

.btnArea03 a {
	display: block;
	width: 460px;
	height: 130px;
	margin: 0 auto;
	padding-bottom:20px;
	background: url(../../img/top_btn03_off.png) no-repeat left top;
	text-indent: -9999px;
	text-align: center;
}
.btnArea03 a:hover {
	background: url(../../img/top_btn03_on.png) no-repeat left top;
}

.btnArea04 {
	width: 460px;
	float:left;
}
.btnArea05 {
	width: 460px;
	float:left;
}




.btnArea06 {
	width: 460px;
	float:left;
}

.btnArea06 a {
	display: block;
	width: 460px;
	height: 130px;
	margin: 0 auto;
	padding-bottom:20px;
	background: url(../../img/koukan_voice_off.png) no-repeat left top;
	text-indent: -9999px;
	text-align: center;
}
.btnArea06 a:hover {
	background: url(../../img/koukan_voice_on.png) no-repeat left top;
}

.btnArea07 {
	width: 460px;
	float:left;
}

.btnArea07 a {
	display: block;
	width: 460px;
	height: 130px;
	margin: 0 auto;
	padding-bottom:20px;
	background: url(../../img/koukan_blog_off.png) no-repeat left top;
	text-indent: -9999px;
	text-align: center;
}
.btnArea07 a:hover {
	background: url(../../img/koukan_blog_on.png) no-repeat left top;
}




/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   College of Design LP custom styles
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
.jointHeader {
	padding: 12px 0 10px;
	border-bottom: 1px solid #d7d7d7;
}
.jointHeader h1 {
	float: left;
	padding: 6px 0 0 14px;
}
.jointHeader .partnerLogo {
	float: right;
	padding: 8px 14px 0 0;
}

.mainAreaCustom {
	height: 400px;
	background: url(../../img/top_tokyouniv.jpg) no-repeat center center;
	background-size: cover;
	position: relative;
	margin-top: 18px;
}
.mainAreaCustom .heroCopy {
	position: absolute;
	left: 38px;
	bottom: 32px;
	max-width: 560px;
	padding: 22px 28px;
	background: rgba(255,255,255,0.85);
}
.mainAreaCustom .heroLead {
	margin-bottom: 8px;
	font-size: 24px;
	font-weight: bold;
	line-height: 1.4;
}
.mainAreaCustom h2 {
	font-size: 42px;
	font-weight: bold;
	line-height: 1.3;
	color: #000;
}

.noticeBox {
	width: 896px;
	margin: 24px auto 0;
	padding: 24px 30px;
	background: #e6e6e6;
	color: #000;
}
.noticeBox p {
	font-size: 24px;
	font-weight: bold;
	line-height: 1.7;
}

.ctaButtons {
	width: 956px;
	margin: 24px auto 10px;
}
.ctaButtons li {
	list-style: none;
}

.contentSection {
	width: 956px;
	margin: 35px auto 0;
}
.sectionTitle {
	padding: 14px 22px;
	background: #233a6a;
	color: #fff;
	font-size: 32px;
	font-weight: bold;
	line-height: 1.4;
}
.sectionBody {
	padding: 25px 22px 28px;
	border: 1px solid #d0d0d0;
	border-top: none;
	background: #fff;
}
.sectionBody p {
	margin-bottom: 18px;
	font-size: 22px;
	line-height: 1.9;
}
.imageCenter {
	text-align: center;
}
.imageCenter img {
	max-width: 100%;
	height: auto;
}
.subTitle {
	margin: 28px 0 14px;
	padding-left: 14px;
	border-left: 6px solid #233a6a;
	font-size: 28px;
	font-weight: bold;
	line-height: 1.5;
}
.miniTitle {
	margin: 25px 0 10px;
	font-size: 24px;
	font-weight: bold;
	color: #233a6a;
}
.note {
	font-size: 16px !important;
	line-height: 1.7 !important;
	color: #555;
}
.essayBox {
	margin: 20px 0 20px;
	padding: 20px 22px;
	background: #f7f7f7;
	border: 1px solid #d5d5d5;
}
.essayBox dl {
	margin-top: 10px;
}
.essayBox dt {
	margin-top: 16px;
	font-size: 22px;
	font-weight: bold;
	color: #000;
}
.essayBox dd {
	margin: 6px 0 0 0;
	font-size: 20px;
	line-height: 1.8;
}
.scoreSection .sectionBody {
	padding-bottom: 18px;
}
.scoreText h3 {
	font-size: 34px;
	line-height: 1.5;
	font-weight: bold;
	color: #d40000;
}
.scoreText .studentName {
	margin: 16px 0 8px;
	font-size: 24px;
	font-weight: bold;
	color: #000;
}
.scoreGraph {
	margin-top: 10px;
	text-align: center;
}
.bottomCta {
	margin-top: 30px;
	margin-bottom: 15px;
}


/* ============================================================
   Fluid / mobile layout (College of Design LP)
   Keep the original desktop design, remove fixed-width overflow.
   ============================================================ */
* , *::before, *::after { box-sizing: border-box; }
body { min-width: 0; }
div#wrap, div#ctArea {
    width: 100%;
    max-width: 956px;
}
div#hd, div#ft {
    width: 100%;
    max-width: 950px;
}
.jointHeader {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.jointHeader h1 {
    float: none;
    padding: 0 0 0 14px;
    flex: 0 0 auto;
}
.jointHeader .partnerLogo {
    float: none;
    padding: 0 14px 0 0;
    flex: 0 0 auto;
}
.jointHeader h1 img, .jointHeader .partnerLogo img {
    display: block;
    max-width: 100%;
    height: auto;
}

.mainAreaCustom {
    width: 100%;
    max-width: 950px;
    /* Use an aspect ratio on smaller screens without narrowing desktop. */
    background-position: center center;
}
.mainAreaCustom .heroCopy {
    box-sizing: border-box;
    width: min(670px, calc(100% - 64px));
    max-width: none;
}
/* Critical fix: the old .mainArea p rule makes the lead line absolute. */
.mainAreaCustom .heroCopy .heroLead {
    position: static;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    margin: 0 0 8px;
    white-space: normal;
}
.mainAreaCustom .heroCopy h2 {
    overflow-wrap: anywhere;
}
.mainAreaCustom .heroCourse {
    display: inline-block;
    white-space: nowrap;
}

.noticeBox {
    width: 100%;
    max-width: 956px;
}
.ctaButtons {
    width: 100%;
    max-width: 956px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 12px;
    padding: 0 8px;
}
.ctaButtons .btnArea02,
.ctaButtons .btnArea03 {
    width: auto;
    max-width: 460px;
    min-width: 0;
    flex: 1 1 0;
    float: none;
}
.ctaButtons .btnArea02 a,
.ctaButtons .btnArea03 a {
    width: 100%;
    max-width: 460px;
    height: auto;
    padding-bottom: 0;
    aspect-ratio: 460 / 130;
    background-size: 100% 100%;
    background-position: center top;
}

.contentSection {
    width: 100%;
    max-width: 956px;
}
.sectionBody, .essayBox { min-width: 0; }
.sectionBody img, .scoreGraph img {
    max-width: 100%;
    height: auto;
}
.scoreGraph a, .imageCenter a {
    display: inline-block;
    max-width: 100%;
}
.imageHint {
    display: none;
}
#ft {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 15px;
}
#ft p,
#ft p.leftBlock,
#ft p.rightBlock {
    width: auto;
    float: none;
}

@media screen and (max-width: 960px) {
    #wrap, #ctArea {
        width: 100%;
    }
    .jointHeader {
        margin: 0 auto;
    }
    .mainAreaCustom {
        margin-top: 12px;
    }
    .noticeBox {
        padding: 22px 24px;
    }
    .noticeBox p { font-size: clamp(17px, 2.5vw, 24px); }
    .sectionBody { padding: 22px 20px 24px; }
    .sectionTitle { font-size: clamp(25px, 3.2vw, 32px); }
    .sectionBody p { font-size: clamp(17px, 2.2vw, 22px); }
    .sectionBody p.note { font-size: 15px; }
    .subTitle { font-size: clamp(21px, 2.9vw, 28px); }
    .sectionBody p.miniTitle { font-size: clamp(19px, 2.5vw, 24px); }
    .essayBox dt { font-size: clamp(18px, 2.4vw, 22px); }
    .essayBox dd { font-size: clamp(17px, 2.2vw, 20px); }
    .scoreText h3 { font-size: clamp(24px, 3.5vw, 34px); }
}

@media screen and (max-width: 640px) {
    .jointHeader {
        padding: 12px 0;
        gap: 10px;
    }
    .jointHeader h1 { padding-left: 12px; flex: 0 1 45%; }
    .jointHeader .partnerLogo { padding-right: 12px; flex: 0 1 50%; }
    .jointHeader h1 img { width: min(100%, 170px); }
    .jointHeader .partnerLogo img { width: min(100%, 236px); }

    .mainAreaCustom {
        height: clamp(330px, 95vw, 440px);
        margin-top: 0;
        background-position: center center;
    }
    .mainAreaCustom .heroCopy {
        width: calc(100% - 28px);
        left: 14px;
        right: 14px;
        bottom: 18px;
        padding: 15px 16px;
        background: rgba(255, 255, 255, 0.90);
    }
    .mainAreaCustom .heroCopy .heroLead {
        margin-bottom: 5px;
        font-size: clamp(17px, 4.5vw, 23px);
        line-height: 1.4;
    }
    .mainAreaCustom .heroCopy h2 {
        font-size: clamp(21px, 5.6vw, 33px);
        line-height: 1.32;
        word-break: normal;
    }
    .noticeBox {
        margin-top: 15px;
        padding: 16px;
    }
    .noticeBox p {
        font-size: 16px;
        line-height: 1.7;
    }
    .noticeBox p + p { margin-top: 10px; }

    .ctaButtons {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 5px;
        padding: 0 12px;
        margin: 16px auto 0;
    }
    .ctaButtons .btnArea02,
    .ctaButtons .btnArea03 {
        width: 100%;
        max-width: 460px;
        flex: none;
    }
    .contentSection { margin-top: 22px; }
    .sectionTitle {
        padding: 12px 15px;
        font-size: 24px;
    }
    .sectionBody {
        padding: 16px 15px 19px;
    }
    .sectionBody p {
        margin-bottom: 14px;
        font-size: 16px;
        line-height: 1.8;
    }
    .subTitle {
        margin: 22px 0 13px;
        padding-left: 10px;
        border-left-width: 4px;
        font-size: 21px;
    }
    .sectionBody p.miniTitle { font-size: 18px; }
    .sectionBody p.note { font-size: 12px; }
    .essayBox { margin: 16px 0; padding: 14px 13px; }
    .essayBox dt { font-size: 17px; }
    .essayBox dd { font-size: 16px; overflow-wrap: break-word; }
    .scoreText h3 { font-size: 23px; }
    .sectionBody .studentName { font-size: 18px; }
    .sectionBody p.imageHint {
        display: block;
        margin: 4px 0 10px;
        font-size: 12px;
        color: #5a5a5a;
        line-height: 1.5;
    }
    #ft {
        padding: 14px 12px 20px;
        flex-direction: column;
        align-items: flex-start;
    }
    #ft p.leftBlock, #ft p.rightBlock { padding-left: 0; text-align: left; }
}


/* ============================================================
   2026-10 LP refinement: balanced header, understated typography,
   reordered student-result panel and reference-page footer.
   ============================================================ */

/* Header extends to the actual screen edges while content stays 956px. */
div#hd.jointHeader {
    position: relative;
    left: 50%;
    width: calc(100vw - 48px);
    max-width: none;
    margin: 0;
    transform: translateX(-50%);
    padding: 14px 0 13px;
    border-bottom: 1px solid #e5e8eb;
    align-items: center;
}
div#hd.jointHeader h1 { padding: 0; line-height: 1; }
.jointHeader h1 a { display: inline-block; vertical-align: middle; }
.jointHeader .partnerLogo { padding: 0; margin: 0; }
.jointHeader .partnerLogo img { width: 192px; max-width: 100%; height: auto; }

/* Sophisticated translucent typographic hero, with CSS-only treatment. */
.mainAreaCustom .heroCopy {
    left: 32px;
    bottom: 30px;
    width: min(720px, calc(100% - 64px));
    padding: 23px 29px 25px 27px;
    background: linear-gradient(112deg, rgba(252,253,253,.94) 0%, rgba(251,250,247,.85) 100%);
    border: 1px solid rgba(255,255,255,.80);
    border-left: 4px solid #2b4964;
    box-shadow: 0 8px 26px rgba(23,36,45,.15);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}
.mainAreaCustom .heroCopy .heroLead {
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1.55;
    color: #2b3a4a;
    margin: 0 0 9px;
}
.mainAreaCustom .heroCopy h2 {
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", Georgia, serif;
    font-size: clamp(27px, 3vw, 36px);
    font-weight: 600;
    letter-spacing: .025em;
    line-height: 1.45;
    color: #182e40;
    overflow-wrap: normal;
    word-break: normal;
}
.mainAreaCustom .heroCourse { display: inline-block; white-space: nowrap; }

/* Intro box: nuanced gray, literary headline, lighter description. */
.noticeBox {
    margin-top: 23px;
    padding: 27px 31px;
    background: linear-gradient(125deg, #f4f5f6 0%, #eceff1 100%);
    border-left: 4px solid #96a9b7;
    color: #202b33;
}
.noticeBox p {
    position: static;
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    font-size: 19px;
    font-weight: 400;
    letter-spacing: .025em;
    line-height: 1.83;
}
.noticeBox p:first-child {
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: 22px;
    font-weight: 600;
    color: #21384a;
    margin-bottom: 10px;
}

/* Student score result appears between English requirements and Essay. */
.scoreInline { margin: 32px 0 34px; border: 1px solid #dde3e8; background: #fdfdfd; }
.scoreInline .scoreHeading {
    padding: 12px 18px;
    font-size: 27px;
    letter-spacing: .035em;
}
.scoreInline .scoreUpBlock {
    display: flex;
    gap: 24px;
    padding: 20px 20px 22px;
    align-items: center;
    justify-content: space-between;
}
.scoreInline .scoreText { flex: 1 1 54%; min-width: 0; }
.scoreInline .scoreText h3 {
    font-size: clamp(22px, 2.35vw, 27px);
    font-weight: 700;
    line-height: 1.55;
    color: #bc1622;
    letter-spacing: .01em;
}
.scoreInline .scoreText .studentName { margin: 15px 0 10px; font-size: 21px; }
.sectionBody .scoreInline .scoreText p:not(.studentName) { font-size: 18px; line-height: 1.85; margin: 0; }
.scoreInline .scoreGraph { flex: 0 1 43%; max-width: 385px; margin: 0; }
.scoreInline .scoreGraph a { display: block; }
.scoreInline .scoreGraph img { display: block; max-width: 100%; height: auto; }

/* Reference LP: linked 'AGOS JAPAN' copyright, without old privacy link. */
div#ft {
    width: 100%;
    max-width: 956px;
    display: block;
    margin: 20px auto 0;
    padding: 21px 12px 25px;
    text-align: center;
    border-top: 1px solid #e5e8eb;
}
div#ft p.copyright {
    width: 100%;
    margin: 0;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.8;
    color: #68707a;
    letter-spacing: .025em;
    text-align: center;
}
div#ft p.copyright a { color: #48576a; text-decoration: none; }
div#ft p.copyright a:hover { text-decoration: underline; }

@media screen and (max-width: 960px) {
    div#hd.jointHeader { width: calc(100vw - 36px); padding: 13px 0; }
    .mainAreaCustom .heroCopy h2 { font-size: clamp(27px, 3.5vw, 35px); }
    .noticeBox p:first-child { font-size: clamp(19px, 2.55vw, 22px); }
    .noticeBox p { font-size: clamp(17px, 2.1vw, 19px); }
    .scoreInline .scoreText h3 { font-size: clamp(21px, 2.7vw, 27px); }
    .sectionBody .scoreInline .scoreText p:not(.studentName) { font-size: clamp(16px, 2vw, 18px); }
}
@media screen and (max-width: 640px) {
    div#hd.jointHeader { width: calc(100vw - 24px); padding: 12px 0; gap: 12px; }
    .jointHeader h1 { padding: 0; flex: 0 1 48%; }
    .jointHeader .partnerLogo { padding: 0; flex: 0 1 45%; }
    .jointHeader .partnerLogo img { width: 148px; }
    .mainAreaCustom .heroCopy {
        left: 14px;
        right: 14px;
        bottom: 17px;
        width: calc(100% - 28px);
        padding: 16px 16px 18px;
        border-left-width: 3px;
    }
    .mainAreaCustom .heroCopy .heroLead { font-size: 14px; letter-spacing: .09em; margin-bottom: 6px; }
    .mainAreaCustom .heroCopy h2 { font-size: clamp(20px, 5.15vw, 28px); line-height: 1.48; }
    .noticeBox { margin-top: 15px; padding: 19px 18px; }
    .noticeBox p:first-child { font-size: 18px; margin-bottom: 12px; }
    .noticeBox p { font-size: 16px; line-height: 1.8; }
    .scoreInline { margin: 23px 0 30px; }
    .scoreInline .scoreHeading { padding: 12px 14px; font-size: 22px; }
    .scoreInline .scoreUpBlock { flex-direction: column; gap: 13px; padding: 16px 14px 17px; }
    .scoreInline .scoreText { width: 100%; flex: 0 0 auto; }
    .scoreInline .scoreText h3 { font-size: 22px; }
    .scoreInline .scoreText .studentName { font-size: 18px; margin: 10px 0 7px; }
    .sectionBody .scoreInline .scoreText p:not(.studentName) { font-size: 16px; }
    .scoreInline .scoreGraph { width: 100%; max-width: 420px; flex: 0 0 auto; }
    .scoreInline .scoreGraph .imageHint { display: block; font-size: 12px; margin: 1px 0 8px; text-align: left; }
    div#ft { padding: 16px 15px 22px; margin-top: 12px; }
}
/* The clearfix pseudo-element becomes a third flex child; remove it so
   the partner logo reaches the far-right edge of the flex header. */
.jointHeader::after { content: none !important; display: none !important; }


/* ============================================================
   v5: Gothic-leaning editorial type, parallel section headings,
   intermediate CTA, and understated IELTS achievement heading.
   ============================================================ */
.mainAreaCustom .heroCopy h2,
.noticeBox p:first-child {
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
    font-weight: 600;
    letter-spacing: .035em;
}
.mainAreaCustom .heroCopy h2 { line-height: 1.48; }
.noticeBox p:first-child { letter-spacing: .035em; }

/* All three topics now use the same heading hierarchy and navy bar. */
.contentSection > .sectionTitle { margin: 0; }
.contentSection > .sectionBody { padding-top: 24px; }

/* The extra CTA comes immediately after the English requirements. */
.ctaButtons.midCta { margin: 14px auto 6px; }

/* The student story remains between English and Essay, but is visually secondary. */
.contentSection.scoreResults { margin-top: 20px; }
.scoreResults .scoreInline {
    margin: 0;
    border: 1px solid #d8e0e8;
    background: #fefefe;
}
.scoreResults .scoreHeading {
    padding: 13px 19px;
    background: #e7eef4;
    border-bottom: 1px solid #d3dfe8;
    color: #29455f;
    font-size: clamp(23px, 2.65vw, 28px);
    font-weight: 600;
    letter-spacing: .01em;
}
.scoreResults .scoreText p:not(.studentName) {
    font-size: 18px;
    line-height: 1.85;
    margin: 0;
}

@media screen and (max-width: 960px) {
    .scoreResults .scoreText p:not(.studentName) { font-size: clamp(16px, 2vw, 18px); }
}
@media screen and (max-width: 640px) {
    .contentSection > .sectionBody { padding-top: 17px; }
    .ctaButtons.midCta { margin: 13px auto 4px; }
    .contentSection.scoreResults { margin-top: 19px; }
    .scoreResults .scoreHeading { padding: 12px 14px; font-size: 21px; }
    .scoreResults .scoreText p:not(.studentName) { font-size: 16px; }
}


/* ============================================================
   v6: course navigation, score/CTA ordering, and phone contact.
   ============================================================ */
.agosCourses {
    margin: 26px 0 28px;
    padding: 19px 20px 21px;
    border: 1px solid #d7e1ea;
    border-left: 4px solid #56728c;
    background: linear-gradient(125deg, #f4f7fa 0%, #edf3f7 100%);
}
.agosCourses .agosCoursesTitle {
    margin: 0 0 15px;
    padding: 0;
    color: #284b68;
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .025em;
}
.agosCourseLinks {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
}
.agosCourseLinks a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 68px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #c5d3e0;
    border-radius: 4px;
    color: #263f59;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.55;
    text-decoration: none;
    transition: border-color .2s, background-color .2s, box-shadow .2s;
    box-sizing: border-box;
}
.agosCourseLinks a:link,
.agosCourseLinks a:visited { color: #263f59; text-decoration: none; }
.agosCourseLinks a:hover,
.agosCourseLinks a:focus-visible {
    color: #1f415f;
    border-color: #7e9ab2;
    background: #fafdff;
    box-shadow: 0 3px 10px rgba(40,70,95,.09);
}
.agosCourseLinks .courseArrow {
    flex: none;
    color: #50718f;
    font-size: 23px;
    font-weight: 400;
    line-height: 1;
}
.agosCourseLinks.singleCourse { grid-template-columns: minmax(0, 1fr); max-width: 340px; }

/* Student result first, consultation banners directly underneath. */
.contentSection.scoreResults { margin-bottom: 0; }
.ctaButtons.midCta { margin-top: 19px; margin-bottom: 9px; }

.contactPhone {
    width: 100%;
    margin: 8px auto 23px;
    padding: 0 16px;
    box-sizing: border-box;
    text-align: center;
}
.contactPhone a { display: inline-block; max-width: 100%; vertical-align: top; }
.contactPhone img { display: block; width: 480px; max-width: 100%; height: auto; }

@media screen and (max-width: 760px) {
    .agosCourseLinks { grid-template-columns: 1fr; }
    .agosCourseLinks.singleCourse { max-width: none; }
    .agosCourseLinks a { min-height: 58px; }
}
@media screen and (max-width: 640px) {
    .agosCourses { margin: 20px 0 24px; padding: 15px 13px 16px; }
    .agosCourses .agosCoursesTitle { font-size: 20px; margin-bottom: 11px; }
    .agosCourseLinks { gap: 9px; }
    .agosCourseLinks a { padding: 12px 14px; font-size: 16px; }
    .ctaButtons.midCta { margin-top: 14px; margin-bottom: 5px; }
    .contactPhone { margin: 5px auto 19px; }
}


/* ============================================================
   v8: hero title restyled to match the provided sample image.
   Background photo remains unchanged; only typography/overlay updated.
   ============================================================ */
.mainAreaCustom {
    position: relative;
    overflow: hidden;
}
.mainAreaCustom::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
        rgba(255,255,255,.83) 0%,
        rgba(255,255,255,.74) 28%,
        rgba(255,255,255,.48) 52%,
        rgba(255,255,255,.12) 78%,
        rgba(255,255,255,0) 100%);
    pointer-events: none;
}
.mainAreaCustom .heroCopy {
    position: absolute;
    left: 34px;
    top: 52px;
    right: auto;
    bottom: auto;
    width: min(880px, calc(100% - 68px));
    padding: 0;
    background: none;
    border: none;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    z-index: 2;
}
.mainAreaCustom .heroCopy .heroLead,
.mainAreaCustom .heroCopy h2 {
    color: #ffffff;
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
    font-weight: 900;
    letter-spacing: .02em;
    line-height: 1.08;
    text-shadow:
        -3px -3px 0 #a92626,
         3px -3px 0 #a92626,
        -3px  3px 0 #a92626,
         3px  3px 0 #a92626,
        -3px  0   0 #a92626,
         3px  0   0 #a92626,
         0   -3px 0 #a92626,
         0    3px 0 #a92626,
         4px  4px 0 rgba(90,0,0,.12);
}
.mainAreaCustom .heroCopy .heroLead {
    margin: 0 0 14px;
    font-size: clamp(30px, 3.5vw, 56px);
}
.mainAreaCustom .heroCopy h2 {
    margin: 0;
    font-size: clamp(46px, 5.9vw, 86px);
    line-height: 1.06;
}
.mainAreaCustom .heroCourse {
    display: inline;
    white-space: nowrap;
}

@media screen and (max-width: 960px) {
    .mainAreaCustom .heroCopy {
        left: 24px;
        top: 44px;
        width: calc(100% - 48px);
    }
    .mainAreaCustom .heroCopy .heroLead,
    .mainAreaCustom .heroCopy h2 {
        text-shadow:
            -2px -2px 0 #a92626,
             2px -2px 0 #a92626,
            -2px  2px 0 #a92626,
             2px  2px 0 #a92626,
             3px  3px 0 rgba(90,0,0,.10);
    }
    .mainAreaCustom .heroCopy .heroLead {
        margin-bottom: 10px;
        font-size: clamp(22px, 3.9vw, 38px);
    }
    .mainAreaCustom .heroCopy h2 {
        font-size: clamp(34px, 6vw, 60px);
    }
}

@media screen and (max-width: 640px) {
    .mainAreaCustom::before {
        background: linear-gradient(180deg,
            rgba(255,255,255,.78) 0%,
            rgba(255,255,255,.58) 48%,
            rgba(255,255,255,.15) 100%);
    }
    .mainAreaCustom .heroCopy {
        left: 14px;
        top: 28px;
        width: calc(100% - 28px);
    }
    .mainAreaCustom .heroCopy .heroLead,
    .mainAreaCustom .heroCopy h2 {
        text-shadow:
            -2px -2px 0 #a92626,
             2px -2px 0 #a92626,
            -2px  2px 0 #a92626,
             2px  2px 0 #a92626,
             2px  2px 0 rgba(90,0,0,.10);
    }
    .mainAreaCustom .heroCopy .heroLead {
        margin-bottom: 8px;
        font-size: clamp(18px, 6vw, 28px);
        line-height: 1.15;
    }
    .mainAreaCustom .heroCopy h2 {
        font-size: clamp(28px, 8.6vw, 44px);
        line-height: 1.1;
    }
    .mainAreaCustom .heroCourse {
        display: inline;
        white-space: normal;
    }
}


/* ============================================================
   v9: stronger red outline for the hero headline.
   ============================================================ */
.mainAreaCustom .heroCopy .heroLead,
.mainAreaCustom .heroCopy h2 {
    text-shadow:
        -4px -4px 0 #a61f1f,
         4px -4px 0 #a61f1f,
        -4px  4px 0 #a61f1f,
         4px  4px 0 #a61f1f,
        -4px  0   0 #a61f1f,
         4px  0   0 #a61f1f,
         0   -4px 0 #a61f1f,
         0    4px 0 #a61f1f,
        -2px -4px 0 #b52b2b,
         2px -4px 0 #b52b2b,
        -2px  4px 0 #b52b2b,
         2px  4px 0 #b52b2b,
         5px  5px 0 rgba(90,0,0,.14);
}

@media screen and (max-width: 960px) {
    .mainAreaCustom .heroCopy .heroLead,
    .mainAreaCustom .heroCopy h2 {
        text-shadow:
            -3px -3px 0 #a61f1f,
             3px -3px 0 #a61f1f,
            -3px  3px 0 #a61f1f,
             3px  3px 0 #a61f1f,
            -3px  0   0 #a61f1f,
             3px  0   0 #a61f1f,
             0   -3px 0 #a61f1f,
             0    3px 0 #a61f1f,
             4px  4px 0 rgba(90,0,0,.12);
    }
}

@media screen and (max-width: 640px) {
    .mainAreaCustom .heroCopy .heroLead,
    .mainAreaCustom .heroCopy h2 {
        text-shadow:
            -2px -2px 0 #a61f1f,
             2px -2px 0 #a61f1f,
            -2px  2px 0 #a61f1f,
             2px  2px 0 #a61f1f,
            -2px  0   0 #a61f1f,
             2px  0   0 #a61f1f,
             0   -2px 0 #a61f1f,
             0    2px 0 #a61f1f,
             3px  3px 0 rgba(90,0,0,.12);
    }
}


/* ============================================================
   v10: rounder hero font + reduced white area / more red presence.
   ============================================================ */
.mainAreaCustom .heroCopy .heroLead,
.mainAreaCustom .heroCopy h2 {
    font-family: "Hiragino Maru Gothic ProN", "Arial Rounded MT Bold", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
    font-weight: 800;
    color: #fff6f6;
    letter-spacing: .015em;
    text-shadow:
        -5px -5px 0 #aa2020,
         5px -5px 0 #aa2020,
        -5px  5px 0 #aa2020,
         5px  5px 0 #aa2020,
        -5px  0   0 #aa2020,
         5px  0   0 #aa2020,
         0   -5px 0 #aa2020,
         0    5px 0 #aa2020,
        -3px -5px 0 #bb2d2d,
         3px -5px 0 #bb2d2d,
        -3px  5px 0 #bb2d2d,
         3px  5px 0 #bb2d2d,
        -5px -2px 0 #b42424,
         5px -2px 0 #b42424,
        -5px  2px 0 #b42424,
         5px  2px 0 #b42424,
         6px  6px 0 rgba(90,0,0,.14);
}
.mainAreaCustom .heroCopy .heroLead {
    letter-spacing: .01em;
}
.mainAreaCustom .heroCopy h2 {
    letter-spacing: 0;
}

@media screen and (max-width: 960px) {
    .mainAreaCustom .heroCopy .heroLead,
    .mainAreaCustom .heroCopy h2 {
        text-shadow:
            -4px -4px 0 #aa2020,
             4px -4px 0 #aa2020,
            -4px  4px 0 #aa2020,
             4px  4px 0 #aa2020,
            -4px  0   0 #aa2020,
             4px  0   0 #aa2020,
             0   -4px 0 #aa2020,
             0    4px 0 #aa2020,
            -2px -4px 0 #bb2d2d,
             2px -4px 0 #bb2d2d,
            -2px  4px 0 #bb2d2d,
             2px  4px 0 #bb2d2d,
             5px  5px 0 rgba(90,0,0,.12);
    }
}

@media screen and (max-width: 640px) {
    .mainAreaCustom .heroCopy .heroLead,
    .mainAreaCustom .heroCopy h2 {
        font-family: "Hiragino Maru Gothic ProN", "Arial Rounded MT Bold", "Yu Gothic", Meiryo, sans-serif;
        text-shadow:
            -3px -3px 0 #aa2020,
             3px -3px 0 #aa2020,
            -3px  3px 0 #aa2020,
             3px  3px 0 #aa2020,
            -3px  0   0 #aa2020,
             3px  0   0 #aa2020,
             0   -3px 0 #aa2020,
             0    3px 0 #aa2020,
             4px  4px 0 rgba(90,0,0,.12);
    }
}


/* v12: entire lead phrase in bold rounded solid red. The headline beneath retains white text with a red outline. */
.mainAreaCustom .heroCopy .heroLead {
    font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Meiryo", "Yu Gothic", sans-serif;
    font-weight: 900;
    font-size: clamp(34px, 3.8vw, 56px);
    line-height: 1.17;
    letter-spacing: .005em;
    margin-bottom: 14px;
}
.mainAreaCustom .heroCopy .heroLead .heroBrand {
    color: #b11e22;
    font-family: inherit;
    font-weight: 900;
    white-space: nowrap;
    -webkit-text-stroke: 1.8px #b11e22;
    paint-order: stroke fill;
    text-shadow: 1px 1px 0 #b11e22, -1px 0 0 #b11e22, 0 2px 3px rgba(75, 0, 0, .12);
}
@media screen and (max-width: 960px) {
    .mainAreaCustom .heroCopy .heroLead { font-size: clamp(26px, 3.9vw, 38px); }
}
@media screen and (max-width: 640px) {
    .mainAreaCustom .heroCopy .heroLead {
        font-size: clamp(21px, 5.8vw, 28px);
        line-height: 1.22;
        margin-bottom: 10px;
    }
    .mainAreaCustom .heroCopy .heroLead .heroBrand { -webkit-text-stroke: 1.1px #b11e22; }
}
