/*
   ==========================================================================
   GUIDE.CSS - ご利用ガイド（guide.html）
   画面表示と A4 印刷（ファイル綴じ用）を1枚で兼ねる。印刷用の指定は末尾の @media print。
   ==========================================================================
*/

:root {
    --ok: #3B6147;
    --ok-bg: #eaf2ec;
    --ask: #9a7410;
    --ask-bg: #fbf4dd;
    --ng: #a8412f;
    --ng-bg: #f8e9e5;
    --line-soft: #e6e2d8;
}

.guide {
    max-width: 960px;
    margin: 32px auto 64px;
    padding: 0 20px;
    counter-reset: gpage;
}

.print-only {
    display: none !important;
}

/* --- 表紙 --- */
.g-cover {
    background: var(--paper);
    border-radius: 24px;
    box-shadow: var(--shadow-md);
    overflow: hidden;
    margin-bottom: 28px;
}

.g-cover-inner {
    padding: 3rem 2.5rem 2rem;
    text-align: center;
}

.g-cover-logo {
    display: block;
    width: 84px;
    height: 84px;
    margin: 0 auto;
}

.g-cover-kicker {
    font-family: 'Zen Old Mincho', serif;
    letter-spacing: .3em;
    color: var(--gold);
    font-size: .85rem;
    margin: 1rem 0 .2rem;
}

.g-cover h1 {
    font-family: 'Zen Old Mincho', serif;
    font-size: clamp(1.6rem, 5vw, 2.4rem);
    line-height: 1.4;
    margin: 0 0 1rem;
}

.g-cover h1 span {
    color: var(--accent);
}

.g-cover-lead {
    color: var(--muted);
    margin: 0 0 1.8rem;
}

.g-cover-photo img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 16px;
    display: block;
}

.g-cover-foot {
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
    text-align: left;
    font-size: .9rem;
}

.g-toolbar {
    border-top: 1px solid var(--line-soft);
    padding: 1.2rem 2rem 1.5rem;
    text-align: center;
}

.g-print-btn {
    font: inherit;
    font-weight: 700;
    color: #fff;
    background: var(--accent-gradient);
    border: 0;
    border-radius: 999px;
    padding: .8rem 2rem;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
}

.g-print-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.g-toolbar-note {
    margin: .5rem 0 0;
    font-size: .85rem;
    color: var(--muted);
}

/* --- 各章 --- */
.g-page {
    background: var(--paper);
    border-radius: 24px;
    box-shadow: var(--shadow-md);
    padding: 2.8rem 3rem;
    margin-bottom: 28px;
}

.g-h2 {
    display: flex;
    align-items: center;
    gap: .9rem;
    font-family: 'Zen Old Mincho', serif;
    font-size: clamp(1.3rem, 4vw, 1.7rem);
    color: var(--ink);
    margin: 0 0 1.4rem;
    padding-bottom: .8rem;
    border-bottom: 2px solid var(--gold);
    line-height: 1.4;
}

.g-num {
    flex: none;
    display: inline-grid;
    place-items: center;
    width: 2.4em;
    height: 2.4em;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: .7em;
    font-family: 'Noto Serif JP', serif;
    letter-spacing: .05em;
}

.g-h3 {
    font-size: 1.1rem;
    color: var(--accent);
    border-left: 4px solid var(--gold);
    padding-left: .7rem;
    margin: 1.8rem 0 .7rem;
    line-height: 1.5;
}

.g-intro {
    margin: 0 0 1.4rem;
}

.g-note {
    background: #f7f5ef;
    border-radius: 12px;
    padding: .8rem 1.1rem;
    font-size: .95rem;
    margin: 1.4rem 0 0;
}

.g-small {
    font-size: .85rem;
    color: var(--muted);
}

.g-list {
    padding-left: 1.3rem;
    margin: 0 0 1rem;
}

.g-list li {
    margin-bottom: .35rem;
}

.guide strong {
    color: var(--accent);
}

.guide a {
    color: var(--accent);
}

/* 未記入の箇所（公開前に埋めて削除する） */
.todo {
    display: inline-block;
    background: #fff6d6;
    border: 1px dashed #d4a017;
    color: #7a5b00;
    border-radius: 6px;
    padding: .1rem .5rem;
    font-size: .85rem;
    margin: .3rem 0;
}

/* --- 01 まずは3つ --- */
.g-top3 {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.g-top3 li {
    background: var(--ok-bg);
    border-radius: 16px;
    padding: 1.3rem 1.2rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    text-align: center;
}

.g-top3 strong {
    font-size: 1.05rem;
    line-height: 1.5;
}

.g-top3 span:last-child {
    font-size: .9rem;
    line-height: 1.7;
    text-align: left;
}

.g-top3-icon svg,
.g-equip-photo--icon svg {
    width: 48px;
    height: 48px;
    fill: none;
    stroke: var(--accent);
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.g-toc {
    border: 1px solid var(--line-soft);
    border-radius: 16px;
    padding: 1.2rem 1.6rem;
}

.g-toc-title {
    font-weight: 700;
    margin: 0 0 .4rem;
}

.g-toc ol {
    margin: 0;
    padding-left: 1.6rem;
    columns: 2;
    column-gap: 2rem;
}

.g-toc a {
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px dotted #aaa;
}

/* --- 02 流れ --- */
.g-steps {
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
}

.g-steps li {
    display: grid;
    grid-template-columns: 3rem 1fr;
    gap: 1rem;
    padding-bottom: 1.1rem;
    position: relative;
}

.g-steps li:not(:last-child)::before {
    content: "";
    position: absolute;
    left: calc(1.5rem - 1px);
    top: 3rem;
    bottom: 0;
    border-left: 2px dashed var(--gold);
}

.g-step-no {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
}

.g-steps h3 {
    margin: .35rem 0 .2rem;
    font-size: 1.1rem;
}

.g-steps p {
    margin: 0 0 .3rem;
}

/* --- 03 マップ --- */
.g-map-grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 1.6rem;
    align-items: start;
}

.g-map-grid--site {
    margin-top: 2rem;
}

.g-map-grid--site .g-h3 {
    margin-top: 0;
}

.g-figure {
    margin: 0;
}

.g-figure img {
    width: 100%;
    height: auto;
    display: block;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
}

.g-figure figcaption {
    font-size: .85rem;
    color: var(--muted);
    text-align: center;
    margin-top: .4rem;
}

.g-legend {
    list-style: none;
    padding: 0;
    margin: 0;
}

.g-legend li {
    padding: .45rem 0;
    border-bottom: 1px solid var(--line-soft);
    line-height: 1.7;
}

.g-legend strong {
    color: var(--ink);
}

.g-dot {
    display: inline-block;
    width: .9em;
    height: .9em;
    border-radius: 3px;
    background: var(--c);
    border: 1px solid rgba(0, 0, 0, .25);
    margin-right: .5rem;
    vertical-align: -1px;
}

.g-legend-ng strong {
    color: var(--ng);
}

/* --- 04 設備 --- */
.g-equip-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
    margin-bottom: 1rem;
}

.g-equip {
    border: 1px solid var(--line-soft);
    border-radius: 16px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.g-equip-photo {
    aspect-ratio: 16 / 9;
    background: #f3f1ea;
    overflow: hidden;
}

.g-equip-photo picture {
    display: block;
    height: 100%;
}

.g-equip-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.g-equip-photo--none,
.g-equip-photo--icon {
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: .9rem;
}

.g-equip-photo--none span {
    border: 1px dashed #bbb;
    border-radius: 8px;
    padding: .3rem .8rem;
}

.g-equip-body {
    padding: 1rem 1.2rem 1.2rem;
}

.g-equip-body h3 {
    margin: 0;
    font-size: 1.15rem;
}

.g-equip-spec {
    margin: 0 0 .5rem;
    font-size: .85rem;
    color: var(--muted);
}

.g-equip-body ul,
.g-equip-body ol {
    padding-left: 1.3rem;
    margin: 0 0 .4rem;
    font-size: .95rem;
}

.g-equip-body p {
    font-size: .95rem;
    margin: 0 0 .4rem;
}

.g-wifi {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .6rem .8rem;
    margin: .6rem 0 0;
    font-size: .95rem;
}

.g-wifi dt {
    font-weight: 700;
}

.g-wifi dd {
    margin: 0;
    border-bottom: 1px solid #999;
    min-height: 1.8em;
}

/* --- 05 ルール --- */
.g-rule-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.g-rule {
    border-radius: 16px;
    padding: 1.2rem 1.2rem .6rem;
    border-top: 6px solid;
}

.g-rule--ok { background: var(--ok-bg); border-color: var(--ok); }
.g-rule--ask { background: var(--ask-bg); border-color: var(--gold); }
.g-rule--ng { background: var(--ng-bg); border-color: var(--ng); }

.g-rule h3 {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .8rem;
    font-size: 1.15rem;
}

.g-mark {
    display: inline-grid;
    place-items: center;
    width: 1.8em;
    height: 1.8em;
    border-radius: 50%;
    color: #fff;
    font-size: .9em;
}

.g-rule--ok .g-mark { background: var(--ok); }
.g-rule--ask .g-mark { background: var(--gold); }
.g-rule--ng .g-mark { background: var(--ng); }

.g-rule p {
    font-size: .9rem;
    margin: 0 0 .6rem;
}

.g-rule ul {
    list-style: none;
    padding: 0;
    margin: 0 0 .6rem;
}

.g-rule li {
    padding: .45rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .07);
    line-height: 1.6;
}

.g-rule li:last-child {
    border-bottom: 0;
}

.g-rule li strong {
    display: block;
    color: var(--ink);
}

.g-rule li span {
    display: block;
    font-size: .85rem;
    color: #555;
}

.g-rule--ng li strong { color: var(--ng); }

/* --- 06 お子さま / 表 --- */
.g-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 1.2rem;
}

.g-table th,
.g-table td {
    border-bottom: 1px solid var(--line-soft);
    padding: .75rem .8rem;
    text-align: left;
    vertical-align: top;
    line-height: 1.7;
}

.g-table thead th {
    background: var(--accent);
    color: #fff;
    font-size: .9rem;
}

.g-table tbody th {
    white-space: nowrap;
    width: 1%;
}

.g-table--info {
    margin-bottom: 0;
}

.g-table--info tbody th {
    color: var(--accent);
}

.g-badge {
    display: inline-block;
    font-size: .8rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 0 .7rem;
    margin-right: .5rem;
    color: #fff;
}

.g-badge--ok { background: var(--ok); }
.g-badge--ng { background: var(--ng); }

/* --- 07 料金 --- */
.g-price {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    align-items: center;
}

.g-price-main {
    background: var(--ok-bg);
    border-radius: 16px;
    padding: 1.4rem;
    text-align: center;
}

.g-price-unit,
.g-price-sub {
    margin: 0;
    font-size: .95rem;
}

.g-price-yen {
    margin: 0;
    font-size: 3rem;
    font-weight: 900;
    color: var(--accent);
    line-height: 1.3;
}

.g-price-yen span {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ink);
}

.g-table--compact {
    margin: 0;
}

.g-table--compact caption {
    text-align: left;
    font-weight: 700;
    padding-bottom: .3rem;
}

.g-table--compact th,
.g-table--compact td {
    padding: .45rem .8rem;
}

.g-table--compact td {
    text-align: right;
}

.g-pay {
    list-style: none;
    padding: 0;
    margin: 0 0 .8rem;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.g-pay li {
    border: 1px solid var(--accent);
    border-radius: 10px;
    padding: .3rem .9rem;
    font-weight: 700;
    line-height: 1.5;
}

.g-pay small {
    display: block;
    font-weight: 400;
    font-size: .75rem;
    color: var(--muted);
}

/* --- 08 チェックリスト --- */
.g-check {
    list-style: none;
    padding: 0;
    margin: 0;
}

.g-check li {
    position: relative;
    padding: .85rem 0 .85rem 2.6rem;
    border-bottom: 1px solid var(--line-soft);
    font-size: 1.05rem;
}

.g-check li::before {
    content: "";
    position: absolute;
    left: .3rem;
    top: 1rem;
    width: 1.3rem;
    height: 1.3rem;
    border: 2px solid var(--accent);
    border-radius: 4px;
}

.g-check .todo {
    display: block;
    width: fit-content;
}

/* --- 09 緊急時 --- */
.g-emergency {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.g-emg {
    display: flex;
    align-items: center;
    gap: 1rem;
    border-radius: 16px;
    padding: 1rem 1.2rem;
}

.g-emg p {
    margin: 0;
    line-height: 1.6;
}

.g-emg--red { background: var(--ng-bg); }
.g-emg--blue { background: #e7eef6; }

.g-emg-no {
    font-size: 2.4rem;
    font-weight: 900;
    line-height: 1 !important;
}

.g-emg--red .g-emg-no { color: var(--ng); }
.g-emg--blue .g-emg-no { color: #2f5d8a; }

.g-address {
    margin-top: 1rem;
    border: 2px solid var(--ink);
    border-radius: 12px;
    padding: .7rem 1.1rem;
}

.g-address p {
    margin: 0;
}

.g-address-label {
    font-size: .85rem;
    color: var(--muted);
}

.g-address-body {
    font-size: 1.2rem;
    font-weight: 700;
}

.g-contact {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    background: #f7f5ef;
    border-radius: 16px;
    padding: 1.2rem;
    margin-top: 1.4rem;
}

.g-contact img {
    flex: none;
    background: #fff;
    border-radius: 8px;
}

.g-contact p {
    margin: 0 0 .2rem;
}

.g-contact-title {
    font-weight: 700;
}

.g-closing {
    margin-top: 1.8rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line-soft);
    font-size: .9rem;
}

.g-closing p {
    margin: 0 0 .3rem;
}


/* 間取り図・敷地図（SVGで描画。文字はページのフォントを使う） */
.g-plan {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    background: #fff;
    font-family: 'Noto Serif JP', serif;
}

.g-figure--wide {
    margin-bottom: 1.6rem;
}

/* 館内写真の並び */
.g-photos {
    list-style: none;
    padding: 0;
    margin: 1.6rem 0 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .8rem;
}

.g-photos--2 {
    grid-template-columns: repeat(2, 1fr);
    margin-top: 0;
}

.g-photos figure,
.g-items figure {
    margin: 0;
}

.g-photos img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
    display: block;
}

.g-photos figcaption {
    font-size: .85rem;
    text-align: center;
    margin-top: .3rem;
}

/* 備品一覧 */
.g-items {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .9rem;
}

.g-items li {
    border: 1px solid var(--line-soft);
    border-radius: 12px;
    overflow: hidden;
}

.g-items img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}

.g-items picture {
    display: block;
}

.g-items figcaption {
    padding: .5rem .7rem .6rem;
    font-size: .82rem;
    line-height: 1.5;
}

.g-items figcaption strong {
    display: block;
    color: var(--ink);
    font-size: .92rem;
}

.g-items figcaption small {
    display: inline-block;
    margin-top: .2rem;
    padding: 0 .5rem;
    border-radius: 999px;
    background: var(--ok-bg);
    color: var(--accent);
    font-size: .75rem;
}

.g-equip-sub {
    font-weight: 700;
    margin: .5rem 0 .1rem !important;
    color: var(--accent);
}

/* お支払い（営業中／無人） */
.g-paybox {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 1rem;
    margin-bottom: .6rem;
}

.g-paycase {
    border: 1px solid var(--line-soft);
    border-radius: 14px;
    padding: 1rem 1.1rem;
}

.g-paycase p {
    margin: 0 0 .5rem;
}

.g-paycase--post {
    display: grid;
    grid-template-columns: 38% 1fr;
    gap: 1rem;
    align-items: start;
}

.g-paycase-photo img {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: 45% 50%;
    border-radius: 10px;
    display: block;
}

.g-paycase-title {
    font-weight: 700;
    color: var(--accent);
}

.g-paycase .g-list {
    font-size: .92rem;
    margin: 0;
}

.g-check-sub {
    display: block;
    font-size: .88rem;
    color: #555;
    margin-top: .2rem;
}

.g-check-sub strong {
    color: var(--ng);
}


/* 自転車置き場（写真に枠を重ねる） */
.g-bike {
    margin-top: 1.2rem;
}

.g-bike p {
    margin: 0;
    font-size: .95rem;
}

.g-bike .g-h3 {
    margin-top: .8rem;
}

.g-bike-photo {
    position: relative;
    margin: 0;
}

.g-bike-photo img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 10px;
}

.g-bike-area {
    position: absolute;
    left: 15%;
    top: 46%;
    width: 25%;
    height: 38%;
    border: 3px dashed #A8412F;
    border-radius: 10px;
    background: rgba(255, 255, 255, .15);
}

.g-bike-area span {
    position: absolute;
    left: 50%;
    top: -1.9em;
    transform: translateX(-50%);
    white-space: nowrap;
    background: #A8412F;
    color: #fff;
    font-size: .8rem;
    font-weight: 700;
    border-radius: 999px;
    padding: .1rem .7rem;
}

/* チェックリスト内の照明スイッチ写真 */
.g-check-photos {
    display: flex;
    gap: .8rem;
    margin-top: .5rem;
}

.g-check-photos > span {
    width: 11rem;
    font-size: .75rem;
    color: #555;
    line-height: 1.4;
}

.g-check-photos img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
    margin-bottom: .2rem;
}


/* 備品の置き場所（棚） */
.g-shelf {
    display: grid;
    grid-template-columns: 30% 1fr;
    gap: 1rem;
    align-items: center;
    border: 1px solid var(--line-soft);
    border-radius: 14px;
    padding: .8rem;
}

.g-shelf img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 10px;
}

.g-shelf p {
    margin: 0 0 .3rem;
}

/* --- スマホ（画面表示のみ。印刷は用紙幅が768px未満になるため screen で限定する） --- */
@media screen and (max-width: 768px) {
    .guide {
        margin-top: 20px;
        padding: 0 16px;
    }

    .g-cover-inner {
        padding: 2rem 1.2rem 1.4rem;
    }

    .g-page {
        padding: 1.6rem 1.2rem;
        border-radius: 18px;
    }

    .g-top3,
    .g-rule-grid,
    .g-equip-grid,
    .g-map-grid,
    .g-price,
    .g-emergency {
        grid-template-columns: 1fr;
    }

    .g-toc ol {
        columns: 1;
    }

    .g-photos,
    .g-items {
        grid-template-columns: repeat(2, 1fr);
    }

    .g-paybox,
    .g-paycase--post,
    .g-shelf {
        grid-template-columns: 1fr;
    }

    .g-check-photos > span {
        width: 50%;
    }

    .g-paycase-photo img {
        aspect-ratio: 4 / 3;
    }

    /* 表は見出しと内容を縦に積む（左列が細くなって1〜2文字ずつ折り返すのを防ぐ） */
    .g-table:not(.g-table--compact) thead {
        display: none;
    }

    .g-table:not(.g-table--compact) tr,
    .g-table:not(.g-table--compact) th,
    .g-table:not(.g-table--compact) td {
        display: block;
        width: auto;
    }

    .g-table:not(.g-table--compact) tbody th {
        white-space: normal;
        border-bottom: 0;
        padding-bottom: 0;
        color: var(--accent);
    }

    .g-table:not(.g-table--compact) tbody th br {
        display: none;
    }
}

/*
   ==========================================================================
   印刷（A4縦・ファイル綴じ用）
   左側を広めにとり、2穴パンチやリングファイルで綴じても文字にかからないようにしている。
   ==========================================================================
*/
@page {
    size: A4 portrait;
    margin: 14mm 14mm 16mm 24mm;

    @bottom-center {
        content: counter(page);
        font-family: 'Noto Serif JP', serif;
        font-size: 9pt;
        color: #888;
    }
}

@page :first {
    @bottom-center {
        content: none;
    }
}

@media print {
    html,
    body {
        background: #fff !important;
        font-size: 10pt;
        line-height: 1.7;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    header,
    .site-footer,
    .sticky-cta,
    .web-only {
        display: none !important;
    }

    .print-only {
        display: revert !important;
    }

    .g-cover-foot.print-only {
        display: flex !important;
    }

    .guide {
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .g-cover,
    .g-page {
        box-shadow: none;
        border-radius: 0;
        padding: 0;
        margin: 0;
    }

    /* 表紙で1ページ使う */
    .g-cover {
        height: 262mm;
        display: flex;
        flex-direction: column;
        justify-content: center;
        break-after: page;
    }

    .g-cover-inner {
        padding: 0;
    }

    .g-cover h1 {
        font-size: 30pt;
    }

    .g-cover-photo img {
        aspect-ratio: 4 / 3;
        border-radius: 8px;
    }

    /* 章ごとに改ページ。「要記入」を埋めて文章が増えても溢れないよう、1章1ページで余裕を持たせる */
    .g-page {
        break-before: page;
    }

    .g-top3 {
        margin-bottom: 10mm;
    }

    .g-h2 {
        font-size: 17pt;
        margin-bottom: 5mm;
    }

    .g-h3 {
        margin-top: 5mm;
    }

    .g-top3,
    .g-rule-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .g-equip-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .g-price,
    .g-emergency {
        grid-template-columns: repeat(2, 1fr);
    }

    .g-map-grid {
        grid-template-columns: 1.25fr 1fr;
    }

    /* 館内図は文字が小さくならないよう全幅にし、説明は下に2列で並べる */
    #floor .g-map-grid {
        grid-template-columns: 1fr;
        gap: 4mm;
    }

    #floor .g-legend {
        columns: 2;
        column-gap: 8mm;
    }

    #floor .g-legend li {
        break-inside: avoid;
    }

    #floor .g-figure {
        width: 88%;
        margin: 0 auto;
    }

    .g-equip-grid {
        gap: 4mm;
    }

    .g-equip-photo {
        aspect-ratio: 2 / 1;
    }

    .g-equip-body {
        padding: 3mm 3.5mm;
    }

    .g-equip-body ul,
    .g-equip-body ol,
    .g-equip-body p {
        font-size: 9pt;
    }

    .g-rule {
        padding: 3.5mm 3.5mm 1mm;
    }

    .g-rule li {
        padding: 1.2mm 0;
    }

    .g-note {
        margin-top: 4mm;
        padding: 2.5mm 4mm;
    }

    .g-items {
        gap: 3mm;
    }

    .g-items figcaption {
        font-size: 8.5pt;
        padding: 1.5mm 2.5mm;
    }

    .g-check-photos > span {
        width: 40mm;
    }

    .g-shelf {
        break-inside: avoid;
    }

    .g-bike {
        break-inside: avoid;
        margin-top: 3mm;
    }

    .g-bike p {
        font-size: 9pt;
    }

    /* 敷地の章は図・駐車場・自転車を1ページに収めるため、図を少し縮める */
    #site .g-figure--wide {
        width: 80%;
        margin: 0 auto 3mm;
    }

    #site .g-list li {
        margin-bottom: .6mm;
    }

    #site .g-note {
        margin-top: 2mm;
    }

    .g-equip,
    .g-items li,
    .g-paycase,
    .g-photos li,
    .g-rule,
    .g-steps li,
    .g-table tr,
    .g-check li,
    .g-contact,
    .g-figure {
        break-inside: avoid;
    }

    .g-steps li {
        padding-bottom: 5mm;
    }

    .g-check li {
        font-size: 12pt;
        padding-top: 3mm;
        padding-bottom: 3mm;
    }

    .g-check li::before {
        top: 3.6mm;
    }

    .guide a {
        text-decoration: none;
        color: inherit;
    }

    /* 未記入の目印は印刷でも目立たせる（記入漏れに気づけるように） */
    .todo {
        border-width: 1.5px;
    }
}
