/* 最後の教室だけ下余白を追加 */
.stores-last-item {
    margin-bottom: 40px;
}
/* Stores Page Styles */

/* Section Spacing */
.stores-section {
    padding: 40px 0;
}

.stores-section.hero-section {
    padding: 0;
}

.stores-padding-0 {
    padding: 0;
}

.stores-text-right {
    text-align: right;
}

.stores-section.intro-section {
    padding: 60px 0;
}

/* Container */
.stores-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
    display: flex;
    flex-wrap: wrap;
}

/* Column Layout */
.stores-column {
    padding: 0 15px;
    box-sizing: border-box;
}

.stores-col-50 {
    width: 50%;
}

.stores-col-100 {
    width: 100%;
    flex: 0 0 100%;
}

/* Inner Section */
.stores-inner-section {
    margin-bottom: 20px;
}

.stores-inner-column {
    padding: 10px;
}

/* Size variants */
.stores-size-medium {
    font-size: 1.25rem;
}

.stores-size-large {
    font-size: 1.75rem;
}

/* Widget Styles */
.stores-widget-wrap {
    padding: 15px 0;
}

.stores-widget-wrap > .stores-section {
    margin-bottom: 0;
}

.stores-widget-container {
    padding: 0;
}

/* Heading Styles */
.stores-heading-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.stores-size-default {
    font-size: 1.5rem;
}

/* Ensure p tags with stores-heading-title are centered */
p.stores-heading-title {
    text-align: center;
    margin: 0;
}

/* Right align when stores-text-right is applied */
.stores-text-right p.stores-heading-title {
    text-align: right;
}

.stores-text-right .stores-widget-heading .stores-heading-title[class*="stores-size-"] > a {
    color: inherit;
    font-size: 16px;
    line-height: inherit;
    text-decoration: underline;
}

.stores-text-right .stores-widget:not(:last-child) {
    margin-block-end: 20px;
}

/* Column Gap */
.stores-column-gap-default .stores-column {
    padding: 0 15px;
}

/* Widget Width */
.stores-widget__width-initial {
    width: auto;
}

/* Populated */
.stores-element-populated {
    padding: 15px;
}

/* Section Height */
.stores-section-height-default {
    min-height: auto;
}

/* Section Boxed */
.stores-section.stores-section-boxed > .stores-container {
    max-width: 1200px;
}

/* Specific Element Styles */
.stores-element-3b48f81 {
    padding: 1% 0% 0% 0%;
}

.stores-element-9759b98 {
    text-align: center;
}

.stores-element-9759b98 .stores-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #0A8F20;
}

.stores-element-f26bb93 {
    width: 100%;
    --container-widget-width: 100%;
    --container-widget-flex-grow: 0;
}

/* Grand Open Section */
.stores-element-8ad0e97 {
    padding: 5% 0% 2% 0%;
}

.stores-element-584c3d2 {
    text-align: center;
}

.stores-element-584c3d2 .stores-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #00516D;
}

.stores-element-55127a9 {
    text-align: center;
}

.stores-element-55127a9 .stores-heading-title {
    font-family: "Mulish", Sans-serif;
    font-size: 65px;
    font-weight: 900;
    color: #00516D;
}

/* Store List Section */
.stores-element-4158525:not(.stores-motion-effects-element-type-background),
.stores-element-4158525 > .stores-motion-effects-container > .stores-motion-effects-layer {
    background-color: #f0f0f0;
}

.stores-element-4158525 {
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 3% 0% 3% 0%;
}

.stores-element-4158525 > .stores-background-overlay {
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.stores-element-73fe24b > .stores-element-populated {
    padding: 0% 0% 0% 0%;
}

/* Inner Store Sections */
.stores-element-2eb26bb:not(.stores-motion-effects-element-type-background),
.stores-element-2eb26bb > .stores-motion-effects-container > .stores-motion-effects-layer {
    background-color: #ffffff;
}

.stores-element-2eb26bb > .stores-container {
    max-width: 800px;
}

.stores-element-2eb26bb {
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 2% 0% 2% 0%;
}

.stores-element-2eb26bb > .stores-background-overlay {
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

/* Column Alignment */
.stores-element-open-date-outer .stores-widget-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.stores-element-open-date-outer.stores-column.stores-element[data-element_type="column"] > .stores-widget-wrap.stores-element-populated {
    align-content: center;
    align-items: center;
}

.stores-element-open-date-outer .stores-element-populated {
    padding: 0;
}

.stores-element-open-date-outer .stores-element {
    margin-bottom: 0;
}

.stores-element-open-date > .stores-widget-container {
    margin: 0px 0px 0px 0px;
}

.stores-element-open-date {
    text-align: center;
}

.stores-element-open-date .stores-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-weight: 600;
    color: #333333;
    font-size: 19px;
}

.stores-element-open-store-name {
    text-align: center;
}

.stores-widget-heading.stores-element-open-store-name p.stores-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-weight: 600;
    color: #0a8f20;
    font-size: 29px;
}

/* Store Notice Section */
.stores-element-c47c711 {
    text-align: center;
    font-family: "Noto Sans JP", Sans-serif;
    font-weight: 700;
    line-height: 2em;
    letter-spacing: 1px;
}


/* Additional Store Sections */
.stores-element-6690589:not(.stores-motion-effects-element-type-background),
.stores-element-6690589 > .stores-motion-effects-container > .stores-motion-effects-layer {
    background-color: #ffffff;
}

.stores-element-6690589 > .stores-container {
    max-width: 800px;
}

.stores-element-6690589 {
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 2% 0% 2% 0%;
}

.stores-element-6690589 > .stores-background-overlay {
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.stores-element-open-store-name-outer .stores-widget-wrap {
    align-items: center;
}

.stores-element-open-store-name-outer.stores-column.stores-element[data-element_type="column"] > .stores-widget-wrap.stores-element-populated {
    align-content: center;
    align-items: center;
}

.stores-element-open-store-name-outer .stores-element-populated {
    padding: 0;
}

.stores-element-open-store-name-outer .stores-element {
    margin-bottom: 0;
}


/* Other Inner Sections with Same Style */
.stores-element-18f8cbe:not(.stores-motion-effects-element-type-background),
.stores-element-18f8cbe > .stores-motion-effects-container > .stores-motion-effects-layer,
.stores-element-3b822cf:not(.stores-motion-effects-element-type-background),
.stores-element-3b822cf > .stores-motion-effects-container > .stores-motion-effects-layer,
.stores-element-579f416:not(.stores-motion-effects-element-type-background),
.stores-element-579f416 > .stores-motion-effects-container > .stores-motion-effects-layer,
.stores-element-0dbd8df:not(.stores-motion-effects-element-type-background),
.stores-element-0dbd8df > .stores-motion-effects-container > .stores-motion-effects-layer,
.stores-element-61be02e:not(.stores-motion-effects-element-type-background),
.stores-element-61be02e > .stores-motion-effects-container > .stores-motion-effects-layer,
.stores-element-b4b6924:not(.stores-motion-effects-element-type-background),
.stores-element-b4b6924 > .stores-motion-effects-container > .stores-motion-effects-layer {
    background-color: #ffffff;
}

.stores-element-18f8cbe > .stores-container,
.stores-element-3b822cf > .stores-container,
.stores-element-579f416 > .stores-container,
.stores-element-0dbd8df > .stores-container,
.stores-element-61be02e > .stores-container,
.stores-element-b4b6924 > .stores-container {
    max-width: 800px;
}

.stores-element-18f8cbe,
.stores-element-3b822cf,
.stores-element-579f416,
.stores-element-0dbd8df,
.stores-element-61be02e,
.stores-element-b4b6924 {
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 2% 0% 2% 0%;
}

/* SVG Map Styles */
.cls-1 { fill: #b0b72f; }
.cls-2 { fill: #fff; }
.cls-3 { fill: #d08f68; }
.cls-4 { fill: #4388d3; }
.cls-5 { fill: #31beca; }
.cls-6 { fill: #ff7575; }
.cls-7 { fill: #7478c2; }
.cls-8 { fill: #ef9f27; }
.cls-9 { fill: #4ab969; }
.gray { fill: #bbbbbb; }

.japan-map_btn svg a {
    transition: all 0.2s;
}

.japan-map_btn svg a:hover {
    transition: all 0.2s;
    opacity: 0.5;
}

/* Area Styles */
.area {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-family: "Noto Sans JP", Sans-serif;
}

.area-box {
    width: 45%;
}

.area-box h3 {
    font-size: 20px;
    font-weight: bold;
    color: #FFF;
    padding: 5px 10px;
}

/* Region Colors */
.tohoku h3 {
    background-color: #4388d3;
}

.kanto h3 {
    background-color: #31beca;
}

.chubu h3 {
    background-color: #4ab969;
}

.kinki h3 {
    background-color: #b0b72f;
}

.chugoku h3 {
    background-color: #ef9f27;
}

.shikoku h3 {
    background-color: #d08f68;
}

.kyusyu h3 {
    background-color: #ff7575;
}

.hokkaido h3 {
    background-color: #7478c2;
}

.area-box ul {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
}

.area-box li {
    list-style: none;
    width: 45%;
    margin-bottom: 5px;
}

.area-box li a {
    display: flex;
    color: #000;
    width: fit-content;
    transition: all 0.2s;
    align-items: center;
}

.area-box li a:hover {
    text-decoration: underline;
    color: #297842;
    transition: all 0.2s;
}

.area-box li a::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border: 2px solid #000;
    border-left: none;
    border-bottom: none;
    transform: rotate(45deg);
    margin-right: 5px;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .stores-section {
        padding: 30px 0;
    }
    
    .stores-container {
        padding: 0 20px;
    }
    
    .stores-col-50 {
        width: 100%;
    }
    
    .stores-column-gap-default .stores-column {
        padding: 0;
    }
}

@media (max-width: 767px) {
    .stores-section {
        padding: 2% 0% 2% 0%;
    }
    
    .stores-container {
        padding: 2% 0% 2% 0%;
    }
    
    .stores-heading-title {
        font-size: 1.25rem;
    }
    
    .stores-element-populated {
        padding: 10px;
    }
    
    .stores-widget-heading.stores-element-open-store-name p.stores-heading-title {
        font-size: 15px;
    }
    
    .stores-element-open-date .stores-heading-title {
        font-size: 14px;
    }
    
    .stores-element-c47c711 {
        text-align: left;
        font-size: 13px;
        line-height: 1.4em;
    }
}

@media (max-width: 480px) {
    .area-box {
        width: 100%;
    }
}

/* Prefecture Store List Sections */
.stores-col-33 {
    width: 33.333%;
    flex: 0 0 33.333%;
}

/* Prefecture Heading Styles */
.stores-widget-heading h3.stores-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 40px;
    font-weight: 900;
    color: #297842;
    margin: 0 0 20px 0;
}

/* Divider Styles */
.stores-widget-divider .stores-divider {
    display: flex;
    align-items: center;
    justify-content: center;
}

.stores-widget-divider--view-line .stores-divider {
    border-top: 3px solid #00516d;
    width: 100%;
}

.stores-widget-divider .stores-divider-separator {
    display: none;
}

/* Store Item Row Styles */
.stores-widget-heading p.stores-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 19px;
    font-weight: 700;
    color: #333;
    margin: 0;
}

/* Text Editor (Address) Styles */
.stores-widget-text-editor .stores-widget-container {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 16px;
    color: #333;
    line-height: 1.6;
}

/* Button Styles */
.stores-widget-button .stores-button-wrapper {
    display: flex;
    justify-content: flex-end;
}

.stores-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 20px;
    background-color: #297842;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.3s;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 15px;
    font-weight: 600;
    border: none;
    cursor: pointer;
}

.stores-button:hover {
    background-color: #1e5a2f;
    opacity: 0.9;
}

.stores-button-content-wrapper {
    display: flex;
    align-items: center;
    gap: 8px;
}

.stores-button-icon {
    display: flex;
    align-items: center;
}

.stores-button-text {
    display: inline-block;
}

.stores-align-justify .stores-button-wrapper {
    justify-content: stretch;
}

.stores-align-justify .stores-button {
    width: 100%;
}

.stores-size-md {
    padding: 11px 20px;
    font-size: 15px;
}

/* Store List Section Spacing */
.stores-element.stores-element-1057a2c {
    padding: 30px 0 20px 0;
}

.stores-element-1057a2c .stores-container {
    padding-bottom: 0;
}

.stores-element.stores-element-7d95a66 {
    padding: 10px;
}

/* 店舗リストの内側セクション */
.stores-element-a93d385 {
    margin: 0 15px;
    padding: 0;
    border-style: solid;
    border-width: 0px 0px 1px 0px;
    border-color: #e2e2e2;
}

.stores-element-a93d385 .stores-container {
    padding: 0;
}

/* 店舗リストのコンテナ */
.stores-element-f8736de .stores-element-populated {
    padding: 0;
}

/* 店舗名カラム */
.stores-column.stores-element-store-name-outer {
    width: 19.103%;
    padding: 10px;
    display: flex;
    align-items: center;
}

.stores-element-store-name-outer .stores-widget-wrap {
    display: flex;
    align-items: center;
    width: 100%;
}

.stores-element-store-name-outer p.stores-heading-title {
    text-align: left;
}

/* 住所カラム */
.stores-column.stores-element-store-address-outer {
    width: 50.112%;
    padding: 10px;
    display: flex;
    align-items: center;
}

.stores-element-store-address-outer .stores-widget-wrap {
    display: flex;
    align-items: center;
    width: 100%;
}

/* ボタンカラム */
.stores-column.stores-element-store-goto-button {
    width: 30.449%;
    padding: 10px;
}

/* Responsive Styles for Prefecture Sections */
@media (max-width: 1024px) {
    .stores-col-33 {
        width: 100%;
        flex: 0 0 100%;
        margin-bottom: 15px;
    }
    
    .stores-widget-heading h3.stores-heading-title {
        font-size: 32px;
    }
}

/* 都道府県タイトルのスタイル（元サイトのスタイルを適用） */
.stores-widget-heading.stores-element-37a8ca9 h3.stores-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #00516d;
}

@media (max-width: 767px) {
    .stores-widget-heading.stores-element-37a8ca9 h3.stores-heading-title {
        font-size: 19px;
    }
    
    .stores-widget-heading h3.stores-heading-title {
        font-size: 28px;
    }
    
    .stores-widget-heading p.stores-heading-title {
        font-size: 17px;
    }
    
    .stores-widget-text-editor .stores-widget-container {
        font-size: 14px;
    }
    
    .stores-button {
        font-size: 13px;
        padding: 11px 11px;
    }
    
    .stores-column.stores-element-store-name-outer {
        width: 100%;
    }
    
    .stores-column.stores-element-store-address-outer {
        width: 100%;
    }
    
    .stores-column.stores-element-store-goto-button {
        width: 100%;
    }
    
    .stores-element-6eff5d6 .stores-element-populated {
        padding-bottom: 0;
    }
    
    .stores-element-a93d385 {
        margin: 0;
    }
}

