@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    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
*/

/*ヘッダーSTART*/
.l-header .l-header__inner {
    max-width: calc(1560px + (var(--swl-pad_container, 0) * 2));
    margin-left: auto;
    margin-right: auto;
}

@media not all and (min-width: 960px) {
    .c-headLogo {
        height: 50px;
    }
}

@media not all and (min-width: 960px) {
    .-img .c-headLogo__link {
        display: block;
        padding: 5px 0;
        height: 50px;
    }
}

@media (min-width: 600px) {
    .c-headLogo img {
        content: url('/wp-content/uploads/2025/11/logo-lg.png');
        /* PC用ロゴ画像 */
    }
}

.c-headLogo__img {
    height: 40px;
}

.l-header__menuBtn {
    height: 50px;
    width: 50px;
    position: relative;
}

.l-header__menuBtn .-menuBtn .c-iconBtn__icon::before {
    content: "";
}

.l-header__menuBtn .-menuBtn .c-iconBtn__icon {
    display: block;
    width: 40px;
    height: 2px;
    background: #000;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.l-header__menuBtn .-menuBtn::before,
.l-header__menuBtn .-menuBtn::after {
    content: "";
    width: 40px;
    height: 2px;
    background: #000;
    position: absolute;
    left: 0;
    top: 50%;
}

.l-header__menuBtn .-menuBtn::before {
    transform: translateY(-11px);
}

.l-header__menuBtn .-menuBtn::after {
    width: 25px;
    transform: translateY(10px);
}

.-spmenu,
.c-listMenu a {
    font-family: "Cinzel", serif;
}

@media screen and (min-width:960px) {

    .c-headLogo__img,
    .c-headLogo {
        height: 72px;
    }

    .l-header__logo {
        height: 104px;
    }

    .c-gnav>.menu-item>a .ttl {
        font-size: 18px;
        font-family: "Cinzel", serif;
        color: #162646;
    }

    .l-header__gnav,
    .l-fixHeader__gnav {
        flex-grow: 1;
    }

    .l-header__gnav {
        padding-right: 3.375rem;
    }

    .l-header__gnav .c-gnav,
    .l-fixHeader__gnav .c-gnav {
        justify-content: space-around;
    }

    .l-header__menuBtn {
        display: block !important;
        /*ハンバーガーメニューを表示*/
        height: 104px;
    }

    .p-spMenu {
        display: block !important;
        /*ハンバーガーメニューを開いた時の中身を表示*/
    }

    .p-spMenu__inner {
        max-width: 50%;
        /*ハンバーガーメニューを開いた時の中身の幅を変える*/
    }

    #fix_header .c-headLogo__img {
        height: 38px;
    }
}

/*ヘッダーEND*/
/*フッターSTART*/
.l-footer__nav a,
.copyright {
    font-size: 14px;
}

@media screen and (min-width:600px) {
    .l-footer__nav li:first-child a {
        border: none !important;
    }
}

@media screen and (min-width:960px) {

    .l-footer__nav a,
    .copyright {
        font-size: 16px !important;
    }
    .l-footer__foot .l-container{
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 5rem;
        height: 68px;
    }
    .l-footer__nav{
        padding: 0;
    }
}

/*フッターEND*/
/*メインビジュアルSTART*/
.p-mainVisual__inner {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
}

.p-mainVisual__slideTitle {
    font-family: "Noto Serif JP", serif;
    font-weight: bold;
    font-size: min(6.1538461vw, 57px);
}

@media screen and (min-width:960px) {
    .p-mainVisual__inner {
        min-height: 0;
        width: 100%;
        height: 100%;
        max-height: 100vh;
    }
}

/*メインビジュアルEND*/
/*タイポグラフィSTART*/
.h-serif-ja {
    font-family: "Noto Serif JP", serif;
}

.h-en {
    font-family: "Cinzel", serif;
    font-weight: 400 !important;
}

/*タイポグラフィEND*/

/*ボタンSTART*/

.btn-more .wp-block-button__link {
    background: transparent;
    font-family: "Cinzel", serif;
    font-size: 18px;
    position: relative;
    padding: 16px 80px 16px 20px;
}

.btn-more .wp-block-button__link::after {
    content: "";
    width: 165px;
    height: 28px;
    background: url(./images/icon-more.svg) no-repeat center center / contain;
    position: absolute;
    left: 0;
    bottom: 0;
    transition: all 0.3s;
}

.btn-more:hover .wp-block-button__link::after {
    transform: translateX(20px);
    transition: all 0.3s;
}

/*ボタンEND*/
/*トップページ全体START*/
.home .post_content>section {
    margin-bottom: 6em;
}

.home h2.h-en {
    font-size: min(7.6923076vw, 50px);
    padding-bottom: 1.5rem;
    position: relative !important;
    margin: 0 0 1.5rem !important;
}

.home h2.h-en::after {
    content: "";
    width: 70px;
    height: 1px;
    background: #fff;
    position: absolute !important;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.home .h-serif-ja {
    font-size: min(4.6153846vw, 40px);
}

@media screen and (min-width:782px) {
    .top #content {
        padding-top: min(12.1483375vw, 190px);
    }

    .home .post_content>section {
        margin-bottom: min(12.1483375vw, 190px);
    }

    .home p {
        font-size: min(2.0460358vw, 18px);
    }
}

@media screen and (min-width:960px) {
    .home .l-article {
        max-width: unset;
        width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .home .l-mainContent__inner>.post_content {
        padding-left: 0;
        padding-right: 0;
    }
}

/*トップページ全体END*/
/*トップページ各ブロックSTART*/
/*ABOUTブロックSTART*/
.top-about-block .wp-block-columns {
    gap: 0 !important;
}

.top-about-block h3 {
    margin-bottom: 3.5rem;
}

.top-about-block h2 br {
    display: none;
}

@media screen and (min-width:782px) {
    .top-about-block h2 br {
        display: inline;
    }

    .top-about-block h2.h-en {
        text-align: left;
        opacity: .35;
        font-size: min(9.3350383vw, 146px);
        padding: 0;
        line-height: 1;
    }

    .top-about-block h2.h-en::after {
        content: none;
    }

    .top-about-block h3 {
        font-size: min(3.8363171vw, 40px) !important;
        text-align: left !important;
        margin-bottom: min(7.1611253vw, 72px);
    }
}

/*ABOUTブロックEND*/
/*SERVICEブロックSTART*/
.top-service-block .heading-unite {
    margin: 0 0 3rem;
}

.top-service-block .wp-block-columns {
    gap: 3.5rem !important;
}

.top-service-block .wp-block-columns p {
    font-size: min(4.6153846vw, 24px);
}

@media screen and (min-width:782px) {
    .top-service-block h2.h-en {
        margin-bottom: min(4.0920716vw, 64px) !important;
    }

    .top-service-block .heading-unite {
        margin-bottom: min(12.7877237vw, 200px);
    }

    .top-service-block .wp-block-columns p {
        font-size: min(2.3017902vw, 24px);
    }

    .top-service-block .wp-block-columns {
        justify-content: space-between;
    }

    .top-service-block .wp-block-column {
        max-width: 400px;
    }
}

/*SERVICEブロックEND*/
/*BLOGブロックSTART*/
.top-blog-block .wp-block-columns {
    gap: 0 !important;
}

.top-blog-block .wp-block-latest-posts:not(.is-grid) {
    border-top: none !important;
}

.top-blog-block .wp-block-latest-posts__list li {
    display: flex;
    flex-direction: column-reverse;
    border: none !important;
}

.top-blog-block .wp-block-latest-posts__post-date {
    font-size: inherit;
}

.top-blog-block .btn-more {
    margin: 0 auto;
}

@media screen and (min-width:782px) {
    .top-blog-block h2.h-en {
        padding: 0;
        line-height: 1;
        opacity: .35;
        font-size: min(13.4271099vw, 210px);
        text-align: left;
    }

    .top-blog-block h2.h-en::after {
        content: none;
    }

    .wp-block-latest-posts__post-title,
    .wp-block-latest-posts__post-date {
        font-size: min(2.0460358vw, 18px);
    }

    .top-blog-block .btn-more {
        margin-right: 0;
    }
}

@media screen and (min-width:960px) {
    .top-blog-block .wp-block-latest-posts__list li {
        flex-direction: row-reverse;
        gap: min(3.6458333vw, 70px);
    }

    .top-blog-block .wp-block-latest-posts__list li .wp-block-latest-posts__post-title {
        flex-grow: 1;
        transition: all 0.5s;
    }

    .top-blog-block .wp-block-latest-posts__list li .wp-block-latest-posts__post-title:hover {
        opacity: .7;
        transition: all 0.5s;
    }
}

/*BLOGブロックEND*/
/*COMPANYブロックSTART*/
.top-company-block .heading-unite {
    margin: 0 0 4rem;
}

.top-company-block .h-deco {
    display: none;
}

.top-company-block .p-lg {
    display: none;
}

@media screen and (min-width:782px) {
    .top-company-block h2.h-en {
        margin-bottom: min(4.0920716vw, 64px) !important;
    }

    .top-company-block .heading-unite {
        margin-bottom: min(12.7877237vw, 200px);
    }

    .top-company-block .wp-block-columns p {
        font-size: min(2.0460358vw, 18px);
    }

    .top-company-block .wp-block-columns {
        gap: min(6.0102301vw, 94px) !important;
        margin-left: calc(50% - 50vw);
        width: 100vw;
    }

    .top-company-block .wp-block-column:nth-child(1) {
        flex-basis: 41.6666vw;
        max-width: 800px;
    }

    .top-company-block .wp-block-column:nth-child(2) {
        flex-basis: calc(100vw - 41.6666vw - min(6.0102301vw, 94px));
        padding-right: var(--swl-pad_container, 0);
    }

    .top-company-block .p-lg {
        display: block;
    }

    .top-company-block .p-sm {
        display: none;
    }
}

@media screen and (min-width:960px) {
    .top-company-block .h-deco {
        display: block;
        font-size: min(10.9375vw, 210px);
        white-space: nowrap;
        opacity: .4;
        margin-bottom: min(3.645833vw, 70px);
        transform: translateX(-19.53125vw);
    }
}

/*COMPANYブロックEND*/
/*トップページ各ブロックEND*/

/*CONTACTブロックSTART*/

.contact-block h2.h-en {
    font-size: min(7.6923076vw, 50px);
    padding-bottom: 1.5rem;
    position: relative !important;
    margin: 0 0 1.5rem !important;
}

.contact-block h2.h-en::after {
    content: "";
    width: 70px;
    height: 1px;
    background: #fff;
    position: absolute !important;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.contact-block .h-serif-ja {
    font-size: min(4.6153846vw, 40px);
}

.tbl-contact td,
.tbl-contact th {
    border: none;
    display: block;
    background: transparent;
}

.tbl-contact td {
    padding-bottom: 2.75rem;
}

.tbl-contact td[colspan="2"] {
    text-align: center;
}

.tbl-contact a {
    text-decoration: underline;
    color: inherit;
}

.tbl-contact input {
    padding: 0.75em 1em;
}

.tbl-contact .submit-wrap {
    text-align: center;
}

.wpcf7-submit {
    margin: 0 auto;
}

@media screen and (min-width:782px) {
    .contact-block {
        padding-top: min(20.971867vw, 164px);
        padding-bottom: min(6.6496163vw,104px);
    }

    .contact-block h2.h-en {
        text-align: left;
        margin-bottom: min(4.0920716vw, 74px) !important;
    }

    .contact-block h2.h-en::after {
        left: 0;
        transform: none;
    }

    .contact-block .wp-block-columns {
        gap: 0 !important;
    }

    .contact-block .wp-block-column {
        padding-left: 2rem;
    }

    .tbl-contact p {
        font-size: 1rem !important;
    }
}

@media screen and (min-width:1360px) {

    .contact-block .wp-block-column:nth-child(2) {
        padding-right: min(5.5147058vw, 150px);
    }

    .tbl-contact td,
    .tbl-contact th {
        display: table-cell;
        padding: 1.25rem 2rem;
    }

    .tbl-contact {
        width: fit-content;
    }

    .tbl-contact th {
        white-space: nowrap;
    }

    .tbl-contact td {
        width: 61%;
    }

    .tbl-contact td[colspan="2"] p,
    .submit-wrap {
        width: 61%;
        margin-left: auto;
        margin-right: 0;
    }

    .tbl-contact td[colspan="2"] {
        padding-bottom: 2rem;
    }
}

/*CONTACTブロックEND*/
/*フォームSTART*/
/* 基本：フォーム要素は親の幅を超えない */
.wpcf7,
.wpcf7 form {
    max-width: 100%;
}

.wpcf7 form * {
    box-sizing: border-box;
    /* 罫線やパディングで横幅がはみ出ない */
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 textarea,
.wpcf7 select {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    /* flex/grid内でのはみ出し防止 */
    display: block;
    font-size: 16px;
}

/* 送信ボタンやラジオ/チェック類もはみ出さない */
.wpcf7 input[type="submit"],
.wpcf7 button {
    max-width: 100%;
}

.wpcf7 .wpcf7-list-item {
    /* ラジオ/チェックの横並びが長くて折り返さない場合 */
    display: inline-flex;
    align-items: center;
    gap: .5em;
    white-space: normal;
}

/* 長い英数字・URLでの横スクロールを防止 */
.wpcf7,
.wpcf7 form,
.wpcf7 p,
.wpcf7 .wpcf7-response-output {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* CF7メッセージボックスも親幅に収める */
.wpcf7 .wpcf7-response-output {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}

/* SWELLの列やフル幅ブロック内に置いたときの“ガターはみ出し”対策 */
.wp-block-columns .wpcf7,
.alignwide .wpcf7,
.alignfull .wpcf7 {
    max-width: 100%;
    width: 100%;
}

.wp-block-column .wpcf7,
.wp-block-group .wpcf7 {
    min-width: 0;
    /* grid/flexの縮小阻害を解除 */
}

/* 画像やiframeがフォーム内であふれるケースの保険 */
.wpcf7 img,
.wpcf7 iframe {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ===== シンプルな白地＋グレー枠＋薄グレーチェック ===== */
input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 30px;
    height: 30px;
    margin: 0 8px 0 0;
    border: 1px solid #CDD6DD;
    /* 枠：淡いグレー */
    background-color: #fff;
    /* 白背景 */
    display: inline-grid;
    place-content: center;
    vertical-align: middle;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

/* hover時は枠が少し濃く */
input[type="checkbox"]:hover {
    border-color: #aeb5bd;
}

/* チェックマーク（灰色） */
input[type="checkbox"]::after {
    content: "";
    width: 9px;
    height: 14px;
    border-right: 2px solid #98A6B5;
    /* チェック色 */
    border-bottom: 2px solid #98A6B5;
    transform: rotate(45deg) scale(0);
    opacity: 0;
    transition: transform 0.12s ease-out, opacity 0.12s ease-out;
    margin-bottom: 4px;
}

/* チェックON時 */
input[type="checkbox"]:checked::after {
    transform: rotate(45deg) scale(1);
    opacity: 1;
}

/* 無効状態 */
input[type="checkbox"][disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ===== 送信ボタン（水色・白文字・横272px 縦48px） ===== */
input[type="submit"],
button[type="submit"],
.wpcf7 input[type="submit"] {
    min-width: 272px;
    height: 48px;
    background-color: #75A2D6;
    /* 画像の水色 */
    color: #fff;
    /* 白文字 */
    border: none;
    border-radius: 9999px;
    /* 丸型 */
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.05em;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
    display: block;
}

/* hoverで少し濃く */
input[type="submit"]:hover,
button[type="submit"]:hover,
.wpcf7 input[type="submit"]:hover {
    background-color: #6f9cd0;
}

/* activeで軽く沈む */
input[type="submit"]:active,
button[type="submit"]:active,
.wpcf7 input[type="submit"]:active {
    background-color: #5c8bbc;
    transform: translateY(1px);
}

/* 無効状態 */
input[type="submit"][disabled],
button[type="submit"][disabled],
.wpcf7 input[type="submit"][disabled] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Contact Form 7 の placeholder カラー統一 */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
    color: #CDD6DD;
    opacity: 1;
    /* Safari 用 */
}

/* 古いブラウザ対応 */
.wpcf7 input:-ms-input-placeholder,
.wpcf7 textarea:-ms-input-placeholder {
    color: #CDD6DD;
}

.wpcf7 input::-ms-input-placeholder,
.wpcf7 textarea::-ms-input-placeholder {
    color: #CDD6DD;
}

/*フォームEND*/
/*パンくずSTART*/
.p-breadcrumb.-bg-on {
    background: #383838;
}

/*パンくずEND*/