.walk-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding-bottom:var(--space-5)}.walk-action{min-height:124px;border:1px solid var(--townary-line);background:var(--townary-white);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;padding:1.5rem;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.walk-action:hover,.walk-action:focus-visible{transform:translateY(-4px);border-color:var(--townary-blue);box-shadow:0 16px 44px rgba(8,47,99,.1)}.walk-action--primary{border-color:var(--townary-navy);background:var(--townary-navy);color:var(--townary-white)}.walk-action__number{font-size:.72rem;letter-spacing:.14em;color:var(--townary-red)}.walk-action--primary .walk-action__number{color:var(--townary-green)}.walk-action__text{display:grid;gap:.35rem}.walk-action__text strong{font-size:1.05rem}.walk-action__text small{color:var(--townary-muted)}.walk-action--primary small{color:rgba(255,255,255,.72)}.walk-action__arrow{font-size:1.4rem}
.japan-map{display:grid;justify-items:center;gap:1rem}.japan-map__svg{width:min(100%,560px);filter:drop-shadow(0 26px 38px rgba(8,47,99,.08))}.japan-map__region{fill:#f6f9fb;stroke:var(--townary-navy);stroke-width:1.5;transition:fill .2s ease,transform .2s ease;transform-origin:center}.japan-map__region:hover,.japan-map__region:focus{fill:var(--townary-blue);outline:none}.japan-map__region text{font-family:var(--townary-font-sans);font-size:15px;font-weight:600;fill:var(--townary-navy);stroke:none;pointer-events:none}.japan-map__sea path{fill:none;stroke:var(--townary-blue);stroke-width:2;stroke-linecap:round;opacity:.32}.japan-map__caption{font-size:.8rem;letter-spacing:.14em;color:var(--townary-muted)}
.front-entrance{min-height:calc(100vh - 84px);display:grid;grid-template-columns:1.05fr 1.15fr .72fr;align-items:center;gap:3.5rem;padding-block:4.5rem 3rem}.front-entrance__copy{align-self:center}.front-entrance__eyebrow{margin-bottom:1.6rem;font-size:.72rem;letter-spacing:.22em;color:var(--townary-green);font-weight:700}.front-entrance__lead{margin-top:2rem;font-size:1.03rem;letter-spacing:.1em;color:var(--townary-navy)}.front-entrance__description{margin-top:2.4rem;color:var(--townary-muted);line-height:2}.front-entrance__note{align-self:center;border-left:1px solid var(--townary-line);padding-left:2rem;display:grid;gap:1.6rem;color:var(--townary-muted);line-height:1.9}.front-entrance__pin{width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--townary-red);transform:rotate(-45deg);position:relative}.front-entrance__pin::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;left:6px;top:6px}
.municipality-search{padding-block:1rem var(--space-6)}.municipality-search__form{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;border:1px solid var(--townary-line);background:var(--townary-white);padding:.85rem 1rem}.municipality-search__label{font-size:.76rem;letter-spacing:.08em;color:var(--townary-navy)}.municipality-search__input{width:100%;border:0;outline:0;padding:.8rem;background:transparent}.municipality-search__button{border:0;background:var(--townary-navy);color:#fff;padding:.9rem 1.4rem;cursor:pointer}.municipality-search__note{margin-top:.8rem;text-align:center;color:var(--townary-muted);font-size:.75rem}
.front-about{padding-block:var(--space-6);border-top:1px solid var(--townary-line);display:grid;grid-template-columns:.55fr .9fr 1.4fr;gap:2rem;align-items:start}.front-about__label{font-size:.72rem;letter-spacing:.2em;color:var(--townary-green)}.front-about__title{font-size:clamp(2rem,3vw,3.2rem);line-height:1.45}.front-about__text{color:var(--townary-muted);line-height:2.1}
@media(max-width:980px){.front-entrance{grid-template-columns:1fr;padding-top:3rem}.front-entrance__map{order:2}.front-entrance__note{order:3;border-left:0;border-top:1px solid var(--townary-line);padding:1.5rem 0 0}.walk-actions{grid-template-columns:1fr}.front-about{grid-template-columns:1fr}}@media(max-width:640px){.site-header__inner,.site-footer__inner,.front-entrance,.walk-actions,.municipality-search,.front-about,.municipality-hero,.municipality-summary{width:min(100% - 28px,1380px)}.front-entrance__title{font-size:2.6rem}.municipality-search__form{grid-template-columns:1fr}.municipality-search__label{display:none}}
.front-entrance {
    position: relative;
    isolation: isolate;
    min-height: calc(100vh - 84px);
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(620px, 1.8fr) minmax(230px, .65fr);
    align-items: center;
    gap: 1.5rem;
    padding-block: 2rem 3rem;
    overflow: hidden;
}

.front-entrance::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 4% -8% 0;
    border-radius: 50%;
    background:
        radial-gradient(
            ellipse at 50% 54%,
            rgba(211, 237, 241, .64) 0%,
            rgba(231, 246, 247, .42) 38%,
            rgba(255, 255, 255, 0) 72%
        );
    filter: blur(8px);
    pointer-events: none;
}

.front-entrance::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 70%;
    height: 26%;
    left: 19%;
    bottom: 8%;
    border-radius: 50%;
    background:
        radial-gradient(
            ellipse,
            rgba(33, 89, 112, .16) 0%,
            rgba(76, 136, 151, .08) 42%,
            rgba(255, 255, 255, 0) 72%
        );
    filter: blur(24px);
    transform: rotate(-7deg);
    pointer-events: none;
}

.front-entrance__copy {
    position: relative;
    z-index: 3;
    align-self: center;
    transform: translate(2.5rem, -1rem);
}

.front-entrance__eyebrow {
    margin-bottom: 1.6rem;
    font-size: .72rem;
    letter-spacing: .22em;
    color: var(--townary-green);
    font-weight: 700;
}

.front-entrance__lead {
    margin-top: 2rem;
    font-size: 1.03rem;
    letter-spacing: .1em;
    color: var(--townary-navy);
}

.front-entrance__description {
    margin-top: 2.4rem;
    color: var(--townary-muted);
    line-height: 2;
}

.front-entrance__map {
    position: relative;
    z-index: 1;
    width: min(82vw, 1080px);
    margin-inline: -13rem -11rem;
    transform:
        translateY(.8rem)
        rotate(-7deg)
        skewX(-3deg)
        scaleY(.92);
    transform-origin: 50% 50%;
    filter:
        drop-shadow(0 22px 18px rgba(24, 49, 79, .12))
        drop-shadow(0 46px 34px rgba(24, 49, 79, .08));
}

.front-entrance__note {
    position: relative;
    z-index: 3;
    align-self: center;
    transform: translate(-1rem, 5rem);
    border-left: 1px solid var(--townary-line);
    padding-left: 2rem;
    display: grid;
    gap: 1.6rem;
    color: var(--townary-muted);
    line-height: 1.9;
}

.front-entrance__pin {
    width: 18px;
    height: 18px;
    border-radius: 50% 50% 50% 0;
    background: var(--townary-red);
    transform: rotate(-45deg);
    position: relative;
}

.front-entrance__pin::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    left: 6px;
    top: 6px;
}
.front-japan-map {
    width: 100%;
    min-width: 0;
}

.front-japan-map__canvas {
    display: grid;
    width: 100%;
    place-items: center;
}

.front-japan-map__canvas::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 88%;
    height: 62%;
    border-radius: 50%;
    background:
        repeating-radial-gradient(
            ellipse at center,
            rgba(111, 182, 198, .08) 0 1px,
            transparent 1px 34px
        );
    transform: rotate(7deg) scaleY(1.08);
    opacity: .65;
    pointer-events: none;
}

.front-japan-map .townary-japan-map {
    width: 100%;
    max-width: none;
    overflow: visible;
}

@media (max-width: 980px) {
    .front-entrance__map {
        width: min(100%, 760px);
        margin-inline: auto;
        transform:
            rotate(-3deg)
            skewX(-1deg)
            scaleY(.97);
    }

    .front-entrance__copy,
    .front-entrance__note {
        transform: none;
    }
}
.front-japan-map__canvas--pc{display:grid!important}.front-japan-map__canvas--sp{display:none!important}





/* TOWNARY HERO PC FINAL START */
@media (min-width: 721px) {
    .front-entrance {
        position: relative !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        grid-template-rows: 1fr !important;

        width: 100vw !important;
        max-width: none !important;
        height: clamp(
            900px,
            74.2vw,
            1140px
        ) !important;
        min-height: 0 !important;

        margin-inline:
            calc(50% - 50vw) !important;

        padding: 0 !important;
        overflow: hidden !important;
    }

    .front-entrance__map {
        grid-area: 1 / 1 !important;
        align-self: stretch !important;
        justify-self: stretch !important;

        width: 100% !important;
        height: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        transform: none !important;
        overflow: hidden !important;

        z-index: 1 !important;
    }

    .front-japan-map,
    .front-japan-map__canvas {
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    .front-japan-map .townary-japan-map {
        display: block !important;

        width: 100% !important;
        height: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        transform: none !important;
    }

    .front-entrance__copy {
        grid-area: 1 / 1 !important;

        align-self: start !important;
        justify-self: start !important;

        width: min(
            29vw,
            420px
        ) !important;

        margin:
            clamp(28px, 3vw, 48px)
            0
            0
            clamp(32px, 5vw, 84px)
            !important;

        padding: 0 !important;
        transform: none !important;

        position: relative !important;
        z-index: 3 !important;
    }

    .front-entrance__title {
        max-width: 8em !important;

        font-size: clamp(
            2.45rem,
            3.35vw,
            4.1rem
        ) !important;

        line-height: 1.13 !important;
    }

    .front-entrance__lead,
    .front-entrance__description {
        max-width: 22rem !important;
    }

    .front-entrance__note {
        grid-area: 1 / 1 !important;

        align-self: end !important;
        justify-self: end !important;

        width: min(
            23vw,
            320px
        ) !important;

        margin:
            0
            clamp(32px, 5vw, 84px)
            clamp(46px, 5vw, 82px)
            0
            !important;

        padding: 0 0 0 2rem !important;
        transform: none !important;

        position: relative !important;
        z-index: 3 !important;
    }
}
/* TOWNARY HERO PC FINAL END */

/* TOWNARY HERO PC BALANCE START */
@media (min-width: 721px) {
    .front-entrance {
        aspect-ratio: 1320 / 1182 !important;
    }

    .front-entrance__note {
        position: absolute !important;
        top: 47% !important;
        right: clamp(32px, 5vw, 84px) !important;
        bottom: auto !important;

        width: min(23vw, 320px) !important;
        margin: 0 !important;

        align-self: auto !important;
        justify-self: auto !important;
        transform: none !important;
    }

    .front-entrance__map-guide {
        position: absolute;
        top: 63%;
        left: clamp(32px, 5vw, 84px);
        z-index: 3;

        display: grid;
        gap: .3rem;

        margin: 0;
        padding-left: 1.15rem;

        border-left:
            2px solid
            var(--townary-blue);

        color: var(--townary-blue);
        line-height: 1.5;
    }

    .front-entrance__map-guide span {
        font-size: .82rem;
        letter-spacing: .08em;
    }

    .front-entrance__map-guide strong {
        font-size: 1.05rem;
        font-weight: 600;
    }
}
/* TOWNARY HERO PC BALANCE END */

/* TOWNARY HERO PC POSITION FINAL START */
@media (min-width: 721px) {
    .front-entrance__note {
        top: 31% !important;
        right: clamp(28px, 5vw, 80px) !important;
        bottom: auto !important;
        margin: 0 !important;
    }

    .front-entrance__map-guide {
        top: 43% !important;
        left: clamp(28px, 5vw, 80px) !important;
        bottom: auto !important;
        margin: 0 !important;
    }
}
/* TOWNARY HERO PC POSITION FINAL END */


/* TOWNARY PREFECTURE WALK START */
.prefecture-walk {
    width: calc(100% - 96px);
    max-width: none;
    margin: clamp(64px, 8vw, 120px) auto;
}

.prefecture-walk__details {
    border-top: 1px solid rgba(7, 51, 98, 0.18);
    border-bottom: 1px solid rgba(7, 51, 98, 0.18);
}

.prefecture-walk__summary {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto 36px;
    align-items: center;
    gap: 32px;

    min-height: 128px;
    padding: 28px 8px;

    color: var(--townary-blue, #073362);
    cursor: pointer;
    list-style: none;
}

.prefecture-walk__summary::-webkit-details-marker {
    display: none;
}

.prefecture-walk__heading {
    display: grid;
    gap: 8px;
}

.prefecture-walk__eyebrow {
    color: #76c9b7;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.22em;
}

.prefecture-walk__heading strong {
    color: var(--townary-blue, #073362);
    font-size: clamp(1.65rem, 2.5vw, 2.6rem);
    font-weight: 600;
    letter-spacing: 0.02em;
}

.prefecture-walk__description {
    color: rgba(7, 51, 98, 0.66);
    font-size: 0.94rem;
}

.prefecture-walk__toggle {
    position: relative;
    width: 28px;
    height: 28px;
}

.prefecture-walk__toggle::before,
.prefecture-walk__toggle::after {
    position: absolute;
    top: 50%;
    left: 50%;

    width: 18px;
    height: 1px;

    background: var(--townary-blue, #073362);
    content: "";
    transform: translate(-50%, -50%);
    transition: transform 180ms ease;
}

.prefecture-walk__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.prefecture-walk__details[open] .prefecture-walk__toggle::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.prefecture-walk__panel {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 48px 36px;

    padding: 32px 8px 56px;
    border-top: 1px solid rgba(7, 51, 98, 0.1);
}

.prefecture-walk__region-title {
    margin: 0 0 18px;
    color: var(--townary-blue, #073362);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.prefecture-walk__list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;

    margin: 0;
    padding: 0;
    list-style: none;
}

.prefecture-walk__list a {
    color: rgba(7, 51, 98, 0.78);
    font-size: 0.92rem;
    text-decoration: none;
}

.prefecture-walk__list a:hover,
.prefecture-walk__list a:focus-visible {
    color: #ef3b46;
    text-decoration: underline;
    text-underline-offset: 4px;
}

@media (max-width: 900px) {
    .prefecture-walk__panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .prefecture-walk {
        width: calc(100% - 32px);
        margin-block: 56px;
    }

    .prefecture-walk__summary {
        grid-template-columns: 1fr 30px;
        gap: 16px;
        min-height: 104px;
    }

    .prefecture-walk__description {
        display: none;
    }

    .prefecture-walk__panel {
        grid-template-columns: 1fr;
        gap: 32px;
        padding-bottom: 40px;
    }
}
/* TOWNARY PREFECTURE WALK END */

/* TOWNARY PREFECTURE TITLE COLOR FIX */
.prefecture-walk__heading strong,
#prefecture-walk-title {
    color: #073362 !important;
    -webkit-text-fill-color: #073362 !important;
}

/* TOWNARY MAP GUIDE PRIMARY START */
.front-entrance__map-guide {
    display: grid !important;
    gap: 0.42rem !important;

    padding-left: 1.35rem !important;
    border-left: 3px solid #073362 !important;

    color: #073362 !important;
}

.front-entrance__map-guide-label {
    color: #ef3b46 !important;
    font-size: 0.68rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.2em !important;
    line-height: 1.2 !important;
}

.front-entrance__map-guide-title {
    display: block !important;

    color: #073362 !important;
    -webkit-text-fill-color: #073362 !important;

    font-size: clamp(1.45rem, 1.9vw, 2.1rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.2 !important;
}

.front-entrance__map-guide-title::after {
    display: inline-block;

    width: 42px;
    height: 2px;
    margin-left: 0.8rem;

    background: #ef3b46;
    content: "";
    vertical-align: middle;
}

.front-entrance__map-guide-help {
    color: rgba(7, 51, 98, 0.72) !important;
    font-size: 0.88rem !important;
    font-weight: 400 !important;
    letter-spacing: 0.03em !important;
    line-height: 1.6 !important;
}
/* TOWNARY MAP GUIDE PRIMARY END */

/* TOWNARY MAIN ENTRY HEADING START */
.townary-entry-heading {
    display: grid !important;
    gap: 0.42rem !important;

    padding-left: 1.35rem !important;
    border-left: 3px solid #073362 !important;

    color: #073362 !important;
}

.townary-entry-heading__label {
    color: #ef3b46 !important;
    -webkit-text-fill-color: #ef3b46 !important;

    font-size: 0.68rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.2em !important;
    line-height: 1.2 !important;
}

.townary-entry-heading__title {
    display: block !important;
    margin: 0 !important;

    color: #073362 !important;
    -webkit-text-fill-color: #073362 !important;

    font-size: clamp(
        1.45rem,
        1.9vw,
        2.1rem
    ) !important;

    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.2 !important;
}

.townary-entry-heading__title::after {
    display: inline-block !important;

    width: 42px !important;
    height: 2px !important;
    margin-left: 0.8rem !important;

    background: #ef3b46 !important;
    content: "" !important;
    vertical-align: middle !important;
}

.townary-entry-heading__help {
    margin: 0 !important;

    color: rgba(7, 51, 98, 0.72) !important;
    -webkit-text-fill-color: rgba(7, 51, 98, 0.72) !important;

    font-size: 0.88rem !important;
    font-weight: 400 !important;
    letter-spacing: 0.03em !important;
    line-height: 1.6 !important;
}

.prefecture-walk__summary {
    grid-template-columns: 1fr 36px !important;
}

.municipality-search__heading {
    margin-bottom: clamp(
        24px,
        3vw,
        40px
    ) !important;
}
/* TOWNARY MAIN ENTRY HEADING END */

/* TOWNARY SEARCH ACCORDION START */
.municipality-search {
    width: calc(100% - 96px) !important;
    max-width: none !important;
    margin-inline: auto !important;
}

.municipality-search__summary {
    grid-template-columns: 1fr 36px !important;
}

.municipality-search__heading {
    margin: 0 !important;
}

.municipality-search__panel {
    padding: 32px 8px 0 !important;
    border-top: 1px solid rgba(7, 51, 98, 0.1);
}

.municipality-search__form {
    width: 100% !important;
    max-width: none !important;
}

@media (max-width: 720px) {
    .municipality-search {
        width: calc(100% - 32px) !important;
    }

    .municipality-search__panel {
        padding: 24px 0 0 !important;
    }
}
/* TOWNARY SEARCH ACCORDION END */

/* TOWNARY ENTRY ACCORDION STACK START */
.prefecture-walk {
    margin-bottom: 0 !important;
}

.municipality-search {
    margin-top: 0 !important;
}

.prefecture-walk + .municipality-search
.municipality-search__details {
    border-top: 0 !important;
}
/* TOWNARY ENTRY ACCORDION STACK END */
