:root { --ink:#17282f; --night:#102027; --paper:#f7f4ee; --mist:#dce8e6; --gold:#e5a34a; --rust:#9f4e39; --moss:#53715c; --line:rgba(23,40,47,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN",sans-serif; font-size:16px; line-height:1.8; }
a { color:inherit; text-decoration:none; }
.site-header { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(20px,5vw,80px); background:var(--paper); }
.brand { display:flex; gap:10px; align-items:center; font-weight:700; letter-spacing:.08em; }
.brand-mark { display:block; width:28px; height:28px; flex:0 0 28px; border-radius:9px; background:url("brand-mark.svg?v=20260929-2") center/contain no-repeat; font-size:0; }
nav { display:flex; gap:25px; font-size:.88rem; } nav a { border-bottom:1px solid transparent; } nav a:hover { border-color:var(--ink); }
.hero { min-height:270px; position:relative; color:#fff; display:grid; align-items:center; overflow:hidden; }
.hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,20,25,.70),rgba(8,20,25,.20) 60%,rgba(8,20,25,.05)); }
.hero-copy { position:relative; z-index:1; width:min(1120px,90vw); margin:auto; padding:54px 0; }
.eyebrow,.section-kicker { margin:0 0 15px; font-size:.72rem; font-weight:700; letter-spacing:.16em; }
.hero h1 { margin:0; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:clamp(2rem,4.2vw,3.65rem); line-height:1.25; font-weight:400; letter-spacing:.04em; }
.hero-copy > p:not(.eyebrow) { margin:25px 0 32px; font-size:1.08rem; line-height:1.9; }
.button { display:inline-block; padding:13px 21px; border:1px solid currentColor; font-weight:700; font-size:.9rem; transition:.2s; }.button:hover { background:#fff; color:var(--ink); }
.image-caption { position:absolute; right:24px; bottom:14px; z-index:1; margin:0; font-size:.7rem; opacity:.8; }
.home-banner { min-height:108px; display:flex; align-items:center; color:#fff; background:linear-gradient(90deg,rgba(8,20,25,.63),rgba(8,20,25,.18)),url("hero-onsen.png") center 56%/cover no-repeat; }
.home-banner-copy { width:min(1440px,96vw); margin:0 auto; padding:14px 0; }
.home-banner-copy > p { margin:0 0 1px; font-size:.58rem; font-weight:700; letter-spacing:.17em; opacity:.88; }
.home-banner h1 { margin:0; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:clamp(1.35rem,2.4vw,2rem); line-height:1.3; font-weight:400; letter-spacing:.04em; }
.section-shell { width:min(1120px,90vw); margin:0 auto; }
.top-features { padding:22px 0 28px; }
.top-features-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.top-features-heading h2 { margin:0; font-size:1rem; font-weight:700; }
.top-features-heading a { color:#607177; font-size:.8rem; font-weight:700; }
.top-feature-rail { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.top-feature-card { min-height:112px; display:flex; flex-direction:column; justify-content:flex-end; gap:3px; padding:14px 16px; border-radius:8px; color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.55); background-size:cover; background-position:center; box-shadow:0 4px 14px rgba(16,32,39,.12); }
.top-feature-card span { font-size:.7rem; font-weight:700; }
.top-feature-card strong { font-size:1rem; }
.top-feature-card.col-onsen { background-image:linear-gradient(0deg,rgba(8,20,25,.7),rgba(8,20,25,.05)),url("hero-onsen.png"); }
.top-feature-card.col-pray { background-image:linear-gradient(0deg,rgba(8,20,25,.7),rgba(8,20,25,.05)),url("travel-scenes-sheet.png"); background-size:cover,300% 200%; background-position:center,0 0; }
.top-feature-card.col-gourmet { background-image:linear-gradient(0deg,rgba(8,20,25,.7),rgba(8,20,25,.05)),url("regional-gourmet-v1.png"); background-size:cover,300% 200%; background-position:center,0 100%; }
.top-feature-card.col-season { background-image:linear-gradient(0deg,rgba(8,20,25,.7),rgba(8,20,25,.05)),url("seasonal-scenes-v1.png"); background-size:cover,300% 200%; background-position:center,50% 0; }
.home-dashboard { width:min(1440px,96vw); margin:0 auto 48px; display:grid; grid-template-columns:minmax(255px,310px) minmax(0,1fr); gap:clamp(22px,3vw,44px); align-items:start; }
.search-sidebar { min-width:0; }
.home-main-column { min-width:0; }
.home-main-column .top-features { width:100%; margin:0; padding:0 0 22px; }
.home-main-column .top-feature-rail { grid-template-columns:repeat(4,minmax(0,1fr)); }
.home-main-column .top-feature-card { min-height:148px; aspect-ratio:4/3; padding:12px; }
.home-dashboard .search { padding:18px 0 28px; border-top:0; }
.home-dashboard .section-heading { margin-bottom:18px; }
.home-dashboard .section-heading h2 { font-size:1.65rem; }
.home-dashboard .section-heading > p { display:none; }
.home-dashboard .search-panel { padding:16px; }
.home-dashboard .search-fields { grid-template-columns:1fr; gap:12px; }
.home-dashboard .search-fields-detail { margin-bottom:18px; }
.visual-picker-detail { margin:0 0 16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:10px 0; }
.visual-picker-detail summary { color:#48606a; font-size:.83rem; font-weight:700; cursor:pointer; }
.visual-picker-detail[open] summary { margin-bottom:14px; }
.home-dashboard .visual-picker { gap:18px; margin-bottom:0; }
.home-dashboard .japan-map-picker { padding:8px; }
.home-dashboard .japan-map-canvas { min-height:150px; }
.home-dashboard .picker-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
.home-dashboard .picker-tiles .picker-tile { min-height:95px; }
.home-dashboard .picker-tiles.picker-tiles-budget { grid-template-columns:repeat(2,minmax(0,1fr)); }
.home-dashboard .search-actions { gap:8px; margin-top:16px; padding-top:14px; }
.home-dashboard .search-actions .button { padding:9px 11px; font-size:.8rem; }
.home-dashboard .search-results { margin-top:0; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.home-dashboard .result-card { padding:11px; }
.home-dashboard .result-card img { margin-bottom:10px; }
.home-dashboard .result-card h3 { font-size:1rem; }
.home-dashboard .result-price { font-size:1.2rem; }
.home-dashboard .result-desc { font-size:.82rem; }
/* 検索とテーマ選択を左の案内レールにまとめ、宿と記事を広く見せる */
.home-dashboard { grid-template-columns:minmax(275px,320px) minmax(0,1fr); gap:clamp(24px,3vw,44px); }
.search-sidebar { position:sticky; top:16px; max-height:calc(100vh - 32px); overflow-y:auto; scrollbar-width:thin; padding-right:8px; }
.home-dashboard .visual-picker-detail { margin-top:6px; }
.home-dashboard .visual-picker-detail > summary { line-height:1.45; }
.discovery-sidebar { width:100%; margin:16px 0 0; padding:14px 10px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.52); }
.discovery-sidebar > section { width:100%; margin:0; padding:20px 0; border-top:1px solid var(--line); }
.discovery-sidebar > section:first-child { border-top:0; padding-top:0; }
.discovery-sidebar .section-heading { display:block; margin:0 0 12px; }
.discovery-sidebar .section-heading h2 { font-family:inherit; font-size:1rem; font-weight:700; }
.discovery-sidebar .section-heading .section-kicker { margin-bottom:3px; font-size:.58rem; }
.discovery-sidebar .section-heading > p { display:none; }
.discovery-sidebar .choice-links { display:grid; grid-template-columns:1fr; gap:4px; }
.discovery-sidebar .choice-link,.discovery-sidebar .editor-choices .choice-link { min-height:38px; width:100%; padding:3px 7px; gap:9px; border-radius:9px; background:transparent; font-size:.82rem; }
.discovery-sidebar .choice-link:hover { background:#fff; }
.discovery-sidebar .choice-link svg { flex-basis:30px; width:30px; height:30px; padding:5px; }
.intro { padding:110px 0; }.intro-grid,.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(35px,9vw,150px); }.intro h2,.about h2 { margin:0; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:clamp(2rem,4vw,3.2rem); line-height:1.4; font-weight:400; }.intro p { margin-top:0; }.muted { color:#607177; font-size:.9rem; }
.themes { padding:80px 0 110px; border-top:1px solid var(--line); }.section-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:36px; }.section-heading h2 { margin:0; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:2.35rem; line-height:1.25; font-weight:400; }.section-heading > p { max-width:340px; margin:0; color:#607177; font-size:.9rem; }
.theme-grid { display:grid; grid-template-columns:repeat(3,1fr); }.theme-card { min-height:220px; padding:25px; border:1px solid var(--paper); transition:transform .2s; }.theme-card:hover { transform:translateY(-4px); }.theme-card span { display:block; font-size:.75rem; opacity:.75; }.theme-card h3 { margin:55px 0 5px; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:1.5rem; font-weight:400; }.theme-card p { margin:0; font-size:.84rem; line-height:1.6; }.deep { background:#23363d;color:#fff; }.pale { background:#d5e2dd; }.rust { background:#b35b42;color:#fff; }.moss { background:#6d8065;color:#fff; }.sand { background:#e9d9b8; }.blue { background:#9bbcc2;color:#fff; }
.guides { padding:90px 0 120px; }.feature-card { display:grid; grid-template-columns:42% 1fr; background:#fff; min-height:410px; }.feature-visual { display:grid; place-items:center; background:linear-gradient(145deg,#29454c,#95bab6); color:#f5d199; }.feature-visual p { font-family:Georgia,serif; line-height:1; font-size:2.7rem; letter-spacing:.08em; }.feature-content { padding:clamp(30px,5vw,75px); }.meta { margin:0; color:#75888d; font-size:.75rem; letter-spacing:.08em; }.feature-content h3 { margin:23px 0; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:clamp(1.7rem,3vw,2.45rem); font-weight:400; line-height:1.45; }.feature-content p:not(.meta) { color:#52646a; }.text-link { font-weight:700; border-bottom:1px solid var(--ink); }
.about { background:var(--night); color:#ecf2ef; padding:95px 0; }.about p { margin-top:0; }.about .muted { color:#afc0bd; }
footer { display:flex; justify-content:space-between; gap:20px; padding:25px 5vw; background:#0b161b; color:#b9c8c5; font-size:.75rem; }
.article-shell { width:min(760px,90vw); margin:0 auto; padding:100px 0 120px; }.article-shell h1 { margin:0 0 24px; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:clamp(2.2rem,5vw,4rem); font-weight:400; line-height:1.35; }.article-lead { color:#53676e; font-size:1.08rem; }.article-note { margin:36px 0 56px; padding:15px 18px; background:#e3ece8; color:#486068; font-size:.84rem; }.article-shell article h2 { margin:56px 0 18px; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:1.75rem; font-weight:400; line-height:1.45; }.article-shell article a { color:#8b421f; text-decoration:underline; text-underline-offset:4px; }
.article-shell article strong { color:#263f43; font-weight:700; text-decoration:underline; text-decoration-color:#d7b36a; text-decoration-thickness:2px; text-underline-offset:3px; }
.catalog-switch { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:18px 0 0; padding:10px 13px; border:1px solid #d9d6ce; border-radius:10px; background:#fff; color:#34494d; font-size:.88rem; }
.catalog-switch label { display:flex; align-items:center; gap:9px; cursor:pointer; font-weight:600; }
.catalog-switch input { width:17px; height:17px; accent-color:#286e68; }
.catalog-switch span { color:#728084; font-size:.78rem; }
  .catalog-switch:focus-within { outline:2px solid #286e68; outline-offset:2px; }
.article-hotel-photo { max-width:680px; margin:14px 0 26px; }
.article-hotel-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:56px 0 18px; }
.article-shell article .article-hotel-heading h2 { flex:1; min-width:0; margin:0; }
.article-hotel-price { display:flex; align-items:baseline; gap:8px; flex:0 0 auto; margin:0; color:#52656b; white-space:nowrap; }
.article-hotel-price span { font-size:.78rem; }
.article-hotel-price strong { color:#a34e25; font-size:1.25rem; font-weight:700; }
.article-hotel-photo a { display:block; overflow:hidden; border-radius:10px; line-height:0; }
.article-hotel-photo a:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.article-hotel-photo img { display:block; width:100%; height:auto; background:#e8e5df; }
@media (max-width:600px) { .article-hotel-heading { align-items:flex-start; flex-direction:column; gap:5px; margin-top:42px; } }

/* --- 検索セクション --- */
.search { padding:70px 0 90px; border-top:1px solid var(--line); }
.search-panel { background:#fff; border:1px solid var(--line); padding:clamp(20px,4vw,40px); }
.search-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.field { display:flex; flex-direction:column; gap:8px; min-width:0; }
.field-label { font-size:.78rem; font-weight:700; letter-spacing:.08em; color:#48606a; }
.field select { appearance:none; -webkit-appearance:none; padding:11px 36px 11px 12px; border:1px solid var(--line); border-radius:0; background:#fbfaf7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2348606a' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center; font:inherit; font-size:.92rem; color:var(--ink); cursor:pointer; }
.field select:focus-visible { outline:2px solid var(--gold); outline-offset:1px; }
.field select:hover { border-color:#48606a; }
.conditions { grid-column:1 / -1; border:0; padding:0; margin:0; }
.condition-options { display:flex; flex-wrap:wrap; gap:10px 22px; }
.condition-options label { display:flex; align-items:center; gap:8px; font-size:.92rem; cursor:pointer; }
.condition-options input { width:18px; height:18px; accent-color:var(--moss); cursor:pointer; }
.condition-options input:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.visual-picker { display:flex; flex-direction:column; gap:24px; margin-bottom:30px; }
.picker-group { display:flex; flex-direction:column; gap:10px; }
.picker-label { margin:0; font-size:.78rem; font-weight:700; letter-spacing:.08em; color:#48606a; }
.picker-tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(108px,1fr)); gap:10px; }
.picker-tiles .picker-tile { position:relative; min-height:132px; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-end; gap:0; padding:0; overflow:hidden; background:#fbfaf7; border:1px solid var(--line); border-radius:0; font:inherit; font-size:.8rem; color:var(--ink); cursor:pointer; text-align:center; line-height:1.3; isolation:isolate; }
.picker-tiles .picker-tile > span:last-child { position:relative; z-index:1; min-height:34px; display:grid; place-items:center; padding:7px 7px; font-weight:700; background:rgba(255,253,248,.94); border-top:1px solid rgba(38,57,64,.1); }
.picker-photo { position:absolute; inset:0 0 34px; z-index:-1; background-repeat:no-repeat; background-size:300% 200%; transition:transform .25s ease; }
.picker-tiles .picker-tile:hover .picker-photo { transform:scale(1.035); }
.picker-tiles .picker-tile:hover { border-color:#48606a; }
.picker-tiles .picker-tile:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.picker-tiles .picker-tile.is-selected { border-color:var(--gold); box-shadow:inset 0 0 0 3px var(--gold); }
.picker-tiles .picker-tile.is-selected > span:last-child { background:#fff4d7; }
.photo-region-1,.photo-region-2,.photo-region-3,.photo-region-4,.photo-region-5,.photo-region-6 { background-image:url("picker-icons-regions-v2.png"); }
.photo-companion-1,.photo-companion-2,.photo-companion-3,.photo-companion-4,.photo-companion-5,.photo-companion-6 { background-image:url("picker-icons-companions-v3.png"); }
.photo-purpose-1,.photo-purpose-2,.photo-purpose-3,.photo-purpose-4,.photo-purpose-5,.photo-purpose-6 { background-image:url("picker-icons-purposes-v2.png"); }
.photo-region-1,.photo-companion-1,.photo-purpose-1 { background-position:0 0; }
.photo-region-2,.photo-companion-2,.photo-purpose-2 { background-position:50% 0; }
.photo-region-3,.photo-companion-3,.photo-purpose-3 { background-position:100% 0; }
.photo-region-4,.photo-companion-4,.photo-purpose-4 { background-position:0 100%; }
.photo-region-5,.photo-companion-5,.photo-purpose-5 { background-position:50% 100%; }
.photo-region-6,.photo-companion-6,.photo-purpose-6 { background-position:100% 100%; }
.picker-tiles.picker-tiles-budget { grid-template-columns:repeat(4,minmax(0,132px)); max-width:558px; gap:8px; }
.picker-tiles .picker-budget-tile { min-height:46px; justify-content:center; padding:0; background:#fffdfa; font-size:.84rem; }
.picker-tiles .picker-budget-tile > span:last-child { min-height:0; padding:0 8px; background:transparent; border-top:0; }
.picker-tiles .picker-budget-tile.is-selected > span:last-child { background:#fff4d7; }
.japan-map-picker { max-width:560px; border:1px solid var(--line); background:linear-gradient(135deg,#fdfcf8,#f4f7f5); padding:12px 16px 12px; }
.japan-map-canvas { min-height:260px; display:grid; place-items:center; color:#587079; font-size:.82rem; }
.japan-map-canvas svg { display:block; width:100%; height:auto; max-height:360px; }
.japan-map-canvas .map-prefecture { cursor:pointer; stroke-width:0 !important; transition:fill .18s ease,filter .18s ease; outline:none; }
.japan-map-canvas .map-region-0 { fill:#a9c8de !important; stroke:#a9c8de !important; }
.japan-map-canvas .map-region-1 { fill:#b8d6a8 !important; stroke:#b8d6a8 !important; }
.japan-map-canvas .map-region-2 { fill:#f0cf91 !important; stroke:#f0cf91 !important; }
.japan-map-canvas .map-region-3 { fill:#e8afa7 !important; stroke:#e8afa7 !important; }
.japan-map-canvas .map-region-4 { fill:#c9b6dc !important; stroke:#c9b6dc !important; }
.japan-map-canvas .map-region-5 { fill:#a9d5c8 !important; stroke:#a9d5c8 !important; }
.japan-map-canvas .map-prefecture:hover,.japan-map-canvas .map-prefecture:focus { filter:brightness(.91) drop-shadow(0 2px 2px rgba(30,54,60,.18)); }
.japan-map-canvas .map-prefecture.is-selected { fill:#d85f48 !important; stroke:#d85f48 !important; }
.japan-map-canvas .map-prefecture:focus-visible { stroke:#c88a2c !important; stroke-width:8 !important; }
.map-selection { display:table; margin:0 auto; padding:7px 14px; border-radius:999px; background:#eef3f1; color:#315f5a; font-size:.83rem; font-weight:700; }
.search-fields-detail { margin-bottom:26px; border-top:1px solid var(--line); padding-top:18px; }
.search-fields-detail summary { cursor:pointer; font-size:.86rem; font-weight:700; color:#48606a; letter-spacing:.03em; }
.search-fields-detail summary::marker { color:var(--gold); }
.search-fields-detail[open] summary { margin-bottom:18px; }
.search-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.button-ghost { background:transparent; color:var(--ink); cursor:pointer; font:inherit; }
.button-ghost:hover { background:var(--night); color:#fff; }
.button-ghost:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
#ai-consult { color:#75888d; }
.ai-note { margin:12px 0 0; }
.search-results { margin-top:30px; display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.search-results .result-count { grid-column:1 / -1; }
.search-empty { grid-column:1 / -1; margin:0; padding:26px 20px; background:#edf2ee; color:#52646a; font-size:.92rem; }
.result-count { grid-column:1 / -1; margin:0; color:#607177; font-size:.82rem; }
.result-more { grid-column:1 / -1; justify-self:center; min-width:min(280px,100%); margin:8px 0 12px; padding:13px 20px; border:1px solid var(--night); background:var(--night); color:#fff; font:inherit; font-size:.9rem; font-weight:700; cursor:pointer; }
.result-more:hover { background:#29454c; }
.result-more:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.result-card { min-width:0; overflow:hidden; background:#fff; border:1px solid var(--line); padding:20px 22px; }
.result-card img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; margin:0 0 16px; }
.result-card h3 { margin:0; color:#17343c; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:1.22rem; font-weight:600; letter-spacing:.01em; }
.result-main-link { display:block; color:inherit; text-decoration:none; border-radius:7px; }
.result-main-link:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.result-main-link:hover h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.result-location { margin:8px 0 0; color:#52646a; font-size:.83rem; font-weight:700; }
.result-price { display:flex; align-items:baseline; gap:5px; margin:3px 0 0; color:var(--rust); font-size:1.38rem; font-weight:800; line-height:1.35; font-variant-numeric:tabular-nums; }
.result-price > span { font-size:1rem; }
.result-desc { margin:8px 0 0; color:#52646a; font-size:.88rem; line-height:1.6; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.result-links { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.result-card .hotel-link { display:inline-block; font-size:.86rem; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.result-card .hotel-link-primary { color:var(--night); }
.result-card .hotel-link-secondary { width:max-content; max-width:100%; padding:0; border-radius:0; background:transparent; color:#52646a; font-size:.78rem; font-weight:400; text-align:left; text-decoration:underline; text-decoration-color:#aeb9ba; text-underline-offset:3px; }
.result-card .hotel-link-secondary:hover { background:transparent; color:var(--night); text-decoration-color:currentColor; }
@media (max-width:700px) {
  .site-header { height:64px; padding:0 18px; }
  .brand { white-space:nowrap; }
  .site-header nav { display:none; }
  .hero { min-height:220px; }
  .hero-copy { padding:32px 0; }
  .home-banner { min-height:82px; background-position:center 56%; }
  .home-banner-copy { width:calc(100% - 36px); }
  .top-features { padding:16px 0 22px; }
  .top-feature-rail { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:10px; padding:2px 2px 10px; }
  .top-feature-card { flex:0 0 72%; min-height:118px; scroll-snap-align:start; }
  .search { padding:50px 0 70px; }
  .search-fields { grid-template-columns:1fr; gap:18px; }
  .condition-options { gap:10px 16px; }
  .visual-picker { gap:20px; margin-bottom:22px; }
  .picker-tiles, .picker-tiles-map { grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:8px; }
  .picker-tiles.picker-tiles-budget { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; }
  .picker-tile { min-height:102px; }
  .search-actions { margin-top:20px; padding-top:18px; }
  .search-results { grid-template-columns:1fr; }
}
@media (max-width:980px) {
  .home-dashboard { grid-template-columns:minmax(235px,285px) minmax(0,1fr); gap:18px; }
  .discovery-sidebar { width:min(100% - 28px,760px); }
  .discovery-sidebar > section { padding:16px 0; }
  .discovery-sidebar .choice-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 10px; }
}
@media (max-width:700px) {
  .home-dashboard { display:flex; flex-direction:column; width:min(100% - 28px,560px); }
  .search-sidebar { position:static; width:100%; max-height:none; overflow:visible; padding:0; }
  .home-main-column { width:100%; }
  .discovery-sidebar { width:min(100% - 28px,560px); padding:18px 14px; }
  .discovery-sidebar .choice-links { grid-template-columns:1fr; }
}

@media (min-width:901px) and (max-width:1150px) {
  .home-main-column .top-feature-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-dashboard .top-feature-card { aspect-ratio:16/10; min-height:130px; }
  .home-dashboard .search-results { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .home-dashboard { display:flex; flex-direction:column; gap:24px; width:min(1120px,90vw); }
  .home-main-column { order:1; width:100%; }
  .search-sidebar { order:2; width:100%; }
  .home-main-column .top-feature-rail { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:10px; padding:2px 2px 10px; }
  .home-main-column .top-feature-card { flex:0 0 min(260px,72vw); min-height:150px; aspect-ratio:4/3; scroll-snap-align:start; }
  .home-dashboard .search-results { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) { .home-dashboard .search-results { grid-template-columns:1fr; } }

/* 写真を主役にした旅テーマカード */
.theme-card.photo-theme { position:relative; isolation:isolate; overflow:hidden; color:#fff; background:#263c41; }
.theme-card.photo-theme::before,.theme-card.photo-theme::after { content:""; position:absolute; inset:0; pointer-events:none; }
.theme-card.photo-theme::before { z-index:-2; background-image:url("travel-scenes-sheet.png"); background-repeat:no-repeat; background-size:300% auto; transition:transform .45s ease; }
.theme-card.photo-theme::after { z-index:-1; background:linear-gradient(180deg,rgba(8,20,25,.12) 0%,rgba(8,20,25,.12) 28%,rgba(8,20,25,.76) 100%); }
.theme-card.photo-theme:hover::before { transform:scale(1.045); }
.theme-card.photo-theme > * { position:relative; }
.theme-photo-1::before { background-position:0 18%; }
.theme-photo-2::before { background-position:50% 18%; }
.theme-photo-3::before { background-position:100% 18%; }
.theme-photo-4::before { background-position:50% 75%; }
.theme-photo-5::before { background-position:100% 75%; }
.theme-photo-6::before { background-position:0 75%; }
.theme-card.photo-theme.theme-photo-7::before,.theme-card.photo-theme.theme-photo-8::before,.theme-card.photo-theme.theme-photo-9::before { background-image:url("travel-scenes-grid-v1.png"); background-size:300% 300%; }
.theme-card.photo-theme.theme-photo-7::before { background-position:50% 50%; }
.theme-card.photo-theme.theme-photo-8::before { background-position:100% 50%; }
.theme-card.photo-theme.theme-photo-9::before { background-position:100% 100%; }

/* 公開済みガイドにも旅の写真を添え、テーマ名だけの一覧に見えないようにする */
.feature-card { overflow:hidden; }
.feature-visual { position:relative; isolation:isolate; min-height:260px; overflow:hidden; background-image:linear-gradient(180deg,rgba(8,20,25,.08),rgba(8,20,25,.48)),url("travel-scenes-grid-v1.png"); background-size:cover,300% 300%; background-repeat:no-repeat; color:#fff; }
.feature-visual::after { content:"旅のイメージ"; position:absolute; right:14px; bottom:12px; padding:2px 9px; border-radius:2px; background:rgba(16,32,39,.78); color:#fff; font:600 .68rem/1.7 "Yu Gothic UI","Hiragino Kaku Gothic ProN",sans-serif; letter-spacing:.04em; }
.feature-visual p { position:relative; z-index:1; margin:0; padding:12px 18px; background:rgba(16,32,39,.48); color:#fff; font:600 clamp(1.2rem,2.3vw,2rem)/1.4 "Yu Gothic UI","Hiragino Kaku Gothic ProN",sans-serif; letter-spacing:.04em; text-align:center; text-shadow:0 1px 4px rgba(0,0,0,.7); }
.feature-card:nth-child(9n+1) .feature-visual { background-position:center,0 0; }
.feature-card:nth-child(9n+2) .feature-visual { background-position:center,50% 0; }
.feature-card:nth-child(9n+3) .feature-visual { background-position:center,100% 0; }
.feature-card:nth-child(9n+4) .feature-visual { background-position:center,0 50%; }
.feature-card:nth-child(9n+5) .feature-visual { background-position:center,50% 50%; }
.feature-card:nth-child(9n+6) .feature-visual { background-position:center,100% 50%; }
.feature-card:nth-child(9n+7) .feature-visual { background-position:center,0 100%; }
.feature-card:nth-child(9n+8) .feature-visual { background-position:center,50% 100%; }
.feature-card:nth-child(9n) .feature-visual { background-position:center,100% 100%; }
.japan-map-canvas { min-height:260px; }
.japan-map-canvas svg { max-width:390px; }
.japan-map-canvas #prefecture-borders { stroke:#465b60; stroke-width:5; }
@media (prefers-reduced-motion:reduce) { .theme-card.photo-theme::before { transition:none; } .theme-card.photo-theme:hover::before { transform:none; } }

/* ガイド写真はCSS背景ではなく実画像として表示し、全記事一覧は見つけやすいカードにする */
.feature-visual { display:block; min-height:0; aspect-ratio:3 / 2; background:#d9e3df; }
.feature-visual::after { content:none; }
.feature-visual .feature-photo { display:block; width:100%; height:100%; min-height:0; object-fit:cover; }
.feature-photo-label { position:absolute; right:12px; bottom:10px; z-index:1; padding:3px 8px; border-radius:3px; background:rgba(16,32,39,.76); color:#fff; font-size:.68rem; }
.feature-content { min-width:0; }
.guides-all-link { white-space:nowrap; }
.about-page { max-width:860px; padding-block:clamp(56px,9vw,110px); }
.about-page h1,.guides-page h1 { margin:.15em 0 .7em; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:clamp(2rem,5vw,3.4rem); font-weight:400; }
.about-lead { margin:0 0 3.5rem; color:#52646a; font-size:1.12rem; }
.about-page section { padding:1.5rem 0; border-top:1px solid #d9dfdc; }
.about-page section h2 { margin:0 0 .7rem; font-size:1.12rem; }
.about-page section p { color:#52646a; }
.about-back { margin-top:2rem; }
.guides-page { padding-block:clamp(48px,7vw,90px); }
.guides-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.guides-list .feature-card { display:flex; min-width:0; flex-direction:column; min-height:0; border-radius:8px; box-shadow:0 5px 22px rgba(20,40,44,.08); }
.guides-list .feature-visual { width:100%; }
.guides-list .feature-content { padding:20px; }
.guides-list .feature-content h3 { margin:12px 0; font-size:1.24rem; }
.guides-list .feature-content p:not(.meta) { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.guides:not(.guides-page) #published-guides { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }

/* 特集は宿カードと見分けやすい、写真付きの小さな入口カード */
.home-main-column .top-feature-rail { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; overflow:visible; padding:0; }
.home-main-column .top-feature-rail .feature-topic { min-width:0; min-height:62px; display:flex; align-items:center; gap:9px; padding:7px 10px; border:1px solid #e1e3dd; border-radius:10px; background:#fff; color:var(--ink); box-shadow:0 2px 7px rgba(16,32,39,.055); text-shadow:none; overflow:hidden; transition:border-color .18s ease,box-shadow .18s ease; }
.home-main-column .top-feature-rail .feature-topic-photo { display:block; flex:0 0 66px; width:66px; height:44px; border-radius:6px; background-color:#e8ece8; background-repeat:no-repeat; }
.home-main-column .top-feature-rail .feature-topic > span:last-child { min-width:0; overflow:hidden; color:#18343a; font-size:.84rem; font-weight:700; line-height:1.35; text-overflow:ellipsis; white-space:normal; }
.home-main-column .top-feature-rail .feature-topic:hover { border-color:#9caaa4; box-shadow:0 4px 12px rgba(16,32,39,.11); }
.feature-topic-1 .feature-topic-photo { background-image:url("hero-onsen.png"); background-position:center 54%; background-size:cover; }
.feature-topic-2 .feature-topic-photo { background-image:url("travel-scenes-grid-v1.png"); background-size:300% 300%; background-position:100% 100%; }
.feature-topic-3 .feature-topic-photo { background-image:url("regional-gourmet-v1.png"); background-size:300% 200%; background-position:0 0; }
.feature-topic-4 .feature-topic-photo { background-image:url("seasonal-scenes-v1.png"); background-size:300% 200%; background-position:50% 0; }
.feature-topic-5 .feature-topic-photo { background-image:url("travel-scenes-grid-v1.png"); background-size:300% 300%; background-position:0 0; }
.feature-topic-6 .feature-topic-photo { background-image:url("picker-companions.png"); background-size:300% 200%; background-position:50% 0; }
.feature-topic-7 .feature-topic-photo { background-image:url("picker-companions.png"); background-size:300% 200%; background-position:100% 0; }
.feature-topic-8 .feature-topic-photo { background-image:url("picker-companions.png"); background-size:300% 200%; background-position:0 100%; }
.feature-topic-9 .feature-topic-photo { background-image:url("picker-companions.png"); background-size:300% 200%; background-position:50% 100%; }
.feature-topic-10 .feature-topic-photo { background-image:url("picker-companions.png"); background-size:300% 200%; background-position:100% 100%; }
.feature-topic-11 .feature-topic-photo { background-image:url("travel-scenes-grid-v1.png"); background-size:300% 300%; background-position:100% 0; }
.home-main-column .top-feature-rail .feature-topic:focus-visible { outline:3px solid #447a70; outline-offset:3px; }

/* ガイド写真を確実に画像面いっぱいに表示 */
.feature-visual { position:relative; }
.feature-image-link { position:absolute; inset:0; z-index:1; display:block; }
.feature-image-link:focus-visible,.feature-copy-link:focus-visible { outline:3px solid #447a70; outline-offset:-3px; }
.feature-copy-link { display:block; color:inherit; text-decoration:none; }
.feature-copy-link:hover h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.feature-image-link:hover .feature-photo { filter:brightness(.94); }
.feature-photo-label { pointer-events:none; }
.feature-visual .feature-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media (max-width:900px) {
  .home-main-column .top-feature-rail { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .home-main-column .top-feature-rail .feature-topic { min-height:58px; }
}
@media (max-width:700px) {
  .home-main-column .top-feature-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-main-column .top-feature-rail .feature-topic { min-height:56px; padding:6px; gap:7px; }
  .home-main-column .top-feature-rail .feature-topic-photo { flex-basis:58px; width:58px; height:40px; }
  .home-main-column .top-feature-rail .feature-topic > span:last-child { font-size:.76rem; }
}
@media (prefers-reduced-motion:reduce) {
  .home-main-column .top-feature-rail .feature-topic { transition:none; }
  .home-main-column .top-feature-rail .feature-topic:hover { transform:none; }
}
.guides:not(.guides-page) #published-guides .feature-card { display:flex; min-width:0; min-height:0; flex-direction:column; border-radius:8px; box-shadow:0 5px 22px rgba(20,40,44,.08); }
.guides:not(.guides-page) #published-guides .feature-content { padding:18px; }
.guides:not(.guides-page) #published-guides .feature-content h3 { margin:11px 0; font-size:1.2rem; }
.guides:not(.guides-page) #published-guides .feature-content p:not(.meta) { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
@media (max-width:800px) { .guides-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } }
@media (max-width:520px) { .guides-list { grid-template-columns:1fr; } .guides-list .feature-card { display:grid; grid-template-columns:38% minmax(0,1fr); } .guides-list .feature-content { padding:14px; } .guides-list .feature-content h3 { font-size:1.05rem; } }
@media (max-width:800px) { .guides:not(.guides-page) #published-guides { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } }
@media (max-width:520px) { .guides:not(.guides-page) #published-guides { grid-template-columns:1fr; } }

/* ホーム上部は大きなヒーローを置かず、ナビ直下から特集と宿を見せる */
.site-header { min-height:62px; height:auto; padding-top:8px; padding-bottom:8px; }
.home-dashboard { margin-top:14px; }
.topic-icon-library { position:absolute; width:0; height:0; overflow:hidden; }
.home-main-column .top-features { padding-bottom:16px; }
.home-main-column .top-feature-rail { gap:9px; }
.home-main-column .top-feature-rail .feature-topic { min-height:56px; gap:10px; padding:6px 10px; border-radius:12px; }
.home-main-column .top-feature-rail .feature-topic-icon { display:block; flex:0 0 40px; width:40px; height:40px; padding:6px; border-radius:12px; fill:none; stroke:currentColor; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
.feature-topic-1 .feature-topic-icon { color:#317d78; background:#e4f1eb; }
.feature-topic-2 .feature-topic-icon { color:#a34d3e; background:#f8e9de; }
.feature-topic-3 .feature-topic-icon { color:#bd7134; background:#fbefda; }
.feature-topic-4 .feature-topic-icon { color:#527d57; background:#eaf0dc; }
.feature-topic-5 .feature-topic-icon { color:#586f91; background:#e8edf6; }
.feature-topic-6 .feature-topic-icon { color:#a75672; background:#f6e8ed; }
.feature-topic-7 .feature-topic-icon { color:#487c87; background:#e4f0f1; }
.feature-topic-8 .feature-topic-icon { color:#526c9a; background:#e8ecf5; }
.feature-topic-9 .feature-topic-icon { color:#8a6a3b; background:#f3ecdc; }
.feature-topic-10 .feature-topic-icon { color:#66824b; background:#edf2e2; }
.feature-topic-11 .feature-topic-icon { color:#726092; background:#eee9f5; }
.home-main-column .top-feature-rail .feature-topic > span:last-child { font-size:.82rem; }
@media (max-width:700px) {
  .site-header { display:flex; flex-wrap:wrap; gap:2px 14px; min-height:0; padding:8px 14px 5px; }
  .site-header nav { display:flex; width:100%; gap:18px; overflow-x:auto; padding:2px 0 5px; font-size:.76rem; white-space:nowrap; scrollbar-width:none; }
  .site-header nav::-webkit-scrollbar { display:none; }
  .home-dashboard { margin-top:8px; }
  .home-main-column .top-feature-rail .feature-topic { min-height:52px; padding:5px 7px; gap:7px; }
  .home-main-column .top-feature-rail .feature-topic-icon { flex-basis:36px; width:36px; height:36px; padding:5px; border-radius:10px; }
  .home-main-column .top-feature-rail .feature-topic > span:last-child { font-size:.73rem; }
}

/* タブレット幅でも検索とテーマの案内を左カラムに保つ */
@media (min-width:701px) and (max-width:900px) {
  .home-dashboard { display:grid; grid-template-columns:minmax(215px,31%) minmax(0,1fr); gap:16px; }
  .search-sidebar,.home-main-column { order:initial; width:auto; }
  .home-dashboard .search-results { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .discovery-sidebar .choice-links { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .home-dashboard { display:flex; flex-direction:column; }
  .search-sidebar { order:0; }
  .home-main-column { order:1; }
}

/* サイドバー内の選択をアイコン化し、案内群は折りたたんで縦長を防ぐ */
.discovery-sidebar { display:block; background:#fff; border-color:#aebfbd; }
.discovery-sidebar .discovery-group { width:100%; margin:0; border-top:1px solid #d4ddda; }
.discovery-sidebar .discovery-group:first-child { border-top:0; }
.discovery-sidebar .discovery-group > summary { min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 7px; color:#1d343a; font-size:.86rem; font-weight:800; line-height:1.35; cursor:pointer; list-style:none; }
.discovery-sidebar .discovery-group > summary::-webkit-details-marker { display:none; }
.discovery-sidebar .discovery-group > summary::after { content:"＋"; flex:0 0 22px; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; color:#294b4d; background:#e2efeb; font-size:.9rem; }
.discovery-sidebar .discovery-group[open] > summary::after { content:"−"; color:#fff; background:#315d58; }
.discovery-sidebar .discovery-group > summary > span { margin-left:auto; color:#42605f; font-size:.7rem; font-weight:700; }
.discovery-sidebar .choice-links { grid-template-columns:1fr; gap:4px; padding:2px 4px 10px; }
.discovery-sidebar .choice-link,.discovery-sidebar .editor-choices .choice-link { min-height:36px; padding:3px 5px; gap:6px; border-radius:9px; background:#f5f8f6; font-size:.72rem; line-height:1.25; }
.discovery-sidebar .choice-link svg { flex:0 0 26px; width:26px; height:26px; padding:4px; }
.discovery-sidebar .choice-link:hover { background:#eaf2ef; }

.home-dashboard .japan-map-picker { background:#fff; border-color:#9cafad; }
.home-dashboard .japan-map-canvas { min-height:0; }
.home-dashboard .japan-map-canvas svg { width:min(100%,205px); max-height:225px; }
.home-dashboard .map-selection { margin:5px 0 0; padding:6px 8px; color:#244547; background:#e5f0ec; border-radius:9px; font-size:.72rem; font-weight:700; text-align:center; }
.home-dashboard .picker-tiles:not(.picker-tiles-budget) { grid-template-columns:1fr; gap:5px; }
.home-dashboard .picker-tiles:not(.picker-tiles-budget) .picker-tile { min-height:46px; flex-direction:row; align-items:center; justify-content:flex-start; gap:8px; padding:6px 8px; border:1px solid #b9c8c6; border-radius:10px; color:#20363b; background:#fff; text-align:left; }
.home-dashboard .picker-tiles:not(.picker-tiles-budget) .picker-tile > span:last-child { min-height:0; display:block; padding:0; border:0; color:inherit; background:transparent; font-size:.74rem; font-weight:700; text-align:left; }
.picker-choice-icon { flex:0 0 30px; width:30px; height:30px; padding:5px; border-radius:50%; fill:none; stroke:#315c5e; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; background:#e5f0ec; }
.picker-tile[data-party="couple"] .picker-choice-icon,.picker-tile[data-purpose="solo-women"] .picker-choice-icon { color:#a75672; stroke:#a75672; background:#f6e8ed; }
.picker-tile[data-party="family2-3"] .picker-choice-icon,.picker-tile[data-purpose="healing"] .picker-choice-icon { color:#487c87; stroke:#487c87; background:#e4f0f1; }
.picker-tile[data-party="family4plus"] .picker-choice-icon { color:#526c9a; stroke:#526c9a; background:#e8ecf5; }
.picker-tile[data-party="multigen"] .picker-choice-icon { color:#8a6a3b; stroke:#8a6a3b; background:#f3ecdc; }
.picker-tile[data-party="pet"] .picker-choice-icon,.picker-tile[data-purpose="pet"] .picker-choice-icon { color:#66824b; stroke:#66824b; background:#edf2e2; }
.picker-tile[data-purpose="onsen"] .picker-choice-icon { color:#317d78; stroke:#317d78; background:#e4f1eb; }
.picker-tile[data-purpose="nearby"] .picker-choice-icon { color:#bd7134; stroke:#bd7134; background:#fbefda; }
.home-dashboard .picker-tiles:not(.picker-tiles-budget) .picker-tile.is-selected { border:2px solid #a75a1a; background:#fff2d9; box-shadow:0 0 0 2px rgba(167,90,26,.16); }
.home-dashboard .picker-tiles:not(.picker-tiles-budget) .picker-tile.is-selected > span:last-child { color:#61380f; background:transparent; }
.home-dashboard .picker-tiles.picker-tiles-budget { gap:7px; }
.home-dashboard .picker-tiles .picker-budget-tile { position:relative; min-height:44px; border:1px solid #aebdbb; border-radius:9px; color:#20363b; background:#fff; }
.home-dashboard .picker-tiles .picker-budget-tile.is-selected { border:2px solid #8a4618; color:#fff; background:#8a4618; box-shadow:0 0 0 2px rgba(138,70,24,.18); }
.home-dashboard .picker-tiles .picker-budget-tile.is-selected > span:last-child { color:#fff; background:transparent; }
.home-dashboard .picker-tiles .picker-budget-tile.is-selected::after { content:"✓"; position:absolute; top:3px; right:5px; width:17px; height:17px; display:grid; place-items:center; border-radius:50%; color:#60320f; background:#fff; font-size:.7rem; font-weight:900; }

/* 写真タイルをやめ、余白のあるアイコンリンクでテーマを素早く選べるようにする */
#themes.themes, .compact-choices, #collections.collections { padding:30px 0 36px; border-top:1px solid rgba(23,40,47,.13); }
#themes.themes .section-heading, .compact-choices .section-heading, #collections.collections .section-heading { align-items:center; margin-bottom:16px; gap:16px; }
#themes.themes .section-heading h2, .compact-choices .section-heading h2, #collections.collections .section-heading h2 { font-size:clamp(1.45rem,2.2vw,1.85rem); line-height:1.25; }
#themes.themes .section-heading .section-kicker, .compact-choices .section-heading .section-kicker, #collections.collections .section-heading .section-kicker { margin-bottom:5px; font-size:.65rem; }
#themes.themes .section-heading > p, .compact-choices .section-heading > p, #collections.collections .section-heading > p { font-size:.8rem; }
.choice-links { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; }
.choice-link { min-height:48px; display:inline-flex; align-items:center; gap:9px; padding:5px 13px 5px 6px; border:1px solid transparent; border-radius:999px; color:#23383e; background:rgba(255,255,255,.68); font-size:.9rem; font-weight:700; line-height:1.3; transition:background .16s ease,border-color .16s ease,transform .16s ease; }
.choice-link svg { display:block; flex:0 0 36px; width:36px; height:36px; padding:6px; border-radius:50%; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.choice-link:hover { border-color:#c9d4ce; background:#fff; transform:translateY(-1px); }
.choice-link:focus-visible { outline:3px solid #447a70; outline-offset:2px; }
.choice-solo svg,.choice-wellbeing svg { color:#586f91; background:#e8edf6; }
.choice-onsen svg { color:#317d78; background:#e4f1eb; }
.choice-pet svg { color:#66824b; background:#edf2e2; }
.choice-budget svg { color:#9a7131; background:#f5eedb; }
.choice-refresh svg { color:#bd7134; background:#fbefda; }
.choice-couple svg { color:#a75672; background:#f6e8ed; }
.choice-food svg { color:#bd7134; background:#fbefda; }
.choice-shrine svg { color:#a34d3e; background:#f8e9de; }
.choice-family svg { color:#487c87; background:#e4f0f1; }
.choice-family-large svg { color:#526c9a; background:#e8ecf5; }
.choice-generations svg { color:#8a6a3b; background:#f3ecdc; }
.choice-season svg { color:#527d57; background:#eaf0dc; }
.choice-night svg { color:#726092; background:#eee9f5; }
.plan-choices { gap:10px 16px; }
.plan-choices .choice-link { background:transparent; }
.editor-choices { gap:9px 22px; }
.editor-choices .choice-link { min-height:44px; padding-right:10px; background:transparent; font-size:.88rem; }
@media (max-width:700px) {
  #themes.themes, .compact-choices, #collections.collections { padding:22px 0 26px; }
  #themes.themes .section-heading, .compact-choices .section-heading, #collections.collections .section-heading { margin-bottom:12px; }
  #themes.themes .section-heading h2, .compact-choices .section-heading h2, #collections.collections .section-heading h2 { font-size:1.4rem; }
  #themes.themes .section-heading > p, .compact-choices .section-heading > p, #collections.collections .section-heading > p { display:none; }
  .choice-links { gap:7px 8px; }
  .choice-link { min-height:43px; gap:7px; padding:4px 10px 4px 5px; font-size:.8rem; }
  .choice-link svg { flex-basis:32px; width:32px; height:32px; padding:5px; }
  .editor-choices { gap:5px 9px; }
  .editor-choices .choice-link { min-height:40px; font-size:.78rem; }
}

/* 家族・季節などの追加テーマも写真を大きく見せる */
.theme-card.scene-theme { position:relative; isolation:isolate; overflow:hidden; color:#fff; background-color:#263c41; background-image:linear-gradient(180deg,rgba(8,20,25,.04) 8%,rgba(8,20,25,.18) 42%,rgba(8,20,25,.82) 100%),url("travel-scenes-grid-v1.png"); background-size:cover,300% 300%; background-repeat:no-repeat; text-shadow:0 1px 3px rgba(0,0,0,.35); }
.theme-card.scene-theme > * { position:relative; }
.theme-card.scene-family23 { background-position:center,0 100%; }
.theme-card.scene-family4 { background-position:center,0 100%; }
.theme-card.scene-threegen { background-position:center,100% 0; }
.theme-card.scene-season { background-position:center,0 50%; }
.theme-card.scene-budget { background-image:linear-gradient(180deg,rgba(8,20,25,.04) 8%,rgba(8,20,25,.18) 42%,rgba(8,20,25,.82) 100%),url("travel-scenes-sheet.png"); background-size:cover,300% 200%; background-position:center,100% 100%; }
.theme-card.scene-plan { background-position:center,50% 0; }
.theme-card.scene-family4 { background-image:linear-gradient(180deg,rgba(8,20,25,.04) 8%,rgba(8,20,25,.18) 42%,rgba(8,20,25,.82) 100%),url("travel-scenes-sheet.png"); background-size:cover,300% 200%; background-position:center,100% 0; }
.theme-card.scene-season { background-image:linear-gradient(180deg,rgba(8,20,25,.04) 8%,rgba(8,20,25,.18) 42%,rgba(8,20,25,.82) 100%),url("seasonal-scenes-v1.png"); background-size:cover,300% 200%; background-position:center,0 100%; }
.theme-card.scene-budget { background-image:linear-gradient(180deg,rgba(8,20,25,.04) 8%,rgba(8,20,25,.18) 42%,rgba(8,20,25,.82) 100%),url("seasonal-scenes-v1.png"); background-size:cover,300% 200%; background-position:center,100% 100%; }
.theme-card.scene-plan { background-position:center,50% 0; }
.theme-card.photo-theme.theme-photo-7::before { background-image:url("travel-scenes-sheet.png"); background-size:300% 200%; background-position:100% 0; }
.theme-card.photo-theme.theme-photo-9::before { background-image:url("travel-scenes-sheet.png"); background-size:300% 200%; background-position:0 0; }

/* --- 楽天トラベル画像のクレジット（画像の左下）とAPIクレジット --- */
.hotel-photo { position:relative; display:block; line-height:0; }
.hotel-photo > img { display:block; }
.photo-credit { position:absolute; left:0; bottom:0; z-index:1; padding:3px 8px; border-top-right-radius:6px; background:rgba(0,0,0,.72); color:#fff; font-size:.72rem; font-weight:700; line-height:1.4; letter-spacing:.02em; text-decoration:none; pointer-events:none; }
.article-hotel-photo a { position:relative; }
/* 画像の下の余白は、写真ではなく包み要素に持たせ、クレジットが写真の外へずれないようにする */
.result-card .hotel-photo { margin:0 0 16px; }
.result-card .hotel-photo > img { margin:0; }
.home-dashboard .result-card .hotel-photo { margin-bottom:10px; }
.home-dashboard .result-card .hotel-photo > img { margin:0; }
footer:has(.api-credit) { flex-wrap:wrap; }
footer .api-credit { flex:0 0 auto; }
footer .api-credit a { color:#d6e4e1; text-decoration:underline; text-underline-offset:3px; }
footer .api-credit a:focus-visible { outline:2px solid #d6e4e1; outline-offset:2px; }
