*,*:before,*:after {
    box-sizing:border-box;
    margin:0;
    padding:0
}
html,body {
    height:100%;
    font-family:sans-serif;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale
}
img,picture,video,canvas,svg {
    display:block;
    max-width:100%
}
input,button,textarea,select {
    font:inherit
}
a {
    text-decoration:none;
    color:inherit
}
ul,ol {
    list-style:none
}
table {
    border-collapse:collapse;
    border-spacing:0
}
h1,h2,h3,h4,h5,h6 {
    font-weight:400
}
:root {
    --color-primary: #2D6244;
    --color-primary-dark: #1b4332;
    --color-primary-light: #52b788;
    --color-accent: #f4a261;
    --color-accent-1: #D97534;
    --color-white: #fff;
    --color-black: #000;
    --color-bg: #f8f9f4;
    --color-text-light: #666;
    --color-text-muted: #999;
    --color-border: #e0e0d8;
    --font-base: YuGothic, "游ゴシック medium", "Yu Gothic medium", sans-serif;
    --container-width: 1140px;
    --container-padding: 0 1.5rem;
    --shadow-sm: 0 1px 4px rgba(0, 0, 0, .08);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, .12);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, .16);
    --transition: .25s ease;
    --green: #2D6244;
    --white: #fff;
    --beige: #f7f6f1;
    --accent: #dfb06a;
    --black: #333;
    --container: 1200px;
    --margin: 5vw;
    --br: 20px;
    --br-sp: 10px;
    --header-height: 80px;
    --header-height-sp: 5rem;
    --news-bg: #fbfaf8b9;
    --gray: #f0f2ec
}
html {
    font-size:16px
}
body {
    font-family:var(--font-base);
    font-weight:500;
    padding-top:var(--header-height);
    color:#333
}
h1,h2,h3,h4,h5,h6 {
    line-height:1.4
}
.container {
    max-width:var(--container-width);
    margin-inline:auto;
    padding:var(--container-padding)
}
.section {
    padding:5rem 0
}
.section--gray {
    background-color:var(--gray)
}
.green_txt {
    color:var(--green)
}
.bold_txt {
    font-weight:700
}
.font_weight_300 {
    font-weight:300
}
.font_weight_400 {
    font-weight:400
}
.font_weight_500 {
    font-weight:500
}
.font_weight_700 {
    font-weight:700
}
.font_weight_900 {
    font-weight:900
}
.font-family-yu-gothic-medium {
    font-family:var(--font-yu-gothic-medium)
}
.min_txt {
    font-size:.6em
}
.big_txt {
    font-size:1.2em
}
.pc-br {
    display:block
}
.sp-br {
    display:none
}
.dib {
    display:inline-block
}
.center_txt {
    text-align:center
}
@media(max-width:768px) {
    .pc-br {
        display:none
    }
    .sp-br {
        display:block
    }
    body {
        padding-top:var(--header-height-sp)
    }
	.section {
        padding:5vw 0
    }

}
.site-header {
    position:fixed;
    top:0;
    left:0;
    right:0;
    padding-right:var(--scrollbar-compensation, 0px);
    z-index:100;
    height:var(--header-height);
    background-color:var(--color-white);
    box-shadow:var(--shadow-sm);
    display:flex;
    align-items:center;
    box-shadow:0 3px 10px #0003;
    letter-spacing:.04em
}
.site-header .container {
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between
}
.site-header__logo {
    font-size:1.4rem;
    font-weight:700
}
.site-header__logo:hover {
    opacity:.85
}
.header--en {
    font-size:.7rem;
    text-align:center;
    font-weight:500;
    margin-top:-.3rem
}
.header--en-mobile {
    font-size:.8em;
    text-align:start;
    margin-top:-.2rem
}
.site-header__container {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:.25rem
}
.sub_nav {
    margin-right:10px
}
.sub_nav__link {
    font-size:.7em
}
.site-nav__list {
    display:flex;
    gap:.25rem
}
.site-nav__item a {
    font-weight:700;
    display:block;
    padding:.6rem .8rem .4rem;
    font-size:.9rem;
    border-radius:4px;
    transition:background-color var(--transition);
    white-space:nowrap;
    overflow:hidden
}
.site-nav__item a:hover,.site-nav__item a.active {
    background-color:#e8f5e9;
    color:var(--color-primary)
}
.site-header__contact-btn {
    padding:.45rem 1.2rem;
    background-color:var(--color-primary);
    color:var(--color-white)!important;
    border-radius:4px;
    font-size:.85rem;
    font-weight:700;
    transition:background-color var(--transition)
}
.site-header__contact-btn:hover {
    background-color:var(--color-primary-dark);
    color:var(--color-white)!important
}
.shop-link {
    color:var(--black)
}
.site-header__hamburger {
    display:none;
    background:none;
    border:none;
    cursor:pointer;
    padding:.25rem;
    color:var(--color-primary-dark)
}
.site-header__hamburger .line {
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    transform-box:fill-box;
    transform-origin:center;
    transition:opacity var(--transition),transform var(--transition)
}
.site-header__hamburger[aria-expanded=true] .line--top {
    transform:translateY(6px) rotate(45deg)
}
.site-header__hamburger[aria-expanded=true] .line--mid {
    opacity:0;
    transform:scaleX(0)
}
.site-header__hamburger[aria-expanded=true] .line--bot {
    transform:translateY(-6px) rotate(-45deg)
}
.mobile-nav-overlay {
    display:none;
    position:fixed;
    inset:0;
    z-index:98;
    background-color:#0006;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease
}
.mobile-nav-overlay.is-visible {
    opacity:1;
    pointer-events:auto
}
.mobile-nav {
    display:none;
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:80%;
    max-width:360px;
    background-color:var(--color-white);
    z-index:99;
    overflow-y:auto;
    padding:calc(var(--header-height) + 1.5rem) 1.5rem 1.5rem;
    transform:translate(100%);
    transition:transform .3s ease;
    box-shadow:var(--shadow-lg)
}
.mobile-nav.is-open {
    transform:translate(0)
}
.mobile-nav ul {
    margin-bottom:1.5rem
}
.mobile-nav__link {
    display:block;
    padding:.9rem .5rem;
    font-size:1rem;
    font-weight:700;
    border-bottom:1px solid var(--color-border)
}
.mobile-nav__link.active {
    color:var(--color-primary)
}
.mobile-nav__contact {
    width:100%;
    justify-content:center
}
@media(max-width:768px) {
    .site-header {
        height:var(--header-height-sp)
    }
    .site-nav,.site-header__contact-btn {
        display:none
    }
    .site-header__hamburger {
        display:flex
    }
    .mobile-nav,.mobile-nav-overlay {
        display:block
    }
}
.site-footer {
    background-color:var(--green);
    color:#eee;
    padding:3.5rem 0 1.5rem;
    margin-top:auto
}
.site-footer__top a:hover {
    opacity:.8
}
.site-footer__inner {
    margin-bottom:2.5rem
}
.site-footer__logo {
    font-size:1.2rem;
    font-weight:700;
    color:var(--color-white);
    line-height:1.5;
    display:flex;
    align-items:flex-end;
    gap:.4rem
}
.site-footer__logo-image {
    max-width:20rem
}
.site-footer__logo-icon {
    width:1.4rem;
    height:1.4rem;
    color:var(--color-primary-light);
    flex-shrink:0
}
.site-footer__address {
    font-style:normal;
    font-size:.82rem;
    line-height:1.8
}
@media(min-width:769px) {
    .site-footer__address {
        display:flex;
        flex-wrap:wrap;
        gap:.5rem 2rem;
        align-items:center
    }
}
.site-footer__addr-item {
    display:flex;
    align-items:flex-start;
    gap:.4rem;
    margin-bottom:.8rem
}
.site-footer__addr-item svg {
    width:1rem;
    height:1rem;
    flex-shrink:0;
    margin-top:.2rem;
    opacity:.7
}
.site-footer__addr-item--maps {
    margin-top:-.15rem
}
.site-footer__addr-item a {
    transition:color var(--white)
}
.site-footer__addr-item a:hover {
    color:var(--color-white)
}
.site-footer__links {
    display:flex;
    flex-wrap:nowrap;
    gap:.55rem 1.5rem
}
.site-footer__links li+li {
    margin-top:0
}
@media(max-width:768px) {

    .site-footer__links {
        flex-direction:column;
        gap:.55rem
    }
}
.site-footer__links a {
    font-size:.85rem;
    transition:color var(--transition);
    white-space:nowrap
}
.site-footer__links a:hover {
    color:var(--color-white)
}
.site-footer__ec {
    display:flex;
    align-items:stretch;
    position:relative
}
.site-footer__ec-badge {
    position:absolute;
    top:-3rem;
    left:-2rem;
    width:5rem;
    z-index:1
}
.footer-ec-card {
    background-color:var(--color-accent-1);
    padding:1.5rem 1.25rem;
    display:flex;
    flex-direction:column;
    gap:.75rem;
    width:100%;
    max-width:30rem;
    box-shadow:5px 6px 7px #0000006b
}
.footer-ec-card__container {
    display:flex;
    align-items:center;
    gap:1rem
}
.footer-ec-card__text {
    color:var(--color-white);
    font-size:1em;
    font-weight:700;
    line-height:1.6;
    white-space:nowrap
}
.footer-ec-card__btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background-color:var(--color-white);
    color:var(--green);
    font-size:.9em;
    font-weight:700;
    padding:.55rem 1rem;
    border-radius:100px;
    transition:opacity var(--transition);
    margin-top:auto
}
.footer-ec-card__btn:hover {
    opacity:.85;
    color:var(--color-accent-1)
}
.site-footer__bottom {
    border-top:1px solid rgba(230,230,230,.658);
    padding-top:1.5rem;
    font-size:.78rem;
    margin:0 auto
}
.site-footer__bottom-links {
    display:flex;
    gap:1.5rem;
    justify-content:center
}
.site-footer__bottom-links a:hover {
    color:var(--color-white)
}
@media(max-width:768px) {
    .site-footer__inner {
        display:grid;
        grid-template-columns:1fr;
        gap:2.5rem;
        align-items:center
    }
    .site-footer__ec {
        order:-1
    }
    .site-footer__bottom {
        flex-direction:column;
        gap:.75rem;
        text-align:center
    }
}
.hero__ec {
    background-color:var(--color-accent);
    border-radius:6px;
    padding:1rem 1.25rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem
}
.hero__ec-inner {
    display:flex;
    flex-direction:column;
    gap:.25rem
}
.hero__ec-badge {
    display:inline-block;
    background-color:#0003;
    color:#fff;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.06em;
    padding:.1rem .5rem;
    border-radius:2px;
    width:fit-content
}
.hero__ec-text {
    color:#fff;
    font-size:.92rem;
    font-weight:700;
    line-height:1.5
}
.hero__ec-btn {
    display:inline-flex;
    align-items:center;
    background-color:var(--color-white);
    color:var(--color-accent-1);
    font-size:.8rem;
    font-weight:700;
    padding:.55rem 1.1rem;
    border-radius:4px;
    white-space:nowrap;
    flex-shrink:0;
    transition:opacity var(--transition)
}
.hero__ec-btn:hover {
    opacity:.85;
    color:var(--color-accent-1)
}
.hero-ec-wrap {
    display:flex;
    justify-content:flex-end;
    padding-inline:1.5rem;
    max-width:1200px;
    margin-inline:auto;
    transform:translateY(-50%);
    pointer-events:none
}
.hero-ec-card {
    pointer-events:auto;
    width:27rem;
    height:10.5rem;
    max-width:100%;
    position:relative
}
.hero-ec-img {
    width:80px;
    height:80px;
    object-fit:cover;
    flex-shrink:0
}
@media(min-width:769px) {
    .footer-ec-sp {
        display:none
    }
}
@media(max-width:768px) {
    .footer-ec-pc {
        display:none
    }
    .hero-ec-wrap {
        transform:none;
        justify-content:center
    }
    .hero-ec-card {
        max-width:fit-content;
        max-height:fit-content
    }
    .hero-ec-img {
        width:5rem;
        height:5rem
    }
    .footer-ec-sp {
        display:block;
        margin:0 auto;
        position:absolute
    }
    .footer-ec-sp-container {
        position:relative;
        top:-10rem;
        left:50vw;
        transform:translate(-50%,50%)
    }
}
.section-title {
    font-size:2.25rem;
    text-align:center;
    margin-bottom:.5rem;
    font-weight:700
}
h3.section-title {
    font-size:1.6rem;
    text-align:left;
    margin-bottom:2rem
}
h4.section-title {
    font-size:1.25rem;
    margin-bottom:2rem
}
.section-subtitle {
    font-weight:700;
    font-size:1.2rem;
    letter-spacing:.15em;
    text-transform:uppercase;
    color:var(--color-primary-light);
    text-align:center;
    margin-bottom:2rem
}
.btn {
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    padding:.5rem 5rem;
    border-radius:100px;
    font-size:1.15rem;
    font-weight:700;
    cursor:pointer;
    background-color:#f7f6f1;
    border:1px solid transparent;
    box-shadow:3px 4px 8px #0000003b
}
.btn--primary {
    background-color:var(--color-primary);
    color:var(--color-white);
    border-color:var(--color-primary)
}
.btn--primary:hover {
    background-color:var(--color-primary-dark);
    border-color:var(--color-primary-dark);
    color:var(--color-white);
    transform:translateY(-2px)
}
.btn--outline {
    background-color:#f7f6f1;
    color:var(--color-primary);
    border-color:var(--color-primary)
}
.btn--outline:hover {
    background-color:var(--color-primary);
    color:var(--color-white)
}
.card {
    background:var(--color-white);
    border-radius:8px;
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    transition:box-shadow var(--transition),transform var(--transition)
}
.card:hover {
    box-shadow:var(--shadow-md);
    transform:translateY(-4px)
}
.global__ec-container {
    position:fixed;
    bottom:0;
    right:0vw;
    padding:1rem 2rem;
    display:flex;
    justify-content:flex-end;
    z-index:3
}
.grid-2 {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:2rem
}
.grid-3 {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:2rem
}
.grid-4 {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1.5rem
}
@media(max-width:768px) {
    .grid-2,.grid-3,.grid-4 {
        grid-template-columns:1fr
    }
}
@media(max-width:1024px) {
    .grid-4 {
        grid-template-columns:repeat(2,1fr)
    }
}
.form-group {
    margin-bottom:1.5rem
}
.form-label {
    display:block;
    font-weight:700;
    margin-bottom:.4rem;
    font-size:.9rem
}
.form-label .required {
    color:var(--color-accent-1);
    margin-left:.3rem;
    font-size:.75rem
}
.form-label .any {
    color:#797979;
    margin-left:.3rem;
    font-size:.75rem
}
.form-input,.form-textarea,.form-select {
    width:100%;
    padding:.65rem .9rem;
    border:1px solid var(--color-border);
    border-radius:4px;
    background:var(--color-white);
    font-size:1rem;
    transition:border-color var(--transition)
}
.form-input:focus,.form-textarea:focus,.form-select:focus {
    outline:none;
    border-color:var(--color-primary)
}
.form-textarea {
    resize:vertical;
    min-height:160px
}
@media(max-width:768px) {
    html {
        font-size:min(14px,3vw)
    }
    .sp-padding-bottom-10rem {
        padding-bottom:6vw;
    }
}