@charset "UTF-8";

/*

    Template: swell

    Theme Name: tierramagica

    Theme URI: https://swell-theme.com/

    Description: SWELLの子テーマ

    Version: 1.0.0

    Author: LOOS WEB STUDIO

    Author URI: https://loos-web-studio.com/



    License: GNU General Public License

    License URI: http://www.gnu.org/licenses/gpl.html

*/
html {
  scroll-behavior: smooth;
}

h3,h4,h5,.hover-banner-text{
    font-family: "游明朝", "Yu Mincho", "Hiragino Mincho ProN", "serif";
}

.img-width100 img{width:100%}
.wp-block-columns.real-02-03 {
    justify-content: space-around;
}


/* ファーストビュー */


    .fv-section {
        position: relative;
        max-width: 100vw;
    }

    .fv-displayflex {
        display: flex;
    }


    .fv-left {
        width: 60%;
        background-color: rgba(0, 0, 0, 0.2);
        /* 半透明のグレー */
        color: white;
        /* テキストが読みやすくなるように色を変更 */
    }

    .fv-right {
        width: 40%;
    }

    .fv-left video {
        width: 100%;
        height: 100%;
        object-fit: cover;

    }

  .fv-parent {
    position: absolute;
    width: 100%;
    top: 50%;
    display: grid;
    grid-template-columns: 6fr 4fr;
    grid-template-rows: repeat(2, auto);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    /* transform: translateY(-50%); */
    z-index: 99;
}

    .fv-parent .div1 {
        grid-area: 1 / 1 / 2 / 2;
            align-self: end;
        text-align: end;
        color: white;
        z-index: 3;
    }

    .fv-parent .div2 {
        grid-area: 2 / 1 / 3 / 2;
        align-self: end;
        text-align: end;
        color: white;
   

    }

.fv-parent .div3 {
    grid-area: 1 / 2 / 2 / 3;
    position: relative;

}


    .fv-parent .div4 {
        grid-area: 2 / 2 / 3 / 3;
        padding-left:30px;
    }



.fv-parent .div1 h2 {
    border-bottom: 1px solid #ffffff;
    padding: 0 20px 0 30px;
    display: inline-block;
    font-size: 36px;
    letter-spacing: 3px;
    color: #ffffff;
    margin: 0;
    border-left: none;
    font-weight: 500;
    background-color: inherit;
}

img.design×function {
    border-bottom: 1px solid black;
    padding: 0 20 10 30;
    width: 80%;
    max-width: 425px;
    padding-left: 36px!important;
    padding-bottom: 16px!important;
    position: absolute;
    bottom: 0;
}

    .fv-left {
        position: relative;
        /* videoタグの上に色を重ねるために必要 */

    }

    .fv-left::before {
        content: '';
        /* 擬似要素のための空のコンテンツ */
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.2);
        /* 半透明の黒色を重ねる */
        z-index: 1;
        /* videoより上に表示 */
    }

    .fv-left video {
        position: relative;
        z-index: 0;
        /* videoが擬似要素の下に表示されるように設定 */
    }

    .fv-right-content img {
        width: 100%;
        object-fit: cover;
    }

@media screen and (max-width: 900px) {

    .fv-parent {
    display: block;
}

    .fv-displayflex {
    display: block;
}
    
    .fv-right {
    display: none;
}
.fv-left {
    width: 100%;
}
    
.fv-parent .div3,.fv-parent .div4 {
    display: none;
}


.fv-left video {
    display: block;
}

.wp-block-column.is-vertically-aligned-center.news-calum03 {
    display: none;
}

.fv-parent .div1 {
    align-self: auto;
    text-align: center;
    padding:0 20px;
}
.fv-parent {
  
  transform: translateY(-50%); /* ←これだけでOK */
}

#fv-news-section .wp-block-columns {
    gap:0!important;
    padding:var(--swl-fw_inner_pad, 0) 0!important;
}

#fv-news-section li{padding:0;}
#fv-news-section .wp-block-latest-posts__post-excerpt {
    margin-bottom: 0!important;
    font-size: 16px;
}

.fv-parent .div1 h2 {

    font-size: 20px;

}
}

/* 理想の外構をあなたの暮らしに */
h5.wp-block-heading.risounokurasi_h5 {
    writing-mode: vertical-rl;
    font-weight: 300;
    line-height: 1.8;
    font-size: 27px;
}

div#risounogaikouwo {
    position: relative;
}
figure.risounogaikouwo_family {
    position: absolute;
    /* bottom: 200px; */
    top: -415px;
    right: -280px;
}


div#kaogamieru {
    position: relative;
}

figure.risounogaikouwo_watering {
    position: absolute;
    top: -180px;
    left: -222px;
}

figure.risounogaikouwo_tile {
    position: absolute;
    top: -29px;
    right: -21px;
}

figure.risounogaikouwo_carwash {
    position: absolute;
    right: -139px;
    bottom: -270px;
}

figure.risounogaikouwo_grass {
    position: absolute;
    bottom: -39px;
    left: -90px;
}

@media screen and (max-width: 960px) {
 #risounogaikouwo-sp h5.wp-block-heading.risounokurasi_h5 {
    writing-mode: horizontal-tb;
}
}


/* グリッド設定 */
.hover-banner-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 3em;
}
.hover-banner {
    position: relative; /* 子要素の絶対位置指定のため */
    aspect-ratio: 1 / 1; /* 正方形にする */
    cursor: pointer;
    overflow: hidden; /* 画像が拡大した際にはみ出ないように */
    box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* 軽い影 */
}

/* 画像を表示・拡大するためのコンテナ */
.hover-banner-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease; /* スムーズな拡大アニメーション */
    z-index: 1; /* テキストより奥に配置 */
}

.hover-banner:hover .hover-banner-image {
    transform: scale(1.1); /* ホバー時に画像を10%拡大 */
}

.hover-banner-text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 1.2em;
    font-weight: bold;
    opacity: 1;
    line-height: 1.4;
    padding: 10px;
    box-sizing: border-box;
    z-index: 2;
    transition: background-color 0.3s ease;
    outline: 1px solid #8b878e;
    outline-offset: -8px;
}

.hover-banner:hover .hover-banner-text {
    background-color: rgba(0, 0, 0, 0.3); /* ホバー時にオーバーレイを薄くする */
}






/* レスポンシブ */
@media (max-width: 900px) {
.hover-banner-grid {
    grid-template-columns: repeat(4, 1fr);
    width: 100%;
gap:5px;}

    .hover-banner-text {
        font-size: 0.8em;
    }

#kaogamieru .wp-block-columns.is-not-stacked-on-mobile {
    margin-bottom: 1em!important;
    line-height: 25px;
}

 #kaogamieru .wp-block-image {
    margin-bottom: 10px;
}

 #kaogamieru .swell-block-button.is-style-btn_line {
    margin-top: 2em!important;
}
    
}





/* 5つのポイント */


.point5-title-box {
    position: relative;
     width: 100%;
}
.point5-bird {
    position: absolute;
    top: 10px;
    left: -20px;
    /* right: 100px; */
}

.point5-title-btn {
    position: absolute;
    top: -38px;
    right: -15px;
}
.point5-title-box {
    padding: 1.5em;
}
.showroom-video {
    max-width: 800px;
    margin: auto;
}

@media screen and (max-width: 767px) {
    .point5-bird {left: -50px;
        top:-40px;
}}

/* 施行事例 */

/* 各 figure をラベルのための基準にする */
figure.before-plan,
figure.before-3d,
figure.before-completed {
  position: relative;
  display: inline-block;
  width: 100%;
}

/* 中の画像の基本表示 */
figure.before-plan img,
figure.before-3d img,
figure.before-completed img {
  display: block;
  width: 100%;
  height: auto;
}

/* 共通ラベルスタイル */
figure.before-plan::before,
figure.before-3d::before,
figure.before-completed::before {
  position: absolute;
  top: 0;
  left: 0;
  background-color: black;
  color: white;
  padding: 3px;
  width: 6em;
  font-size: 12px;
  z-index: 10;
}

/* 個別ラベル内容 */
figure.before-plan::before {
  content: "設計図";
}

figure.before-3d::before {
  content: "3Dパース";
}

figure.before-completed::before {
  content: "完成";
}







/* 総工費ラベル（右上） */
/* figure.after-plan::after {
    content: "";
    position: absolute;
    top: -30px;
    right: -10px;
    width: 80px;
    height: 80px;
    background-image: url("http://tierra-magica.jp/wp-content/uploads/2025/06/アセット-6-1.webp");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 10;
    visibility: visible !important;
} */

.works-flex-01 {
    justify-content: space-between;
}



/* お客様の声 */
.testimonial-card {
    background-color: #ffffff;
    /* border: 1px solid #e0e0e0; */
    padding: 20px;
    max-width: 700px;
    overflow: hidden;
    width: 45%;
    box-shadow: 0 8px 10px rgba(0, 0, 0, 0.09);
    border-radius: 4px;
}
        .image-container {
            float: right; /* 画像を右に寄せて、テキストを左に回り込ませる */
            width: 45%;   /* 画像コンテナの幅（全体の幅に対する割合） */
            margin-left: 20px; /* 画像とテキストの間の余白 */
            margin-bottom: 10px; /* テキストが短い場合に画像の下に余白ができるように */
        }

        .image-container img {
            width: 100%;
            height: auto; /* アスペクト比を維持 */
            display: block; /* 画像下の余分なスペースを削除 */
            border-radius: 3px; /* 画像の角を少し丸める（任意） */
        }

        .text-container {
            /* floatされた要素の後に続くこの要素は、
               自動的に残りのスペースに回り込みます。
               特定の幅指定は不要なことが多いです。 */
            color: #333;
        }


.customer-info {
    background-color: #e3e0dc;
    padding: 0px 9px;
    display: inline-block;
    margin-bottom: 10px;
    font-size: 15px;
    width: 45%;
    font-weight: 600;
    color: #726d62;
    border-radius: 3px;
    width: calc(100% - 45% - 20px);
}
        .testimonial-text {
            font-size: 12px;
            line-height: 1.7; /* 行間を広めにとる */
            color: #555;
            margin-top: 0;
        }

.voice-repo {
    display: flex;
    justify-content: space-around;
    gap: 20px;
}


.voice-family {
    position: relative;
}

.voice-family img {
    position: absolute;
    top: -130px;
    right: -90px;
}

/* お客様の声スマホ*/

@media screen and (max-width: 767px) {
    .voice-repo {
    display: block;
}
.testimonial-card {
    width: 100%;
    margin-bottom: 1em;
}
.voice-family img {
    top: -320px;
    right: -10px;
    z-index: -2;
    width: 60%;
}
}

        /* インスタセクション */
.wp-block-group.insta-title {
    border-right: 1px solid #808075;
}
  

div#insta-section {

    justify-content: space-around;
 
}

div#sbi_images {
    padding: 0!important;
}


h3#Exterior-design {


  font-size : 36px;
  line-height : 61px;
  letter-spacing : 1.8px;
 text-shadow: 1px 3px 7px rgba(0, 0, 0, 0.5);
    }


.newsandblog {position:relative;}
.news-tree {
    position: absolute;
    bottom: -190px;
    left: -100px;
}

.qanda-flow figure.wp-block-image.size-full {
    border-bottom: 1px solid #8c8c8c;
    padding-bottom: 10px;
    margin-bottom: 10px;
}


 a.button-grain,a.button-stone{
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    padding: 6px;
    display: block;
    text-align: center;
    font-weight: bold;
    text-decoration: none;
    border: none;
    /* border-radius: 8px; */
    transition: filter 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

a.button-grain:hover,a.button-stone:hover {
  filter: brightness(1.1); /* 背景画像を少し暗く＝薄く見える */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); /* 影も変化 */
   /* background-color: transparent; */
}

a.button-grain{
    background-image: url('http://tierramagica.jp/wp-content/uploads/2025/05/アセット-4-1.webp');
}
a.button-stone{background-image: url('http://tierramagica.jp/wp-content/uploads/2025/06/アセット-12.webp');
    color:#333;}

/* ここからフッター */
 .fantasy-effect {
  position: relative;
  overflow: hidden;
}

.video-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;

    filter: brightness(1.3) contrast(0.9) saturate(0.9);

    z-index: -2;
}

.fantasy-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.2); /* 白くぼんやり明るい感じ */
  z-index: -1;
}
div#before_footer_widget {
    width: 100%;
}

#before_footer_widget .l-container {
    width: 100%;
    max-width: 100%;
    padding: 0;
}

div#before_footer_widget {
    text-align: center;
}

div#before_footer_widget a.button__link{
    padding: 10px;
    color: white;
    display: block;
    margin: auto;
    width: 320px;

    padding: 6px;
    display: block;
    text-align: center;
    font-weight: bold;
    text-decoration: none;

    transition: filter 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

div#before_footer_widget a:hover {

    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    opacity:0.5

}

a.line-btn {
    background-color: #06c755;
}

a.contact-btn {
    background-color: #1d2327;
}


h3.wp-block-heading.post_content.is-style-section_ttl {
    padding-top: 2em;
}

p.footer-tel {
    /* padding-bottom: 3em; */
    font-size: 26px;
}
p.footer-tel span{
    font-size:16px;}

a.line-btn, a.contact-btn {
    padding: 5px;
    width: 48%;
    display: inline-block;
}
.footer-btn {
    display: flex;
    justify-content: space-between;
    text-align: center;
}

p.footer-shopname {
    margin-bottom: 5px!important;
    font-size: 25px;
    text-align: center;
    line-height: 20px;
}

p.footer-shopname span{
    font-size:12px;
}

div#before_footer_widget a.button__link.line-btn {
    margin-bottom: 1em!important;
}


#fv-news-section li {
  border-bottom:none;
}

#fv-news-section .wp-block-latest-posts:not(.is-grid) {
    border-top: none;
}

div#custom_html-3 {
    height: 100%;
}

.textwidget.custom-html-widget {
    height: 100%;
}
@media screen and (max-width: 960px) {
div#custom_html-3 {
    aspect-ratio: 16 / 9;
}
}

.sp-open a.button__link {
    display: block;
    margin: auto;
    margin-bottom: 1em;
    text-align: center;
}


#kaogamieru .wp-block-group__inner-container>*{
    margin-bottom: 0;}

#kaogamieru .wp-block-group.pc_only.u-mb-ctrl.u-mb-60.is-layout-grid.wp-container-core-group-is-layout-6059c0ab.wp-block-group-is-layout-grid {
    gap: 3em 0;
}

.l-header__spNav {
    display: none;
}

div#nav_menu-2 {
    font-size: 14px;
}


/* 追従ボタン */

/* 共通：親リンクエリア */
.contact-button {
  position: fixed;
  z-index: 99;
  cursor: pointer;
}

/* PC用画像 */
.contact-img-pc {
    position: fixed;
    bottom: 6.5em;
    right: 0px;
    height: auto;
    display: block;
    width: 200px;
}

/* スマホ用画像（初期は非表示） */
.contact-img-sp {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  object-fit: cover; /* アスペクト比を維持してはみ出し防止 */
  display: none;
}



/* スマホ用メディアクエリ */
@media (max-width: 768px) {
  .contact-img-pc {
    display: none;
  }

  .contact-img-sp {
    display: block;
  }
body {
    padding-bottom: calc(100vw * (49 / 376));
}
  .p-fixBtnWrap {
    bottom: 5em;
}
}

/* フッター調整 */
div#custom_html-2 {
    margin-top: 0;
}

footer .w-footer__box a:hover {opacity:0.5;}
 
/* ヘッダー調整 */
.c-gnav .sub-menu {
    color: #ffffff;
    background: #7b7878;
}

/* 投稿ページ */
.post_content dt, .post_content h2, .post_content h3, .post_content h4 {
    font-family: inherit!important;
}
.u-obf-cover {
  filter: brightness(0.9) ;
}

/* メニュー */
.c-gnav a::after {
    background: #d1bc97;
    height: 4px;
}
/* フッターに知事許可入れる */
p.license-number {
    border: 1px solid white;
    text-align: center;
    padding: 2px;
    font-size: 12px;
}

 .l-footer__widgetArea {
    padding-top: 3em;
}




/* トップページの下の方 */
h3#Exterior-design {
    opacity: 0;
}


/* 投稿ページ */
.w-beforeFooter {
    margin: 0em auto 3em;
}

@media screen and (max-width: 767px) {
    .l-content {
    margin-bottom:0em;
}

}

/* リキャプチャー */
.grecaptcha-badge {
    visibility: hidden !important;
}


.recaptcha-text {
  font-size: 12px; /* 文字サイズを12pxにする */
  color: #555;    /* 文字色をグレーにする */
}