        /* Premium Core Variables */
        :root {
            --primary: #336722;
            --primary-rgb: 51, 103, 34;
            --accent: #4a8f33;
            --accent-light: #62b047;
            --success: #00d924;
            --warning: #ffb600;
            --text-main: #425466;
            --text-heading: #2b4220;
            --bg-light: #f4f8f4;
            --white: #ffffff;
            --glass: rgba(255, 255, 255, 0.8);
            --shadow-sm: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
            --shadow-md: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);
        }

        /* Reset & Base */
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
            color: var(--text-main);
            line-height: 1.6;
            background-color: var(--white);
            -webkit-font-smoothing: antialiased;
        }

        h1,
        h2,
        h3,
        .logo {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
            color: var(--text-heading);
        }

        a {
            text-decoration: none;
            color: inherit;
            transition: all 0.3s ease;
        }

        .hover-link:hover {
            color: var(--accent) !important;
            text-decoration: underline;
        }

        .banner-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-md) !important;
            border-color: var(--accent) !important;
        }

        ul {
            list-style: none;
        }

        /* Header (Glassmorphism) */
        .header {
            position: sticky;
            top: 0;
            background: var(--glass);
            backdrop-filter: blur(10px);
            z-index: 1000;
            padding: 0 24px;
            border-bottom: 1px solid rgba(0, 0, 0, 0.05);
        }

        .header-inner {
            max-width: 1200px;
            margin: 0 auto;
            height: 80px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .logo {
            font-size: 28px;
            font-weight: 800;
            color: var(--primary);
            letter-spacing: -1px;
            display: flex;
            align-items: center;
        }

        .logo-image {
            height: 48px;
            border-radius: 4px;
        }

        .logo-image--footer {
            height: 40px;
            border-radius: 4px;
            margin-bottom: 20px;
            opacity: 0.9;
            filter: brightness(0) invert(1);
        }

        .logo span {
            color: var(--accent);
        }

        .nav-right {
            display: flex;
            align-items: center;
            gap: 32px;
        }

        .nav-link {
            font-size: 15px;
            font-weight: 600;
            color: var(--text-heading);
            opacity: 0.8;
            display: flex;
            align-items: center;
            gap: 5px;
        }

        .nav-link:hover {
            opacity: 1;
            color: var(--accent);
        }

        /* スマホ時はテキスト非表示・アイコンのみ */
        .nav-link .nav-text,
        .btn-contact-text {
            display: inline;
        }

        .btn-modern {
            padding: 12px 24px;
            border-radius: 50px;
            font-weight: 700;
            font-size: 15px;
            cursor: pointer;
            border: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .btn-primary {
            background: var(--accent);
            color: var(--white);
            box-shadow: var(--shadow-sm);
        }

        .btn-primary:hover {
            background: var(--accent-light);
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
        }


        .header-action-group {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-left: 8px;
        }

        .btn-contact-compact {
            padding: 10px 18px;
            font-size: 14px;
            gap: 6px;
            height: 46px;
        }

        .btn-phone-compact {
            padding: 8px 16px;
            border: 2px solid var(--primary);
            color: var(--primary);
            background: transparent;
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 14px;
            font-weight: 800;
            white-space: nowrap;
            height: 46px;
            box-sizing: border-box;
        }

        .phone-icon {
            flex-shrink: 0;
        }

        .phone-info {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 2px;
            line-height: 1;
        }

        .phone-number {
            font-size: 14px;
            font-weight: 800;
            color: var(--text-heading);
            line-height: 1;
        }

        .phone-hours {
            font-size: 10px;
            color: var(--text-light);
            font-weight: 600;
            line-height: 1;
        }

        .footer-premium {
            padding: 80px 24px 40px;
            background: var(--primary);
            color: white;
        }

        .footer-grid {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 40px;
        }

        .footer-brand-text {
            font-size: 14px;
            opacity: 0.7;
            line-height: 1.8;
            margin-bottom: 20px;
        }

        .footer-contact-text {
            font-size: 14px;
            opacity: 0.7;
            line-height: 1.8;
        }

        .footer-heading {
            margin-bottom: 16px;
            font-size: 16px;
        }

        .footer-heading--spaced {
            margin-top: 16px;
            margin-bottom: 16px;
            font-size: 16px;
        }

        .footer-link-list {
            opacity: 0.7;
            font-size: 13px;
            line-height: 2.2;
        }

        .footer-link-list--divided {
            opacity: 0.7;
            font-size: 13px;
            line-height: 2.2;
            margin-top: 12px;
            padding-top: 12px;
            border-top: 1px solid rgba(255,255,255,0.15);
        }

        .footer-link {
            color: white;
            text-decoration: none;
        }

        .footer-bottom {
            max-width: 1200px;
            margin: 60px auto 0;
            padding-top: 30px;
            border-top: 1px solid rgba(255,255,255,0.1);
            text-align: center;
            font-size: 12px;
            opacity: 0.5;
        }

        .hero-content {
            max-width: 900px;
            margin: 0 auto;
            position: relative;
            z-index: 2;
        }

        .section-title {
            text-align: center;
            font-size: 32px;
            margin-bottom: 48px;
        }

        .search-container {
            margin-top: 32px;
            display: flex;
            background: #f1f4f9;
            padding: 8px;
            border-radius: 50px;
            box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
        }

        .search-input {
            flex: 1;
            border: none;
            background: transparent;
            padding: 0 24px;
            font-size: 18px;
            font-family: inherit;
            outline: none;
        }

        .btn-search {
            background: var(--primary);
            color: var(--white);
            padding: 14px 40px;
            border-radius: 50px;
            font-weight: 700;
        }

        @media (max-width: 768px) {
            /* スマホ: ナビはアイコンのみ、テキストを隠す */
            .nav-right {
                display: flex;
                gap: 8px;
            }

            .nav-link .nav-text {
                display: none;
            }

            .nav-link {
                padding: 6px;
                font-size: 0;
                gap: 0;
                opacity: 1;
            }

            .nav-link svg {
                width: 22px;
                height: 22px;
                flex-shrink: 0;
            }

            /* CTAボタン: お問い合わせは折りたたむ */
            .btn-contact-text,
            .phone-info {
                display: none;
            }

            .btn-modern {
                padding: 7px 10px !important;
                font-size: 13px !important;
                height: 34px !important; /* スマホ時も高さを統一 */
            }

            .header-inner {
                gap: 8px;
            }

            .search-container {
                flex-direction: column;
                gap: 8px;
                border-radius: 16px;
                padding: 10px;
            }

            .search-input {
                width: 100%;
                font-size: 16px;
                padding: 12px 14px;
                background: #fff;
                border-radius: 10px;
            }

            .btn-search {
                width: 100%;
                padding: 12px 16px;
                border: none;
                display: block;
            }
        }


.page-scroll-guide {
  position: fixed;
  right: 30px;
  bottom: 30px;
  width: 44px;
  height: 44px;
  border: 0;
  padding: 0;
  border-radius: 999px;
  background: transparent;
  z-index: 1200;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease, opacity .2s ease;
}
.page-scroll-guide:hover {
  transform: translateY(-2px);
}
.page-scroll-guide:focus-visible {
  outline: 2px solid #1d4ed8;
  outline-offset: 4px;
}
.page-scroll-guide-ring {
  position: absolute;
  inset: 0;
  transform: rotate(-90deg);
}
.page-scroll-guide-track,
.page-scroll-guide-progress {
  fill: none;
  stroke-width: 2;
}
.page-scroll-guide-track {
  stroke: rgba(148, 163, 184, .36);
}
.page-scroll-guide-progress {
  stroke: #111827;
  stroke-linecap: round;
  stroke-dasharray: 119.38;
  stroke-dashoffset: 119.38;
  transition: stroke-dashoffset .18s linear;
}
.page-scroll-guide-core {
  position: relative;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  box-shadow: 0 4px 12px rgba(15, 23, 42, .08);
  border: 1px solid rgba(255, 255, 255, .58);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #0f172a;
  backdrop-filter: blur(6px);
}
.page-scroll-guide-icon {
  width: 24px;
  height: 24px;
  transition: transform .32s cubic-bezier(0.22, 0.61, 0.36, 1), opacity .24s ease;
}
.page-scroll-guide-icon-top,
.page-scroll-guide-icon-bottom {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linejoin: round;
  transition: opacity .24s ease, transform .24s ease;
  transform-origin: center;
}
.page-scroll-guide.is-top .page-scroll-guide-icon-top {
  opacity: 0;
  transform: translateY(-1px);
}
.page-scroll-guide:not(.is-top) .page-scroll-guide-icon-bottom {
  opacity: 0;
  transform: translateY(1px);
}
@media (max-width: 768px) {
  .page-scroll-guide {
    right: 18px;
    bottom: 18px;
    width: 44px;
    height: 44px;
  }
  .page-scroll-guide-core {
    width: 36px;
    height: 36px;
  }
  .page-scroll-guide-icon {
    width: 24px;
    height: 24px;
  }
}
