@charset "UTF-8";
/* CSS Document */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}
html {
  scroll-behavior: smooth;
}
body {
    line-height:1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
    display:block;
}

nav ul {
    list-style:none;
}

blockquote, q {
    quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}

a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}

mark {
    background-color:#ff9;
    color:#000;
    font-style:italic;
    font-weight:bold;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

hr {
    display:block;
    height:1px;
    border:0;
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select {
    vertical-align:middle;
}

select#lang {
    padding: 10px;
    margin: 0 20px;
    width: 85%;
}

/**　ここまでリセット **/

/**　ここからふじが丘みそらガーデン **/

html {
    font-size: 62.5%;
}
body{
    font-family: "Noto Sans JP", YakuHanJP, 游ゴシック, "Yu Gothic", YuGothic, メイリオ, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "Lucida Grande", Osaka, Verdana, "ＭＳ Ｐゴシック", sans-serif;
    line-height: 1.8;
    background: #e4ddd0;
}
img {
    max-width: 100%;
    vertical-align: bottom;
}
a{ color:#000; text-decoration:none; }
section img, header img { display:block; }

/* ===== レイアウト（PC：左ナビ／中央カード／右余白） ===== */
#fg-wrapper {
    display: grid;
    position: relative;
    grid-template-areas: "left main right";
    grid-template-columns: 1fr 37.5rem 1fr;
    grid-template-rows: 1fr;
    max-width: 144rem;
    margin: 0 auto;
}
#fg-wrapper::before, #fg-wrapper::after {
    display: block;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    width: 100%;
    height: 100%;
    max-height: 100vh;
    content: "";
}
#fg-wrapper::before{ grid-area:left; background:#e4ddd0; }
#fg-wrapper::after{ grid-area:right; background:#e4ddd0; }

.side-menu-container {
    grid-area: left;
    padding: 30px 0;
    position: sticky;
    top: 0;
    height: 100vh;
    box-sizing: border-box;
    overflow-y: auto;
}
.side-logo {
    padding: 10px 20px 30px;
    text-align: left;
}
.fg-side-title{
    font-family: "Noto Serif JP", "游明朝", "Yu Mincho", YuMincho, serif;
    font-size: 2.6rem;
    line-height: 1.3;
    color: #333;
    font-weight: 700;
}
.fg-side-title_en{
    font-family: "Alex Brush", cursive;
    font-size: 2.2rem;
    color: #7fb8c4;
    margin-top: 8px;
}
.side-menu-list {
    list-style: none;
    padding: 0;
    margin: 30px 0 0;
}
.side-menu-list li a {
    display: block;
    text-decoration: none;
    color: #555;
    font-size: 1.3rem;
    font-weight: bold;
    margin: 16px 25px;
    padding-left: 10px;
    border-left: 2px solid #9dcdd6;
    transition: background-color 0.2s, color 0.2s;
}
.side-menu-list li a:hover {
    color: #4a99a8;
    background-color: rgba(255,255,255,0.5);
}

@media screen and (max-width: 48em) {
    .side-menu-container { display: none; }
}

.fg-main {
    grid-area: main;
    background: #fff;
    -webkit-box-shadow: 0 1rem 2.5rem 0 rgb(0 0 0 / 20%);
    box-shadow: 0 1rem 2.5rem 0 rgb(0 0 0 / 20%);
}
.fg-container{ position:relative; }
.fg-builder a{ display:block; }
.fg-tokuten{ position:relative; }
.fg-tokuten_btn{ display:block; margin-top:-2px; }

/* ===== セクション見出し（FAQ・フォーム共通） ===== */
.fg-section_ttl{ text-align:center; padding:4rem 2rem 3rem; }
.fg-section_ttl span{
    display:block;
    font-family: "Noto Serif JP", "游明朝", "Yu Mincho", YuMincho, serif;
    font-size: 2.4rem;
    color: #fff;
    border-top: 1px solid rgba(255,255,255,.7);
    border-bottom: 1px solid rgba(255,255,255,.7);
    padding: 1.6rem 0;
    letter-spacing: .2rem;
}

/* ===== FAQ ===== */
.fg-faq{ background:#6fb3c2; padding:0 0 6rem; }
.fg-faq_list{ padding:0 2.5rem; }
.fg-faq_item{ margin-bottom:1.2rem; }
.fg-faq_q{
    width: 100%;
    text-align: left;
    background: #8dc6d2;
    color: #fff;
    border: none;
    font-size: 1.5rem;
    font-weight: bold;
    padding: 1.6rem 4.5rem 1.6rem 1.6rem;
    position: relative;
    cursor: pointer;
    line-height: 1.5;
    font-family: inherit;
    border-radius: .4rem;
}
.fg-faq_mark{ margin-right:.4rem; }
.fg-faq_icon{
    position: absolute;
    right: 1.6rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2rem;
    font-weight: normal;
    transition: transform .2s;
}
.fg-faq_item.is-open .fg-faq_q{ border-radius:.4rem .4rem 0 0; }
.fg-faq_item.is-open .fg-faq_icon{ transform: translateY(-50%) rotate(45deg); }
.fg-faq_a{
    max-height: 0;
    overflow: hidden;
    background: #eaf6f8;
    transition: max-height .3s ease;
    border-radius: 0 0 .4rem .4rem;
}
.fg-faq_item.is-open .fg-faq_a{ max-height: 60rem; }
.fg-faq_a p{ padding:1.6rem; font-size:1.3rem; line-height:1.9; color:#333; }
.fg-faq_a .fg-faq_mark{ color:#4a99a8; font-weight:bold; }

/* ===== アクセス（地図） ===== */
.fg-access_map{ padding:2rem 2.5rem; background:#7ec6d3; }
.fg-map_frame{ position:relative; padding-bottom:75%; height:0; overflow:hidden; max-width:100%; border-radius:.6rem; }
.fg-map_frame iframe{ position:absolute; top:0; left:0; width:100%; height:100%; border:0; }
.map-caption{ font-size:1.2rem; color:#fff; margin-top:1rem; text-align:left; }

/* ===== フォーム共通 ===== */
.fg-form-section{ background:#6fb3c2; padding:1rem 2.5rem 6rem; }
.fg-form-section-request{ background:#5a9fb0; }
.fg-form_note{ list-style:none; padding:0 0 1.5rem; margin:0; }
.fg-form_note li{
    font-size: 1.2rem;
    color: #eef8fa;
    line-height: 1.8;
    padding-left: 1.2rem;
    position: relative;
    margin-bottom: .6rem;
}
.fg-form_note li::before{ content:"●"; position:absolute; left:0; font-size:.8rem; top:.4rem; }

.fg-form_group{ margin-bottom:1.5rem; }
.fg-form_row{ display:flex; flex-wrap:wrap; gap:1rem; }
.fg-form_row .fg-form_maker{ flex: 1 1 100%; }
.fg-form_row .kg2-field,
.fg-form_row .fg-form_time{ flex: 1 1 calc(50% - .5rem); max-width:none; }

.txt_green{
    color:#fff;
    font-size:1.5rem !important;
    font-weight:bold;
    padding:0 !important;
    margin: 1.6rem 0 .8rem;
}
.p0{ padding-top:0 !important; }
p.txt{ font-size:1.4rem; margin:.6rem 0; line-height:1.8; color:#333; }
.f_center{ margin:0 0 1.2rem; }
.f_center input[type="text"], .fg-textarea{
    box-sizing: border-box;
    width: 100%;
    padding: 1.2rem;
    font-size: 1.5rem;
    border: none;
    border-radius: .6rem;
    background: #fff;
}
.fg-textarea{ resize:vertical; font-family:inherit; }

.form-select{ position:relative; }
.form-select select {
    width: 100%;
    font-size: 1.5rem;
    padding: 1.2rem 3.5rem 1.2rem 1.2rem;
    border-radius: .6rem;
    border: none;
    appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 1.2rem center;
    background-size: 2rem;
    color: #333;
}
.form-block{ margin:1.5rem 0; }
.form-row{ display:flex; flex-wrap:wrap; gap:1.5rem; }
.form-group{ flex: 1 1 45%; }
.form-sub-label{
    display: block;
    font-weight: bold;
    font-size: 1.3rem;
    color: #fff;
    margin-bottom: .6rem;
}

.fg-privacy{ margin:2.5rem 0 1.5rem; padding:1.6rem; background:rgba(255,255,255,.15); border-radius:.6rem; }
.fg-privacy_ttl{ font-weight:bold; color:#fff; font-size:1.4rem; margin-bottom:.6rem; }
.fg-privacy .txt{ color:#eef8fa; font-size:1.2rem; }

#errMsg{ margin:1rem 0; display:block; font-weight:bold; color:#fff2f2; font-size:1.3rem; }
#errMsg label{
    background: rgba(255,255,255,.85);
    color: #c0392b;
    border-radius: .5rem;
    padding: 1rem;
    display: block;
    margin-top: 1rem;
}

.fg-submit-btn{
    display: block;
    width: 100%;
    margin-top: 2rem;
    padding: 1.8rem;
    border: none;
    border-radius: 5rem;
    background: linear-gradient(180deg,#f0725a,#d9502f);
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    box-shadow: 0 .4rem 0 rgba(0,0,0,.15);
    cursor: pointer;
    font-family: inherit;
}
.fg-arrow{ margin-left:.8rem; }

/* ===== 画面下固定CTA ===== */
.fg-cta-box{
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 37.5rem;
    z-index: 9999;
    display: flex;
    box-shadow: 0 -.2rem 1rem rgba(0,0,0,.15);
}
.fg-cta_btn{
    flex: 1;
    text-align: center;
    padding: 1.6rem 0;
    font-size: 1.5rem;
    font-weight: bold;
    color: #fff;
}
.fg-cta_btn-visit{ background:#d9502f; }
.fg-cta_btn-request{ background:#4a99a8; }

/* ===== SP ===== */
@media screen and (max-width: 48em){
    html{ font-size: 2.66667vw; }
    #fg-wrapper{ display:block; height:initial; }
    #fg-wrapper::before, #fg-wrapper::after{ display:none; }
    .fg-main{ box-shadow:none; }
    body{ padding-bottom: 15vw; }
    .fg-cta-box{ max-width:none; }
}
