/* Hallmark · macrostructure: Destination Guide (route → attraction → ticket desk → FAQ) · tone: warm-practical · anchor hue: green, seasonal accent: aqua */
/* 東武動物公園・東武スーパープール ページ用スタイル
 * ベース（リセット・本文色 #60594b・地色 #fcf7ef・フォント）は common.css。
 * ヘッダー／フッター／.l-title／パンくずは共通テンプレのまま（ここでは触らない）。
 * 配色・カード作法は group/css/group.css を踏襲。夏の回遊感を出すため
 * プール節にだけ温かみを残したアクア（#1b7f9c 系）を差し、地色のクリームは崩さない。
 */

:root{
    --gc-green:#29801e;
    --gc-green-deep:#1f6b16;
    --gc-green-ink:#20571a;
    --gc-grad:linear-gradient(100deg,#29801e 0%,#5f8f1a 100%);
    --gc-ink:#4a4437;          /* 見出し */
    --gc-ink-soft:#6b6456;     /* 本文 */
    --gc-ink-mute:#8b8271;     /* 補足 */
    --gc-paper-card:#fffdf8;   /* カード地 */
    --gc-paper-sand:#f5edde;   /* 温かい砂色バンド */
    --gc-paper-green:#edf3e5;  /* 淡い緑バンド */
    --gc-line:#e7ddc9;         /* 温かいヘアライン */
    --gc-line-green:#cfe0c4;
    /* 夏のアクセント（プール節限定） */
    --gc-aqua:#1b7f9c;
    --gc-aqua-deep:#14657d;
    --gc-paper-aqua:#e8f2f4;   /* クリーム寄りに濁らせた水色バンド */
    --gc-line-aqua:#c2dde3;
    --gc-en:"Montserrat",Verdana,Arial,sans-serif;
    --gc-wrap:1120px;
}

#contents{overflow-x:clip}

.con_int .inner,
.con_route .inner,
.con_pool .inner,
.con_zoo .inner,
.con_ticket .inner,
.con_family .inner,
.con_faq .inner,
.con_cta .inner,
.con_related .inner{width:min(90%,var(--gc-wrap));margin-inline:auto}

.con_int,.con_route,.con_pool,.con_zoo,.con_ticket,.con_family,.con_faq,.con_cta,.con_related{
    padding-block:clamp(48px,7vw,84px);
}

/* タイトル帯：写真が明るいので白文字が沈まないよう左下を落とす */
#tobuzoo .l-title{position:relative}
#tobuzoo .l-title__image::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;
    background:linear-gradient(90deg,rgba(31,60,26,.62) 0%,rgba(31,60,26,.34) 45%,rgba(31,60,26,.06) 100%)}

/* ===== セクション見出し（group.css と同作法：左揃え＋緑のティック） ===== */
.gc-head{margin-bottom:28px}
.gc-head h3{position:relative;padding-left:20px;font-size:clamp(21px,2.6vw,29px);font-weight:700;
    color:var(--gc-ink);line-height:1.5;letter-spacing:.02em;overflow-wrap:anywhere}
.gc-head h3::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:5px;border-radius:3px;
    background:var(--gc-grad)}
.gc-head p{margin-top:14px;max-width:46em;font-size:15.5px;line-height:1.95;color:var(--gc-ink-soft)}
/* プール節ではティックをアクアに */
.con_pool .gc-head h3::before{background:linear-gradient(160deg,#1b7f9c 0%,#3aa3ac 100%)}

/* ===== CTAボタン ===== */
.con_ticket__btn.c-btn1>a,
.ticket__btn.c-btn1>a,
.con_family__btn.c-btn1>a{
    background:var(--gc-grad);color:#fff;font-size:112%;padding:1.1em 1.5em;
    border-radius:6px;box-shadow:0 8px 20px -10px rgba(41,128,30,.7);
    transition:background .3s ease,transform .18s ease}
.con_ticket__btn.c-btn1>a:hover,
.ticket__btn.c-btn1>a:hover,
.con_family__btn.c-btn1>a:hover{background:var(--gc-green-deep);transform:translateY(-2px)}

/* ====== 1. 導入 ====== */
.con_int{padding-top:clamp(40px,6vw,64px);padding-bottom:0}
.con_int .inner{max-width:880px}
.con_int .eyebrow{font-family:var(--gc-en);font-size:12px;font-weight:600;letter-spacing:.22em;
    color:var(--gc-green);margin-bottom:16px}
.con_int .c-ttl1{font-size:clamp(26px,4.2vw,42px);font-weight:700;line-height:1.4;color:var(--gc-ink);
    letter-spacing:.01em;overflow-wrap:anywhere}
.con_int .c-ttl1 .accent{color:var(--gc-green)}
.con_int .txt{margin-top:24px;font-size:16px;line-height:2.05;color:var(--gc-ink-soft);max-width:44em}
.con_int .quick{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}
.con_int .quick li{font-size:13px;font-weight:500;color:var(--gc-green-ink);background:var(--gc-paper-green);
    border:1px solid var(--gc-line-green);border-radius:999px;padding:.5em 1em;letter-spacing:.02em}

/* ====== 2. アクセス（ルート図＋台帳） ====== */
.route{display:flex;align-items:center;gap:18px;margin:4px 0 40px}
.route__node{flex:0 0 auto;max-width:13em;text-align:center}
.route__node .dot{display:block;width:15px;height:15px;border-radius:50%;background:var(--gc-green);
    margin:0 auto 10px;box-shadow:0 0 0 5px rgba(41,128,30,.14)}
.route__node.is-goal .dot{background:var(--gc-aqua);box-shadow:0 0 0 5px rgba(27,127,156,.14)}
.route__node .name{display:block;font-size:15.5px;font-weight:700;color:var(--gc-ink);line-height:1.5}
.route__node .sub{display:block;margin-top:4px;font-size:12.5px;color:var(--gc-ink-mute);line-height:1.65}
.route__line{flex:1 1 auto;min-width:40px;text-align:center;position:relative}
.route__line::before{content:"";position:absolute;left:0;right:0;top:7px;border-top:2px dashed var(--gc-line)}
.route__line span{position:relative;background:#fcf7ef;padding:0 14px;font-weight:700;
    color:var(--gc-green-ink);font-size:17px;white-space:nowrap}

.route_cols{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:36px;align-items:start}
.fact{border-top:1px solid var(--gc-line);margin:0}
.fact__row{display:grid;grid-template-columns:7em minmax(0,1fr);gap:16px;padding:16px 0;
    border-bottom:1px solid var(--gc-line);margin:0}
.fact__row dt{font-weight:700;color:var(--gc-green-ink);font-size:15px;line-height:1.7}
.fact__row dd{margin:0;font-size:15px;line-height:1.85;color:var(--gc-ink-soft)}
.fact__row dd small{display:block;margin-top:4px;font-size:12.5px;color:var(--gc-ink-mute);line-height:1.7}

.memo{background:var(--gc-paper-green);border:1px solid var(--gc-line-green);border-radius:14px;
    padding:26px 28px}
.memo h4{font-size:17px;font-weight:700;color:var(--gc-green-ink);line-height:1.5;margin-bottom:10px}
.memo p{font-size:14.5px;line-height:1.95;color:var(--gc-ink-soft)}

/* ====== 3. 東武スーパープール（アクアバンド） ====== */
.con_pool{background:var(--gc-paper-aqua)}
.con_pool .gc-head h3{color:#14505f}

/* プールギャラリー：左に大きく1枚＋右に2枚。タップ／クリックで拡大ライトボックス表示 */
.pool_gallery{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
    grid-template-rows:1fr 1fr;gap:14px;margin:0 0 30px;list-style:none;padding:0}
.pool_gallery__item{margin:0}
.pool_gallery__item--feature{grid-row:1/3}

.pool_gallery__btn{display:block;position:relative;width:100%;height:100%;padding:0;margin:0;
    border:1px solid var(--gc-line-aqua);border-radius:16px;overflow:hidden;
    background:var(--gc-paper-card);cursor:zoom-in;-webkit-tap-highlight-color:transparent;
    transition:transform .22s ease,box-shadow .22s ease}
.pool_gallery__item--feature .pool_gallery__btn{aspect-ratio:970/576}
.pool_gallery__item:not(.pool_gallery__item--feature) .pool_gallery__btn{aspect-ratio:16/10}
.pool_gallery__btn:hover,.pool_gallery__btn:focus-visible{
    transform:translateY(-3px);box-shadow:0 16px 30px -18px rgba(20,80,95,.45)}
.pool_gallery__btn:focus-visible{outline:3px solid var(--gc-aqua);outline-offset:2px}
.pool_gallery__btn:active{transform:translateY(-1px)}
.pool_gallery__btn img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.pool_gallery__btn:hover img,.pool_gallery__btn:focus-visible img{transform:scale(1.045)}

.pool_gallery__cap{position:absolute;left:12px;top:12px;z-index:1;max-width:calc(100% - 24px);
    font-size:12px;font-weight:700;letter-spacing:.02em;line-height:1.5;color:#fff;text-align:left;
    background:rgba(20,80,95,.72);border-radius:8px;padding:.5em .9em}

.pool_gallery__zoom{position:absolute;right:12px;bottom:12px;z-index:1;width:34px;height:34px;
    border-radius:50%;background:rgba(255,255,255,.92);opacity:0;transform:scale(.8);
    transition:opacity .2s ease,transform .2s ease}
.pool_gallery__zoom::before{content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314657d' stroke-width='2.3' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat center/contain}
.pool_gallery__btn:hover .pool_gallery__zoom,.pool_gallery__btn:focus-visible .pool_gallery__zoom{
    opacity:1;transform:scale(1)}

@media screen and (max-width:719px){
    .pool_gallery{display:flex;grid-template-columns:none;overflow-x:auto;gap:12px;
        padding-bottom:4px;margin-bottom:24px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
    .pool_gallery__item{flex:0 0 82%;scroll-snap-align:start}
    .pool_gallery__item--feature{grid-row:auto}
    .pool_gallery__item .pool_gallery__btn{aspect-ratio:4/3}
    .pool_gallery__zoom{opacity:1;transform:scale(1)} /* ホバー不可のためモバイルは常時表示 */
}

/* ライトボックス */
.pool_lightbox{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;
    justify-content:center;padding:20px}
.pool_lightbox[hidden]{display:none}
.pool_lightbox__bg{position:absolute;inset:0;background:rgba(15,40,48,.86)}
.pool_lightbox__body{position:relative;z-index:1;width:min(100%,880px)}
.pool_lightbox__figure{margin:0;border-radius:12px;overflow:hidden;background:#0e2a32}
.pool_lightbox__stage{position:relative;background:#0e2a32}
.pool_lightbox__stage img{display:block;width:100%;max-height:66vh;object-fit:contain;margin:0 auto}
.pool_lightbox__figure figcaption{padding:14px 18px;font-size:13.5px;color:#eaf6f8;
    background:#123540;line-height:1.7}
.pool_lightbox__close,.pool_lightbox__nav{position:absolute;border:0;border-radius:50%;
    background:rgba(15,40,48,.55);color:#fff;line-height:1;cursor:pointer;
    transition:background .2s ease}
.pool_lightbox__close:hover,.pool_lightbox__nav:hover{background:rgba(15,40,48,.82)}
.pool_lightbox__close:focus-visible,.pool_lightbox__nav:focus-visible{
    outline:3px solid #fff;outline-offset:2px}
.pool_lightbox__close{top:10px;right:10px;z-index:2;width:38px;height:38px;font-size:22px}
.pool_lightbox__nav{top:50%;transform:translateY(-50%);z-index:2;width:42px;height:42px;font-size:24px}
.pool_lightbox__nav--prev{left:10px}
.pool_lightbox__nav--next{right:10px}
.pool_lightbox__count{margin:12px 0 0;text-align:center;font-size:12.5px;color:#cfe7ea}

.season{display:flex;flex-wrap:wrap;gap:0;margin:0 0 30px;background:var(--gc-paper-card);
    border:1px solid var(--gc-line-aqua);border-radius:14px;overflow:hidden}
.season__item{flex:1 1 220px;padding:20px 24px;border-top:1px solid var(--gc-line-aqua)}
.season__item:first-child{border-top:0}
.season__item dt{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--gc-aqua);margin-bottom:8px}
.season__item dd{margin:0;font-size:15.5px;font-weight:700;color:var(--gc-ink);line-height:1.65}
.season__item dd small{display:block;margin-top:5px;font-size:12.5px;font-weight:400;color:var(--gc-ink-mute);line-height:1.7}
@media(min-width:720px){
    .season__item{border-top:0;border-left:1px solid var(--gc-line-aqua)}
    .season__item:first-child{border-left:0}
}

.box_pool{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px}
.box_pool .item{background:var(--gc-paper-card);border:1px solid var(--gc-line-aqua);border-radius:14px;
    padding:24px 24px 26px;position:relative}
.box_pool .item .tag{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:#fff;
    background:var(--gc-aqua);border-radius:4px;padding:.35em .8em;margin-bottom:14px}
.box_pool .item .tag--kids{background:#c9772f}
.box_pool .item .ttl{font-size:17.5px;font-weight:700;color:var(--gc-ink);line-height:1.5}
.box_pool .item .txt{margin-top:12px;font-size:14.5px;line-height:1.9;color:var(--gc-ink-soft)}
.box_pool .item .spec{margin-top:12px;font-size:12.5px;color:var(--gc-ink-mute);line-height:1.7}

.pool_bring{margin-top:26px;background:var(--gc-paper-card);border:1px dashed var(--gc-line-aqua);
    border-radius:14px;padding:22px 26px}
.pool_bring h4{font-size:15.5px;font-weight:700;color:#14505f;margin-bottom:10px}
.pool_bring p{font-size:14px;line-height:1.95;color:var(--gc-ink-soft)}
.con_pool__note{margin-top:20px;font-size:12.5px;line-height:1.8;color:var(--gc-ink-mute)}
.con_pool__note a{color:var(--gc-aqua-deep)}

/* ====== 4. 東武動物公園（クリーム・写真＋テキスト） ====== */
.zoo{display:grid;grid-template-columns:1fr;gap:30px;align-items:center}
.zoo__img{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:16/10}
.zoo__img img{width:100%;height:100%;object-fit:cover}
.zoo__body .txt{font-size:15.5px;line-height:2;color:var(--gc-ink-soft)}
.zoo__list{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:12px}
.zoo__list li{position:relative;padding-left:30px;font-size:14.5px;line-height:1.75;color:var(--gc-ink-soft)}
.zoo__list li::before{content:"";position:absolute;left:0;top:3px;width:19px;height:19px;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2329801e'%3E%3Cpath d='M9 16.2l-3.5-3.5a1 1 0 0 0-1.4 1.4l4.2 4.2a1 1 0 0 0 1.4 0l9.9-9.9a1 1 0 1 0-1.4-1.4z'/%3E%3C/svg%3E") no-repeat center/contain}
@media(min-width:820px){.zoo{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:44px}}

/* ====== 5. チケット導線（このページの主役） ====== */
.con_ticket{background:var(--gc-paper-green)}

.steps{list-style:none;padding:0;margin:0 0 38px;display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px}
.steps li{position:relative;background:var(--gc-paper-card);border:1px solid var(--gc-line-green);
    border-radius:14px;padding:26px 24px 28px}
.steps .num{display:block;font-family:var(--gc-en);font-size:13px;font-weight:700;letter-spacing:.1em;
    color:var(--gc-green);margin-bottom:12px}
.steps .ttl{font-size:17px;font-weight:700;color:var(--gc-ink);line-height:1.5}
.steps .txt{margin-top:12px;font-size:14.5px;line-height:1.9;color:var(--gc-ink-soft)}
.steps .txt strong{color:var(--gc-green-ink);font-weight:700}
/* 3枚を矢印でつなぐ（横並びのときだけ） */
@media(min-width:860px){
    .steps li:not(:first-child)::before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);
        width:0;height:0;border-left:9px solid var(--gc-line-green);
        border-top:7px solid transparent;border-bottom:7px solid transparent}
}

/* チケット型カード */
.ticket{display:grid;grid-template-columns:1fr;background:var(--gc-paper-card);
    border:1px solid var(--gc-line-green);border-radius:16px;position:relative;
    box-shadow:0 30px 60px -40px rgba(31,87,26,.6)}
.ticket__stub{display:flex;align-items:center;justify-content:center;gap:.6em;
    border-bottom:2px dashed var(--gc-line-green);padding:18px 16px}
.ticket__stub span{font-size:13px;font-weight:700;letter-spacing:.3em;color:var(--gc-green-ink)}
.ticket__body{padding:clamp(26px,4vw,40px)}
.ticket__name{font-size:clamp(19px,2.4vw,23px);font-weight:700;color:var(--gc-ink);line-height:1.5}
.ticket__points{list-style:none;padding:0;margin:22px 0 26px;display:grid;gap:12px}
.ticket__points li{position:relative;padding-left:30px;font-size:14.5px;line-height:1.7;color:var(--gc-ink-soft)}
.ticket__points li::before{content:"";position:absolute;left:0;top:2px;width:19px;height:19px;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2329801e'%3E%3Cpath d='M9 16.2l-3.5-3.5a1 1 0 0 0-1.4 1.4l4.2 4.2a1 1 0 0 0 1.4 0l9.9-9.9a1 1 0 1 0-1.4-1.4z'/%3E%3C/svg%3E") no-repeat center/contain}
.ticket__points strong{color:var(--gc-green-ink);font-weight:700}
.ticket__btn{max-width:360px;margin:0}
.ticket__note{margin-top:18px;font-size:12.5px;line-height:1.85;color:var(--gc-ink-mute)}
.ticket__note a{color:var(--gc-green-ink)}
@media(min-width:820px){
    .ticket{grid-template-columns:5.5rem minmax(0,1fr)}
    .ticket__stub{border-bottom:0;border-right:2px dashed var(--gc-line-green);padding:26px 8px}
    .ticket__stub span{writing-mode:vertical-rl;letter-spacing:.35em}
    /* 切り取り線のノッチ */
    .ticket::before,.ticket::after{content:"";position:absolute;left:5.5rem;transform:translateX(-50%);
        width:22px;height:11px;background:var(--gc-paper-green)}
    .ticket::before{top:-1px;border-radius:0 0 11px 11px}
    .ticket::after{bottom:-1px;border-radius:11px 11px 0 0}
}

/* ====== 6. 子連れにうれしい ====== */
.box_family{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:22px}
.box_family .item{background:var(--gc-paper-card);border:1px solid var(--gc-line);border-radius:14px;
    overflow:hidden;display:flex;flex-direction:column}
.box_family .item__img{margin:0;aspect-ratio:16/10;overflow:hidden}
.box_family .item__img img{width:100%;height:100%;object-fit:cover}
.box_family .item__body{padding:22px 24px 26px}
.box_family .item .ttl{position:relative;padding-left:16px;font-size:17.5px;font-weight:700;
    color:var(--gc-ink);line-height:1.45}
.box_family .item .ttl::before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:4px;
    border-radius:3px;background:var(--gc-grad)}
.box_family .item .txt{margin-top:12px;font-size:14.5px;line-height:1.9;color:var(--gc-ink-soft)}
.con_family__btn{max-width:340px;margin:32px auto 0}

/* ====== 7. FAQ ====== */
.con_faq{background:var(--gc-paper-sand)}
.faq{border-top:1px solid var(--gc-line);max-width:860px}
.faq__item{border-bottom:1px solid var(--gc-line)}
.faq__item summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:1.8em minmax(0,1fr) 1.4em;
    gap:10px;align-items:baseline;padding:18px 2px;font-size:15.5px;font-weight:700;color:var(--gc-ink);
    line-height:1.7}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover{color:var(--gc-green-ink)}
.faq__item summary:focus-visible{outline:3px solid var(--gc-green);outline-offset:2px}
.faq__q{font-family:var(--gc-en);font-size:17px;font-weight:700;color:var(--gc-green)}
.faq__toggle{text-align:right;color:var(--gc-green);font-weight:400;transition:transform .2s ease}
.faq__item[open] .faq__toggle{transform:rotate(45deg)}
.faq__a{padding:0 1.4em 22px 2.6em;margin:0;font-size:14.5px;line-height:2;color:var(--gc-ink-soft)}
.faq__a a{color:var(--gc-green-ink)}

/* ====== 8. 締めのCTA（濃い緑バンド） ====== */
.con_cta{background:#1f5c17;color:#eaf3e4;text-align:center;position:relative;overflow:hidden}
.con_cta::before{content:"";position:absolute;inset:0;
    background:radial-gradient(120% 100% at 50% -20%,rgba(255,255,255,.10),transparent 60%)}
.con_cta .inner{position:relative;width:min(90%,760px)}
.con_cta .c-ttl1{font-size:clamp(23px,3.6vw,34px);font-weight:700;color:#fff;line-height:1.55;letter-spacing:.02em}
.con_cta__lead{margin:22px auto 32px;max-width:44em;font-size:15.5px;line-height:2;color:#dcebd3}
.con_cta__lead strong{color:#fff;font-weight:700;border-bottom:1px solid rgba(255,255,255,.4)}
.con_cta__btn{max-width:380px;margin:0 auto}
.con_cta__btn.c-btn1>a{background:#fff;color:var(--gc-green-ink);font-size:112%;padding:1.1em 1.5em;
    border-radius:6px;transition:background .3s ease,transform .18s ease}
.con_cta__btn.c-btn1>a:hover{background:#eef7e9;transform:translateY(-2px)}
.con_cta__btn.c-btn1>a:after{color:#fff;background:var(--gc-green-ink)}
.con_cta__tel{margin-top:30px;padding-top:26px;border-top:1px solid rgba(255,255,255,.2);
    font-size:13px;color:#cfe3c5;line-height:1.8}
/* common_js.php はPC表示のとき tel: リンクを <span class="tel"> に置き換えるため、
   a と .tel の両方に同じ体裁を当てる */
.con_cta__tel a,
.con_cta__tel .tel{display:inline-block;margin:6px 0 4px;font-family:var(--gc-en);font-size:30px;font-weight:700;
    letter-spacing:.03em;color:#fff;text-decoration:none}
.con_cta__tel .lb{display:block}
.con_cta__tel .note{display:block;font-size:12px;color:#bcd6b0;margin-top:2px}

/* ====== 9. 関連リンク ====== */
.con_related__ttl{font-size:14px;font-weight:700;color:var(--gc-ink-soft);letter-spacing:.06em;
    margin-bottom:20px;text-align:center}
.box_related{list-style:none;padding:0;margin:0;
    display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px}
.box_related li a{display:flex;align-items:center;justify-content:center;gap:.5em;text-decoration:none;
    font-size:15px;font-weight:500;color:var(--gc-ink);background:var(--gc-paper-card);
    border:1px solid var(--gc-line);border-radius:10px;padding:16px 14px;
    transition:border-color .2s,color .2s,background .2s}
.box_related li a:hover{border-color:var(--gc-green);color:var(--gc-green-ink);background:#f4f8ef}
.box_related li a::after{content:"→";font-family:var(--gc-en);color:var(--gc-green);opacity:.7}

/* ===== モバイル ===== */
@media screen and (max-width:819px){
    .route_cols{grid-template-columns:minmax(0,1fr);gap:26px}
}
@media screen and (max-width:767px){
    .route{flex-direction:column;align-items:stretch;gap:0;margin-bottom:32px}
    .route__node{max-width:none}
    .route__line{min-height:74px}
    .route__line::before{left:50%;right:auto;top:10px;bottom:10px;border-top:0;
        border-left:2px dashed var(--gc-line)}
    .route__line span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:6px 10px}
    .fact__row{grid-template-columns:5.5em minmax(0,1fr);gap:12px}
    .memo{padding:22px 20px}
    .box_pool .item{padding:22px 20px 24px}
    .ticket__body{padding:26px 20px 30px}
    .ticket__btn,.con_family__btn{max-width:none}
    .faq__item summary{grid-template-columns:1.6em minmax(0,1fr) 1.3em;font-size:15px}
    .faq__a{padding-left:2.2em;padding-right:0}
}

@media (prefers-reduced-motion: reduce){
    .con_ticket__btn.c-btn1>a,.ticket__btn.c-btn1>a,.con_family__btn.c-btn1>a,
    .con_cta__btn.c-btn1>a,.faq__toggle,
    .pool_gallery__btn,.pool_gallery__btn img,.pool_gallery__zoom,
    .pool_lightbox__close,.pool_lightbox__nav{transition:none}
}
