/* Approved XD tourism lists; dimensions describe layouts, never fixed article copy. */
.saito-tourism-list-shell .saito-breadcrumb { flex-wrap:nowrap; }
.saito-tourism-list-shell .saito-breadcrumb > :not(:last-child) { flex-shrink:0; }
.saito-tourism-list-shell .saito-breadcrumb > :last-child { min-width:0; }
.saito-tourism-list-heading .saito-page-title-wrap { position:relative; }
.saito-tourism-list-subtitle { position:absolute; left:81px; top:0; transform:rotate(90deg); transform-origin:0 0; white-space:nowrap; font-family:"DIN Condensed",serif; font-size:12px; line-height:12px; letter-spacing:.1em; text-transform:uppercase; color:#8b3d3d; }
.saito-experience-heading-art { margin:0; width:46.868104px; height:373.311012px; }
.saito-experience-heading-art img { display:block; width:100%; height:100%; }
.saito-experience-archive .saito-tourism-list-heading { margin-bottom:89.688988px; }
.saito-tourism-list-layout { display:grid; grid-template-columns:minmax(0,828fr) minmax(0,209fr); gap:0 73px; align-items:start; }
.saito-tourism-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; align-items:start; min-width:0; }
.saito-tourism-card { position:relative; min-width:0; }
.saito-tourism-card-link { display:block; text-decoration:none; }
.saito-tourism-card-photo { position:relative; display:block; aspect-ratio:4/3; border-radius:2px; overflow:hidden; }
.saito-tourism-card-photo img { display:block; width:100%; height:100%; object-fit:cover; transform-origin:center; }
.saito-tourism-card-photo.has-crop-pc { aspect-ratio:var(--tourism-pc-aspect); }
.saito-tourism-card-photo.has-crop-pc img { position:absolute; left:var(--tourism-pc-left); top:var(--tourism-pc-top); width:var(--tourism-pc-width); max-width:none; height:auto; }
.saito-tourism-card :is(h2, h3:where(.saito-member-notice-title)) { margin:16px 0 0; color:#355e3b; font-size:24px; font-weight:600; line-height:32px; letter-spacing:0; transition:color .3s ease-out; }
.saito-experience-archive .saito-tourism-card :is(h2, h3:where(.saito-member-notice-title)) { text-spacing-trim:space-all; }
.saito-tourism-card-excerpt { margin:11px 0 0; font-size:14px; font-weight:400; line-height:24px; letter-spacing:0; }
.saito-tourism-card-link:is(:hover,:focus-visible) :is(h2, h3:where(.saito-member-notice-title)) { color:#6c2735; }
.saito-tourism-card-badges { display:flex; flex-wrap:wrap; align-items:start; gap:8px 4px; margin-top:15px; font-family:var(--saito-sans); font-size:12px; font-weight:700; line-height:22px; }
.saito-tourism-badge { display:block; max-width:100%; padding:0 9px; border:1px solid #385132; border-radius:4px; color:#fff; background:#355e3b; text-decoration:none; }
.saito-badge-area { color:#6a5e27; background:none; border-color:#c1ab48; }
.saito-tourism-sidebar { border-left:1px solid #d5c9b9; padding:14px 0 0 19px; min-height:430px; min-width:0; width:calc(100% + 30px); }
.saito-tourism-sidebar h2 { margin:0; font-size:24px; line-height:36px; font-weight:600; letter-spacing:0; }
.saito-tourism-sidebar h2 span { display:block; margin-top:3px; font-family:"DIN Condensed",serif; font-size:12px; font-weight:400; line-height:28px; letter-spacing:.05em; text-transform:uppercase; color:#6c2735; }
.saito-tourism-sidebar ul { margin:13px 0 0; padding:0; list-style:none; }
.saito-tourism-sidebar li { position:relative; display:flex; align-items:center; min-height:56px; font-size:16px; line-height:28px; }
.saito-tourism-sidebar li::before { content:""; position:absolute; left:-24.5px; top:50%; transform:translateY(-50%); width:10px; height:10px; border-radius:50%; background:#6c2735; }
.saito-tourism-sidebar a { display:block; width:100%; padding:10px 0; text-decoration:none; transition:color .3s ease-out; }
.saito-tourism-sidebar a:is(:hover,:focus-visible) { color:#6c2735; }
.saito-tourism-list-pagination { grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:center; gap:7px; padding-right:2px; margin-top:146px; }
.saito-tourism-list-pagination .page-numbers { position:relative; display:flex; align-items:center; justify-content:center; width:32px; min-height:32px; border:1px solid #355e3b; color:#385132; text-decoration:none; font-size:14px; line-height:24px; transition:background-color .3s ease-out,color .3s ease-out; }
.saito-tourism-list-pagination .page-numbers::after { content:""; position:absolute; inset:-3px -3px 1px 1px; border:1px solid #355e3b; pointer-events:auto; }
.saito-tourism-list-pagination .dots { border:0; }
.saito-tourism-list-pagination .dots::after { content:none; }
.saito-tourism-list-pagination a:is(:hover,:focus-visible) { color:#fff; background:#355e3b; }
.saito-experience-archive .saito-page-bottom { margin-top:-112px; }
.saito-places-archive .saito-tourism-list-heading { margin-bottom:80px; }
.saito-tourism-filter.saito-container { width:min(1170px,calc(100% - 80px)); position:relative; }
.saito-tourism-filter-toggle { display:flex; justify-content:flex-end; align-items:center; gap:10px; width:100%; height:74px; padding:0 16px 0 30px; border:0; border-radius:4px 4px 0 0; background:#355e3b; color:#fff; font-size:20px; font-weight:600; line-height:28px; }
.saito-tourism-filter-toggle::before { content:""; flex:1; height:1px; margin-right:20px; background:rgb(255 255 255 / .5); }
.saito-filter-symbol { display:grid; place-items:center; flex:0 0 24px; width:24px; height:24px; }
.saito-filter-symbol img { grid-area:1/1; flex-shrink:0; }
.saito-tourism-filter [hidden] { display:none; }
.saito-tourism-filter-panel { padding:0 30px 1px; background:rgb(53 94 59 / .05); }
.saito-tourism-filter-row { display:grid; grid-template-columns:134px minmax(0,1fr); align-items:start; padding:30px 0 29px; }
/* Native line 37: 1px dash / 1px gap; semantic rows keep the former border space. */
.saito-filter-tag,.saito-filter-area { position:relative; padding-top:31px; }
.saito-filter-tag::before,.saito-filter-area::before { content:""; position:absolute; left:0; top:.5px; width:100%; height:1px; background:repeating-linear-gradient(to right,#d5c9b9 0 1px,transparent 1px 2px); pointer-events:none; }
.saito-tourism-filter-row h2 { display:flex; align-items:center; gap:10px; margin:0; min-height:36px; font-size:16px; font-weight:600; line-height:24px; }
.saito-tourism-filter-row h2 img { flex-shrink:0; }
.saito-tourism-filter-row ul { display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; list-style:none; }
.saito-tourism-filter-row a { display:block; max-width:100%; min-height:36px; padding:3px 15px; border:1px solid #385132; border-radius:2px; color:#355e3b; font-size:16px; line-height:28px; text-decoration:none; transition:background-color .3s ease-out,color .3s ease-out; }
.saito-tourism-filter-row a:is(:hover,:focus-visible) { color:#fff; background:#355e3b; }
.saito-filter-category a { border-color:#6c2735; color:#6c2735; }
.saito-filter-category a:is(:hover,:focus-visible) { background:#6c2735; }
.saito-filter-area a { border-color:#c1ab48; color:#6a5e27; }
.saito-filter-area a:is(:hover,:focus-visible) { background:#c1ab48; }
.saito-places-archive .saito-tourism-list-layout { display:block; margin-top:50px; }
.saito-places-archive .saito-tourism-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px 30px; }
.saito-places-archive .saito-tourism-card-photo { aspect-ratio:350/263; }
.saito-places-archive .saito-tourism-card :is(h2, h3:where(.saito-member-notice-title)) { margin-top:16px; line-height:32px; }
.saito-places-archive .saito-tourism-card-excerpt { margin-top:11px; }
.saito-places-archive .saito-tourism-card-badges { margin-top:15px; }
.saito-places-archive .saito-tourism-card-photo img { transition:transform .3s ease-out; }
.saito-places-archive .saito-tourism-card:is(:hover,:focus-within) .saito-tourism-card-photo img { transform:scale(1.129035234); }
.saito-places-archive .saito-tourism-card:is(:hover,:focus-within) :is(h2, h3:where(.saito-member-notice-title)) { color:#6c2735; }
.saito-tourism-card-band { position:absolute; top:-5px; left:10px; display:flex; gap:5px; max-width:calc(100% - 20px); align-items:start; }
.saito-tourism-card-band > span { display:flex; flex-direction:column; align-items:center; width:28px; min-height:62px; padding:6px 5px 7px; background:#355e3b; color:#fff; box-shadow:0 4px 4px rgb(0 0 0 / .1607843137); }
.saito-tourism-card-band img { flex-shrink:0; margin-bottom:4px; }
.saito-tourism-card-band a { display:block; white-space:pre-line; text-align:center; font-family:var(--saito-sans); font-size:11px; font-weight:700; line-height:12px; text-decoration:none; }
.saito-places-archive .saito-tourism-list-pagination { margin-top:152.2395px; }
.saito-places-archive .saito-page-bottom { margin-top:-112px; }
@media(max-width:1000px) {
 .saito-tourism-list-layout { column-gap:40px; grid-template-columns:minmax(0,3fr) minmax(150px,1fr); }
 .saito-tourism-cards { gap:30px 20px; }
 .saito-tourism-card :is(h2, h3:where(.saito-member-notice-title)) { font-size:20px; line-height:30px; }
 .saito-tourism-sidebar h2 { font-size:20px; }
 .saito-tourism-filter-row { grid-template-columns:120px minmax(0,1fr); }
 .saito-places-archive .saito-tourism-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
 .saito-tourism-list-layout { grid-template-columns:minmax(0,1fr); }
 .saito-tourism-sidebar { grid-row:3; margin:62px 0 0 5px; padding-top:19px; min-height:354px; width:calc(100% - 5px); }
 .saito-tourism-sidebar h2 { font-size:20px; line-height:22px; }
 .saito-tourism-sidebar h2 span { margin-top:8px; }
 .saito-tourism-sidebar ul { margin-top:13px; }
 .saito-tourism-sidebar li { min-height:44px; font-size:14px; }
 .saito-tourism-sidebar a { padding:8px 0; }
 .saito-tourism-list-pagination { grid-row:2; margin-top:79.25px; }
 .saito-experience-archive .saito-page-bottom { margin-top:-53px; }
 .saito-tourism-filter-row { grid-template-columns:minmax(0,1fr); gap:14px; padding:20px 0; }
 .saito-filter-tag,.saito-filter-area { padding-top:21px; }
}
@media(max-width:600px) {
 .saito-tourism-list-subtitle { left:65.0708px; }
 .saito-experience-heading-art { margin-left:6.000291px; width:31.069972px; height:248.715003px; }
 .saito-experience-archive .saito-tourism-list-heading { margin-bottom:45.534997px; }
 .saito-tourism-cards,.saito-places-archive .saito-tourism-cards { grid-template-columns:minmax(0,1fr); gap:30px; }
 .saito-tourism-card :is(h2, h3:where(.saito-member-notice-title)) { margin-top:15px; font-size:20px; line-height:30px; }
 .saito-tourism-card-excerpt { margin-top:10px; }
 .saito-tourism-card-photo.has-crop-pc { aspect-ratio:4/3; }
 .saito-tourism-card-photo.has-crop-pc img { position:static; width:100%; max-width:100%; height:100%; }
 .saito-tourism-card-photo.has-crop-sp { aspect-ratio:var(--tourism-sp-aspect); }
 .saito-tourism-card-photo.has-crop-sp img { position:absolute; left:var(--tourism-sp-left); top:var(--tourism-sp-top); width:var(--tourism-sp-width); max-width:none; height:auto; }
 .saito-places-archive .saito-tourism-list-heading { margin-bottom:44px; }
 .saito-places-archive .saito-tourism-list-subtitle { left:66px; }
 .saito-tourism-filter.saito-container { width:calc(100% - 40px); border-bottom:0; }
 .saito-tourism-filter-toggle { height:64px; padding:0 13px 0 15px; gap:8px; font-size:18px; }
 .saito-tourism-filter-panel { padding:0 12px 8px 15px; }
 .saito-tourism-filter-toggle::before { margin-right:12px; }
 .saito-tourism-filter-row { padding:23px 0 16px; gap:14px; }
 .saito-filter-tag,.saito-filter-area { padding-top:24px; padding-bottom:17px; gap:12px; }
 .saito-filter-tag::before { top:3.5px; width:calc(100% - 3px); }
 .saito-filter-area::before { left:3px; top:-.5px; width:calc(100% - 8px); }
 .saito-tourism-filter-row.saito-filter-area { padding-top:37px; padding-bottom:12px; gap:17px; }
 .saito-tourism-filter-row h2 { font-size:15px; min-height:24px; gap:10px; }
 .saito-tourism-filter-row a { min-height:34px; padding:2px 15px; font-size:14px; line-height:28px; }
 .saito-tourism-filter-row li { max-width:100%; }
 .saito-places-archive .saito-tourism-list-layout { margin-top:50px; }
 .saito-places-archive .saito-tourism-card { padding-inline:2px 1px; }
 .saito-places-archive .saito-tourism-card :is(h2, h3:where(.saito-member-notice-title)) { margin-top:15px; line-height:30px; }
 .saito-places-archive .saito-tourism-card-excerpt { margin-top:10px; }
 .saito-places-archive .saito-tourism-cards { gap:35px; }
 .saito-places-archive .saito-tourism-list-pagination { margin-top:104px; }
 .saito-places-archive .saito-page-bottom { margin-top:-3px; }
}
@media(prefers-reduced-motion:reduce) {
 .saito-tourism-card :is(h2, h3:where(.saito-member-notice-title)),.saito-tourism-card-photo img,.saito-tourism-sidebar a,.saito-tourism-list-pagination .page-numbers,.saito-tourism-filter-row a { transition:none; }
}

@media(min-width:601px) { .saito-tourism-filter-row h2 > span { position:relative; top:0; } }
@media(max-width:600px) { .saito-tourism-filter-row h2 > span { position:relative; top:-2px; } .saito-tourism-filter-row + .saito-tourism-filter-row h2 > span { top:-3px; } }

@media(max-width:600px) { .saito-places-archive .saito-page-title { margin-left:5px; letter-spacing:2px; } }

.saito-tourism-list-heading:has(.saito-page-title-long) .saito-page-title-wrap { min-width:0; }
.saito-tourism-list-heading:has(.saito-page-title-long) .saito-tourism-list-subtitle,
.saito-tourism-list-heading.has-flow-subtitle .saito-tourism-list-subtitle { position:static; transform:none; white-space:normal; writing-mode:horizontal-tb; min-width:0; max-width:100%; overflow-wrap:anywhere; line-height:18px; }
/* Long English occupies a second full-width row; the native Japanese stays untouched. */
.saito-tourism-list-heading.has-flow-subtitle:not(:has(.saito-page-title-long)) { row-gap:16px; }
.saito-tourism-list-heading.has-flow-subtitle:not(:has(.saito-page-title-long)) .saito-page-title-wrap { display:contents; }
.saito-tourism-list-heading.has-flow-subtitle:not(:has(.saito-page-title-long)) h1 { grid-row:1; grid-column:1; }
.saito-tourism-list-heading.has-flow-subtitle:not(:has(.saito-page-title-long)) .saito-page-title { justify-self:start; }
.saito-tourism-list-heading.has-flow-subtitle:not(:has(.saito-page-title-long)) .saito-page-featured { grid-row:1; grid-column:2; }
.saito-tourism-list-heading.has-flow-subtitle:not(:has(.saito-page-title-long)) .saito-tourism-list-subtitle { grid-row:2; grid-column:1/-1; box-sizing:border-box; padding-inline-end:40px; }
@media(max-width:600px) { .saito-tourism-list-heading.has-flow-subtitle:not(:has(.saito-page-title-long)) .saito-tourism-list-subtitle { padding-inline-end:20px; } }
.saito-places-archive .saito-page-title-long { margin-left:0; letter-spacing:0; }

.saito-places-archive .saito-badge-category { background:none; color:#6c2735; border-color:#6c2735; }
@media(max-width:600px) { .saito-tourism-card-band { left:12px; } }

@media(max-width:600px) { .saito-tourism-filter-toggle > span:first-of-type { position:relative; top:1px; } }

.saito-tourism-filter-source + .saito-tourism-filter-source { margin-top:16px; }
.saito-tourism-source-label { margin:0 0 8px; font-size:12px; line-height:20px; color:#6a5e27; }
