/* A single mobile header replaces the category bars wherever the one-row desktop bar would not fit. */
.rh-mobile-header, .rh-mobile-switch { display: none; }
.rh-mobile-menu { display: none; }
.rh-gallery-tickets { display: inline-flex; align-items: center; color: inherit; }
.rh-gallery-tickets svg { display: block; }

@media (max-width: 1150px) {
  /* header[class] outranks the approved layout's !important category-bar rules. */
  .rh-section-switcher,
  body > header,
  body > header[class],
  body > .mark { display: none !important; }

  .rh-mobile-header,
  .rh-mobile-menu-top {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 12px;
    height: 58px;
    padding: 5px 16px;
    background: #fff;
    color: #171717;
  }
  /* The Studio / Gallery strip sits above the header and scrolls away; only the header stays. */
  .rh-mobile-switch {
    box-sizing: border-box;
    position: relative;
    z-index: 20002;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
    height: 34px;
    padding: 0 16px;
    background: #fff;
    border-bottom: 1px solid #e5e3df;
  }
  .rh-mobile-switch a { color: #171717; text-decoration: none; text-transform: uppercase; }
  .rh-mobile-switch a[aria-current] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  .rh-mobile-header {
    position: sticky;
    top: 0;
    z-index: 20001;
    border-bottom: 1px solid #e5e3df;
  }

  .rh-mobile-logo { justify-self: center; display: block; width: 140px; }
  .rh-mobile-logo img { display: block; width: 100%; height: auto; }
  .rh-mobile-toggle,
  .rh-mobile-close,
  .rh-mobile-tickets {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
  }
  .rh-mobile-toggle { flex-direction: column; gap: 6px; }
  .rh-mobile-toggle span { display: block; width: 20px; height: 1px; background: currentColor; }
  /* The close button repeats the hamburger's two lines, which turn into an X as the menu opens
     and back into lines as it closes. */
  .rh-mobile-close { position: relative; }
  .rh-mobile-close span { position: absolute; top: 50%; left: 12px; width: 20px; height: 1px; margin-top: -.5px; background: currentColor; }
  .rh-mobile-close span:first-child { transform: rotate(45deg); }
  .rh-mobile-close span:last-child { transform: rotate(-45deg); }
  @keyframes rh-burger-top { from { transform: translateY(-3.5px) rotate(0); } to { transform: translateY(0) rotate(45deg); } }
  @keyframes rh-burger-bottom { from { transform: translateY(3.5px) rotate(0); } to { transform: translateY(0) rotate(-45deg); } }
  .rh-mobile-menu[open] .rh-mobile-close span:first-child { animation: rh-burger-top .32s cubic-bezier(.2, .8, .2, 1); }
  .rh-mobile-menu[open] .rh-mobile-close span:last-child { animation: rh-burger-bottom .32s cubic-bezier(.2, .8, .2, 1); }
  .rh-mobile-menu.is-closing .rh-mobile-close span:first-child { animation: rh-burger-top .2s ease-in reverse forwards; }
  .rh-mobile-menu.is-closing .rh-mobile-close span:last-child { animation: rh-burger-bottom .2s ease-in reverse forwards; }
  .rh-mobile-menu[open] {
    box-sizing: border-box;
    display: grid;
    grid-template-rows: 34px 58px minmax(0, 1fr) auto;
    position: fixed;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: #fff;
    color: #171717;
  }
  .rh-mobile-menu::backdrop { background: #fff; }
  /* The menu fades in, its links following one after another; closing fades it out (mobile-navigation.js). */
  @keyframes rh-menu-in { from { opacity: 0; } }
  @keyframes rh-menu-out { to { opacity: 0; } }
  .rh-mobile-menu[open],
  .rh-mobile-menu[open]::backdrop { animation: rh-menu-in .25s ease-out; }
  .rh-mobile-menu[open] .rh-mobile-links > * { animation: rh-menu-in .4s ease-out backwards; }
  .rh-mobile-menu[open] .rh-mobile-links > :nth-child(2) { animation-delay: .04s; }
  .rh-mobile-menu[open] .rh-mobile-links > :nth-child(3) { animation-delay: .08s; }
  .rh-mobile-menu[open] .rh-mobile-links > :nth-child(4) { animation-delay: .12s; }
  .rh-mobile-menu[open] .rh-mobile-links > :nth-child(5) { animation-delay: .16s; }
  .rh-mobile-menu[open] .rh-mobile-links > :nth-child(n+6) { animation-delay: .2s; }
  .rh-mobile-menu.is-closing,
  .rh-mobile-menu.is-closing::backdrop { animation: rh-menu-out .2s ease-in forwards; }
  @media (prefers-reduced-motion: reduce) {
    .rh-mobile-menu[open],
    .rh-mobile-menu[open]::backdrop,
    .rh-mobile-menu[open] .rh-mobile-links > *,
    .rh-mobile-menu .rh-mobile-close span { animation: none !important; }
  }
  html.rh-mobile-menu-open { overflow: hidden; }
  /* The open menu repeats the page's strip and bar, so nothing shifts when it opens. */
  .rh-mobile-sections {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
    height: 34px;
    padding: 0 16px;
    border-bottom: 1px solid #e5e3df;
  }
  .rh-mobile-sections a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    color: inherit;
    text-transform: uppercase;
    text-decoration: none;
  }
  .rh-mobile-sections [aria-current] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  .rh-mobile-menu-top { border-bottom: 1px solid #e5e3df; }
  .rh-mobile-menu-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 0;
    overflow-y: auto;
    padding: 12px 24px;
  }
  .rh-mobile-links { width: 100%; margin: auto 0; text-align: center; }
  .rh-mobile-links a,
  .rh-mobile-links summary {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 8px 0;
    color: inherit;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
  }
  .rh-mobile-links summary { list-style: none; }
  .rh-mobile-links summary::-webkit-details-marker { display: none; }
  /* A drawn plus: the vertical bar folds flat as the section opens. */
  .rh-mobile-links summary::after {
    content: ''; flex: 0 0 11px; width: 11px; height: 11px; margin-left: 12px;
    background: linear-gradient(currentColor, currentColor) center / 11px 1.25px no-repeat,
                linear-gradient(currentColor, currentColor) center / 1.25px 11px no-repeat;
    transition: transform .32s cubic-bezier(.2, .8, .2, 1), background-size .32s cubic-bezier(.2, .8, .2, 1);
  }
  .rh-mobile-links details:is([data-disclosure-open="true"], [open]:not([data-disclosure-open])) summary::after {
    transform: rotate(180deg);
    background-size: 11px 1.25px, 1.25px 0;
  }
  .rh-mobile-links a[aria-current] { text-decoration: underline; text-underline-offset: 6px; }
  /* Hover fades an underline in, matching the desktop category links. */
  .rh-mobile-switch a:not([aria-current]),
  .rh-mobile-sections a:not([aria-current]),
  .rh-mobile-links :is(a, summary):not([aria-current]) {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    text-decoration-color: transparent;
    transition: text-decoration-color .2s;
  }
  .rh-mobile-links :is(a, summary):not([aria-current]) { text-underline-offset: 6px; }
  .rh-mobile-switch a:hover,
  .rh-mobile-sections a:hover,
  .rh-mobile-links :is(a, summary):hover { text-decoration-color: currentColor; }
  .rh-mobile-submenu { padding: 0 0 12px; }
  /* Full-width divider, then the other language on the left and social icons on the right. */
  .rh-mobile-menu-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; padding: 8px 16px max(12px, env(safe-area-inset-bottom)); border-top: 1px solid #e5e3df; }
  .rh-mobile-language { display: flex; align-items: center; gap: 26px; }
  .rh-mobile-language [aria-pressed="true"] { display: none; }
  .rh-mobile-language button { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; color: inherit; font-family: inherit; text-transform: uppercase; cursor: pointer; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: transparent; transition: text-decoration-color .2s; }
  .rh-mobile-language button:hover,
  .rh-mobile-language [aria-pressed="true"] { text-decoration-color: currentColor; }
  .rh-mobile-social { display: flex; align-items: center; }
  .rh-mobile-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; min-height: 44px; color: inherit; }
  .rh-mobile-social a:last-child { margin-right: -10px; }
  .rh-mobile-social svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
  .rh-mobile-social .rh-social-fill { fill: currentColor; stroke: none; }
  .rh-mobile-header :focus-visible,
  .rh-mobile-menu :focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
}

/* Gallery home copy keeps the same side gutter as its notice and footer blocks. */
@media (prefers-reduced-motion: reduce) {
  .rh-mobile-links summary::after { transition: none; }
}
@media (max-width: 900px) {
  .gallery-home main .ritual-intro { box-sizing: border-box; padding-inline: 24px; }
}

/* The ticket cart is available from every Gallery header. */
.rh-ticket-cart { position:fixed; inset:0 0 0 auto; box-sizing:border-box; width:min(100%,480px); height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; overflow-y:auto; background:#fff; color:#000; opacity:0; transform:translateX(100%); transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .28s ease-out; }
.rh-ticket-cart.is-open { opacity:1; transform:none; }
.rh-ticket-cart::backdrop { background:rgba(20,20,16,.4); opacity:0; transition:opacity .28s; }
.rh-ticket-cart.is-open::backdrop { opacity:1; }
html:has(.rh-ticket-cart[open]) { overflow:hidden; }
@media(prefers-reduced-motion:reduce){.rh-ticket-cart,.rh-ticket-cart::backdrop{transition:none}}
.rh-ticket-cart .rh-cart-content { box-sizing:border-box; display:flex; flex-direction:column; gap:32px; padding:24px 28px 40px; color:#000; }
.rh-ticket-cart .rh-cart-head { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.rh-ticket-cart .rh-cart-head h2 { margin:0; }
.rh-ticket-cart .rh-cart-close { flex:none; width:44px; height:44px; padding:0; border:0; background:none; color:inherit; font:28px Arial,sans-serif; cursor:pointer; }
.rh-ticket-cart .rh-cart-item { display:flex; flex-direction:column; gap:16px; }
.rh-ticket-cart .rh-cart-item :is(h3,p),.rh-ticket-cart .rh-cart-empty :is(h3,p) { margin:0; }
.rh-ticket-cart .rh-cart-empty { display:flex; flex-direction:column; gap:20px; padding:28px; background:#f1f1ef; }
.rh-ticket-cart .rh-cart-empty h3 { font:inherit; text-transform:uppercase; letter-spacing:.15em; }
.rh-ticket-cart .rh-cart-empty p { line-height:1.8; }
.rh-ticket-cart .rh-cart-total { border-top:1px solid #ddd; padding-top:16px; }
.rh-ticket-cart .rh-cart-calendar,.rh-ticket-cart .rh-cart-remove { align-self:flex-start; padding:0; border:0; background:none; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.rh-ticket-cart :is(a,button):focus-visible { outline:1px solid currentColor; outline-offset:4px; }
.checkout .co-pay[hidden] { display:none!important; }
.checkout .rh-ticket-contact { box-sizing:border-box; display:flex; align-items:center; justify-content:center; min-height:44px; padding:11px 18px; border:1px solid #25251f; background:#f1f1ef; color:#000; text-decoration:none; font:inherit; }
.checkout .rh-ticket-contact:focus-visible { outline:1px solid currentColor; outline-offset:4px; }

/* Project photos reach the viewport edges; information follows the first image row. */
body.rh-project-detail main { box-sizing:border-box; width:100%; max-width:none!important; margin:0!important; padding:0!important; }
body.rh-project-detail main > .gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; width:100%; max-width:none; margin:0!important; padding:0; align-items:start; }
body.rh-project-detail main > .gallery img { display:block; width:100%; max-width:none; height:auto; }
body.rh-project-detail main > .gallery[hidden] { display:none!important; }
body.rh-project-detail main > .project-info { box-sizing:border-box; margin:0!important; padding:28px clamp(24px,5vw,72px)!important; background:transparent; color:#000; }
body.rh-project-detail .rh-project-info-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px 32px; max-width:1280px; margin:0 auto 24px; }
body.rh-project-detail .project-info .rh-project-info-heading :is(h1,h2) { margin:0!important; text-align:left; }
body.rh-project-detail .rh-project-info-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; max-width:1280px; margin:auto; }
body.rh-project-detail .rh-project-info-body:not(:has(.rh-project-description)) { grid-template-columns:1fr; }
body.rh-project-detail .rh-project-description { width:100%; max-width:none; min-width:0; margin:0; }
body.rh-project-detail .rh-project-description p { max-width:none; margin:0 0 16px!important; color:#000; font-weight:400; }
body.rh-project-detail .rh-project-description .description-back { display:none; }
body.rh-project-detail .rh-project-description details > summary { display:flex; align-items:center; justify-content:flex-start; gap:.6em; padding:0 0 16px; cursor:pointer; list-style:none; text-decoration:underline; text-underline-offset:4px; }
body.rh-project-detail .rh-project-description summary::-webkit-details-marker { display:none; }
body.rh-project-detail .rh-project-description summary::after { content:'+'; text-decoration:none; }
body.rh-project-detail .rh-project-description details:is([data-disclosure-open="true"],[open]:not([data-disclosure-open])) > summary::after { content:'−'; }
body.rh-project-detail .rh-project-metadata { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; min-width:0; align-content:start; }
body.rh-project-detail .rh-project-metadata :is(dl,.information-columns) { display:contents!important; }
body.rh-project-detail .rh-project-metadata dl > div { display:grid; grid-template-columns:minmax(78px,.85fr) minmax(0,1.15fr)!important; gap:12px; align-content:start; min-width:0; min-height:0; border-top:1px solid #d8d6cf!important; padding:10px 0!important; }
body.rh-project-detail .rh-project-metadata dl > div[hidden] { display:none!important; }
body.rh-project-detail .rh-project-metadata dd { margin:0; overflow-wrap:anywhere; }
body.rh-project-detail .rh-project-metadata .credits-row { grid-column:1/-1; }
body.rh-project-detail .rh-project-metadata .credits-grid p { margin:0!important; }
body.rh-project-detail .project-info .project-return { max-width:1280px; margin:16px auto 0!important; padding:0!important; background:none; text-align:left; }
body.rh-project-detail .project-info .project-return a { min-width:0; padding:8px 14px!important; border-radius:0!important; }
body.rh-project-detail main > .plans { box-sizing:border-box; max-width:1280px; margin:32px auto; padding:24px; }
@media(max-width:1000px){body.rh-project-detail .rh-project-info-body{grid-template-columns:1fr;gap:16px}}
@media(max-width:650px){body.rh-project-detail main > .gallery{grid-template-columns:1fr}body.rh-project-detail .rh-project-metadata{grid-template-columns:1fr}body.rh-project-detail main > .project-info{padding:24px!important}}

/* Only the chosen section's menu shows in the overlay. */
.rh-mobile-links[hidden] { display: none !important; }
