/*
Theme Name: 伏見管理サービス
Theme URI: https://example.com
Description: 伏見管理サービス株式会社カスタムテーマ
Author: Euphonic
Author URI: https://www.euphonic.co.jp
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: custom-theme
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@100..900&display=swap');

:root {
    --green: #009179;
    --light-green: #7afa2e;
    --blue: #27a7de;
}

/* リセットとベース */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Noto Sans JP", sans-serif;
}

body {
    background-image: url("./images/bg/base.svg"), url("./images/bg/rect1.svg"), url("./images/bg/rect2.svg"), url("./images/bg/circle.svg");
    background-repeat: repeat-y, no-repeat, no-repeat, no-repeat;
    background-position: center, center top 20vw, center top 100vw, center top;
    background-size: contain, contain, contain, cover;
}

body#top {
    background-image: url("./images/bg/base.svg"), url("./images/bg/circle.svg");
    background-repeat: repeat-y, no-repeat;
    background-position: center, center top;
    background-size: contain, cover;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

.default-header {
    height: 70px;
}

/* ハンバーガーメニュー */
body[data-elementor-device-mode="desktop"] .hamburger .menu {
    .nav-menu {
        width: auto !important;
        position: relative;

        a {
            color: black;
            font-family: "M PLUS 1", "Noto Sans JP", sans-serif;
            font-size: 1rem;
            font-weight: 500;

            &:hover {
                color: var(--green);
            }
        }

        .sub-menu {
            opacity: 0;
            pointer-events: none;
            position: absolute;
            bottom: 0;
            left: 0;
            /* background-color: white; */
            z-index: 10;
            transform: translate(0, 100%);
            /* border: 1px solid gray; */
            /* border-radius: 0 0 8px 8px; */

            a {
                display: block;
                padding: 1rem;
            }
        }

        &:hover {
            .sub-menu {
                transition: all 0.5s ease;
                opacity: 1;
                pointer-events: auto;
            }
        }

        &.selected::before {
            content: "";
            position: absolute;
            top: auto;
            bottom: -4px;
            left: 0;
            width: 100%;
            height: 2px;
            background-color: currentColor;
        }
    }
}

body[data-elementor-device-mode="tablet"] .hamburger,
body[data-elementor-device-mode="mobile"] .hamburger {
    position: relative;

    a {
        color: black;
        font-family: "M PLUS 1", "Noto Sans JP", sans-serif;
        font-size: 1rem;
        font-weight: 500;
        display: block;
        padding: 1rem;
    }

    .icon {
        .elementor-icon-wrapper {
            width: 30px;
            height: 30px;

            .elementor-icon {
                width: 30px;
                height: 4px;
                background-color: black;
                position: relative;
                transition: all 0.3s;
                border-radius: 5px;

                &::before {
                    content: "";
                    position: absolute;
                    top: -10px;
                    left: 0;
                    width: 30px;
                    height: 4px;
                    background-color: black;
                    transition: all 0.3s;
                    border-radius: 5px;
                }

                &::after {
                    content: "";
                    position: absolute;
                    top: 10px;
                    left: 0;
                    width: 30px;
                    height: 4px;
                    background-color: black;
                    transition: all 0.3s;
                    border-radius: 5px;
                }
            }

            svg {
                display: none;
            }
        }

        &.active {
            .elementor-icon {
                background-color: transparent;

                &::before {
                    transform: rotate(45deg);
                    top: 0;
                }

                &::after {
                    transform: rotate(-45deg);
                    top: 0;
                }
            }
        }
    }

    .menu {
        position: fixed;
        top: 58px;
        right: -100vw;
        width: 100vw;
        height: calc(100vh - 58px);
        overflow-y: auto;
        background: white;
        transition: all 0.4s ease;

        .elementor-widget-heading {
            width: 100%;
            border-bottom: 2px solid gray;
        }

        &.active {
            right: 0;
        }
    }

    .sub-menu {
        padding-left: 1rem;

        .elementor-widget-heading {
            border-bottom: 1px solid gray;
        }
    }
}

/* コンテナ */
.site-container {
    margin: 0 auto;
}

/* ヘッダー */
.site-header {
    background-color: var(--wp--preset--color--surface);
    padding: 2rem 0;
    margin-bottom: 3rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.site-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.site-title a {
    color: var(--wp--preset--color--text-dark);
}

.site-title a:hover {
    color: var(--wp--preset--color--primary);
}

.site-description {
    color: var(--wp--preset--color--text-light);
    font-size: var(--wp--preset--font-size--medium);
}

/* フッター */
.ekit-template-content-footer {
    a {
        color: white;
    }
}

/* メインコンテンツ */
.site-content {
    min-height: 60vh;
    /* margin-bottom: 3rem; */
}

.archive-layout {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

.archive-sidebar {
    /* position: sticky; */
    top: 80px;
}

.archive-sidebar-inner {
    background-color: #fff;
    border: 2px solid #e8e8e8;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.archive-sidebar-title {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    color: var(--green);
}

.archive-month-list {
    list-style: none;
}

.archive-month-list li+li {
    margin-top: 0.75rem;
}

.archive-month-list a {
    color: #222;
    text-decoration: none;
}

.archive-month-list a[aria-current='page'] {
    text-decoration: underline;
}

.archive-month-list a:hover {
    color: var(--green);
}

.archive-main {
    min-width: 0;
}

.archive-page-header {
    margin-bottom: 2rem;
}

.archive-page-title {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.archive-page-description {
    color: #555;
}

/* 記事一覧 */
.blog,
.archive,
.single-post {
    .site-content {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-top: 2rem;
    }

    .site-content.archive-layout {
        display: grid;
        align-items: start;
        padding-top: 2rem;
    }

    article {
        background-color: var(--wp--preset--color--surface);
        padding: 2rem;
        margin-bottom: 2rem;
        border-radius: 8px;
        border: 2px solid #e8e8e8;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
        transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
}

.single-post {
    article {
        width: 900px;
        max-width: 90%;
    }
}

.archive {
    .site-content.archive-layout {
        display: grid;
        align-items: start;
        padding-top: 2rem;
    }

    article {
        max-width: none;
        width: 100%;
    }
}

@media (max-width: 900px) {
    .archive-layout {
        grid-template-columns: 1fr;
    }

    .archive-sidebar {
        position: static;
    }
}

.entry-header {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin-bottom: 1.5rem;
}

.entry-header-inner {
    max-width: var(--content-width);
}

.entry-title {
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.3;
    text-align: center;
}

.entry-title a {
    color: var(--wp--preset--color--text-dark);
}

.entry-title a:hover {
    color: var(--wp--preset--color--primary);
}

.entry-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: var(--wp--preset--font-size--small);
    color: var(--wp--preset--color--text-light);
    margin-bottom: 1rem;
}

.entry-meta span {
    display: inline-flex;
    align-items: center;
}

.entry-meta a {
    color: var(--wp--preset--color--text-light);
}

.entry-meta a:hover {
    color: var(--wp--preset--color--primary);
}

.entry-content {
    font-size: var(--wp--preset--font-size--medium);
    line-height: 1.8;
    color: var(--wp--preset--color--text-body);
}

.entry-content p {
    line-height: 1.5;
}

.entry-content h2 {
    font-size: var(--wp--preset--font-size--x-large);
}

.entry-content h3 {
    font-size: var(--wp--preset--font-size--large);
}

.entry-content ul,
.entry-content ol {
    margin-left: 1.5rem;
}

.entry-content>a {
    display: inline-block;
    margin-top: 1rem;
    padding: 0.5rem 1.25rem;
    background-color: var(--wp--preset--color--primary);
    color: white;
    border-radius: 4px;
    font-weight: 500;
    transition: background-color 0.3s ease;
}

.entry-content>a:hover {
    background-color: var(--wp--preset--color--primary-dark);
    color: var(--wp--preset--color--surface);
}

.entry-actions {
    margin-top: 10px;
    text-align: center;

    .read-more {
        display: inline-block;
        background-color: white;
        border: 2px solid black;
        border-radius: 8px;
        padding: 0.5rem 1.25rem;
        color: black;
        transition: all 0.3s ease;
        text-decoration: none;

        &:hover {
            background-color: black;
            color: white;
        }
    }
}

/* アイキャッチ画像 */
.post-thumbnail {
    margin-bottom: 1.5rem;
    border-radius: 8px;
    overflow: hidden;
}

.post-thumbnail img {
    width: 100%;
    height: auto;
}

/* フッター */
.edit-link a {
    color: var(--wp--preset--color--text-light);
}

/* ページネーション */
.pagination {
    margin: 3rem 0;
}

.nav-links {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.page-numbers {
    display: inline-block;
    padding: 0.5rem 1rem;
    background-color: var(--wp--preset--color--surface);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: 4px;
    color: var(--wp--preset--color--text);
    transition: all 0.3s ease;
}

.page-numbers:hover,
.page-numbers.current {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--surface);
    border-color: var(--wp--preset--color--primary);
}

/* 前後の記事ナビゲーション */
.post-navigation {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    margin-top: 3rem;
    padding: 2rem;
    background-color: var(--wp--preset--color--surface);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.nav-previous,
.nav-next {
    flex: 1;
}

.nav-next {
    text-align: right;
}

.post-navigation a {
    color: var(--wp--preset--color--primary);
    font-weight: 500;
}

/* 検索フォーム */
.search-form {
    display: flex;
    gap: 0.5rem;
    margin: 1.5rem 0;
}

.search-field {
    flex: 1;
    padding: 0.75rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: var(--wp--preset--font-size--medium);
    transition: border-color 0.3s ease;
}

.search-field:focus {
    outline: none;
    border-color: var(--wp--preset--color--primary);
}

.search-submit {
    padding: 0.75rem 1.5rem;
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--surface);
    border: none;
    border-radius: 4px;
    font-size: var(--wp--preset--font-size--medium);
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.search-submit:hover {
    background-color: var(--wp--preset--color--primary-dark);
}

/* 404ページ */
.error-404 {
    text-align: center;
    padding: 3rem 2rem;
}

.error-404 .entry-title {
    font-size: 2.5rem;
    color: var(--wp--preset--color--primary);
    margin-bottom: 1rem;
}

.error-404 .entry-content {
    max-width: 600px;
    margin: 0 auto;
}

.error-404 h2 {
    font-size: 1.5rem;
    margin: 2rem 0 1rem;
}

.error-404 h3 {
    font-size: 1.25rem;
    margin: 2rem 0 1rem;
    text-align: left;
}

.error-404 ul {
    text-align: left;
    list-style-position: inside;
}

.search-form-404 {
    max-width: 500px;
    margin: 2rem auto;
}

/* サイトフッター */
.site-footer {
    background-color: var(--wp--preset--color--footer-bg);
    color: var(--wp--preset--color--surface);
    padding: 2rem 0;
    text-align: center;
    margin-top: 4rem;
}

.site-footer p {
    margin: 0;
    color: var(--wp--preset--color--footer-text);
}

/* 2カラムレイアウト */
.site-wrapper {
    display: flex;
    gap: 2rem;
    margin-top: 3rem;
}

/* サイドバー */
.sidebar {
    width: 200px;
    flex-shrink: 0;
}

.sidebar-navigation {
    background-color: var(--wp--preset--color--surface);
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    margin-bottom: 2rem;
}

.sidebar-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--wp--preset--color--text-dark);
}

.sidebar-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sidebar-menu li {
    margin-bottom: 0.5rem;
}

.sidebar-menu a {
    display: block;
    padding: 0.5rem 0.75rem;
    color: var(--wp--preset--color--text);
    border-radius: 4px;
    transition: all 0.3s ease;
}

.sidebar-menu a:hover,
.sidebar-menu .current-menu-item a {
    background-color: var(--wp--preset--color--surface-alt);
    color: var(--wp--preset--color--primary);
}

.sidebar-menu .sub-menu {
    list-style: none;
    margin-left: 1rem;
    margin-top: 0.5rem;
}

/* ウィジェット */
.widget {
    background-color: var(--wp--preset--color--surface);
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    margin-bottom: 2rem;
}

.widget-title {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--wp--preset--color--text-dark);
}

.widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.widget li {
    margin-bottom: 0.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--wp--preset--color--surface-alt);
}

.widget li:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.widget a {
    color: var(--wp--preset--color--text);
    display: block;
    transition: color 0.3s ease;
}

.widget a:hover {
    color: var(--wp--preset--color--primary);
}

.widget .cat-item,
.widget .children {
    margin-left: 0;
}

.widget .children li {
    margin-left: 1rem;
}

/* メインコンテンツ */
.site-content {
    flex: 1;
    min-height: 60vh;
}

/* レスポンシブ */
@media (max-width: 768px) {
    .site-wrapper {
        flex-direction: column;
        gap: 2rem;
    }

    .sidebar {
        width: 100%;
        order: 2;
    }

    .site-content {
        order: 1;
    }

    .site-header {
        padding: 1.5rem 0;
        margin-bottom: 2rem;
    }

    .site-title {
        font-size: 1.5rem;
    }

    .entry-title {
        font-size: 1.5rem;
    }

    article .entry-title {
        font-size: 1.75rem;
    }

    .entry-meta {
        font-size: 0.8rem;
    }

    .post-navigation {
        flex-direction: column;
        gap: 1rem;
    }

    .nav-next {
        text-align: left;
    }

    .search-form {
        flex-direction: column;
    }

    .search-submit {
        width: 100%;
    }
}

/* アクセシビリティ */
.screen-reader-text {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ページリンク */
.page-links {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--wp--preset--color--border);

    a {
        display: inline-block;
        padding: 0.25rem 0.75rem;
        margin-right: 0.5rem;
        background-color: var(--wp--preset--color--surface-alt);
        border-radius: 4px;
    }

    a:hover {
        background-color: var(--wp--preset--color--primary);
        color: var(--wp--preset--color--surface);
    }
}

a.pdf-link {
    background: none;
    color: black;
    text-decoration: underline;

    &:hover {
        background: none;
        color: var(--green);
    }
}

/* リクルートページ */

body#recruit {
    .default-header>div {
        justify-content: flex-start;
    }

    .hamburger {
        display: none;
    }

    .footer-sitemap {
        display: none;
    }
}

/* カスタムコンポーネント */

.text-green>* {
    color: var(--green);
}

.text-blue>* {
    color: var(--blue);
}

body[data-elementor-device-mode="mobile"] .mobile-w-full {
    width: 100%;

    &.elementor-widget-button {
        a {
            width: 100%;
        }
    }
}

.cursor-pointer {
    cursor: pointer;
}

.image-carousel {
    aspect-ratio: 16 / 9;

    img {
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }
}

body[data-elementor-device-mode="mobile"] .image-carousel {
    aspect-ratio: 1 / 1.5;

    img {
        aspect-ratio: 1 / 1.5;
    }
}

.aspect-16-9 {
    aspect-ratio: 16 / 9;

    img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
}

.image-cover {
    img {
        object-fit: cover;
    }
}

.image-contain {
    img {
        object-fit: contain;
    }
}

.card {
    border-radius: 16px;
    background-color: white;
    border: 2px solid #e8e8e8;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* トップカルーセルオーバーレイ */
.top-main-overlay {
    position: absolute;
    top: 0;
    right: 0;
}

body[data-elementor-device-mode="mobile"] .top-main-overlay {
    top: auto !important;
    bottom: 20px;
}

/* SDGs 宣言書カード */
.card.sdgs {
    padding: 4rem 8rem;
    gap: 0;

    .elementor-widget-heading {
        margin-bottom: 1.5rem;

        .elementor-heading-title {
            color: var(--green);
        }
    }

    li::marker {
        color: var(--green);
    }

    .elementor-widget-text-editor {
        margin-bottom: 1rem;
    }
}

body[data-elementor-device-mode="tablet"] .card.sdgs {
    padding: 3rem;
}

body[data-elementor-device-mode="mobile"] .card.sdgs {
    padding: 2rem;
}

/* サービスサムネイルカード */
.service-thumb {
    position: relative;
    padding: 0;

    >.elementor-widget-image {
        height: 100%;
        display: flex;
        overflow: hidden;

        img {
            object-fit: cover;
            transition: all 0.5s ease;
        }
    }

    .overlay {
        /* opacity: 0; */
        transition: all 0.5s ease;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        background-color: rgba(255, 255, 255, 0.8);
        text-align: center;
        gap: 10px;

        img {
            width: 30px;
            height: 30px;
            object-fit: contain;
        }

        .elementor-heading-title {
            font-size: 1rem;
        }

        .elementor-widget-button {
            a {
                color: black;
                background-color: transparent;
                border: 1px solid black;
                border-radius: 4px;

                &:hover {
                    background: black;
                    color: white;
                }
            }
        }
    }

    &:hover {
        >.elementor-widget-image {
            img {
                transform: scale(1.1);
            }
        }

        .overlay {
            opacity: 1;
        }
    }
}

/* 採用情報カード */
.card.recruit-info {
    padding: 0;
    display: flex;
    justify-content: end;

    >.elementor-widget-image {
        padding: 0;
        aspect-ratio: 16/9;
        height: 100%;
        display: flex;
        overflow: hidden;

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: all 0.5s ease;
        }
    }

    .overlay {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        padding: 0;

        .elementor-element {
            padding: 0.5rem 1rem;
        }

        p {
            font-size: 1rem;
            color: white;
            font-weight: 500;
        }
    }

    &:hover {
        >.elementor-widget-image {
            img {
                transform: scale(1.1);
            }
        }
    }
}

/* サービスイメージカード */
.card.image-text {
    border-radius: 0;
    border: none;
    padding: 0;
    gap: 0;

    .elementor-widget-image img {
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }

    .elementor-widget-heading {
        padding: 1rem;

        .elementor-heading-title {
            color: var(--green);
        }
    }

    .elementor-widget-text-editor {
        padding: 0 1rem 1rem;
    }
}

/* 関連情報カード */
.card.info {
    max-width: 200px;
    gap: 10px;
    aspect-ratio: 1 / 1;
    justify-content: space-evenly;

    .elementor-widget-image img {
        width: 70px;
        height: 70px;
        object-fit: contain;
    }

    .elementor-widget-heading {
        text-align: center;

        .elementor-heading-title {
            font-size: 1rem;
        }
    }

    .elementor-widget-button {
        text-align: center;

        a {
            background: white;
            color: black;
            border: 2px solid black;
            padding: 8px 1rem;

            &:hover {
                background: black;
                color: white;
            }
        }
    }
}

body[data-elementor-device-mode="mobile"] .card.info {
    .elementor-widget-image img {
        width: 40px;
        height: 40px;
    }

    .elementor-widget-button {
        a {
            font-size: 0.8rem;
        }
    }
}

/* リクルートカード */
.card.recruit {
    padding: 4rem 6rem;
    gap: 0;

    >.elementor-widget-heading h2 {
        text-align: center;
        color: var(--blue);
        margin-bottom: 1rem;
        font-size: 2rem;
    }

    >.elementor-widget-heading h3 {
        margin-bottom: 1rem;
        font-size: 1.5rem;
    }
}

body[data-elementor-device-mode="tablet"] .card.recruit {
    padding: 3rem;
}

body[data-elementor-device-mode="mobile"] .card.recruit {
    padding: 2rem;
}

.elementor-element.row {
    flex-direction: row;
    border-top: 1px solid #b9bbbd;
    gap: 0;

    >.label {
        flex-shrink: 0;
    }

    &:first-child {
        border-top: none;
    }
}

body[data-elementor-device-mode="mobile"] .elementor-element.row {
    flex-direction: column;

    >.label {
        font-weight: bold;
        flex-basis: auto !important;
    }
}

/* 会社概要 */
.campany {
    .elementor-element.row {
        >.label {
            flex-basis: 10rem;
        }
    }
}

/* 沿革 */
.history {
    .elementor-element.row {
        >.label {
            flex-basis: 6rem;
        }
    }
}

/* 各種お届け書類 */
body[data-elementor-device-mode="mobile"] .download-row {
    flex-direction: column;

    >div:first-child {
        margin-right: auto;
    }

    >div:last-child {
        margin: 10px auto;
    }
}

/* パンくずメニュー */
.breadcrumb {
    background-color: #44cd8b;
    color: white;

    ul {
        display: flex;
        gap: 0.5rem;
        list-style: none;

        li {
            margin-left: 1rem;
        }

        li::before {
            content: ">";
        }

        li:first-child::before {
            content: "";
        }
    }

    .elementor-icon-list-icon {
        display: none !important;
    }

    a {
        color: white;
        text-decoration: none;
    }
}

/* タイトルスタイル */

.elementor-widget-heading.page .elementor-heading-title {
    border-left: 5px solid var(--light-green);
    padding: 0.6rem 1rem;
    display: inline-block;
    width: 100%;
}

.elementor-widget-heading.page.bg-white .elementor-heading-title {
    background-color: white;
    box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.1);
}

.elementor-widget-heading.bg-green>* {
    position: relative;
    display: inline-block;
    z-index: 0;
}

.elementor-widget-heading.bg-green .elementor-heading-title::before {
    content: "";
    position: absolute;
    bottom: -30%;
    left: 0;
    width: 100%;
    height: 60%;
    background-color: var(--light-green);
    z-index: -1;
}

.elementor-widget-heading.bg-green.thin .elementor-heading-title::before {
    bottom: -4px;
    height: 14px;
}

.link-text a {
    text-decoration: none;
    position: relative;
    transition: all 0.3s ease;

    &::before {
        content: "";
        position: absolute;
        bottom: -2px;
        left: 0;
        width: 0;
        height: 2px;
        background-color: currentColor;
        transition: all 0.3s ease;
    }

    &:hover::before {
        width: 100%;
    }
}

/* ボタンスタイル */

.elementor-widget-button {
    &.gradient {
        a {
            background: linear-gradient(135deg, #6fef7b, #387ee1);
            border-radius: 8px;
            transition: all 0.3s ease;
            position: relative;
            border: none;

            &:hover {
                filter: hue-rotate(45deg);
            }
        }

        &.elementor-widget__width-initial {
            a {
                width: 100%;
            }
        }
    }

    &.download {
        a {
            background: #2486e0;
            border: 1px solid #2486e0;
            color: white;
            border-radius: 8px;
            transition: all 0.3s ease;
            padding: 0.5rem 1.5rem;

            &:hover {
                background-color: white;
                color: #2486e0;
            }
        }
    }

    &.disabled {
        a {
            cursor: not-allowed;
            background: #ccc;
            border-color: #ccc;
            color: #666;
            pointer-events: none;
        }
    }

    a.disabled {
        pointer-events: none;
        color: #666 !important;
        border-color: #ccc !important;
        background: #ccc !important;

        .elementor-button-icon {
            display: none !important;
        }
    }
}

/* ダイアログ */
.dialog-container {
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    transition: opacity 0.3s ease;

    &.hide {
        opacity: 0;
        pointer-events: none;
    }
}

.e-n-tabs-content {
    cursor: auto;
}

.external-link a::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1rem;
    background-image: url("./images/icons/external-link.svg");
    background-size: contain;
    background-repeat: no-repeat;
    margin-left: 4px;
}

.external-link-white a::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1rem;
    background-image: url("./images/icons/external-link-white.svg");
    background-size: contain;
    background-repeat: no-repeat;
    margin-left: 4px;
}

.elementor-widget-button {
    &.len-11 {
        .elementor-button-text {
            max-width: 11rem;
        }
    }
}