/* 読み物と写真を主役にした共通レイアウト。写真は切り抜かず表示する。 */
:root{--ink:#243f55;--accent:#24658d;--paper:#f8fcff;--line:#d6e7f2;background:var(--paper);color:var(--ink)}
html{scroll-behavior:smooth}body{overflow-wrap:break-word}main{max-width:1280px;padding-top:20px}.site-nav{border-top-color:var(--accent);padding:16px max(4vw,20px)}.site-nav nav{flex-wrap:wrap;gap:12px 24px}.site-nav nav a{font-size:14px;text-decoration:none;color:var(--ink)}
a{color:var(--accent)}a:hover{color:#184e73}.button,button{background:var(--accent);color:white;border:0;border-radius:5px;font:inherit;font-weight:600;cursor:pointer;padding:13px 23px;text-decoration:none}.button:hover,button:hover{background:#184e73;color:white}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #287dab;outline-offset:3px}.eyebrow{color:#476b84;font-size:11px;letter-spacing:.18em}.skip-link{position:absolute;left:16px;top:-100px;background:white;padding:12px;z-index:100}.skip-link:focus{top:10px}
h1,h2,h3{color:var(--ink)}.home-hero{display:grid;grid-template-columns:1fr 1.04fr;align-items:center;gap:28px;padding:20px 0 24px}.home-hero h1{font-family:"Yu Mincho","Noto Serif JP",serif;font-size:clamp(30px,3.7vw,44px);line-height:1.5;letter-spacing:.03em}.home-hero>div>p:not(.eyebrow){font-size:15px;line-height:2.1;max-width:520px}.hero-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.text-link{font-size:14px}.hero-photo{min-width:0;background:#edf7fd;border-radius:12px;overflow:hidden}.hero-photo figure img{height:350px;background:#edf7fd;object-fit:contain}.hero-photo figcaption{font-size:10px;line-height:1.5;padding:10px 16px;max-height:85px;overflow:auto}.hero-photo>a{display:block;padding:0 16px 16px;font-size:13px;font-weight:600}.cover-place{font-size:11px!important;color:#526b7d;padding:0 16px;margin:4px 0 10px}
.search-form{padding:18px 22px;background:#edf7fd;border:1px solid #d6e7f2;border-radius:8px;margin:16px 0 24px}.search-form label{display:block;font-weight:700;margin-bottom:10px}.search-form>div{display:flex;gap:10px}.search-form input{flex:1;min-width:0}.search-form p{margin:8px 0 0;font-size:12px;color:#526b7d}input,select{font:inherit;font-size:15px;min-height:48px;padding:10px 12px;border:1px solid #aac8dc;border-radius:4px;background:white;color:var(--ink)}
.discovery-section{padding:24px 0;border-top:1px solid var(--line);scroll-margin-top:20px}.section-heading{margin-bottom:16px}.section-heading h2{font-size:clamp(24px,3vw,32px);margin:6px 0 10px;font-family:"Yu Mincho","Noto Serif JP",serif}.section-heading>p:last-child{font-size:14px;color:#526b7d}.season-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.season-card{padding:18px 16px;background:#fff;border:1px solid var(--line);border-top:4px solid #b8797e;border-radius:6px}.season-card:nth-child(2){border-top-color:#5e8b73}.season-card:nth-child(3){border-top-color:#b97a43}.season-card:nth-child(4){border-top-color:#718fa4}.season-label{font-size:28px;font-family:"Yu Mincho",serif;margin:0}.season-label span{font-family:system-ui;font-size:10px;letter-spacing:.13em;margin-left:6px}.season-card h3{font-size:17px;line-height:1.7;margin:16px 0 12px}.season-card>p:not(.season-label){font-size:13px;line-height:1.9;color:#526b7d}.season-card ul{list-style:none;padding:12px 0 0;margin:12px 0 0;border-top:1px solid var(--line)}.season-card li{margin:6px 0;font-size:12px}.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px}.theme-grid article{padding:14px 0;border-bottom:1px solid var(--line)}.theme-grid h3{font-size:18px;margin:0 0 12px}.theme-grid h3 a{text-decoration:none}.theme-grid p{font-size:13px;line-height:1.9;color:#526b7d}
.filter-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:16px;background:#edf7fd;border-radius:6px}.filter-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;flex:1;min-width:145px}.filter-form>a{font-size:12px;padding:12px 0}.result-count{font-size:13px;color:#526b7d;margin:16px 0}.guide-directory{margin-top:0;gap:16px}.guide-directory .card{border-top:0}.card{border:1px solid var(--line);border-radius:8px}.area-card{background:#edf7fd;display:flex;flex-direction:column}.area-card .card-body{display:flex;flex-direction:column;flex:1;padding:16px}.area-card figure img{height:210px;background:#edf7fd;object-fit:contain}.area-card figcaption{font-size:10px;line-height:1.5;max-height:66px;overflow:auto}.area-card h3{font-size:21px;line-height:1.6;margin:3px 0 12px}.area-card h3 a{text-decoration:none}.area-card .card-body>p:not(.eyebrow){font-size:13px;line-height:1.9;margin:0 0 16px}.area-card .eyebrow{margin:0}.area-card .more{margin-top:auto;padding-top:12px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px}.tags span{font-size:11px;padding:3px 9px;background:#e0f1fc;border-radius:3px;color:#315f7e}.area-no-photo{height:210px;background:linear-gradient(140deg,#e0f1fc,#f3faff);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center}.area-no-photo span,.area-no-photo small{font-size:12px;color:#526b7d}.area-no-photo strong{font-family:"Yu Mincho",serif;font-size:23px}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:20px 0;font-size:14px}.pagination a{padding:10px 18px;border:1px solid #aac8dc;border-radius:4px;background:white;text-decoration:none}.empty-state{padding:28px;background:white;border:1px solid var(--line)}
.map-invitation{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;background:#edf7fd;border-radius:8px;margin:18px 0}.map-invitation h2{font-family:"Yu Mincho",serif;font-size:28px;margin:5px 0}.map-invitation p{font-size:13px}.map-invitation .button{white-space:nowrap}.area-hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:24px;padding:20px 0}.area-hero:not(:has(.hero-photo)){grid-template-columns:1fr}.area-hero h1{font-family:"Yu Mincho",serif;font-size:clamp(28px,4vw,42px)}.area-hero .hero-photo figure img{height:300px}.area-story{max-width:860px;margin:24px auto;padding:0 16px}.area-story h2{font-family:"Yu Mincho",serif;font-size:26px}.area-story>p{line-height:2.1}.area-story details{font-size:12px;color:#526b7d;border-top:1px solid var(--line);padding-top:16px}.area-story details ul{display:flex;flex-wrap:wrap;gap:8px 26px;padding-left:20px}footer{background:#edf7fd;color:#526b7d}
@media(max-width:1000px){.season-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{gap:24px}.hero-photo figure img{height:290px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){main{padding:16px 16px 32px}.home-hero,.area-hero{grid-template-columns:1fr;gap:16px;padding:8px 0 20px}.home-hero h1{font-size:30px}.home-hero>div>p:not(.eyebrow){font-size:14px}.hero-photo figure img{height:250px}.search-form{padding:16px}.search-form>div{flex-direction:column}.theme-grid{grid-template-columns:1fr}.season-grid{gap:12px}.season-card{padding:16px 14px}.cards{grid-template-columns:1fr}.map-invitation{align-items:flex-start;flex-direction:column;padding:18px;gap:6px}.filter-form label{min-width:125px}.filter-form button{flex:1}.area-story{padding:0}.site-nav nav{gap:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.filter-form button{white-space:nowrap;min-width:110px}
/* 紹介文は行数ではなく120文字で省略。全文はHTMLに保持し、JSなしで開閉する。 */
.guide-directory{align-items:start}
.area-description{margin:10px 0 12px;overflow-wrap:anywhere}
.area-description summary{display:block;list-style:none;border-radius:4px;line-height:1.85}
.area-description summary::-webkit-details-marker{display:none}
.area-description summary:focus-visible{outline:3px solid var(--accent,#24658d);outline-offset:5px}
.area-description-more,.area-description-less{color:#24658d;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.area-description-more{display:block;margin-top:6px}
.area-description-less{display:none}
.area-description[open] .area-description-preview,.area-description[open] .area-description-more{display:none}
.area-description[open] .area-description-less{display:inline}
.area-description-full p{margin:12px 0;line-height:1.95}
.area-card .area-description{font-size:14px}
