@media(max-width:1024px){.desktop-nav{display:none}.menu-toggle{display:block}.mobile-menu,.menu-backdrop{display:block;position:fixed}.menu-backdrop{z-index:98;inset:0;background:rgba(20,18,16,.58);opacity:0;visibility:hidden;transition:.25s}.mobile-menu{z-index:99;right:0;top:0;width:min(80vw,420px);height:100dvh;padding:24px 28px;background:var(--paper);color:var(--ink);transform:translateX(100%);visibility:hidden;transition:.3s}.menu-open .menu-backdrop{opacity:1;visibility:visible}.menu-open .mobile-menu{transform:none;visibility:visible}.mobile-menu-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.mobile-menu-head button{border:0;background:none;font-size:2rem}.mobile-nav ul{padding:18px 0;margin:0;list-style:none}.mobile-nav a{display:block;padding:10px 0;font-family:var(--serif);font-size:1.2rem}.mobile-extra{display:grid;gap:8px;padding-top:18px;border-top:1px solid var(--line);color:var(--red)}.fair-layout{grid-template-columns:1fr;gap:45px}.program-grid{grid-template-columns:1fr 1fr}.program-card:last-child{grid-column:span 2}.program-card:last-child .media{aspect-ratio:3/2}}
@media(max-width:767px){body{font-size:16px}.container{width:calc(100% - 40px)}.section{padding:84px 0}.site-header{height:64px}.header-inner{width:calc(100% - 40px)}.brand{max-width:235px;font-size:.84rem}.brand img{height:36px;max-width:190px}.hero{min-height:780px}.hero-content{width:calc(100% - 40px);padding:150px 0 68px}.hero h1{font-size:clamp(2.45rem,12vw,3.65rem)}.hero p{font-size:1rem}.hero-media{inset:0}.button-row{display:grid}.button{width:100%;min-height:50px}.intro-grid,.rental-grid,.contact-grid{grid-template-columns:1fr;gap:45px}.intro-media,.rental-media,.contact-media{order:-1;aspect-ratio:4/5}.history{grid-template-columns:repeat(2,1fr);gap:20px}.history div{padding-right:10px}.program-grid{grid-template-columns:1fr}.program-card:last-child{grid-column:auto}.program-card.featured .media,.program-card:last-child .media{aspect-ratio:4/5}.works-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.works-grid .media:first-child{grid-column:span 2;grid-row:auto}.works-grid .media:last-child{grid-column:span 2}.news-grid{grid-template-columns:1fr;gap:36px}.contact-types{display:grid;gap:6px}.footer-inner{width:calc(100% - 40px);grid-template-columns:1fr;gap:32px}.footer-nav{padding-top:28px;border-top:1px solid #514c47}.copyright{width:calc(100% - 40px);margin-top:40px}.phone-fab{right:20px;bottom:20px;width:56px;height:56px}.phone-fab em{display:none}.image-guide{padding:22px}.image-guide dl div{grid-template-columns:66px 1fr}.toast{bottom:90px;width:max-content;max-width:calc(100% - 40px);text-align:center}}
@media(max-width:400px){.brand{max-width:210px;font-size:.78rem}.hero h1{font-size:2.35rem}.image-guide dl{font-size:.66rem}.image-guide small{font-size:.66rem}}

.error-page { overflow-x: hidden; }
.error-page .site-header { background: rgba(246, 241, 232, .98); color: var(--ink); box-shadow: 0 1px 0 var(--line); }
[data-hide-when-empty][hidden], [data-hide-when-empty] [hidden] { display: none !important; }

.media.is-guide {
  height: auto !important;
  min-width: 0;
  aspect-ratio: auto !important;
  overflow: visible;
  container-type: inline-size;
}
.media.is-guide .image-guide { position: relative; inset: auto; min-height: inherit; height: auto; }
.image-guide dl div:nth-child(-n + 2) dd { overflow-wrap: anywhere; word-break: break-all; }

@container (max-width: 320px) {
  .image-guide dl div { grid-template-columns: 1fr; gap: 1px; }
  .image-guide dt { margin-top: 4px; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .header-inner { width: calc(100% - 32px); }
  .brand { max-width: 200px; font-size: .82rem; }
  .desktop-nav { display: block; }
  .desktop-nav ul { gap: 14px; }
  .desktop-nav a { font-size: .82rem; }
  .menu-toggle, .mobile-menu, .menu-backdrop { display: none; }
}

@media (max-width: 767px) { .error-page .site-footer { padding-bottom: 100px; } }

.desktop-nav > ul { display:flex; gap:clamp(18px,2.2vw,36px); padding:0; margin:0; list-style:none; }
.nav-group { position:relative; list-style:none; }
.nav-parent { display:flex; align-items:center; }
.submenu-toggle { position:relative; min-height:34px; padding:0; border:0; background:none; color:currentColor; font:inherit; font-weight:500; cursor:pointer; }
.desktop-nav .submenu-toggle { font-size:.94rem; }
.desktop-nav .submenu { display:block; position:absolute; z-index:110; top:calc(100% + 18px); left:50%; width:max-content; min-width:190px; margin:0; padding:10px 0; background:var(--paper); color:var(--ink); border:1px solid var(--line); box-shadow:0 12px 28px rgba(43,40,37,.14); list-style:none; opacity:0; visibility:hidden; transform:translate(-50%,-6px); transition:.18s; }
.desktop-nav .nav-group.is-open > .submenu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.desktop-nav .submenu a { display:block; padding:10px 18px; white-space:nowrap; }
.desktop-nav a,.mobile-nav a { text-decoration:none; font-weight:500; }
.desktop-nav a::before,.desktop-nav a::after,.desktop-nav .submenu-toggle::before,.desktop-nav .submenu-toggle::after,.mobile-nav a::before,.mobile-nav a::after,.mobile-nav .submenu-toggle::before,.mobile-nav .submenu-toggle::after { content:none; display:none; }
.desktop-nav a,.desktop-nav .submenu-toggle,.mobile-nav a,.mobile-nav .submenu-toggle { border-bottom:0; box-shadow:none; background-image:none; }
.desktop-nav a:hover,.desktop-nav .submenu-toggle:hover,.desktop-nav .submenu a:hover,.mobile-nav a:hover,.mobile-nav .submenu-toggle:hover { color:var(--red); text-decoration:none; }
.desktop-nav [aria-current],.mobile-nav [aria-current] { color:var(--red); font-weight:600; text-decoration:none; }
.desktop-nav a:focus-visible,.desktop-nav .submenu-toggle:focus-visible,.mobile-nav a:focus-visible,.mobile-nav .submenu-toggle:focus-visible { outline:1px solid var(--red); outline-offset:3px; border-radius:2px; }
.desktop-nav a:focus:not(:focus-visible),.desktop-nav .submenu-toggle:focus:not(:focus-visible),.mobile-nav a:focus:not(:focus-visible),.mobile-nav .submenu-toggle:focus:not(:focus-visible) { outline:none; }

@media (max-width:1023px) {
  .mobile-nav > ul { padding:18px 0; margin:0; list-style:none; }
  .mobile-nav .nav-parent { border-bottom:0; }
  .mobile-nav .submenu-toggle { width:100%; min-height:48px; padding:10px 0; text-align:left; font-family:var(--serif); font-size:1.2rem; }
  .mobile-nav .submenu { margin:0 0 8px; padding:4px 0 8px 18px; border-left:2px solid var(--line); list-style:none; }
  .mobile-nav .submenu[hidden] { display:none; }
  .mobile-nav .submenu a { padding:8px 0; font-family:inherit; font-size:.98rem; }
  .mobile-nav a[aria-current],.mobile-nav .submenu-toggle[aria-current] { color:var(--red); font-weight:600; }
}

@media (min-width:1024px) and (max-width:1199px) { .desktop-nav .submenu-toggle { font-size:.82rem; } }

@media (min-width:1024px) {
  .header-inner { display:flex; align-items:center; justify-content:space-between; }
  .desktop-nav { display:block; margin-left:auto; }
  .desktop-nav > ul { display:flex; flex-wrap:nowrap; align-items:center; justify-content:flex-end; }
  .desktop-nav > ul > li { position:relative; display:flex; align-items:center; flex:0 0 auto; margin:0; padding:0; }
  .desktop-nav > ul > li > a,
  .desktop-nav > ul > li > .nav-parent > .submenu-toggle { display:inline-flex; align-items:center; justify-content:center; height:44px; min-height:44px; margin:0; padding:0; line-height:1.4; white-space:nowrap; }
  .desktop-nav .nav-parent { display:flex; align-items:center; height:44px; }
  .desktop-nav .submenu { top:calc(100% + 20px); left:0; right:auto; margin:0; transform:translateY(-6px); }
  .desktop-nav .nav-group.is-open > .submenu { transform:translateY(0); }
}
