*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#222;color:#777;font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Kaku Gothic ProN",sans-serif;font-weight:300;line-height:1.8}a{color:inherit;text-decoration:none}a:hover{opacity:.65}.site-frame{max-width:1500px;margin:30px auto;background:#f8f8f6;border-radius:60px;overflow:hidden}.top-layout{display:grid;grid-template-columns:186px minmax(0,1fr)}.side{padding:48px 28px 30px 40px;display:flex;flex-direction:column;align-items:flex-start;gap:54px;min-width:0}.brand{display:block;width:110px}.brand img{display:block;width:100%;height:auto;mix-blend-mode:multiply}.side nav{display:flex;flex-direction:column;gap:20px;font-size:12px;letter-spacing:.17em;color:#666}.side-links{margin-top:auto;display:flex;flex-direction:column;gap:12px;font-size:10px;letter-spacing:.08em}.main{min-width:0}.hero{height:575px;position:relative;overflow:hidden;background:#666}.hero img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block;filter:none}.hero-title{position:absolute;top:45%;left:5%;right:5%;transform:translateY(-50%);font-size:clamp(21px,3.15vw,46px);letter-spacing:.15em;font-weight:500;color:white;text-shadow:none;white-space:nowrap}.about-strip{padding:30px 35px 40px 0;display:grid;grid-template-columns:minmax(250px,1fr) minmax(0,1.15fr);gap:24px;align-items:start}.about-text h1,.content-section h2{font-size:25px;font-weight:500;color:#727171;letter-spacing:.07em;line-height:1.3;margin:8px 0 15px}.about-text p{font-size:12px;line-height:2.2;margin:0;color:#888}.about-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.about-photos img{width:100%;aspect-ratio:1;object-fit:cover;display:block;filter:saturate(.66) brightness(.96)}.content-section{padding:65px 7% 70px;border-top:1px solid #e7e7e4}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:32px}.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;filter:saturate(.78)}.calendar-section{text-align:center}.legend,.hours{font-size:12px;color:#888}.calendar-section .legend{max-width:660px;margin:0 auto;text-align:left}.calendar-controls{display:flex;justify-content:space-between;align-items:center;max-width:660px;margin:34px auto 12px}.calendar-controls strong{font-size:18px;font-weight:500;letter-spacing:.14em}.calendar-controls button{background:transparent;border:0;font-size:32px;color:#888;cursor:pointer;padding:0 14px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));max-width:660px;margin:auto;border-left:1px solid #ddd;border-top:1px solid #ddd}.calendar-grid>div{min-height:79px;padding:6px 2px;border-right:1px solid #ddd;border-bottom:1px solid #ddd}.calendar-grid .weekday{min-height:36px;font-size:11px;color:#999}.calendar-grid .day{display:block;font-size:16px}.calendar-grid .mark{display:block;font-size:24px;line-height:1.7;min-height:36px}.calendar-grid .closed .mark{visibility:hidden}.calendar-grid .today{background:#f0f0ee}.calendar-grid .event{font-size:10px;display:block}.hours{margin-top:24px}.access-section{text-align:center}.access-section p{font-size:13px}.map-placeholder iframe{display:block;width:100%;max-width:750px;min-height:350px;border:0;margin:24px auto}.online-section{text-align:center}.online-section a{display:inline-block;padding:12px 22px;margin:10px;border:1px solid #bbb;font-size:12px;letter-spacing:.1em}footer{padding:25px 7%;font-size:10px;color:#aaa;display:flex;justify-content:space-between}footer a{text-decoration:underline}@media(max-width:1000px){.site-frame{margin:16px;border-radius:35px}.top-layout{grid-template-columns:145px minmax(0,1fr)}.side{padding:35px 16px 20px 24px;gap:40px}.brand{width:88px}.hero{height:470px}.hero-title{font-size:clamp(19px,3.2vw,35px)}.about-strip{grid-template-columns:1fr;padding:26px 24px 36px}.about-photos{gap:8px}}@media(max-width:700px){body{background:#f8f8f6}.site-frame{margin:0;border-radius:0}.top-layout{display:block}.side{padding:18px 20px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.brand{width:57px;flex:none}.side nav{flex-direction:row;flex-wrap:wrap;gap:10px;font-size:10px}.side-links{display:none}.hero{height:78vw;min-height:340px}.hero img{object-position:center 15%}.hero-title{font-size:clamp(17px,4vw,28px);letter-spacing:.07em;left:5%;right:3%;white-space:normal}.about-strip{padding:32px 6% 40px}.about-text h1,.content-section h2{font-size:23px}.about-photos{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.content-section{padding:50px 6%}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calendar-grid>div{min-height:54px}.calendar-grid .weekday{min-height:30px;font-size:9px}.calendar-grid .mark{font-size:20px;min-height:26px}.calendar-controls{margin-top:25px}footer{flex-wrap:wrap;gap:10px}}@media(max-width:390px){.side{align-items:flex-start;flex-direction:column}.hero{min-height:300px}.hero-title{font-size:19px}}
/* v8: align menu right edges with logo right edge on desktop */
@media(min-width:701px){.side nav{width:110px;align-items:flex-end;text-align:right}.side nav a{white-space:nowrap}}
@media(min-width:701px) and (max-width:1000px){.side nav{width:88px}}

/* v9: mobile hero crop; desktop remains unchanged */
@media(max-width:700px){.hero{height:58vw;min-height:0}.hero img{object-position:center top}}
@media(max-width:390px){.hero{min-height:0}}
/* Calendar: Sunday/holiday red, Saturday blue (date numerals only) */
.calendar-grid .sunday .day,.calendar-grid .holiday .day,.calendar-grid .weekday:first-child{color:#b77979}
.calendar-grid .saturday .day,.calendar-grid .weekday:nth-child(7){color:#728fa7}

/* v12: enforce compact mobile hero; desktop unchanged */
@media screen and (max-width:700px) {
  .top-layout .hero { height: 55vw; min-height: 0; max-height: 240px; overflow: hidden; }
  .top-layout .hero > img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
}

/* v13: square corners on desktop and tablet */
.site-frame { border-radius: 0; }

/* v14: calendar legend consolidated beneath grid; preserve mark font size */
.calendar-grid .open .mark { color:#808080; }
.hours { display:table; margin:24px auto 0; text-align:left; font-size:12px; color:#888; line-height:1.8; }
.hours-row { display:flex; align-items:center; gap:9px; }
.hours-dot { display:inline-block; width:12px; height:12px; border-radius:50%; background:#808080; flex:none; }
.hours-closed { padding-left:21px; }
/* リニューアル休業中：営業日マークを非表示 */
.calendar-grid .open .mark {
    visibility: hidden;
}
