/* Illustrator のデザインを基準にしたホーム画面と共通ナビゲーションです。 */
:root{--design-orange:#f09150;--design-card:#ef8c47;--design-red:#d9604e;--design-green:#3a6333;--design-yellow:#f6cc7a}
.home-surface{background:var(--design-orange);font-family:"DNP Shuei MGo Std","Zen Maru Gothic",var(--sans);font-weight:500}
.home-surface>main.design-home{background:var(--design-orange)}
.home-surface h1,.home-surface h2,.home-surface h3{font-family:inherit}
.header{position:sticky;top:0}
.home-surface>.header{position:fixed;top:0;left:0;width:100%;z-index:50}
.header-in{max-width:1600px;min-height:104px;grid-template-columns:clamp(150px,18vw,260px) minmax(0,1fr) auto;padding:14px clamp(16px,1.6vw,24px);gap:clamp(12px,1.25vw,24px)}
.home-surface .brand{filter:drop-shadow(0 1px 2px #0008)}
.home-surface .brand-mark{background:#fff}
/* 英語のロゴも、各ページのヘッダー色に合わせて同じ輪郭を使います。 */
html[lang="en"] .brand-mark{-webkit-mask-image:url("assets/momiji-biyori-en.svg");mask-image:url("assets/momiji-biyori-en.svg")}
/* 項目が増えてもPCのメニューを一行に保ち、ロゴと操作ボタンの幅も調整します。 */
.desktop-nav{gap:clamp(8px,.9vw,16px);flex-wrap:nowrap;min-width:0}
.desktop-nav a{font-family:"Zen Maru Gothic",var(--sans);font-size:clamp(12px,1.05vw,16px);font-weight:500;white-space:nowrap;flex-shrink:0}
.home-surface .desktop-nav a{color:#fff;text-shadow:0 1px 4px #0005}
.header-actions{gap:14px}
.website-menu nav a.mobile-home-utility{display:none}
.my-booking-link{padding:7px 24px;border:0;border-radius:32px;background:var(--design-green);color:white;font-family:"Zen Maru Gothic",var(--sans);font-size:14px;font-weight:700}
.language-switch{gap:0;padding:4px;background:#fff;border-radius:28px;align-items:center}
.language-switch a{font-family:"Zen Maru Gothic",var(--sans);font-size:14px;min-width:45px;padding:0 10px;text-align:center;color:#333}
.language-switch a[aria-current=page]{border-radius:24px;background:var(--design-orange);color:#fff}
@media(min-width:960px) and (max-width:1199px){.header-actions{gap:8px}.my-booking-link{font-size:12px;padding:7px 16px}.language-switch a{font-size:12px;min-width:32px;padding:0 8px}}
.design-home{overflow:clip}
/* 波形の背景が後続のニュース欄を覆わないよう、ヒーロー内に収めます。 */
.design-hero{position:relative;padding-top:54vw;color:#fff;isolation:isolate;overflow:clip}
.hero-slideshow{position:absolute;inset:0 0 auto;height:57.2vw;background:#333;overflow:hidden;isolation:isolate}
.hero-slideshow:after{content:"";position:absolute;inset:0 0 auto;height:150px;z-index:3;background:linear-gradient(#0006,transparent);pointer-events:none}
.hero-slide{position:absolute;inset:0;opacity:0;z-index:0;transition:opacity .8s ease-in-out;pointer-events:none}
.hero-slide.is-active{opacity:1;z-index:2}
/* 前の写真を下に残し、明るさを保ったまま次の写真を重ねます。 */
.hero-slide.is-leaving{opacity:1;z-index:1;transition:none}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center 55%;transform-origin:center center}
.hero-slide.is-moving img{animation:hero-center-zoom 5.8s linear both}
.is-motion-paused .hero-slide img{animation-play-state:paused}
/* 5秒の表示と0.8秒のフェードを通して、中央へゆっくり寄ります。 */
@keyframes hero-center-zoom{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero-wave{position:absolute;top:0;left:0;width:100%;height:76.911vw;z-index:1;pointer-events:none}
.hero-event-info{position:relative;z-index:2;width:86.5%;max-width:1450px;margin:auto;display:grid;grid-template-columns:51% 36%;align-items:end;gap:13%;padding-bottom:32px}
.hero-title img{width:100%;height:auto}
.hero-title>span{display:block;text-align:right;font-size:clamp(14px,1.4vw,20px);margin-top:-12px}
.hero-period{padding-bottom:3px;white-space:nowrap}
.hero-period>strong{display:block;font-size:clamp(34px,4.5vw,64px);line-height:1.25;font-weight:500;letter-spacing:.01em}
.hero-period>p{font-size:clamp(12px,1.4vw,20px);margin:8px 0 0;line-height:1.5}
.motion-toggle{position:absolute;top:40vw;left:30px;z-index:3;border:1px solid #ffffff70;background:#3335;color:#fff;border-radius:50%;width:34px;height:34px;padding:0;font-size:14px;line-height:1;cursor:pointer}
.motion-toggle:focus-visible{outline-color:#fff}
.design-news{width:86.5%;max-width:1450px;margin:auto;padding:30px 0 24px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:center;color:#fff}
.design-news h2{font-size:56px;color:#fff;line-height:1;margin:0;letter-spacing:.01em}
.design-news .news-list{border:0;min-height:130px;display:flex;flex-direction:column;justify-content:center}
.design-news .news-row{grid-template-columns:1fr auto;gap:20px;padding:10px 12px;border-color:#ffffffb3;color:#fff;font-size:14px}
.design-news .news-row time{grid-column:2;grid-row:1;color:#fff;font-size:13px}
.design-news .news-row strong{grid-column:1;grid-row:1;font-size:15px}
.design-news .news-row>span{display:none}
.design-news .news-empty{color:#fff;border-bottom:1px solid #fff8;padding:30px 12px;font-size:16px}
.news-more{display:block;text-align:right;color:#fff;font-size:14px;text-decoration:none;margin:14px 12px 0}
.design-about{position:relative;padding:40px 4% 88px;max-width:1600px;margin:auto}
.about-paper{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;min-height:665px;padding:60px 7.8%;border-radius:150px 150px 0 0;background:#fff}
.about-paper .about-copy{padding:0;color:#333}
.about-paper h2{font-size:clamp(27px,3.1vw,45px);line-height:1.55;color:#333;margin:0 0 18px}
.about-paper h2 small{display:inline-block;font-size:.45em;margin-left:.35em;white-space:nowrap}
.about-paper .about-tagline{display:inline;padding:3px 8px;background:var(--design-orange);color:#fff;font-size:clamp(19px,2vw,30px);line-height:1.7;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.about-paper .about-copy>p:last-child{font-size:clamp(15px,1.4vw,21px);line-height:1.95;white-space:pre-line;margin:26px 0 0}
.about-arch{aspect-ratio:441/559;overflow:hidden;border-radius:240px 240px 26px 26px;background:#333;align-self:stretch}
.about-arch img{width:100%;height:100%;object-fit:cover}
.about-leaves{position:absolute;pointer-events:none;z-index:2}
.leaves-top-left{left:2.2%;top:25px;width:10%}
.leaves-top-right{right:1.8%;top:4px;width:16.5%}
.leaves-bottom-left{left:0;bottom:20px;width:19%}
.leaves-bottom-right{right:1.8%;bottom:63px;width:16.5%}
.design-food{position:relative;background:var(--design-red);color:#fff;overflow:hidden;padding:36px 0 46px}
.vertical-title{position:absolute;margin:0!important;color:#fff!important;writing-mode:vertical-rl;text-orientation:upright;font-size:clamp(64px,8.6vw,135px);line-height:1.03;letter-spacing:-.035em;z-index:2}
.design-food>.vertical-title{right:6%;top:54px}
.food-rails{position:relative}
.food-rails:after{content:"";position:absolute;inset:0 0 0 auto;width:31%;background:linear-gradient(90deg,transparent,var(--design-red));pointer-events:none}
.food-rail{overflow:hidden;display:flex;gap:0;margin-bottom:18px}
.food-track{display:flex;width:max-content;animation:food-marquee 40s linear infinite}
.food-group{display:flex;flex:none}
.food-group a{display:block;width:26.25vw;height:16.32vw;flex:none;position:relative;background:#333;overflow:hidden;color:#fff}
.food-group img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.food-group a>span{position:absolute;bottom:0;left:0;right:0;padding:24px 16px 12px;background:linear-gradient(transparent,#0008);font-size:14px;opacity:0;transition:opacity .2s}
.food-group a:hover>span,.food-group a:focus-visible>span{opacity:1}
.food-group a:hover img{transform:scale(1.04)}
.food-rail.reverse .food-track{animation-direction:reverse;animation-duration:46s}
.food-rail:hover .food-track,.food-rail:focus-within .food-track,.is-motion-paused .food-track{animation-play-state:paused}
@keyframes food-marquee{to{transform:translateX(-50%)}}
.food-copy{font-size:clamp(16px,1.7vw,25px);line-height:1.55;margin:28px 38px 0;max-width:75%}
.food-actions{margin:24px 38px 0}
.food-actions .btn,.art-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;max-width:100%;min-height:54px;padding:14px 28px;border:0;border-radius:999px;background:#fff;color:var(--design-red);font-size:clamp(14px,1.2vw,18px);font-weight:700;line-height:1.5}
.food-actions .btn>span,.art-actions .btn>span{flex:none}
@media(min-width:681px) and (max-width:959px){.food-actions{margin-left:28px}}
.design-art{position:relative;background:var(--design-green);color:#fff;overflow:hidden}
/* 写真と文字の背面だけに、透ける白線の麻の葉文様を重ねます。 */
.design-art::before{content:"";position:absolute;inset:0;background:url(assets/illustrator/asanoha-pattern.svg) center top/160px 277.128px repeat;opacity:.12;pointer-events:none}
.art-layout{position:relative;z-index:1;width:100%;max-width:1600px;height:clamp(440px,47.5vw,760px);margin:auto}
.art-layout>.vertical-title{left:4.2%;top:42px}
.art-photos{position:absolute;inset:0}
.art-photo{position:absolute;display:block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;overflow:hidden;background:var(--design-red)}
.art-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
/* 縦長の写真でも、曲線の枠内に顔と着物が収まる位置を使います。 */
.art-medium img{object-position:50% 62%}
.art-small img{object-position:50% 40%}
.art-large img{object-position:50% 100%}
.art-photo:hover img{transform:scale(1.035)}
/* 元の曲線の縦横比を保ち、大きな写真と説明文の間に余白を確保します。 */
.art-medium{left:23%;top:8%;width:31.5%;aspect-ratio:453.3994/421.9644;-webkit-mask-image:url(assets/illustrator/art-medium-mask.svg?v=20261017-2);mask-image:url(assets/illustrator/art-medium-mask.svg?v=20261017-2)}
.art-small{left:20.5%;top:54%;width:15.5%;aspect-ratio:222.6263/254.4729;z-index:1;-webkit-mask-image:url(assets/illustrator/art-small-mask.svg?v=20261017-2);mask-image:url(assets/illustrator/art-small-mask.svg?v=20261017-2)}
.art-large{left:55.5%;top:10%;width:41.5%;aspect-ratio:659.2142/517.3821;-webkit-mask-image:url(assets/illustrator/art-large-mask.svg?v=20261017-2);mask-image:url(assets/illustrator/art-large-mask.svg?v=20261017-2)}
.art-copy{position:absolute;right:4%;bottom:20px;width:60%;font-size:clamp(15px,1.65vw,25px);text-align:right;line-height:1.55;margin:0;text-shadow:0 1px 4px #0006}
/* 英語見出しは単語を分断せず横倒しの一行にし、写真の脇に収めます。 */
html[lang=en] :is(.design-food,.art-layout)>.vertical-title{text-orientation:mixed;white-space:nowrap;font-size:clamp(32px,4.3vw,68px);line-height:1.1;letter-spacing:.025em}
html[lang=en] .design-food>.vertical-title{right:5%;top:54px;text-shadow:0 2px 12px #813b2e40}
html[lang=en] .art-layout>.vertical-title{left:5%;top:8%}
@media(max-width:680px){
 html[lang=en] :is(.design-food,.art-layout)>.vertical-title{font-size:clamp(23px,6.4vw,42px)}
 html[lang=en] .design-food>.vertical-title{right:6%;top:35px}
 html[lang=en] .art-layout>.vertical-title{left:6%;top:8.8vw}
}
.art-actions{position:relative;z-index:1;max-width:1600px;margin:0 auto;padding:4px 4% 40px;display:flex;justify-content:flex-end}
.art-actions .btn{color:var(--design-green)}
.design-map{padding:64px 3% 32px;color:#fff;background:var(--design-orange)}
.map-board{position:relative;max-width:1500px;margin:auto;padding:88px 32px 38px;border:3px solid #fff;border-radius:50px}
.map-board>h2{position:absolute;top:-1px;left:-1px;background:#fff;color:var(--design-orange);border-radius:47px 0 47px 0;padding:10px 44px 14px;font-size:28px;line-height:1.6;margin:0}
.map-artwork{position:relative;width:100%}
.map-artwork>img{width:100%;height:auto}
.map-note{position:absolute;left:38px;bottom:14px;font-size:14px;line-height:1.9;margin:0;max-width:47%}
.map-note a{color:inherit;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
.map-note a:hover{text-decoration-thickness:2px}
.map-note a:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px}
.map-note .map-note-venue{color:#003f8f;font-weight:700;white-space:nowrap}
.map-pin{position:absolute;z-index:3;transform:translate(-50%,-100%)}
.pin-senrian{left:33.3%;top:40%}
.pin-central{left:51.3%;top:70%}
.map-pin summary{display:block;position:relative;list-style:none;width:54px;height:75px;cursor:pointer;transform-origin:center bottom;animation:map-pin-wiggle 3s ease-in-out infinite}
/* 文字とピンを一緒に短く揺らし、操作中は止めます。縮小用のtransformは維持します。 */
@keyframes map-pin-wiggle{0%,24%,100%{rotate:0deg}4%{rotate:-9deg}8%{rotate:9deg}12%{rotate:-7deg}16%{rotate:5deg}20%{rotate:-3deg}}
.map-pin[open] summary,.map-pin summary:is(:hover,:focus-visible),.is-motion-paused .map-pin summary{animation:none}
.map-pin summary::-webkit-details-marker{display:none}
.pin-click{display:block;position:absolute;top:-24px;left:12px;transform:rotate(15deg);font-size:15px;font-weight:700;color:#fff;text-shadow:2px 0 var(--design-red),-2px 0 var(--design-red),0 2px var(--design-red),0 -2px var(--design-red)}
.pin-shape{display:block;width:52px;height:68px;background:var(--design-red);clip-path:path('M26 0C11 0 0 11 0 26C0 39 26 68 26 68C26 68 52 39 52 26C52 11 41 0 26 0Z')}
.pin-shape:after{content:"";position:absolute;top:10px;left:10px;width:32px;height:32px;background:#fff;border-radius:50%}
.map-popup{position:fixed;inset:auto;margin:0;padding:0;border:0;overflow:visible;background:transparent;color:#fff;width:min(438px,calc(100vw - 32px),calc((100svh - 32px)*var(--popup-ratio)));max-width:none;max-height:none;filter:drop-shadow(0 8px 18px #0002)}
.map-popup-senrian{--popup-ratio:.90496;--close-top:2.4%;--close-right:4.6%;--close-size:11.5%}
.map-popup-central{--popup-ratio:.64497;--close-top:2.5%;--close-right:5.4%;--close-size:11.5%}
.map-popup a{display:block;padding:0;line-height:0;border-radius:32px}
.map-popup img{display:block;width:100%;height:auto}
/* 画像内の×に透明な操作ボタンを重ね、元のアートワークを保ちます。 */
.map-popup-close{position:absolute;top:var(--close-top);right:var(--close-right);width:var(--close-size);min-width:44px;min-height:44px;aspect-ratio:1;border:0;border-radius:50%;padding:0;background:transparent;cursor:pointer}
.map-popup-close:hover{background:#fff2}
.map-popup-close:focus-visible,.map-popup-link:focus-visible{outline:3px solid #fff;outline-offset:3px}
.map-pin[open]{z-index:4}
/* 英語の地図詳細は画像を使わず、長い案内も読める吹き出しで表示します。 */
.map-popup--text{width:min(460px,calc(100vw - 32px));background:var(--design-red);border-radius:32px;filter:drop-shadow(0 12px 24px #48230926)}
.map-popup--text::before{content:"";position:absolute;left:-18px;top:var(--map-arrow-top,50%);width:20px;height:32px;transform:translateY(-50%);background:var(--design-red);clip-path:polygon(100% 0,100% 100%,0 50%)}
.map-popup--text[data-arrow="hidden"]::before{display:none}
.map-popup--text[data-arrow="right"]::before{left:auto;right:-18px;scale:-1 1}
.map-info-panel{display:flex;flex-direction:column;max-height:calc(100svh - 32px);max-height:calc(100dvh - 32px);padding:24px;box-sizing:border-box}
.map-info-header{position:relative;flex-shrink:0;padding:0 52px 18px 4px}
.map-info-header h3{margin:0;color:#fff;font-size:30px;line-height:1.2;font-weight:700;letter-spacing:.01em;overflow-wrap:anywhere}
.map-popup--text .map-popup-close{top:-8px;right:-8px;width:44px;height:44px;aspect-ratio:1;color:#fff}
.map-popup--text .map-popup-close::before,.map-popup--text .map-popup-close::after{content:"";position:absolute;top:21px;left:9px;width:26px;height:2px;background:currentColor;transform:rotate(45deg)}
.map-popup--text .map-popup-close::after{transform:rotate(-45deg)}
.map-info-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#fff9 transparent;border-radius:20px;padding:2px}
.map-info-scroll:focus-visible{outline:2px solid #fff;outline-offset:2px}
.map-info-group{border:1.5px solid #fffd;border-radius:22px;overflow:hidden;margin:0 0 16px;color:#fff}
.map-info-group h4{display:table;max-width:100%;margin:0;padding:6px 18px 8px;border-radius:0 0 20px 0;background:#fff;color:var(--design-red);font-size:19px;font-weight:700;line-height:1.25;box-sizing:border-box}
.map-info-group ul{margin:16px 18px 18px;padding-left:20px;font-size:16px;line-height:1.45}
.map-info-group li{padding-left:2px;margin:0 0 12px;overflow-wrap:anywhere}
.map-info-group li:last-child{margin-bottom:0}
.map-info-group li small{display:block;font-size:13px;line-height:1.4;color:#fff;margin-top:2px}
.map-info-note{font-size:13px;line-height:1.6;margin:4px 8px 6px;color:#fff}
.map-info-footer{flex-shrink:0;padding-top:16px}
.map-popup--text .map-popup-link{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 20px;box-sizing:border-box;border:1px solid #fff;border-radius:28px;background:#fff;color:var(--design-red);font-size:15px;font-weight:700;line-height:1.4;text-decoration:none;transition:background .2s,color .2s}
.map-popup--text .map-popup-link:hover{background:transparent;color:#fff}
@media(max-width:680px){.map-popup--text{border-radius:26px}.map-popup--text::before{display:none}.map-info-panel{padding:20px}.map-info-header h3{font-size:25px}.map-info-group h4{font-size:18px}.map-info-group ul{margin:14px 14px 16px;font-size:15px}.map-info-note{margin-left:4px;margin-right:4px}}
.map-actions{max-width:880px;margin:34px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:78px}
.map-button{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding:26px 20px;border-radius:18px;min-height:110px;text-decoration:none;color:#fff;font-size:clamp(18px,1.95vw,28px);line-height:1.3;text-align:center}
.map-button:after{content:"";position:absolute;inset:9px;border:2px solid #fff;border-radius:12px;pointer-events:none}
.park-access{background:var(--design-green);flex-direction:column;gap:4px}
.map-button small{display:block;font-size:11px;line-height:1.4}
.google-access{background:var(--design-red)}
.google-access img{width:50px;height:64px;object-fit:contain}
.map-admission{max-width:1000px;margin:24px auto 0;text-align:center;font-size:12px;line-height:1.7}
.design-finder-container{background:#fff;padding:44px max(6.75%,calc((100% - 1440px)/2)) 0}
.design-finder{border-radius:65px;padding:26px 34px 38px;background:var(--design-yellow);color:var(--design-green)}
.design-finder>header{text-align:center;margin-bottom:26px}
.design-finder header p{margin:0;font-size:16px;line-height:1.4}
.design-finder h2{text-wrap:balance;font-size:clamp(25px,2.6vw,38px);line-height:1.5;margin:2px 0 0}
.design-finder .website-search-primary{grid-template-columns:1fr 1fr auto;gap:26px}
.design-finder .control{display:flex;align-items:center;gap:12px;min-width:0}
.design-finder label{font-size:clamp(14px,1.6vw,22px);margin:0;white-space:nowrap;letter-spacing:0}
.design-finder select{min-height:42px;border:0;border-radius:28px;padding:8px 14px;min-width:0;font-size:13px;line-height:1.4}
/* 矢印を右端から16px内側に置き、選択した文字との余白も確保します。 */
.design-finder-container .control select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%233a6333' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;padding-right:42px}
.design-finder .website-results-link{min-width:180px;min-height:42px;grid-column:auto;padding:8px 20px;border:0;border-radius:26px;background:var(--design-red);color:#fff;font-size:17px;font-weight:700}
.finder-additional{padding:0 12px}
.finder-additional .website-search-tools{margin-top:18px;gap:14px 30px}
.finder-additional .website-search-tools summary{font-size:12px}
.finder-additional .finder-bottom{margin:12px 0 0;padding:10px 0;border:0;font-size:11px}
.design-events{padding:24px max(6.75%,calc((100% - 1440px)/2)) 48px;background:#fff}
.design-events>.results-head{justify-content:flex-end;margin:0 0 16px;font-size:11px;gap:12px}
.design-events #result-count{border:0;min-width:0;padding:0;color:var(--design-orange)}
.design-events .card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}
.design-events .item-card{position:relative;border:0;border-radius:28px;padding:16px;background:var(--design-card);color:#fff;overflow:hidden}
.design-events .card-image{border-radius:18px;aspect-ratio:324/200;background:#fff}
.design-events .card-body{padding:10px 7px 0}
.design-events .item-card h3{order:0;color:#fff;font-size:23px;font-weight:700;line-height:1.35;margin:0 0 6px}
.design-events .kicker-row{order:1;align-items:center;gap:5px 12px;margin:0 0 6px;flex-wrap:wrap;justify-content:flex-start}
.design-events .kicker{font-size:12px;color:var(--design-yellow);line-height:1.5}
.design-events .status{padding:0;background:none;color:#fff;font-size:10px;line-height:1.4;text-align:left}
.design-events .item-card p{order:2;color:#fff;font-size:13px;line-height:1.6;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.design-events .meta-row{order:3;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.design-events .meta-pill{font-size:11px;color:#fff;line-height:1.65}
.design-events .meta-pill:first-child{grid-column:1/-1;min-height:36px;display:flex;align-items:center}
.design-events .meta-pill:nth-child(2){grid-column:1/-1;border-top:1px solid #fff9;padding-top:5px;padding-right:42px}
.design-events .arrow{border:0;width:auto;height:auto;grid-row:2;align-self:end;font-size:14px;color:#fff;border-radius:0}
.design-events .item-card:hover .arrow{background:none;color:#fff}
.event-pagination{display:flex;justify-content:center;gap:16px;margin-top:42px;flex-wrap:wrap}
.event-pagination button{width:54px;height:54px;padding:0;border:3px solid var(--design-card);border-radius:50%;background:#fff;color:var(--design-card);font-size:30px;line-height:1;cursor:pointer}
.event-pagination button[aria-current=page],.event-pagination button:hover{color:#fff;background:var(--design-card)}
.design-reservation{display:grid;grid-template-columns:42% minmax(0,1fr);align-items:center;gap:54px;padding:32px 6.75% 46px 0;background:var(--design-red);color:#fff}
.design-reservation figure{height:300px;border-radius:0 110px 18px 0;overflow:hidden;background:var(--design-green)}
.design-reservation figure img{width:100%;height:100%;object-fit:cover}
.design-reservation h2{color:#fff;font-size:34px;line-height:1.5;margin:0 0 24px}
.design-reservation p{font-size:14px;line-height:1.9;margin:0 0 24px}
.reservation-actions{display:flex;gap:16px;flex-wrap:wrap}
.reservation-actions .btn{padding:12px 24px;border:0;border-radius:32px;font-size:17px;font-weight:700;min-height:52px;line-height:1.4}
.reservation-actions .btn-primary{background:var(--design-green);color:#fff}
.reservation-actions .btn-secondary{background:#fff;color:var(--design-red)}
.design-footer{background:#333}
.design-footer .footer-in{max-width:1500px;padding:36px 3.6%;display:grid;grid-template-columns:1.8fr .7fr .9fr 1.55fr;gap:42px;align-items:start}
.footer-brand{align-self:center}
.footer-brand img{width:292px;max-width:100%;height:auto}
.design-footer nav,.footer-external{display:grid;gap:4px}
.design-footer a{color:#fff;font-family:"Zen Maru Gothic",var(--sans);font-size:13px;line-height:1.65}
.footer-instagram{display:flex;align-items:center;gap:7px}
.footer-instagram img{width:24px;height:24px;border-radius:5px}
.design-footer small{margin-top:8px;font-size:10px;line-height:1.7}
/* PCでは写真の縦位置を詰め、タイトルと開催情報まで最初の画面に収めます。 */
@media(min-width:960px){
 .design-hero{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100svh;min-height:560px;max-height:min(64vw,1080px);padding-top:0}
 .hero-event-info{grid-row:2}
 .hero-slideshow{grid-row:1/2;top:auto;bottom:-3.2vw}
 .hero-wave{grid-row:1/2;top:auto;bottom:-22.911vw}
 .motion-toggle{grid-row:1/2;top:auto;bottom:calc(14vw - 34px)}
 .hero-title>span{translate:0 -20px}
 /* 日付と営業時間をまとめて上げ、会場名と営業時間の行を揃えます。 */
 .hero-period{position:relative;left:clamp(24px,3vw,52px);translate:0 -20px;padding-bottom:0}
 .hero-period>p{font-size:clamp(14px,1.4vw,20px);line-height:1.85}
}
@media(min-width:1600px){.hero-slideshow{height:915px;bottom:-51px}.hero-wave{height:1231px;bottom:-367px}.motion-toggle{bottom:190px}}
/* 英字の下に出る筆跡と会場名が重ならない余白を確保します。 */
html[lang="en"] .hero-title>span{margin-top:8px;translate:none}
@media(min-width:960px){html[lang="en"] .hero-title{translate:0 -20px}}
@media(min-width:960px) and (max-width:1199px){.header-in{grid-template-columns:190px minmax(0,1fr) auto;padding:12px 20px;gap:18px}.desktop-nav{gap:12px}.desktop-nav a{font-size:12px}.header-actions{gap:8px}.my-booking-link{font-size:12px;padding:7px 15px}.language-switch a{font-size:12px;min-width:32px;padding:0 7px}.about-paper{padding:50px 6%;min-height:560px;gap:35px}.design-finder{padding:24px}.design-finder .website-search-primary{gap:16px}.design-finder label{font-size:15px}.design-finder .website-results-link{font-size:15px;min-width:140px}.design-reservation{gap:35px}.design-reservation h2{font-size:29px}.reservation-actions .btn{font-size:14px;padding:12px 16px}}
@media(max-width:959px){.header-in{grid-template-columns:minmax(0,210px) auto;justify-content:space-between;min-height:88px;padding:12px 24px}.desktop-nav{display:none}.header-actions{gap:12px}.my-booking-link{font-size:13px;padding:7px 20px}.language-switch a{font-size:12px;min-width:36px;padding:0 8px}.design-hero{padding-top:56vw}.hero-event-info{gap:6%;width:88%}.hero-period>strong{font-size:32px}.hero-period>p{font-size:11px}.hero-title>span{font-size:13px}.design-news{grid-template-columns:150px 1fr;padding:34px 0 48px}.design-news h2{font-size:42px}.about-paper{padding:50px 6%;gap:30px;min-height:540px;border-radius:100px 100px 0 0}.about-paper h2{font-size:28px}.about-paper .about-copy>p:last-child{font-size:15px}.about-paper .about-tagline{font-size:20px}.about-arch{align-self:center;height:390px;aspect-ratio:auto}.design-food{padding-top:28px}.design-food>.vertical-title{right:5%;top:36px}.food-copy{font-size:16px;margin-left:28px}.design-art{min-height:440px}.art-copy{font-size:15px}.map-board{padding:78px 22px 36px;border-radius:36px}.map-board>h2{font-size:23px;border-radius:33px 0 33px 0;padding:9px 32px}.map-note{font-size:11px;left:24px;bottom:12px}.map-pin summary{transform:scale(.8);transform-origin:bottom center}.map-actions{gap:28px;max-width:720px}.map-button{padding:20px 18px;font-size:20px;min-height:96px}.design-finder-container{padding-left:5%;padding-right:5%}.design-finder{border-radius:36px;padding:24px}.design-finder .website-search-primary{grid-template-columns:1fr 1fr;gap:18px}.design-finder .website-results-link{grid-column:1/-1;justify-self:center;min-width:200px}.design-finder label{font-size:15px}.design-events{padding-left:5%;padding-right:5%}.design-events .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.design-reservation{grid-template-columns:38% 1fr;gap:30px;padding-right:5%}.design-reservation h2{font-size:28px}.design-reservation p{font-size:13px}.reservation-actions{gap:10px}.reservation-actions .btn{font-size:14px;padding:10px 18px}.design-footer .footer-in{grid-template-columns:1.2fr 1fr;gap:30px;padding:36px 5% 130px}.design-footer nav{grid-column:2}.footer-external{grid-column:1;grid-row:2}.footer-brand{align-self:start}}
@media(max-width:680px){
 .header-in{grid-template-columns:minmax(0,164px) auto;gap:14px;min-height:74px;padding:10px 16px}.header-actions{gap:8px}.my-booking-link{padding:6px 13px;font-size:11px}.language-switch{padding:3px}.language-switch a{font-size:11px;min-width:27px;padding:0 6px}
 /* スマホ用アートボードの縦長の曲線を、そのまま写真の表示範囲に使います。 */
 .home-surface .header-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:0;padding:2.5vw 3%}
 .home-surface .brand{width:100%;max-width:min(44vw,300px)}
 .home-surface .header-actions{display:flex}
 .home-surface .website-menu nav a.mobile-home-utility{display:block}
 .design-hero{padding-top:143.5vw}
 .hero-slideshow{height:144.66vw;-webkit-mask:url(assets/illustrator/hero-mobile-mask.svg) 0 0/100% 100% no-repeat;mask:url(assets/illustrator/hero-mobile-mask.svg) 0 0/100% 100% no-repeat}
 .hero-slideshow:after{display:none}
 .hero-slide img{object-position:center}
 .hero-wave{display:none}
 /* タイトルを大きく見せ、会場名と開催日時をその下の右側へまとめます。 */
 .hero-event-info{width:92%;padding:0;display:grid;grid-template-columns:1fr;align-items:stretch;gap:1.2vw;margin:auto}
 .hero-title{width:100%}
 .hero-title>span{font-size:clamp(11px,3.15vw,20px);line-height:1.5;margin-top:-6vw;padding-right:1.5vw}
 .hero-period{justify-self:end;text-align:right;white-space:nowrap;padding:0 1.5vw 0 0}
 .hero-period>strong{font-size:clamp(16px,5.1vw,34px);letter-spacing:-.04em}
 .hero-period>p{font-size:clamp(6px,1.6vw,11px);margin:0;line-height:1.5;letter-spacing:-.035em}
 .motion-toggle{top:127vw;left:6%;width:30px;height:30px}
 .design-news{width:88%;margin:auto;padding:0 0 4vw;grid-template-columns:1fr;gap:12px}
 .design-news h2{font-size:clamp(22px,4.8vw,32px)}
 .design-news .news-list{min-height:0}
 .design-news .news-empty{font-size:12px;padding:12px 0 20px}
 .design-news .news-row{padding:10px 0;grid-template-columns:minmax(0,1fr) auto;gap:12px;border-bottom:1px solid #ffffffb3}
 .design-news .news-row time{grid-column:2;grid-row:1;font-size:10px}
 .design-news .news-row strong{grid-column:1;grid-row:1;font-size:12px}
 .news-more{font-size:11px;margin:12px 0 0}
 /* 写真を見出しと本文の間へ置き、四隅の丸い白いカードにまとめます。 */
 .design-about{padding:2vw 5.65% 10vw}
 .about-paper{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:13.5vw 6.3vw 11.5vw;min-height:0;border-radius:14vw}
 .about-paper .about-copy{display:contents}
 .about-paper h2{font-size:clamp(22px,6.8vw,46px);margin:0 0 2.5vw;line-height:1.4;letter-spacing:-.035em}
 .about-paper .about-tagline{align-self:flex-start;font-size:clamp(16px,4.5vw,30px);padding:2px 5px;margin:0;line-height:1.6}
 .about-paper .about-copy>p:last-child{order:2;font-size:clamp(13px,2.95vw,20px);line-height:1.85;white-space:normal;margin:6vw 0 0}
 .about-paragraph{display:block}
 .about-paragraph+.about-paragraph{margin-top:1.2em}
 .about-arch{order:1;width:100%;height:auto;aspect-ratio:516/396;border-radius:3vw 13vw 3vw 3vw;margin:4.5vw 0 0;align-self:stretch}
 .about-leaves{display:none}
 .design-food{padding:28px 0 36px}.food-actions{margin:20px 24px 0}.food-actions .btn{width:100%;gap:12px;padding:14px 18px}.design-food>.vertical-title{font-size:48px;right:6%;top:35px}.food-rail{margin-bottom:12px}.food-group a{width:58vw;height:38vw}.food-rails:after{width:30%}.food-group a>span{font-size:11px;padding:16px 10px 8px}.food-copy{font-size:13px;max-width:none;margin:20px 24px 0;padding-right:25px;line-height:1.8}.food-copy br{display:none}
 /* スマホでは大きな写真を右へ流し、小さな写真を左下に重ねます。 */
 .design-art{height:auto;min-height:0;max-height:none}
 .design-art::before{background-size:120px 207.846px}
 .art-layout{height:auto;padding-top:97vw}
 .art-layout>.vertical-title{font-size:clamp(42px,12.6vw,70px);left:6%;top:30px}
 .art-photos{bottom:auto;height:107vw}
 .art-medium{display:none}
 .art-small{left:13.7%;top:52.5vw;width:39.8%;aspect-ratio:269.194/254.4729;-webkit-mask-image:url(assets/illustrator/art-small-mobile-mask.svg);mask-image:url(assets/illustrator/art-small-mobile-mask.svg)}
 .art-large{left:21.5%;top:8.8vw;width:88.5%}
 .art-copy{position:relative;right:auto;bottom:auto;width:auto;margin:0 6%;padding-bottom:7vw;font-size:12px;line-height:1.8;text-align:left}
 .art-copy br{display:none}
 .art-copy{padding-bottom:20px}
 .art-actions{padding:0 6% 8vw}
 .art-actions .btn{width:100%;padding:14px 18px;gap:12px}
 .design-map{padding:36px 5% 28px}.map-board{border-width:2px;border-radius:28px;padding:70px 12px 20px}.map-board>h2{border-radius:26px 0 26px 0;font-size:20px;padding:8px 24px}.map-note{position:static;font-size:10px;max-width:none;margin:20px 7px 0;line-height:1.85}.map-note br{display:none}.map-pin summary{transform:scale(.6)}.map-actions{grid-template-columns:1fr;gap:16px;margin-top:22px;max-width:400px}.map-button{font-size:20px;min-height:86px;padding:18px}.map-button small{font-size:10px}.google-access img{height:48px;width:38px}.map-admission{font-size:10px;text-align:left;line-height:1.8;margin-top:20px}
 .design-finder-container{padding-top:32px}.design-finder{border-radius:32px;padding:24px 20px}.design-finder>header{margin-bottom:24px}.design-finder header p{font-size:12px}.design-finder h2{text-wrap:balance;font-size:23px;line-height:1.5;margin-top:4px}.design-finder .website-search-primary{grid-template-columns:1fr;gap:16px}.design-finder .control{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px}.design-finder label{font-size:13px}.design-finder select{min-height:44px;font-size:12px;padding:10px}.design-finder .website-results-link{width:100%;font-size:15px;min-height:44px}.finder-additional{padding:0 5px}.finder-additional .website-search-tools{gap:8px}.finder-additional .website-search-tools summary{font-size:11px}.finder-additional .finder-bottom{font-size:10px;line-height:1.6}.finder-additional .reset{font-size:10px}
 .design-events{padding-top:18px;padding-bottom:36px}.design-events>.results-head{margin:0 0 12px;font-size:10px}.design-events .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.design-events .item-card{border-radius:20px;padding:9px}.design-events .card-image{border-radius:12px;aspect-ratio:4/3}.design-events .card-body{padding:9px 3px 0}.design-events .item-card h3{font-size:16px;line-height:1.4;margin-bottom:5px}.design-events .kicker-row{gap:3px;margin-bottom:6px}.design-events .kicker{font-size:10px}.design-events .status{font-size:9px}.design-events .item-card p{font-size:11px;line-height:1.65;-webkit-line-clamp:3;margin-bottom:10px}.design-events .meta-pill{font-size:9px;line-height:1.6}.design-events .meta-pill:nth-child(2){padding-right:16px}.design-events .arrow{font-size:13px}.event-pagination{gap:12px;margin-top:26px}.event-pagination button{width:42px;height:42px;font-size:23px;border-width:2px}
 .design-reservation{display:block;padding:28px 0 34px}.design-reservation figure{height:220px;width:84%;border-radius:0 90px 16px 0}.design-reservation>div{padding:28px 7% 0}.design-reservation h2{font-size:27px;margin-bottom:16px}.design-reservation p{font-size:13px;line-height:1.9;margin-bottom:22px}.reservation-actions{gap:12px}.reservation-actions .btn{width:100%;font-size:15px}
 .design-footer .footer-in{grid-template-columns:1fr 1fr;gap:26px 20px;padding:30px 7% 130px}.footer-brand{grid-column:1/-1;width:220px}.design-footer nav{grid-column:auto}.footer-external{grid-column:1/-1;grid-row:auto}.design-footer a{font-size:12px}.design-footer small{margin-top:9px}.footer-instagram img{width:20px;height:20px}
}
@media(max-width:360px){.header-in{grid-template-columns:minmax(0,124px) auto;gap:8px;padding:8px 12px}.my-booking-link{font-size:10px;padding:6px 10px}.language-switch a{font-size:10px;min-width:24px;padding:0 5px}.header-actions{gap:5px}.design-events .card-grid{grid-template-columns:1fr;gap:20px}.design-events .item-card{padding:14px}.design-events .item-card h3{font-size:22px}.design-events .item-card p{font-size:13px}.design-events .kicker{font-size:12px}.design-events .meta-pill{font-size:11px}.design-events .card-image{aspect-ratio:324/200}.design-events .status{font-size:10px}}
@media(prefers-reduced-motion:reduce){.food-track,.map-pin summary,.hero-slide.is-moving img{animation:none}.hero-slide{transition:none;transform:none}.motion-toggle{display:none}.art-photo:hover img,.food-group a:hover img{transform:none}}

/* スマートフォンでは本文を読める幅を優先して、企画カードを一列にします。 */
@media(min-width:361px) and (max-width:480px){.design-events .card-grid{grid-template-columns:1fr;gap:22px}.design-events .item-card{padding:14px}.design-events .card-image{aspect-ratio:324/200}.design-events .card-body{padding:12px 7px 0}.design-events .item-card h3{font-size:23px}.design-events .item-card p{font-size:13px}.design-events .kicker{font-size:12px}.design-events .status{font-size:10px}.design-events .meta-pill{font-size:11px}}
/* 日付と会場を同じ二段グリッドに置き、詳細矢印のために空行を作りません。 */
.design-events .meta-pill:first-child{grid-row:1}
.design-events .meta-pill:nth-child(2){grid-row:2;padding-right:54px}
.design-events .arrow{grid-column:2;grid-row:2;font-size:11px;display:flex;align-items:center;justify-content:flex-end}
.design-events .arrow:before{content:"詳細";font-size:10px;margin-right:3px}
html[lang=en] .design-events .arrow:before{content:"Details"}

/* 操作できるボタンとカードに、共通の浮き上がりと影を付けます。 */
:is(.btn,.map-button,.my-booking-link,.event-pagination button,.day-btn,.motion-toggle){transition:translate .22s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease,border-color .22s ease}
.item-card{transition:translate .25s ease,box-shadow .25s ease}
.item-card .arrow{transition:translate .25s ease,background-color .22s ease,color .22s ease}
:is(.btn,.map-button,.my-booking-link,.event-pagination button,.day-btn,.motion-toggle):not(:disabled):not([aria-disabled=true]):focus-visible{translate:0 -3px;box-shadow:0 8px 18px #0002}
.item-card:focus-visible{translate:0 -6px;box-shadow:0 14px 28px #0003}
.item-card:focus-visible .arrow{translate:3px 0}
@media(hover:hover) and (pointer:fine){
 :is(.btn,.map-button,.my-booking-link,.event-pagination button,.day-btn,.motion-toggle):not(:disabled):not([aria-disabled=true]):hover{translate:0 -3px;box-shadow:0 8px 18px #0002}
 :is(.btn,.map-button,.my-booking-link,.event-pagination button,.day-btn,.motion-toggle):not(:disabled):not([aria-disabled=true]):active{translate:0 -1px;box-shadow:0 3px 8px #0002}
 .item-card:hover{translate:0 -6px;box-shadow:0 14px 28px #0003}
 .item-card:hover .arrow{translate:3px 0}
 .item-card:active{translate:0 -2px;box-shadow:0 5px 12px #0002}
}
/* 動きを抑える設定では位置を動かさず、影とフォーカス枠で反応を伝えます。 */
@media(prefers-reduced-motion:reduce){
 :is(.btn,.map-button,.my-booking-link,.event-pagination button,.day-btn,.motion-toggle,.item-card,.item-card .arrow){translate:none!important}
}
