/* -----------------------------------------------------------------
   Role: アーカイブ系(トップ/一覧/検索)専用 同期CSS
   ----------------------------------------------------------------- */
.header {
    transform: translateZ(0);
}

/* =========================================================
   標準セット
========================================================= */

:root {
    --c-text: #042234;
    --c-bg: #eff4fc;
    --c-bg-main: rgb(251 252 254);
    --c-glass: #ffffff1c;
    --c-menu-text: #ffba3b;
    --c-menu-bg: #183258;
    --c-white: #fff;
    --c-accent: #72c8ff;
    --c-dark-2: #6d94ad;
    --c-dark: #0e7ac7;
    --c-dark-3: #30566e;
    --c-dark-4: #1a2026bf;
    --c-bg-light: #f8f9fa;
    --shadow-soft: 6px 6px 16px -12.5px #fff, -6px -6px 16px -12.5px #707070;
    --shadow-soft-2: 6px 6px 12px -10px #fff, -6px -6px 12px -8.5px #c5c5c5;
    --radius-sm: 7px;
    --radius-md: 10px;
    --radius-lg: 12px;
    --radius-xl: 15px;
    --radius-widget: 10px;
    --tracking-base: .5px;
    --tr-fast: .1s;
    --tr-bg: background-color 1.5s ease-in-out, color 1.5s ease-in-out;
    --tr-bg-fast: background-color .3s cubic-bezier(.25, 1, .5, 1), color .3s cubic-bezier(.25, 1, .5, 1);
    --ease-smooth: cubic-bezier(0.1, 0.36, 0.2, 1);
    --scroll-n1-b: auto;
    --scroll-n2-b: auto;
    --scroll-n3-b: auto;
    --mean-nav-mt: 86px;
    --welcome-w: 14.2%;
    --welcome-l: 27.4%;
    --welcome-t: clamp(25.3%, calc(25% + 5vw - 35px), 30%);
    --site-title-w: 38%;
    --site-title-l: 16.5%;
    --site-title-t: 40.5%;
    --catch-w: 27%;
    --catch-l: 21.2%;
    --catch-t: clamp(66%, calc(66% + 3.57vw - 22px), 70%);
}

html {
    scrollbar-gutter: stable;
    font-family: "Hiragino Sans", "Noto Sans JP", "Noto Sans CJK JP", sans-serif;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%
}

/* 投稿ページ・固定ページの中身、全ページのフッターを隠匿 */
:is(.page) #content,
#fortress-footer-gate {
    opacity: 0;
}

#main .article {
    background: var(--c-bg-main);
    border-radius: var(--radius-md)
}

*,
*::before,
*::after {
    box-sizing: border-box
}

body {
    margin: 0;
    color: var(--c-text);
    background-color: var(--c-bg);
    font-size: 17.8px;
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: 0.7px;
    overflow-wrap: break-word;
    font-feature-settings: "palt";
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
}

#content {
    margin: 30px 0;
}

#container {
    overflow: clip;
}

li.cat-item.cat-item-1 {
    display: none;
}

p,
figure {
    margin-block: 1.5em
}

figure {
    margin: auto
}

a {
    background: transparent;
    text-decoration: none;
    text-shadow: none;
    -webkit-touch-callout: none;
}

.entry-content {
    position: relative;
    z-index: 0;
    padding: 0 30px
}

.fi-tr-right::before {
    font-size: .8em
}

:is(.cs-6, .cs-7, .cs-9, .cs-10)::before {
    position: relative
}

.cs-6::before {
    top: .17em
}

.cs-7::before {
    top: .13em
}

.cs-9::before {
    top: .03em
}

.cs-10::before {
    top: -.05em
}

.entry-content p a,
figcaption a {
    color: #0066ff;
    transition: color .18s ease-out;
}

:is(dl, menu, ol, ul, button, input, select, textarea) {
    margin: 0;
    outline: 0;
}

:is(ol, ul) {
    padding: 0;
    list-style: none;
}

menu {
    padding: 0;
    padding-left: 40px;
}

img {
    vertical-align: bottom;
    width: 100%;
    max-width: 100%;
    height: auto;
}

:is(button, select) {
    appearance: none;
    border: none;
    text-transform: none;
}

:is(button, input):disabled {
    cursor: default;
}

.mobile_site_description {
    display: none;
}

input[type="checkbox"],
input[type="radio"] {
    padding: 0
}

input[type="search"] {
    -webkit-appearance: textfield;
    box-sizing: content-box;
    display: block;
    border: 0;
    border-radius: var(--radius-sm);
    transition: background-color 1.5s ease-in-out
}

textarea {
    overflow: auto;
    vertical-align: top
}

input[type="search"]:not(.header input[type="search"]),
.fa-search:not(.header .fa-search)::before {
    display: none
}

#inner-header {
    position: relative;
    width: 100%;
}

#logo {
    position: relative
}

#logo div {
    position: absolute;
}

#main .article-header {
    position: relative;
    padding: 0 1.3em
}

.site-logo {
    position: absolute;
    mix-blend-mode: soft-light
}

.wrap {
    width: 95%;
    margin: 0 auto;
    max-width: 1230px;
}

#sidebar1 {
    max-width: 462px;
    margin: 18px auto 0
}

.header {
    position: relative;
    z-index: 3;
    overflow: clip;
    background: #a1ddff;
    box-shadow: 0 16px 16px -26.5px #000;
}


.header-info {
    position: relative;
    z-index: 3;
    height: clamp(0.62em, 2.3vw, 0.8em);
    background: repeating-linear-gradient(45deg,
            var(--c-white) 0 2.5px,
            var(--c-dark-3) 2.5px 11px);
}

.header .scroll-infinity {
    position: absolute;
    z-index: 3;
    display: flex;
    overflow: hidden;
    pointer-events: none;
    width: 100%;
    left: 0;
    height: 50px;
    contain: paint;
}

.header .scroll-infinity.n1 {
    bottom: var(--scroll-n1-b)
}

.header .scroll-infinity.n2 {
    bottom: var(--scroll-n2-b)
}

.header .scroll-infinity.n3 {
    bottom: var(--scroll-n3-b)
}

.header .scroll-infinity-container {
    display: flex
}

.header .scroll-infinity-item img {
    max-width: 1347px;
    height: 54px;
    margin: 0 -.4px;
    width: 100vw;
}

.subnav {
    position: absolute;
    top: 0;
    width: 100%
}

.subnav .site_description {
    font-weight: 400
}

.subnav .site_description img {
    width: 1.13em;
    margin: 0 .14em .36em 0
}

.subnav form div {
    position: relative
}

.subnav form button {
    position: absolute;
    top: 0;
    background: none;
    font-size: 14px;
    height: 51px;
}

.subnav .contactbutton {
    float: right;
    text-align: center
}

.subnav .contactbutton a i {
    position: relative;
    left: -.23em
}

.subnav .contactbutton a[href^="tel"] i::before {
    content: "\f095"
}

.nav li li span {
    display: none
}

.tropical-island {
    width: 71%;
    left: 51.5%;
    top: 3.7%;
    z-index: 2
}

[target="_blank"]::after {
    position: relative;
    top: .01em;
    padding: 0 .2em;
    font-family: "uicons-regular-rounded";
    font-size: 0.85em;
    content: "\e10a"
}

:is(#main .article footer, .box, .modal-box, .modal-text, .enclosure-decoration, .poppy-layout, .question-layout, .merit-demerit, .gallery-text, .preface, .m-s-b-comment, .summarize) p,
.accordion-main h3 {
    margin: 0
}

.screen-reader-text {
    position: absolute;
    clip-path: inset(50%)
}

:is(.widgettitle, .subnav .contactbutton a, .subnav form input, .nav>li) {
    box-shadow: var(--shadow-soft);
}

.flag {
    width: 5.1%;
    left: 13.7%;
    top: 11.9%;
    transform: rotateX(90deg);
    transform-origin: bottom;
    animation: home-position .7s 2.1s cubic-bezier(.3, .1, .25, 1.8) forwards;
}

#logo .clouds {
    width: 18%
}

#logo .clouds.n1 {
    left: 78.2%;
    top: 19.5%
}

#logo .clouds.n2 {
    left: 86.3%;
    top: 10.5%;
    transform: translateX(-45%);
    animation: home-position 1.6s 1s linear forwards
}

#logo .clouds.n3 {
    left: -2%;
    top: 19.5%
}

#logo .clouds.n4 {
    width: 14.7%;
    left: -2%;
    top: 10.5%;
    transform: translateX(22.3%);
    animation: home-position 1.6s 1s linear forwards
}

.sun {
    width: 13.7%;
    left: 67.3%;
    top: 2%;
    transform: translate3d(0, -43%, 0) rotateZ(0deg);
    animation: bounce-sun 1s 1.3s ease-out forwards;
}

.header-second-son,
.header-third-son {
    width: 100%
}

.header-second-son {
    left: 85%;
    top: 71%
}

.header-third-son {
    top: 71.7%;
    left: 77.5%;
    z-index: 2;
    height: 4vw;
    max-height: 51px
}

[class^="header-"][class*="-son-"] {
    background-repeat: no-repeat;
    background-size: contain;
}

.header-second-son-face,
.header-second-son-smile-face,
.header-third-son-face {
    transform-origin: bottom
}

.header-second-son-right-hand,
.header-third-son-right-hand {
    transform-origin: right
}

.header-second-son-right-hand {
    width: 3.7%;
    left: -2.75%;
    height: 1.7vw;
    max-height: 21.6px;
    margin-top: .3%;
    transform: translate3d(0, 0, 0) rotate(-20deg);
    background-image: url("/wp-content/uploads/elephant-hand-holding-the-thai-flag.svg")
}

.header-second-son-body {
    width: 3.6%;
    left: 0;
    height: 3.9vw;
    max-height: 50px;
    margin-top: 0;
    background-image: url("/wp-content/uploads/elephant-torso.svg")
}

.header-second-son-face,
.header-second-son-smile-face {
    width: 5.8%;
    left: -1%;
    height: 4.4vw;
    max-height: 56px;
    margin-top: -3.2%;
    background-image: url("/wp-content/uploads/elephant-face-1.svg")
}

.header-second-son-left-hand {
    width: 3.7%;
    left: 2.27%;
    height: 3vw;
    max-height: 38.5px;
    margin-top: -1.8%;
    transform: translate3d(-5%, -22%, 0) rotate(76deg);
    background-image: url("/wp-content/uploads/elephant-hand-holding-the-japan-flag.svg");
    transform-origin: left bottom;
}

.header-third-son-body {
    width: 3.2%;
    left: 0;
    height: 3.9vw;
    max-height: 48.5px;
    margin-top: 0;
    background-image: url("/wp-content/uploads/elephant-torso-1.svg")
}

.header-third-son-left-hand {
    width: 1.4%;
    left: 2%;
    height: 1vw;
    max-height: 13px;
    margin-top: .5%;
    background-image: url("/wp-content/uploads/elephant-hand.svg");
    transform-origin: left;
    transform: translate3d(0, 0, 0) rotate(16deg);
}

.header-third-son-face {
    width: 4.6%;
    top: -0.5px;
    left: -1.3%;
    height: 3.3vw;
    max-height: 40.8px;
    margin-top: -2%;
    background-image: url("/wp-content/uploads/elephant-face.svg")
}

.header-second-son-smile-face {
    opacity: 0;
    background-image: url("/wp-content/uploads/smiling-elephant-face.svg")
}

.header-third-son-right-hand {
    width: 1%;
    left: 0.1%;
    height: 1.1vw;
    max-height: 14px;
    transform: translate3d(-23%, -18%, 0) rotate(-10deg);
    background-image: url("/wp-content/uploads/elephant-hand-2.svg")
}

.header-second-son div,
.header-third-son div {
    z-index: 2
}

.welcome {
    width: var(--welcome-w);
    left: var(--welcome-l);
    top: var(--welcome-t)
}

.catchphrase {
    width: var(--catch-w);
    left: var(--catch-l);
    top: var(--catch-t)
}

.site-title {
    position: absolute;
    top: var(--site-title-t);
    left: var(--site-title-l);
    z-index: 9;
    width: var(--site-title-w);
    height: 25%;
    transition: filter 0.25s ease-out;
}

a.site-title img {
    position: absolute;
    height: 5.2vw;
    max-height: 66px;
    transform: rotateY(180deg);
    animation: site-title-anime 1s forwards;
    animation-delay: calc(var(--i) * 0.1s);
    backface-visibility: hidden;
    will-change: transform;
}

a.site-title img.n1 {
    width: 11%;
    left: -.3%;
}

a.site-title img.n2 {
    width: 14.3%;
    left: 14.1%;
}

a.site-title img.n3 {
    width: 6.1%;
    left: 35.2%;
}

a.site-title img.n4 {
    width: 14.7%;
    left: 46.7%;
    max-height: 64px;
}

a.site-title img.n5 {
    width: 7.1%;
    left: 66.3%;
}

a.site-title img.n6 {
    width: 7%;
    left: 80%;
}

a.site-title img:is(.n7, .n8, .n9, .n10, .n11, .n12) {
    margin-top: 17.7%
}

a.site-title img.n7 {
    width: 7.5%;
    left: 24.2%;
}

a.site-title img.n8 {
    width: 7.2%;
    left: 37.9%;
}

a.site-title img.n9 {
    width: 6.8%;
    left: 52.5%;
}

a.site-title img.n10 {
    width: 12.5%;
    left: 65.4%;
}

a.site-title img.n11 {
    width: 7.1%;
    left: 83.9%;
    max-height: 64px;
}

a.site-title img.n12 {
    width: 1.6%;
    left: 98.4%;
}

.seagull {
    offset-path: path("M.39,19.7S21.255,7.52,66.248,10.29C123.565,13.82,131.196,-.79,168.805,.59")
}

.is-active .seagull {
    animation: fly-around-seagull 15s ease-in-out infinite;
}

.seagull.n1 {
    width: 7%;
    left: 62.6%;
    top: 41%;
    animation-delay: 1s
}

.seagull.n2 {
    width: 5%;
    left: 59%;
    top: 48.8%;
    animation-delay: 2.2s
}

.seagull.n3 {
    width: 4%;
    left: 62.5%;
    top: 51.3%;
    animation-delay: 3s
}

/* ==========================================
   ✨ スクロール連動パララックス（iOS安全対策・完全統合版）
========================================== */
@supports (animation-timeline: scroll()) {

    /* 🚀 共通ベース：連動の「タイミング・維持・軸」を全要素で一括統合！ */
    :is(.scroll-infinity-container, .seagull img, .welcome, .catchphrase) {
        animation-fill-mode: forwards;
        animation-timing-function: cubic-bezier(0.7, 0, 1, 1);
        animation-timeline: scroll(root);
    }

    /* 🌊 1. 波のパララックス */
    .scroll-infinity-container {
        animation-range: 0 96vh;
    }

    .scroll-infinity-container.n1 {
        animation-name: parallax-wave-n1;
    }

    .scroll-infinity-container.n2 {
        animation-name: parallax-wave-n2;
    }

    .scroll-infinity-container.n3 {
        animation-name: parallax-wave-n3;
    }

    /* ストッパーハック */
    .scroll-infinity.n2 .scroll-infinity-container.n2:first-child {
        margin-left: max(-100vw, -1347px);
    }

    /* 🕊️ 2. カモメの滑空 */
    .seagull img {
        animation-name: parallax-bird;
        animation-range: 1vh 20vh;
    }

    /* 🖋️ 3. タイトル周りのシネマティック */
    .welcome {
        animation-name: parallax-text-top;
        animation-range: 0 11vh;
    }

    .catchphrase {
        animation-name: parallax-text-btm;
        animation-range: 2.5vh 28.5vh;
    }

    /* 📱 4. スマホ専用レンジ上書き */
    @media (max-width: 767px) {
        .scroll-infinity-container {
            animation-range: 0 45vh;
        }

        .catchphrase {
            animation-range: 2.5vh 21.5vh;
        }
    }

    /* --- 🎬 以下、キーフレーム群（3D強制GPUブースト版） --- */

    @keyframes parallax-wave-n1 {
        to {
            /* X, Y, Z軸。Zを0にして3D化 */
            transform: translate3d(-24%, 0, 0);
        }
    }

    @keyframes parallax-wave-n2 {
        to {
            transform: translate3d(16%, 0, 0);
        }
    }

    @keyframes parallax-wave-n3 {
        to {
            transform: translate3d(-8%, 0, 0);
        }
    }

    @keyframes parallax-bird {
        to {
            /* 20px, -40px をXとYに割り当て、Zを0に */
            transform: translate3d(20px, -40px, 0);
        }
    }

    @keyframes parallax-text-top {
        0% {
            transform: translate3d(0, 0, 0);
        }

        35% {
            filter: blur(0px);
            opacity: 1;
        }

        100% {
            transform: translate3d(-18%, 0, 0);
            filter: blur(3px);
            opacity: 0;
        }
    }

    @keyframes parallax-text-btm {
        0% {
            transform: translate3d(0, 0, 0);
        }

        60% {
            filter: blur(0px);
            opacity: 1;
        }

        100% {
            transform: translate3d(18%, 0, 0);
            filter: blur(3px);
            opacity: 0;
        }
    }
}

/* /@supports (animation-timeline: scroll()) 終了 */


.fi-tr-land-layer-location::before {
    content: "\eae2"
}

.fi-tr-tour-guide-people::before {
    content: "\f2e9"
}

.fi-tr-hotel::before {
    content: "\e9ef"
}

.fi-tr-car-bus::before {
    content: "\e352"
}

.fi-tr-plate-utensils::before {
    content: "\e901"
}

.fi-tr-user-robot::before {
    content: "\f3eb"
}

.fi-tr-face-disguise::before {
    content: "\e740"
}

.fi-tr-angle-double-small-right::before {
    content: "\f376"
}

.fi-tr-land-layer-location-2::before {
    content: "\e001"
}

.fi-tr-envelope::before {
    content: "\e6f1"
}

.fi-tr-search::before {
    content: "\f015"
}

.fi-tr-time::before {
    content: "\edaf";
}

.fi-tr-caret-down::before {
    content: "\e009"
}

.fi-tr-tour-guide-people-2::before {
    content: "\e003"
}

.fi-tr-hotel-2::before {
    content: "\e004"
}

.fi-tr-car-bus-2::before {
    content: "\e005"
}

.fi-tr-plate-utensils-2::before {
    content: "\e006"
}

.fi-tr-user-robot-2::before {
    content: "\e007"
}

.fi-tr-face-disguise-2::before {
    content: "\e008"
}

.fi-tr-wishlist-star::before {
    content: "\e010"
}

.fi-tr-web-test::before {
    content: "\f490"
}

.fi-tr-galaxy-star::before {
    content: "\e88d"
}

.fi-tr-zoom-in::before {
    content: "\f4fe";
    padding-right: 3.5px
}

.fi-tr-mobile-notch::before {
    content: "\e900";
}

.modal-box.flexibility {
    opacity: 0
}

#my-toc-container .widgettitle {
    display: none
}

.m-all {
    position: relative;
    max-width: 868px;
    margin: 0 auto
}

.vcard .date {
    position: relative
}

.subnav .contactbutton a {
    display: block
}

.subnav form input {
    font-family: inherit;
    font-size: 18px;
    font-weight: 300;
    background-color: var(--c-glass);
    height: 16px;
}

.subnav form input::placeholder {
    font-size: clamp(11px, .88vw, 13px);
}

/* サイト内検索のプレースホルダー（入力前の文字）の色を変更 */
#searchform input#s::placeholder,
form#searchform .fi-tr-search {
    color: var(--c-dark-4);
}

:is(h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5) {
    text-rendering: optimizeLegibility;
    font-weight: 500;
    letter-spacing: var(--tracking-base)
}

:is(h1, .h1) {
    line-height: 1.37
}

:is(h2, .h2) {
    line-height: 1.28
}

/* =========================================================
   83. Page Top
========================================================= */
#page-top {
    position: fixed;
    right: max(5%, calc(50% - 615px));
    bottom: 0;
    z-index: 9;
    width: 112px;
    height: 112px;
    margin-bottom: 16px;
    border-radius: 77px;
    color: var(--c-dark-3);
    transform: translateY(150px);
    transition: transform 0.4s cubic-bezier(0.27, 0.9, 0.64, 1);
    cursor: pointer;
    user-select: none;
    transform-origin: bottom;
}

#index-btn {
    position: fixed;
    right: max(calc(5% + 26px), calc(50% - 615px + 26px));
    bottom: 152px;
    z-index: 1000001;
    width: 62px;
    height: 62px;
    border-radius: 12px;
    color: var(--c-dark-3);
    text-align: center;
    transform: translateY(300px);
    transition: transform 0.6s cubic-bezier(0.24, 0.65, 1, 1);
    display: grid;
    align-content: center;
    gap: 0.22em;
}

.ultra-glass-layer {
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    overflow: hidden;
    pointer-events: none;
    background-color: rgba(255, 255, 255, 0.02);
    -webkit-backdrop-filter: blur(33px) saturate(250%) brightness(115%) contrast(105%);
    backdrop-filter: blur(33px) saturate(250%) brightness(115%) contrast(105%);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-top-color: rgba(255, 255, 255, 0.45);
    border-left-color: rgba(255, 255, 255, 0.35);
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.8),
        inset 0 -1px 2px rgba(255, 255, 255, 0.1),
        inset 1px 0 2px rgba(255, 255, 255, 0.2),
        0 8px 24px -4px rgba(0, 15, 30, 0.15),
        0 16px 40px -8px rgba(0, 15, 30, 0.2);
}

.ultra-glass-layer::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.15'/%3E%3C/svg%3E");
    mix-blend-mode: soft-light;
    opacity: 0.85;
}

.ultra-glass-layer::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(115deg,
            rgba(255, 255, 255, 0.5) 0%,
            rgba(255, 255, 255, 0.05) 25%,
            rgba(255, 255, 255, 0) 50%,
            rgba(255, 255, 255, 0.02) 75%,
            rgba(255, 255, 255, 0.2) 100%);
    mix-blend-mode: color-dodge;
}

.buhi-n {
    opacity: 0;
    letter-spacing: 0.1px;
}

#page-top span {
    position: absolute;
    text-align: center;
    width: 100%;
    font-weight: 500;
}

.top,
.buhi-n {
    top: 8.5%;
    transition: opacity 0.02s 1.1s;
}

html:not(.mobile) #page-top:hover .top,
.mobile #page-top:active .top {
    opacity: 0;
    transition-delay: 0s;
}

html:not(.mobile) #page-top:hover .buhi-n,
.mobile #page-top:active .buhi-n {
    opacity: 1;
    transition-delay: 0s;
}

#page-top:hover::before,
#page-top:active::before {
    animation: jiggle 1.1s ease-in 3;
}

.is-flying {
    animation: pegasus-takeoff 1.6s cubic-bezier(0.12, 0.53, 0.55, 0.95);
    pointer-events: none;
}

#page-top:focus-visible,
.js-modal-open:focus-visible {
    outline: 2px solid #6ac6ff;
    outline-offset: 2px
}

#page-top a {
    color: #3b3838;
}

#page-top::before {
    position: absolute;
    top: 43.5px;
    left: 31.5px;
    width: 58px;
    height: 58px;
    content: "";
    background: url("/wp-content/uploads/pegasus-2.svg") no-repeat;
    filter: drop-shadow(0 1.5px 0 #9ea2a5);
}

/* =========================================================
アーカイブ専用    基本セット↑（共通）
========================================================= */

/* =========================================================
   【修正後】 ウィジェット非表示の超圧縮
========================================================= */
:is(.home.paged, .category, .search) :is(#custom_html-8, #custom_html-9, #custom_html-11, #custom_html-12, #custom_html-13, #custom_html-15),
.home #custom_html-13 {
    display: none;
}

.home:not(.paged) .carousel .item {
    opacity: 0;
}

.home:not(.paged) .animation .carousel .item {
    opacity: 1;
}

/* =========================================================
   検索・アーカイブ周りのベース記述
========================================================= */
:is(.category, .paged, .search) .header .scroll-infinity-container {
    animation: none;
}

:is(.category, .paged, .search) #logo div,
:is(.category, .paged, .search) #logo a img {
    animation: none !important;
    transform: unset !important;
}

:is(.category, .paged) #logo .header-second-son-left-hand {
    transform: translate(-3%, -4%) rotate(33deg);
}

:is(.category, .paged) #logo .header-second-son-right-hand {
    transform: rotate(13deg);
}

:is(.home, .category) .eyecatch {
    float: left;
    overflow: hidden;
    border-radius: 20px;
    width: 42%;
    box-shadow: var(--shadow-soft);
}

:is(.home, .category) .eyecatch img {
    aspect-ratio: 1 / 0.72;
    object-fit: cover;
    user-select: none;
}

.home.paged .top-post-list {
    margin-top: 41px;
}

.top-post-list:before {
    content: "";
    border-radius: 1em 1em 0 0;
    position: absolute;
    padding: 2.3% 0;
    margin-top: -4.6%;
    width: 100%;
    background: var(--c-bg-main);
}

.post-list a {
    transition: transform 0.38s, border-radius 0.38s;
    padding: clamp(13px, 1.3vw + 8px, 18px) clamp(13px, 2.5vw + 3px, 30px);
    background: var(--c-bg-main);
    border-top: solid var(--c-bg) 0.5px;
    pointer-events: none;
    display: flex;
    align-items: flex-start;
}

.post-list.animation a {
    animation: pointer-events-on 0s 0.32s forwards;
}

.post-list a:hover {
    transform: translateX(3px);
    border-radius: 7px;
}

.post-list .description p {
    font-size: clamp(13px, 1.6vw, 15.2px);
    color: var(--c-text);
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    margin: 0;
}

.top-post-list .entry-title {
    font-size: clamp(15.8px, 1.15vw + 10.3px, 21.8px);
    color: var(--c-text);
    line-height: 1.5;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    margin: 8.5px 0;
}

.top-post-list .vcard {
    margin: -1em 0 0 0;
    padding-top: 1em;
    display: flex;
    align-items: center;
}

.top-post-list .time__date:before {
    margin-right: 0.25em;
    position: relative;
    font-size: 0.86em;
}

.top-post-list .undo.time__date:before {
    font-size: 0.91em;
    bottom: -0.06em;
}

.time__date::before {
    font-family: uicons-thin-rounded;
    content: "\e002"
}

.top-post-list a:hover .cat-name {
    transform: translateX(9%);
}

.top-post-list .vcard .date {
    color: var(--c-text);
    font-size: clamp(13.6px, 2.5vw, 18px);
    margin-right: clamp(0.5em, 2.3vw, 1em);
    display: flex;
    align-items: center;
    line-height: 1;
}

.top-post-list .cat-name {
    font-size: clamp(12.3px, 2.05vw, 16.4px);
    border-radius: 1.4em 0.5em;
    position: relative;
    background: var(--c-white);
    transition: transform 0.66s;
    box-shadow: var(--shadow-soft-2);
    opacity: 0;
    font-weight: 400;
    line-height: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 0.85em;
    min-width: 5.75em;
    height: 2.5em;
    gap: 0.2em;
}

.top-post-list .cat-hotel,
.top-post-list .cat-gourmet {
    letter-spacing: 0.1px;
}

.top-post-list .cat-name::before {
    position: relative;
    font-family: 'uicons-thin-rounded';
    top: 0.5px;
}

.top-post-list .cat-tourism::before {
    content: "\e001";
}

.top-post-list .cat-japanese-tour::before {
    content: "\e003";
}

.top-post-list .cat-hotel::before {
    content: "\e004";
}

.top-post-list .cat-transportation::before {
    content: "\e005";
}

.top-post-list .cat-gourmet::before {
    content: "\e006";
}

.top-post-list .cat-web-production::before {
    content: "\e007";
}

.top-post-list .cat-uncategorized::before {
    content: "\e008";
}

.pagination li,
.page-links li {
    display: inline-block;
    margin: 0 4px;
}

.pagination a,
.pagination span {
    color: var(--c-dark-3);
    border-radius: 4px;
    box-shadow: 0 6px 16px -8.5px #ffffffb0, 0 -6px 16px -8.5px #00000030;
    background: var(--c-white);
    display: flex;
    width: 48px;
    min-height: 45px;
    align-items: center;
    justify-content: center;
    transition: color 0.2s, background-color 0.2s;
}

.pagination .current,
.pagination a:hover {
    background: #62c2ff;
    color: var(--c-white);
}

.pagination {
    border-radius: 0 0 1em 1em;
    text-align: center;
    padding: 1em;
    background: var(--c-bg-main);
    border-top: solid var(--c-bg) 0.5px;
    font-weight: 400;
}

.page-numbers:before {
    font-family: 'uicons-thin-rounded';
    font-size: 18.5px;
    top: 0.08em;
    position: relative;
}

.page-numbers.prev:before {
    content: "\e091";
}

.page-numbers.next:before {
    content: "\e092";
}

.mobile .pagination a {
    transition: 0s;
}

.archivettl span {
    display: flex;
    justify-content: center;
    position: relative;
    padding: 0 12px;
    height: 2em;
}

.archivettl span:before {
    content: "";
    position: absolute;
    width: 72px;
    height: 10px;
    top: 1.5em;
    background: url("/wp-content/uploads/wavy-line.svg") no-repeat;
}

.category .archivettl span:before {
    top: 1.6em;
}

.archivettl h1,
.search-no-results h1 {
    margin: 0 0 1.2em;
    font-size: clamp(1.33em, 3.7vw, 1.52em);
    text-align: center;
}

.read-more {
    position: relative;
    top: -2.5px;
    left: 1.4%;
    font-size: calc(2.1vw + 11.5px);
    color: #9ea2a5;
    font-weight: 500;
    letter-spacing: 0.3px;
}

.readmore {
    margin: 15px 0 1.2em;
    text-align: right;
    position: relative;
    z-index: 2;
}

.readmore a {
    display: inline-block;
    padding: 0.65em 1em 0.75em 1.3em;
}

.readmore a:after {
    font-family: 'uicons-thin-rounded';
    content: "\e08b";
    top: 4px;
    position: relative;
    padding-left: 2.5px;
}

.search .readmore a {
    border: 0;
    box-shadow: var(--shadow-soft);
    color: white;
    border-radius: 5.5px;
    background: #7fd1ff;
    transition: color 0.4s ease-in-out;
}

.search .readmore a:hover {
    color: inherit;
    transition: color 0.2s cubic-bezier(0.25, 1, 0.5, 1);
}

.mobile .search .readmore a:hover {
    transition: color 0s;
}

.search-no-results .article-header {
    text-align: center;
}

.search .cat-list ul li a {
    color: #0b213e;
}

.search .cat-name {
    padding: 0.25em 0.53em;
    border-radius: 5px;
    background: #7fd1ff;
    font-size: clamp(15px, 2.4vw, 19px);
    min-width: 3.8em;
    display: inline-block;
    box-shadow: var(--shadow-soft);
    color: white;
}

.search .entry-content p {
    margin: 0;
}

.search .cat-list.cf {
    display: none;
}

.search .article-header .time__date.undo:before {
    font-size: 0.99em;
}

.search .article figure {
    margin-bottom: 1em;
}

.search figure.eyecatch a {
    transition: opacity 0.3s 0.03s ease-out;
}

.search figure.eyecatch a:hover {
    opacity: 0.8;
}

.search .vcard {
    text-align: center;
    margin: 1.5em 0 0.6em;
}

.search .vcard .date {
    position: absolute;
    top: -9px;
    left: 50px;
    font-size: 19.7px;
}

.search #main .article {
    margin-bottom: 18px;
    background: white;
}

.entry-content .searchform button {
    background: none;
    border: none;
    position: absolute;
    top: 12px;
    right: 16px;
    padding-right: 0;
}

.animation .cat-name {
    animation: fade-up-jump 0.3s cubic-bezier(0.15, 0.16, 0.14, 1.73);
}

.taxonomy-description {
    position: absolute;
    margin: -4.6em 0 0 1em;
    font-size: 0.9em;
}

.taxonomy-description p {
    padding: 5px 8.5px;
    border-radius: 5.5px;
    position: relative;
    z-index: 1;
    box-shadow: 0 -6px 16px -12.5px #707070;
    background: white;
    min-width: 4.6em;
    text-align: center;
    opacity: 0;
    animation: fade-up-jump 0.3s 0.8s cubic-bezier(0.15, 0.16, 0.14, 1.73) forwards;
    font-weight: 400;
}

.taxonomy-description p:before {
    content: "";
    background: inherit;
    position: absolute;
    left: 1.3em;
    bottom: -0.3em;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
}

.error404 h1,
.error404 .entry-content p {
    text-align: center;
}

.error404 h1 {
    margin-top: 1em;
}

.top-post-list .entry-content {
    width: 55.8%;
    flex-grow: 1;
    padding: 0 0 0 clamp(9px, 1.75vw + 2px, 17px);
}

[class^="fi-tr-"],
[class*=" fi-tr-"] {
    display: inline-block;
    font-family: "uicons-thin-rounded";
    font-style: normal;
}

.widgettitle {
    margin: 30px 0 15px;
    padding: calc(.5vw + 21px);
    color: var(--c-white);
    font-size: clamp(21.3px, 4.4vw, 27px);
    font-weight: 500;
    letter-spacing: var(--tracking-base);
    border-radius: var(--radius-widget);
    background: url("/wp-content/uploads/creative-decoration-7.svg") 75% 100%/cover no-repeat;
}

.widget li a::after {
    color: var(--c-accent)
}

.profile-card {
    border-radius: 1em 1em 3em 1em;
    text-align: center;
    overflow: hidden;
}

.fi-tr-marker::before {
    content: "\ebce"
}

.fi-tr-angle-double-small-down::before {
    content: "\f377"
}

.profile-card .cover-photo span {
    position: absolute;
    color: var(--c-white);
    font-size: 16px;
    letter-spacing: var(--tracking-base)
}

.profile-card.ver-1 .cover-photo span {
    top: 12px;
    left: 16px;
}

.profile-card figure {
    position: relative;
    z-index: 1;
}

.site-operator,
.kato-san .background {
    position: absolute;
    width: 33%;
    max-width: 130px;
    margin: calc(-29% + 2px) 0 0 -45.6%;
    border-radius: 50%;
}

.site-operator {
    border: solid 5px #9d9d9d1f;
    box-shadow: 0 8px 24px -4px rgba(0, 15, 30, 0.15), 0 16px 40px -8px rgba(0, 15, 30, 0.2);
}

.kato-san .background {
    z-index: -1;
    backdrop-filter: blur(10px);
    filter: brightness(1.23) saturate(1.2);
}

.operator-name {
    position: relative;
    font-weight: 600;
    letter-spacing: var(--tracking-base);
    font-size: clamp(1.32em, 5.2vw, 1.45em);
    height: 1.9em;
    display: flex;
    align-items: center;
    margin: -1.89em 0 0;
    justify-content: center;
    gap: 0.2em;
}

.ver-1 .operator-name {
    padding: 0 8px 0 7em;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    filter: brightness(1.4) saturate(1.2);
    background-size: 4px 4px;
    background-image: radial-gradient(rgba(0, 0, 0, 0) 1px, rgb(53 63 77 / 20%) 1px);
    color: rgba(255, 255, 255, 0.59);
    background-color: rgb(200 200 200 / 0.15);
}

.operator-name::before {
    width: 1.1em;
    height: 0.8em;
    content: "";
    background: url("/wp-content/uploads/creative-japanese-flag.svg") no-repeat;
    position: relative;
}

.introduction {
    margin: 0.5em 0;
    padding: 0 1em;
    text-align: justify;
    font-size: clamp(1em, 4.1vw, 1.13em);
    line-height: 1.86;
    font-weight: 400;
}

.dot {
    position: relative;
    display: inline-flex;
    justify-content: center
}

.dot::before {
    position: absolute;
    top: -.06em;
    width: .2em;
    height: .2em;
    content: "";
    border-radius: 10px;
    background: var(--c-text)
}

.profile-card .dot::before {
    top: .08em
}

.letter-decoration {
    display: block;
    text-align: center;
    font-size: clamp(18.2px, 4.4vw, 21px);
}

.button-3d {
    position: relative;
    z-index: 1;
    display: inline-flex;
    perspective: 900px;
    margin: 0 auto
}

.button-3d-square {
    position: relative;
    transform: rotateX(45deg);
    transform-style: preserve-3d;
    margin-bottom: 1em;
    font-size: clamp(14px, 3.6vw, 17.2px);
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-white);
    border-radius: 5px 5px 2px 2px;
    background: var(--c-accent);
    gap: 0.06em;
    padding: 0 0.85em 0 1.2em;
    height: 3.8em;
    transition: transform 1.2s linear 0.1s, border-radius 1s linear 0.1s;
}

.fi-tr-running::before {
    content: "\efbd";
}

.button-3d-square:hover {
    transform: rotateX(0);
    border-radius: 5px;
    transition: .35s transform cubic-bezier(0, 0, .48, 1), border-radius 0.3s cubic-bezier(0, 0, .48, 1);
}

.button-3d-square::after {
    position: absolute;
    top: 97%;
    left: 0;
    width: 100%;
    height: 30%;
    content: "";
    transform: rotateX(-90deg);
    transform-origin: 0 0;
    border-radius: 0 0 4px 4px;
    background: var(--c-dark-3);
}

.button-3d-square .fi-tr-angle-double-small-down {
    font-size: 1.1em;
    width: 1.1em;
    height: 22.5px;
}

.time__date.undo::before {
    content: "\edaf";
}

.fade-up-jump,
.fade-down {
    opacity: 0
}

.paged .header .animations div {
    animation: none !important
}

.post-card {
    position: relative;
}

.real-link-btn {
    display: inline-block;
    padding: 8px 24px;
    background-color: #333;
    color: var(--c-white);
    font-size: 0.9rem;
    border-radius: 25px;
    text-decoration: none;
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.real-link-btn:hover {
    background-color: #0073aa;
    transform: translateY(-2px);
}

.post-card:hover .eyecatch img {
    transform: scale(1.03);
    transition: transform 0.4s ease;
}

.widget_categories li.cat-item>a {
    position: relative;
    display: block;
    padding: 0.6em 3em 0.6em 2.5em;
    color: var(--c-text);
    font-size: 17px;
    font-weight: 400;
    line-height: 1.4;
    transition: .12s color ease-out;
    background-image: linear-gradient(to right, transparent 7px, #0000002e 7px, #0000002e calc(100% - 7px), transparent calc(100% - 7px));
    background-size: 100% 0.5px;
    background-position: bottom;
    background-repeat: no-repeat;
}

.widget_categories li a:not(.widget_categories li li a) {
    font-weight: 500
}

.widget_categories li.cat-item:last-child>a {
    background-image: none;
}

.widget_categories li.cat-item>a::before {
    content: "";
    position: absolute;
    left: 0.5em;
    top: 50%;
    transform: translateY(-50%);
    width: 25px;
    height: 25px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    filter: drop-shadow(0 3px 2px #ffffff0f) drop-shadow(0 -3px 2px #0000000f);
}

.widget_categories ul.children li.cat-item>a::before {
    content: "\ebce";
    font-family: "uicons-thin-rounded";
    width: auto;
    height: auto;
    font-size: 16px;
    left: 1.5em;
}

.widget_categories .cat-item-286>a::before {
    background-image: url("/wp-content/uploads/camera-icon.svg");
}

.widget_categories .cat-item-310>a::before {
    background-image: url("/wp-content/uploads/tour-guide-icon.svg");
}

.widget_categories .cat-item-313>a::before {
    background-image: url("/wp-content/uploads/hotel-icon.svg");
}

.widget_categories .cat-item-322>a::before {
    background-image: url("/wp-content/uploads/tuk-tuk-icon.svg");
}

.widget_categories .cat-item-333>a::before {
    background-image: url("/wp-content/uploads/cooking-icon.svg");
}

.widget_categories .cat-item-342>a::before {
    background-image: url("/wp-content/uploads/ux-icon.svg");
}

.widget_categories .cat-item-352>a::before {
    background-image: url("/wp-content/uploads/rocket-icon.svg");
}

.widget_categories li.cat-item>a::after {
    content: "\e092";
    font-family: "uicons-thin-rounded";
    position: absolute;
    right: 0.6em;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    transition: .18s transform ease-out;
}

.widget_categories li.cat-item>a:hover::after {
    transform: translateY(-50%) translateX(4px);
}

.widget_categories ul.children {
    padding-left: 0;
}

.widget_categories ul.children li.cat-item>a {
    font-size: 15px;
    padding: 0.6em 3em 0.6em 3.2em;
    background-image: linear-gradient(to right, transparent 7px, #00000017 7px, #00000017 calc(100% - 7px), transparent calc(100% - 7px));
    background-size: 100% 0.5px;
    background-position: bottom;
    background-repeat: no-repeat;
}

/* 🚀 ターゲット：スクロールバーを殺し、計器を宿す器 */
.is-custom-scroll {
    position: relative !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
    /* Firefox */
    -ms-overflow-style: none !important;
    /* IE/Edge */
    -webkit-overflow-scrolling: touch;
    /* iPhone慣性スクロール死守 */
}

.is-custom-scroll::-webkit-scrollbar {
    display: none !important;
    /* Chrome/Safari */
}

/* 🚀 垂直計器：レール */
.fs-rail-v {
    position: absolute;
    top: 4px;
    right: 2px;
    bottom: 4px;
    width: 3px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    pointer-events: none;
    z-index: 1000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* ラッパーが溢れを検知した時だけ計器を視覚化する */
.fs-stealth-wrapper.has-overflow>.fs-rail-v {
    opacity: 1;
}

/* 🚀 視認性維持：3px幅ならbox-shadowも最小限に（低負荷版） */
.fs-thumb-v {
    width: 100%;
    background-color: #00f3c280;
    border-radius: 10px;
    box-shadow: 0 0 8px rgba(0, 255, 204, 0.6);
    transform: translate3d(0, 0, 0);
    transition: background-color 0.12s 1.2s ease-in-out;
}

/* 🚀 規律：スクロール中のみGPU層を予約 */
.fs-thumb-v.is-scrolling {
    background-color: #00ffcc;
    transition: background-color 0.1s;
    will-change: transform;
}

/* このタイミングだけ、つまみを光らせても良いかも */

@media (min-width:768px) {
    :root {
        --scroll-n1-b: .5%;
        --scroll-n2-b: 2.5%;
        --scroll-n3-b: 4.5%;
    }

    #fortress-footer-gate {
        min-height: 994px;
    }

    #logo {
        aspect-ratio: 100 / 47;
    }

    .subnav form input {
        width: 107%;
        padding: 13.5px 17% 13.5px 6%;
        backdrop-filter: blur(8px)
    }

    .subnav form div {
        left: max(-112.5px, -6.3vw - 31px);
        z-index: 2;
        float: right;
        width: calc(15vw + 80px);
        max-width: 275px;
    }

    .subnav form button {
        right: -26.8%
    }

    .contactbutton {
        width: 20.5%;
        max-width: 200px;
        margin-right: 20px;
    }

    .subnav .contactbutton a {
        position: relative;
        z-index: 2;
        padding: 1em;
        color: var(--c-dark-4);
        letter-spacing: .45px;
        background-color: var(--c-glass);
        backdrop-filter: blur(8px);
        border-radius: var(--radius-sm);
        transition: var(--tr-bg)
    }

    :is(.subnav .contactbutton a, .site_description) {
        font-size: clamp(12px, calc(.78vw + 6px), 16.8px);
    }

    .site_description {
        margin: 1em 0 0 23px;
    }

    .header.headercenter #g_nav,
    .header.headercenter #g_nav>.nav {
        text-align: center
    }

    .header.headercenter #g_nav>.nav {
        display: inline-block
    }

    nav#g_nav {
        position: absolute;
        left: 50%;
        z-index: 6;
        width: max-content;
        margin-top: clamp(-118.5px, -8.367vw - 18.75px, -83px);
        font-weight: 400;
        text-align: center;
        transform: translateX(-50%)
    }

    .nav>li>a i::before {
        position: relative;
        font-size: calc(280% - 18px);
        left: 12%;
        top: 0.1em;
    }

    .nav>li>a .fi-tr-angle-double-small-down {
        display: none;
    }

    .nav>li>a .fi-tr-hotel::before {
        left: 2%;
    }

    .nav>li>a .fi-tr-face-disguise::before {
        left: 14%;
        top: 0.15em;
    }

    .nav li a span.category-en {
        position: absolute;
        font-size: clamp(8.5px, 1.1vw, 13px);
        top: 0.63em;
        letter-spacing: 0.6px;
    }

    span.category-ja {
        position: absolute;
        bottom: 0.16em;
    }

    .mean-nav {
        display: none;
    }

    .nav>li {
        display: inline-flex;
        justify-content: center;
        width: 12vw;
        max-width: 140px;
        margin: 0 min(10px, 1.3vw - 8px);
        font-size: clamp(12.3px, 1.5vw, 16.2px);
        background: var(--c-white);
        border-radius: 2.7em 1em 2.7em 1em;
        position: relative;
        aspect-ratio: 100 / 57.3;
    }

    .nav>li>a {
        color: var(--c-text);
        display: flex;
        justify-content: center;
        width: 100%;
        position: absolute;
        letter-spacing: 0.4px;
        height: 100%;
        bottom: 0;
    }

    ::-webkit-scrollbar-thumb,
    ::-webkit-scrollbar-thumb:hover {
        background: #62c2ff;
        border-radius: 12px
    }

    .article ::-webkit-scrollbar-thumb,
    .article ::-webkit-scrollbar-thumb:hover {
        background: #ededed
    }

    ::-webkit-scrollbar {
        width: 9px;
        height: 9px;
        background: var(--c-white);
        border-radius: 12px
    }

    :is(.article, #sidebar1) ::-webkit-scrollbar {
        background: transparent
    }

    .nav li ul.sub-menu li a {
        display: flex;
        align-items: center;
        padding: clamp(1.15em, 1.3vw, 1.28em) 0.95em;
        line-height: 1.4;
        text-align: left;
        color: var(--c-white);
        border-bottom: .5px #00000017 solid;
        font-size: clamp(11.6px, (1.3vw), 13.8px);
    }

    .nav li ul.sub-menu {
        width: clamp(151px, calc(13.5vw + 43px), 220px);
        opacity: 0;
        background-color: var(--c-menu-bg);
        border-radius: var(--radius-md);
        /* 👇 修正：閉じる時の設定（透明になってからhidden） */
        transition: opacity 0.15s ease-in-out, visibility 0s linear 0.15s;
        top: calc(100% + clamp(15px, 6vw - 48px, 24px));
        position: absolute;
        visibility: hidden;
        display: block;
        box-shadow: 0 8px 24px -4px rgba(0, 15, 30, 0.15), 0 16px 40px -8px rgba(0, 15, 30, 0.2);
    }
}

/* =========================================================
   レスポンシブ：デスクトップ (>=1270px)
========================================================= */
@media (min-width:1270px) {
    #inner-content {
        display: flex;
        min-height: 650px;
    }

    #inner-content>#main {
        margin-left: 0
    }

    #inner-header {
        height: 578px;
    }

    .operator-name {
        font-size: clamp(1em, 1.4vw, 1.1em);
    }

    .widgettitle {
        padding: 1.07em .75em;
        font-size: 20px
    }

    #sidebar1 {
        width: 332px;
        margin: -30px 0 0 30px
    }

    .introduction {
        font-size: 0.92em;
        line-height: 1.76
    }

    .letter-decoration {
        font-size: 16.5px
    }

    .button-3d-square {
        font-size: 13px
    }

    .search #sidebar1 {
        margin: 83px 0 0 30px;
    }

    .category #sidebar1 {
        margin: 124px 0 0 30px;
    }

    .search #content {
        overflow: visible;
    }

    .error404 h1,
    .error404 .entry-content p {
        width: 144%;
    }
}

@media (max-width:767px) {
    :root {
        --inner-header-pt: calc(10vw + 39px);
        --scroll-n1-b: calc(2vw - 16.5px);
        --scroll-n2-b: calc(2vw - 12.5px);
        --scroll-n3-b: calc(2vw - 8px);
        --welcome-w: 16%;
        --welcome-l: 21.9%;
        --welcome-t: calc(6vw - 30px);
        --site-title-w: 42%;
        --site-title-l: 10.7%;
        --site-title-t: 23.5%;
        /*--site-title-h: 43%;*/
        --catch-w: 37%;
        --catch-l: 10%;
        --catch-t: calc(24vw - 15px);
        --ham-line-w-min: 21%;
        --ham-line-w-max: 55%;
        --ham-line-shift: 14px;
    }

    body {
        font-size: 16.6px;
        line-height: 1.63;
    }

    #inner-header {
        padding-top: calc(2vw + 66px);
        min-height: calc(35vw + 78px);
    }

    #fortress-footer-gate {
        min-height: 982px;
    }

    .subnav :is(.site_description, .linklist) {
        display: none
    }

    .subnav .contactbutton a {
        box-shadow: none !important;
    }

    .mean-bar {
        float: left;
        width: 100%
    }

    a.meanmenu-reveal {
        width: 19%;
        padding-top: 14px;
        right: 1px;
        position: absolute;
        z-index: 4;
    }

    .meanmenu-reveal span {
        position: relative;
        left: .6px;
        display: block;
        width: 55%;
        height: 2.5px;
        margin-top: 9.5px;
        margin-inline: auto;
        background: var(--c-text);
        border-radius: 20px;
        will-change: transform, opacity
    }

    nav#g_nav {
        display: none;
    }

    .subnav {
        width: 89%
    }

    #logo {
        aspect-ratio: 100 / 33;
    }

    .tropical-island {
        left: 46.5%;
        top: -32.5%
    }

    .meanmenu-reveal::after {
        display: block;
        content: "MENU";
        text-align: center;
        font-size: clamp(8px, 1.6vw, 11.2px);
        font-weight: 500;
        bottom: -8.5px;
        position: relative;
        color: var(--c-text);
    }

    .contactbutton a {
        position: relative;
        z-index: 2;
        margin-right: 6.7vw;
        color: var(--c-text) !important;
        font-size: calc(1vw + 8.5px);
        font-weight: 500;
        line-height: 66px;
        transition: opacity var(--tr-fast)
    }

    .mobile_site_description {
        position: relative;
        top: -8px;
        z-index: 2;
        display: block;
        margin: 0 0 0 5%;
        font-size: clamp(12px, 2.05vw, 15.5px);
        line-height: 1;
    }

    #main .article-header {
        padding: 0 1em
    }

    .flag {
        left: 7%;
        top: calc(2.7vw - 79.5px);
        width: 6.5%
    }

    .sun {
        left: 70.5%;
        top: calc(-1vw - 83px);
    }

    #logo .clouds.n1 {
        left: 80%;
    }

    #logo .clouds.n2 {
        left: 85.6%;
        transform: translateX(-30%)
    }

    #logo .clouds.n3 {
        left: -9%;
    }

    #logo .clouds.n4 {
        left: -9.1%;
    }

    #logo .clouds:is(.n1, .n3) {
        top: calc(4vw - 68px);
    }

    #logo .clouds:is(.n2, .n4) {
        top: calc(-1vw - 69px);
    }

    .header-second-son {
        left: 76.5%;
        top: 62.5%;
    }

    .header-second-son-right-hand {
        left: -3.5%;
        width: 5%;
        height: 2.5vw;
        margin-top: 0.3%
    }

    .header-second-son-body {
        width: 5%;
        height: 5.6vw
    }

    .header-second-son-face,
    .header-second-son-smile-face {
        left: -1.2%;
        width: 7.8%;
        height: 6vw;
        margin-top: -4.3%
    }

    .header-second-son-left-hand {
        left: 3.3%;
        width: 4.7%;
        height: 3.8vw;
        margin-top: -2.3%
    }

    .header-third-son {
        left: 65.8%;
        top: 62.5%;
        height: 6.4vw
    }

    .header-third-son-body {
        width: 4.8%;
        height: 6vw
    }

    .header-third-son-left-hand {
        left: 2.9%;
        width: 2.2%;
        height: 1.7vw;
    }

    .header-third-son-face {
        left: -1.8%;
        width: 6.7%;
        height: 4.8vw;
        margin-top: -2.9%
    }

    .header-third-son-right-hand {
        left: .3%;
        width: 1.5%;
        height: 2vw
    }

    .site-title {
        height: 13vw
    }

    .seagull {
        offset-path: path("M.3,19.7S16.35,7.52,50.96,10.29C95.05,13.82,100.92-.79,129.85.59")
    }

    .seagull.n1 {
        left: 56.2%;
        top: calc(10vw - 33px);
    }

    .seagull.n2 {
        left: 52.6%;
        top: calc(12vw - 27px);
    }

    .seagull.n3 {
        left: 55.9%;
        top: calc(12vw - 20px);
    }

    .subnav form input {
        width: calc(68% - 58px);
        padding: 14px 9% 14px 3.5%;
        text-align: center;
    }

    .fi-tr-envelope:before {
        font-weight: bold
    }

    .subnav form div {
        margin: 20px 0 0 4.3%;
        z-index: 1
    }

    .subnav form button {
        top: -3px;
        right: calc(17vw + 63px)
    }

    #content {
        margin-top: -0.5px;
    }

    .home.paged .top-post-list {
        margin-top: calc(13.8% + 20px);
    }

    :is(.paged, .category) .p-panel-hero-scrolldown {
        left: 94%;
    }

    .search .vcard .date {
        left: 42px;
        font-size: 18.5px;
    }

    .search-no-results .archivettl h1,
    .error404 h1.tc,
    .error404 .search h2 {
        font-size: 1em;
    }

    .top-post-list .entry-title {
        margin: 4.5px 0;
    }

    .entry-content {
        padding: 0 1.2em;
    }
}

@media (max-width:480px) {
    :root {
        --mean-nav-mt: 71px;
        --welcome-w: 17.5%;
        --welcome-l: 22.2%;
        --welcome-t: calc(5vw - 28px);
        --site-title-w: 44.5%;
        --site-title-t: 22%;
        --catch-l: 11.3%;
        --catch-t: calc(26vw - 27px);
        --ham-line-w-min: 26%;
        --ham-line-shift: 10px;
    }

    #logo .clouds:is(.n1, .n3) {
        top: calc(9vw - 94.4px);
    }

    #logo .clouds:is(.n2, .n4) {
        top: calc(3vw - 90px);
    }

    .seagull.n1 {
        top: calc(7vw - 19px);
    }

    .seagull.n2 {
        top: calc(10vw - 19px);
    }

    .seagull.n3 {
        top: calc(10vw - 15.5px);
    }

    .tropical-island {
        top: -35.5%
    }

    .subnav .contactbutton a i {
        left: unset;
        display: block;
        font-size: 25.5px;
        line-height: 47px
    }

    .contactbutton a i::after {
        position: absolute;
        bottom: -26.5px;
        left: 0;
        width: 100%;
        content: "MAIL";
        font-size: 8px
    }

    .contactbutton a {
        height: 60px;
        margin-right: 5vw;
        overflow: hidden
    }

    a.meanmenu-reveal {
        padding-top: 5px;
    }

    .subnav form div {
        margin-top: 12px
    }

    .subnav form input {
        width: calc(71% - 36px);
        padding: 12.5px 9% 12.5px 3.5%;
    }

    .subnav form button {
        right: calc(16vw + 33px)
    }

    .mobile_site_description {
        top: -10px;
    }

    #main .article-header {
        padding: 0 .7em
    }

    .introduction {
        padding: 0 13px;
        line-height: 1.76;
    }

    .top-post-list .entry-content .description {
        display: none;
    }

    .top-post-list .entry-title {
        -webkit-line-clamp: 4;
    }

    .search .vcard .date {
        top: -7px;
        left: 33.5px;
        font-size: 15.5px;
    }

    :is(.home, .category) .eyecatch img {
        aspect-ratio: 1 / 0.83;
    }

    .entry-content {
        padding: 0 .7em;
    }

    .widgettitle {
        padding-left: 17.2px
    }

    .meanmenu-reveal span {
        margin-top: 7.5px;
    }
}





















/* =========================================
   WRAPPER & SHELL
   ========================================= */
.express-slider-wrapper {
    max-width: 1200px;
    margin: 0 auto 70.5px;
}

.sidebar .slider-outer-shell {
    aspect-ratio: 4 / 3;
}

.slider-outer-shell {
    position: relative;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px -10px rgb(0 0 0 / 50%);
    touch-action: pan-y;
    aspect-ratio: 1700 / 1051;
}

.express-slider-inner {
    position: absolute;
    inset: 0;
    user-select: none;
    overflow: hidden;
    overscroll-behavior-x: none;
    touch-action: pan-y;
    cursor: grab;
}

.express-slider-inner:active {
    cursor: grabbing;
}

.express-slider-inner::before {
    content: "";
    position: absolute;
    inset: 0.5px;
    border-radius: 13px;
    background-color: #000;
    z-index: 0;
}

/* PICK UP: WebGL/DOM handoff fallback (R03 verified). */
.home-top.express-slider-wrapper .express-slider-inner::before {
    background-image: var(--jtt-pickup-backdrop, none);
    background-position: center;
    background-size: cover;
}

/* =========================================
   SLIDES & IMAGES
   ========================================= */
.express-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    z-index: 1;
    clip-path: inset(-2% -2% -2% 102%);
}

.express-slide.active {
    opacity: 1;
    z-index: 2;
    clip-path: inset(-2%);
}

.express-slide a {
    position: absolute;
    inset: 0;
    display: block;
    cursor: inherit;
    -webkit-user-drag: none;
    user-drag: none;
}

.express-slide picture {
    display: block;
    width: 100%;
    height: 100%;
}

.express-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

/* =========================================
   COUNTER & PAGINATION
   ========================================= */
.slide-counter {
    position: absolute;
    top: 20px;
    left: 50%;
    translate: -50% 0;
    z-index: 5;
    border-radius: 25px;
    background-color: rgb(200 200 200 / 0.15);
    color: var(--c-white);
    font: bold 0.7em sans-serif;
    filter: brightness(1.05) saturate(1.2);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    letter-spacing: 0.6px;
    transition: opacity 1.2s ease-in-out;
    width: 8.3em;
    height: 3.1em;
    display: grid;
    place-items: center;
}

.slider-pagination {
    display: flex;
    justify-content: center;
    justify-content: safe center;
    gap: 20px;
    margin: 20px 20px 0;
    padding-bottom: 27px;
    height: 0;
    overflow-x: auto;
    overflow-y: hidden;
    /* 🚀👇 これを追加！(Firefox / IE / 旧Edge 用) */
    scrollbar-width: none;
    -ms-overflow-style: none;
}

/* 🚀👇 これを外側に追加！(Chrome / Safari / 新Edge 用) */
.slider-pagination::-webkit-scrollbar {
    display: none;
}

.slider-pagination .dot {
    width: 17px;
    height: 17px;
    font-size: 0;
    background-color: #82b0ce;
    border-radius: 50%;
    transition: background-color 0.3s ease-out;
    flex-shrink: 0;
    opacity: 0;
}

/* 🚀 信号受信（.is-loaded付与時）に点火 */
.is-loaded .slider-pagination .dot {
    animation: pagination-fade-in 1s 1s ease-in-out forwards;
}

@keyframes pagination-fade-in {
    100% {
        opacity: 1;
    }
}

.slider-pagination .dot.active {
    background-color: var(--c-accent);
}

/* =========================================
   TITLE & META (SEO/Semantic 準拠)
   ========================================= */
.slide-title {
    position: absolute;
    inset: auto 0 -1px 0;
    padding: 7% clamp(15px, 3vw, 23px) 0;
    color: var(--c-white);
    font-weight: bold;
    line-height: 1.2;
    z-index: 5;
    background: linear-gradient(to top,
            rgba(5, 22, 34, .82) 0%,
            rgba(5, 22, 34, .6) 30%,
            rgba(5, 22, 34, .35) 55%,
            rgba(5, 22, 34, .18) 72%,
            rgba(5, 22, 34, .08) 84%,
            rgba(5, 22, 34, .03) 94%,
            transparent 100%);
}

/* =========================================
   CONTROLS & BUTTONS
   ========================================= */
.slider-controls {
    position: absolute;
    inset: 50% 0 auto 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    z-index: 5;
}

.slider-btn {
    display: grid;
    place-items: center;
    width: 63.5px;
    height: 63.5px;
    pointer-events: auto;
    margin: 0 13px;
    border-radius: 50%;
    background-color: rgb(200 200 200 / 0.15);
    color: var(--c-white);
    filter: brightness(1.2) saturate(1.2);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow: 0px 5px 20px -10px #00000085;
    transition: opacity 1.2s ease-in-out, background-color 0.5s, transform 0.25s cubic-bezier(0.42, 0, 0.35, 2.4);
}

.slider-btn:active,
.slider-btn.is-clicked {
    transform: scale(0.9);
}

.slider-btn.btn-next::after,
.slider-btn.btn-prev::after {
    display: inline-block;
    font-family: "uicons-thin-rounded";
    font-style: normal;
    font-size: 25px;
}

.slider-btn.btn-next::after {
    content: "\e092";
}

.slider-btn.btn-prev::after {
    content: "\e091";
}

/* =========================================
   物理封鎖：遷移中の操作拒絶
   ========================================= */
.is-transitioning .slider-outer-shell,
.is-transitioning .slider-pagination {
    pointer-events: auto;
}

.is-transitioning .slider-outer-shell:active,
.is-transitioning .slider-pagination:active {
    cursor: not-allowed;
}

.is-transitioning .express-slider-inner,
.is-transitioning .slider-controls,
.is-transitioning .slider-btn,
.is-transitioning .slider-pagination .dot {
    pointer-events: none;
}

/* =========================================
   RESPONSIVE (767px / 480px)
   ========================================= */
@media (max-width: 767px) {
    .express-slider-wrapper {
        position: relative;
        width: 100vw;
        left: 50%;
        margin: 0 -50vw calc(5vw + 25px);
    }
}



/* =========================================
   sidebar
   ========================================= */
.sidebar .express-slider-wrapper {
    margin: 0;
    width: 100%;
    inset: 0;
}

.sidebar .slider-btn {
    width: 60px;
    height: 60px;
    transition: background-color 0.3s, transform 0.3s cubic-bezier(0.42, 0, 0.35, 2);
}

@media (hover: hover) {
    .sidebar .express-slider-wrapper:not(.is-transitioning) .slider-btn:hover {
        background-color: rgb(255 255 255 / 0.5);
    }
}

.sidebar .slider-btn:active,
.sidebar .slider-btn.is-clicked {
    background-color: rgb(255 255 255 / 0.5);
}

.sidebar .slide-counter {
    width: 7.3em;
    height: 2.8em
}

.sidebar .slide-title {
    padding: 7% clamp(15px, 3vw, 15px) 12px;
}

.sidebar .slide-title p {
    font-size: clamp(1.15em, 4.5vw, 1.3em);
    line-height: 1.4;
    margin: 0;
    -webkit-line-clamp: 3;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sidebar .slider-pagination {
    margin-top: 17px;
    padding-bottom: 16px;
}

.sidebar .slider-pagination .dot {
    width: 16px;
    height: 16px;
}

@media (min-width: 1270px) {
    .sidebar .slide-title p {
        font-size: 0.94em;
    }

    .sidebar .slider-btn {
        width: 52px;
        height: 52px;
    }
}