/*
Theme Name: 八坂神社
Description: Elementorで最適化される日本風テーマ。神社、寺院、文化施設、観光案内所などのウェブサイトに最適です。hello-elementorの子テーマとして構築されており、Elementorページビルダーと完全に互換性があります。
Author: Yasaka Theme Development Team
Version: 1.0.0
Template: hello-elementor
Text Domain: yasaka
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 8.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: elementor, japanese, shrine, traditional, responsive, accessibility-ready

八坂神社 WordPress テーマ
Copyright (C) 2024 Yasaka Theme Development Team

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
*/

/* =============================================================================
   YASAKA ELEMENTOR THEME - 基本スタイル
   ========================================================================== */

/* CSS Variables - Elementor Theme Builder用 */
:root {
    --yasaka-primary: #006400;
    --yasaka-secondary: #228B22;
    --yasaka-accent: #FFD700;
    --yasaka-dark: #2c2c2c;
    --yasaka-light: #fefefe;
    --yasaka-red: #8B0000;
}

/* 基本フォント設定 - Elementorウィジェット対応 */
body {
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Meiryo, メイリオ, Osaka, "MS PGothic", arial, helvetica, sans-serif !important;
    color: #2c2c2c !important;
    line-height: 1.8 !important;
    background-color: #fefefe !important;
}

/* Elementor見出しウィジェット */
.elementor-widget-heading .elementor-heading-title,
h1, h2, h3, h4, h5, h6 {
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN W6", HGS明朝E, メイリオ, Meiryo, serif !important;
    color: #8B0000 !important;
    line-height: 1.4 !important;
}

/* Elementorテキストエディタウィジェット */
.elementor-widget-text-editor {
    color: #2c2c2c !important;
    line-height: 1.8 !important;
}

/* Elementorボタンウィジェット */
.elementor-widget-button .elementor-button {
    background: var(--yasaka-primary) !important;
    color: white !important;
    border: none !important;
    border-radius: 4px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
}

.elementor-widget-button .elementor-button:hover {
    background: #004d00 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
    color: white !important;
}

/* Elementorセクション - 神社テーマ */
.elementor-section {
    position: relative;
}

.elementor-section.yasaka-traditional {
    background: linear-gradient(135deg, #fefefe 0%, #f8f8f8 100%);
    border: 2px solid var(--yasaka-accent);
    position: relative;
}

.elementor-section.yasaka-traditional::before {
    content: "";
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 1px solid var(--yasaka-red);
    pointer-events: none;
}

/* Elementor Footer用 - フッター緑色強制適用 */
.elementor-location-footer,
.elementor-location-footer .elementor-section,
.elementor-location-footer .elementor-container,
.elementor-location-footer .elementor-column,
.elementor-location-footer .elementor-widget {
    background: linear-gradient(135deg, #006400 0%, #228B22 100%) !important;
    color: #fff !important;
}

.elementor-location-footer * {
    color: #fff !important;
}

.elementor-location-footer .elementor-widget-text-editor,
.elementor-location-footer .elementor-widget-heading .elementor-heading-title {
    color: #fff !important;
}

.elementor-location-footer .elementor-widget-nav-menu .elementor-nav-menu a {
    color: rgba(255, 255, 255, 0.9) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    padding: 8px 16px !important;
    border-radius: 4px !important;
    transition: all 0.3s ease !important;
    display: inline-block !important;
}

.elementor-location-footer .elementor-widget-nav-menu .elementor-nav-menu a:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1) !important;
    text-decoration: none !important;
    transform: translateY(-1px) !important;
}

/* Contact Form 7 - Elementor対応 */
.elementor-widget-shortcode .wpcf7-form,
.wpcf7-form {
    background: #f8fffe !important;
    padding: 30px !important;
    border-radius: 12px !important;
    border: 2px solid rgba(0, 100, 0, 0.1) !important;
    margin: 20px 0 !important;
}

.elementor-widget-shortcode .wpcf7-form .wpcf7-form-control,
.wpcf7-form .wpcf7-form-control {
    width: 100% !important;
    padding: 12px 16px !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 8px !important;
    font-size: 1em !important;
    font-family: inherit !important;
    transition: all 0.3s ease !important;
    background: #fafafa !important;
    box-sizing: border-box !important;
    margin-bottom: 15px !important;
}

.elementor-widget-shortcode .wpcf7-form .wpcf7-form-control:focus,
.wpcf7-form .wpcf7-form-control:focus {
    outline: none !important;
    border-color: #006400 !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(0, 100, 0, 0.1) !important;
}

.elementor-widget-shortcode .wpcf7-form .wpcf7-submit,
.wpcf7-form .wpcf7-submit {
    background: linear-gradient(135deg, #006400 0%, #228B22 100%) !important;
    color: #fff !important;
    border: none !important;
    padding: 18px 40px !important;
    font-size: 1.1em !important;
    font-weight: 600 !important;
    border-radius: 50px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 5px 20px rgba(0, 100, 0, 0.3) !important;
    min-width: 220px !important;
}

.elementor-widget-shortcode .wpcf7-form .wpcf7-submit:hover,
.wpcf7-form .wpcf7-submit:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 30px rgba(0, 100, 0, 0.4) !important;
    color: #fff !important;
}

/* Elementor固有のユーティリティクラス */
.yasaka-elementor-section {
    padding: 64px 0 !important;
}

.yasaka-elementor-gold-divider {
    background: linear-gradient(90deg, transparent, #FFD700, transparent);
    height: 2px;
    margin: 48px 0;
}

/* Elementorナビゲーションメニュー */
.elementor-widget-nav-menu .elementor-nav-menu {
    font-family: "Noto Sans JP", sans-serif !important;
}

.elementor-widget-nav-menu .elementor-nav-menu a {
    color: #2c2c2c !important;
    font-weight: 500 !important;
    transition: color 0.3s ease !important;
}

.elementor-widget-nav-menu .elementor-nav-menu a:hover {
    color: #8B0000 !important;
}

/* yasaka-home-intro-widget専用スタイル */
.yasaka-home-intro-widget .yasaka-home-intro {
    text-align: center !important;
    padding: 64px 0 !important;
    background: linear-gradient(135deg, #fefefe 0%, #f8f8f8 100%) !important;
    position: relative !important;
    overflow: hidden !important;
}

.yasaka-home-intro-widget .yasaka-home-intro::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-image: radial-gradient(circle at 20% 20%, rgba(255, 215, 0, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(0, 100, 0, 0.1) 0%, transparent 50%) !important;
    z-index: 1 !important;
}

.yasaka-home-intro-widget .container {
    position: relative !important;
    z-index: 2 !important;
}

.yasaka-home-intro-widget .intro-content {
    max-width: 800px !important;
    margin: 0 auto !important;
}

.yasaka-home-intro-widget .intro-subtitle {
    display: inline-block !important;
    padding: 8px 16px !important;
    background: rgba(0, 100, 0, 0.1) !important;
    border-radius: 20px !important;
    font-size: 0.9rem !important;
    margin-bottom: 16px !important;
    color: #006400 !important;
    font-weight: 500 !important;
    border: 1px solid rgba(0, 100, 0, 0.2) !important;
}

.yasaka-home-intro-widget .intro-title {
    font-size: 2.8rem !important;
    margin-bottom: 24px !important;
    color: #8B0000 !important;
    font-family: "Noto Serif JP", serif !important;
    line-height: 1.3 !important;
}

.yasaka-home-intro-widget .intro-title .highlight {
    color: #006400 !important;
    position: relative !important;
}

.yasaka-home-intro-widget .intro-title .highlight::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: linear-gradient(90deg, transparent, #FFD700, transparent) !important;
}

.yasaka-home-intro-widget .intro-description {
    font-size: 1.2rem !important;
    color: #666666 !important;
    line-height: 1.8 !important;
    margin-bottom: 48px !important;
}

.yasaka-home-intro-widget .intro-features {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 32px !important;
    margin-bottom: 48px !important;
}

.yasaka-home-intro-widget .feature-item {
    padding: 24px !important;
    background: rgba(255, 255, 255, 0.8) !important;
    border-radius: 8px !important;
    border: 1px solid rgba(0, 100, 0, 0.1) !important;
    transition: all 0.3s ease !important;
}

.yasaka-home-intro-widget .feature-item:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 25px rgba(0, 100, 0, 0.15) !important;
    border-color: rgba(0, 100, 0, 0.3) !important;
}

.yasaka-home-intro-widget .feature-icon {
    font-size: 2rem !important;
    color: #006400 !important;
    margin-bottom: 16px !important;
    display: block !important;
}

.yasaka-home-intro-widget .feature-title {
    font-size: 1.1rem !important;
    color: #8B0000 !important;
    margin-bottom: 8px !important;
    font-weight: 600 !important;
}

.yasaka-home-intro-widget .feature-description {
    color: #666666 !important;
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
}

.yasaka-home-intro-widget .intro-actions {
    display: flex !important;
    gap: 16px !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}

.yasaka-home-intro-widget .intro-btn-primary {
    background: #006400 !important;
    color: white !important;
    border: none !important;
    padding: 16px 32px !important;
    border-radius: 50px !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    display: inline-block !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
    box-shadow: 0 4px 15px rgba(0, 100, 0, 0.3) !important;
}

.yasaka-home-intro-widget .intro-btn-primary:hover {
    background: #004d00 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 25px rgba(0, 100, 0, 0.4) !important;
    color: white !important;
    text-decoration: none !important;
}

.yasaka-home-intro-widget .intro-btn-secondary {
    background: transparent !important;
    color: #006400 !important;
    border: 2px solid #006400 !important;
    padding: 14px 30px !important;
    border-radius: 50px !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    display: inline-block !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
}

.yasaka-home-intro-widget .intro-btn-secondary:hover {
    background: #006400 !important;
    color: white !important;
    transform: translateY(-2px) !important;
    text-decoration: none !important;
}

/* レスポンシブ対応 */
@media (max-width: 479px) {
    .yasaka-home-intro-widget .intro-title {
        font-size: 2rem !important;
    }
    
    .yasaka-home-intro-widget .intro-description {
        font-size: 1.1rem !important;
    }
    
    .yasaka-home-intro-widget .intro-features {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
    
    .yasaka-home-intro-widget .intro-actions {
        flex-direction: column !important;
        gap: 16px !important;
    }
}
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

/* ==========================================================================
   八坂神社テーマカスタムスタイル
   ========================================================================== */

/* 日本風の基本色設定 */
:root {
    --yasaka-primary: #006400; /* 深い緑（メイン） */
    --yasaka-secondary: #228B22; /* フォレストグリーン */
    --yasaka-accent: #FFD700; /* 金色 */
    --yasaka-text-dark: #2C2C2C;
    --yasaka-text-light: #666666;
    --yasaka-bg-white: #FEFEFE;
    --yasaka-bg-light: #F8F8F8;
}

/* 基本タイポグラフィ */
body {
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
    color: var(--yasaka-text-dark);
    line-height: 1.8;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN W6', HGS明朝E, メイリオ, Meiryo, serif;
    color: var(--yasaka-primary);
    line-height: 1.4;
}

/* 和風デザイン要素 */
.yasaka-section-divider {
    background: linear-gradient(90deg, transparent, var(--yasaka-accent), transparent);
    height: 2px;
    margin: 2rem 0;
}

.yasaka-traditional-border {
    border: 2px solid var(--yasaka-accent);
    border-image: repeating-linear-gradient(
        45deg,
        var(--yasaka-accent),
        var(--yasaka-accent) 10px,
        transparent 10px,
        transparent 20px
    ) 2;
}

/* ボタンスタイル */
.yasaka-btn {
    background: var(--yasaka-primary);
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 4px;
    font-weight: 500;
    text-decoration: none;
    display: inline-block;
    transition: all 0.3s ease;
    cursor: pointer;
}

.yasaka-btn:hover {
    background: #004d00;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    color: white;
    text-decoration: none;
}

/* Contact Form 7 重要スタイル */
.wpcf7-form {
    background: #f8fffe !important;
    padding: 30px !important;
    border-radius: 12px !important;
    border: 2px solid rgba(0, 100, 0, 0.1) !important;
}

.wpcf7-form .wpcf7-form-control {
    width: 100% !important;
    padding: 12px 16px !important;
    border: 2px solid #e0e0e0 !important;
    border-radius: 8px !important;
    font-size: 1em !important;
    font-family: inherit !important;
    transition: all 0.3s ease !important;
    background: #fafafa !important;
    box-sizing: border-box !important;
}

.wpcf7-form .wpcf7-form-control:focus {
    outline: none !important;
    border-color: #006400 !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(0, 100, 0, 0.1) !important;
}

.wpcf7-form .wpcf7-submit {
    background: linear-gradient(135deg, #006400 0%, #228B22 100%) !important;
    color: #fff !important;
    border: none !important;
    padding: 18px 40px !important;
    font-size: 1.1em !important;
    font-weight: 600 !important;
    border-radius: 50px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 5px 20px rgba(0, 100, 0, 0.3) !important;
    min-width: 220px !important;
}

.wpcf7-form .wpcf7-submit:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 30px rgba(0, 100, 0, 0.4) !important;
    color: #fff !important;
}

/* ユーティリティクラス */
.text-center { text-align: center !important; }
.mb-lg { margin-bottom: 32px !important; }
.yasaka-section { padding: 64px 0 !important; }
    border-radius: 4px;
    font-weight: 500;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
}

.yasaka-btn:hover {
    background: var(--yasaka-secondary);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

/* レスポンシブ設定 */
@media (max-width: 768px) {
    body {
        font-size: 14px;
    }
    
    h1 { font-size: 1.8rem; }
    h2 { font-size: 1.5rem; }
    h3 { font-size: 1.3rem; }
}

/* Elementor互換性設定 */
.elementor-widget-yasaka-custom {
    margin-bottom: 20px;
}

.elementor-widget-yasaka-custom .yasaka-widget-content {
    padding: 20px;
    background: var(--yasaka-bg-white);
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

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

.screen-reader-text:focus {
    position: static;
    width: auto;
    height: auto;
}

/* 印刷スタイル */
@media print {
    * {
        background: transparent !important;
        color: black !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }
    
    .yasaka-no-print {
        display: none !important;
    }
}