@charset "UTF-8";
@import url("grid.css");

:root { /* 色変更される場合は、#以降のカラーコードを変更してください IE非対応 */
    --base-color: #1a1f24;
    --link-color: #5b6670;
    --linkhover-color: #1f6b6b;
    --back-color: #f7f8f9;
    --border-color: #e4e7ea;
    --white-color: #fff;

    /* ===== 全ページ共通デザイントークン（白ベース） ===== */
    --bg:        #ffffff;   /* ベース：白 */
    --bg-soft:   #f7f8f9;   /* セクション区切りの薄いグレー */
    --ink:       #1a1f24;   /* 基本の文字色（ほぼ黒） */
    --sub:       #5b6670;   /* 補助テキスト */
    --line:      #e4e7ea;   /* 罫線・境界 */
    --accent:    #1f6b6b;   /* アクセント1色（ティール） */
    --accent-d:  #134f4f;   /* アクセント濃いめ（ホバー等） */
}

img {
	max-width:100%;
	height: auto;/*高さ自動*/
}
a {
    display:block;
    color: var(--link-color);
    text-decoration-line: none;
}
a:hover { 
    color: var(--linkhover-color);
}

/*ヘッダー
-------------------------------------*/
header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--bg);
    border-bottom: 1px solid var(--line);
}
.header {
	display: flex;
    flex-direction: row;
    align-items: center;
    padding: 1.4rem 0 1rem 0;
}
.header h1 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    font-size: 2rem;
    letter-spacing: .02em;
}
.header h1 a {
    display: inline;
    color: var(--ink);
}
.header h1 a:hover {
    color: var(--accent);
}
.header-box {
	margin-left: auto;
	margin-top: 8px;
}
.contact-button {
	padding: 1rem;
	border: 2px solid var(--base-color);
}
nav ul {
	display: flex;
    flex-direction: row;
    justify-content: flex-end;
    list-style: none;
	margin: .4rem 0 0 0;
    gap: .4rem;
}
nav li {
	flex: 0 0 auto;
}
nav li a {
    text-decoration: none;
    text-align: center;
    width: 100%;
}
nav a {
    position: relative;
    padding: .8rem 1.4rem;
    color: var(--ink);
    font-weight: 600;
    font-size: 1.45rem;
    letter-spacing: .02em;
    border-radius: 6px;
    transition: color .2s, background-color .2s;
}
nav a:hover {
    background-color: var(--bg-soft);
    color: var(--accent);
}

@media screen and (min-width: 768px){
/* PC時はMENUボタンを非表示 */
#open,#close {
    display: none !important;
}

#navi {
    display: block !important;
}
/* ロゴ左・ナビ右の横並びヘッダー */
header > .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}
/* グリッドの span-12{flex:0 0 100%} を打ち消し、各行を内容幅にする */
header > .container > .row {
    width: auto;
    flex: 0 0 auto;
}
header > .container > .row:last-child {
    flex: 1 1 auto;
}
header > .container > .row > .col {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    margin-left: 0;
}
.header {
    padding: 1.2rem 0;
}
nav ul {
    margin: 0;
}
}

@media screen and (max-width: 768px){
.header {
	flex-direction: column;
    margin-bottom: 10px;
}
.header #open,#close  {
    position: absolute;
    top: 20px;
    right: 12px;
}
nav ul {
	flex-direction: column;
}
.header li {
	padding-top: 0;
}
/* スマホ時はMENUボタンを表示 */
#open {
    display: block;
    background: url(../img/button.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 50px;
    height: 50px;
    border: none;
    position: absolute;
    top: 20px;
    right: 12px;
}
#close  {
    display: block;
    background: url(../img/button2.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 50px;
    height: 50px;
    border: none;
    position: absolute;
    top: 20px;
    right: 12px;
}
/* スマホ時はメニューを非表示 */
#navi {
    display: none;
}
}
    
/*メイン画像
-------------------------------------*/
.mainimg img {
    width: 100vw;
}

/*メインコンテンツ
-------------------------------------*/
main {
    margin: 0;
}
section {
	margin: 0;
	padding: 6rem 0;
}
/* セクションを白／薄グレーで交互に（LP は専用配色のため除外） */
main:not(.ai-lp) > .catch:nth-of-type(even),
main:not(.ai-lp) > section:nth-of-type(even) {
    background-color: var(--bg-soft);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.gray-back {
	background-color: var(--back-color);
}

/*キャッチコピー
-------------------------------------*/
.catch {
    text-align: center;
}
.catch h2 {
    padding-bottom: 1rem;
}
h2 .under,
.under {
    display: inline-block;
    border-bottom: 0.3rem solid var(--accent);
    padding:0 1rem 1rem 1rem;
    color: var(--ink);
    letter-spacing: .02em;
}
.center {
	text-align: center;
	margin-bottom: 4rem;
}

/*共通ボタン
-------------------------------------*/
.btn {
    display: inline-block;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.6rem;
    padding: 1.4rem 3rem;
    border-radius: 5px;
    transition: background-color .2s, color .2s, transform .2s;
}
.btn-primary {
    background: var(--accent);
    color: #fff;
    border: 1.5px solid var(--accent);
}
.btn-primary:hover {
    background: var(--accent-d);
    border-color: var(--accent-d);
    color: #fff;
    transform: translateY(-1px);
}
.btn-secondary {
    background: #fff;
    color: var(--accent);
    border: 1.5px solid var(--accent);
}
.btn-secondary:hover {
    background: var(--bg-soft);
    color: var(--accent-d);
}

/*申し込みの流れ
-------------------------------------*/
.flow.row {
	margin-bottom: 3rem;
}

/*フッター
-------------------------------------*/
footer {
    background-color: var(--bg);
    border-top: 1px solid var(--line);
    padding: 4rem 0 0 0;
}
footer:empty {
    padding: 0;
    border-top: none;
}
footer h4 {
    border-bottom: 3px solid var(--border-color);
}

/*お問い合わせ
-------------------------------------*/
.contact-box {
	border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--bg);
	text-align: center;
	padding: 2.6rem 0;
    transition: border-color .2s, box-shadow .2s;
}
.contact-box:hover {
    border-color: var(--accent);
    box-shadow: 0 6px 22px rgba(26,31,36,.06);
}
.contact-box p {
    margin: 0;
}
.contact-box p + p {
    margin-top: .8rem;
    font-size: 2rem;
    font-weight: 800;
    color: var(--ink);
    letter-spacing: .02em;
}
.table {
	margin: 4rem 0;
}
.table th {
	width: 250px;
}

/*コピーライト
-------------------------------------*/
.copyright {
    text-align: center;
    padding: 2.4rem 0;
    background-color: var(--bg-soft);
    border-top: 1px solid var(--line);
    font-size: 1.3rem;
    letter-spacing: .04em;
}
.copyright a {
    color: var(--sub);
    text-decoration: none;
	display: inline;
}
.copyright a:hover {
    color: var(--accent);
}

/*ページトップへ戻るボタン
-------------------------------------*/
#pagetop {
    position: fixed;
    bottom: 15px;
    right: 15px;
}
#pagetop a {
    display: block;
    background-color: var(--accent);
    color: var(--white-color);
    width: 50px;
    padding: 10px 5px;
    text-align: center;
    border-radius: 6px;
    font-size: 1.2rem;
    font-weight: 700;
}
#pagetop a:hover {
    background-color: var(--accent-d);
}

/*アクセシビリティ共通
-------------------------------------*/
:focus-visible {
    outline: 3px solid var(--accent);
    outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce){
    * {
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* 幅768px以下の表示
-------------------------------------*/
@media screen and (max-width: 768px){
	
/*ヘッダー
-------------------------------------*/
.header-box {
	display: none;
}
.header {
	padding: 1.4rem 0;
}
/* スマホ：メニューを縦並びのリストとして整える */
#navi {
	border-top: 1px solid var(--line);
	margin-top: 1rem;
}
nav ul {
	gap: 0;
}
nav li {
	width: 100%;
	border-bottom: 1px solid var(--line);
}
nav a {
	display: block;
	width: 100%;
	padding: 1.4rem .5rem;
	border-radius: 0;
}
/*お問い合わせ
-------------------------------------*/
.table th {
	width: 100%;
	display: block;
}
.table td {
	display: block;
}
}