/* Desktop pilot only. All assets and geometry live in head-desktop.json. */
.head-desktop-only { display: none; }
.hd-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media all {
  body.head-area {
    --mg-text: #382c22;
    --mg-paper: #fffdf9f5;
    --mg-label-color: #a78355;
    --mg-label-width: .85px;
    --mg-line-color: #a58456;
    --mg-line-width: .8px;
    --mg-booking-width: 1.3px;
    --mg-mode-width: 1.3px;
    --mg-search-width: .85px;
    --mg-serif: 'Times New Roman', Georgia, serif;
    color: var(--mg-text);
    min-height: 100vh;
    background: #f8f3eb var(--hd-background) center top / cover fixed no-repeat;
  }
  .head-area > .site-header, .head-area .head-legacy { display: none; }
  .head-desktop-only { display: block; --mg-control-hover: #f6edde; --mg-control-selected-hover: #e8d6b7; }
  .head-area main.page { max-width: none; width: 100%; padding: 0; margin: 0; min-height: 0; }
  .hd-header { position: relative; z-index: 4; display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; max-width: 1600px; min-height: 128px; padding: 22px 48px 0; margin: auto; }
  .hd-logo { display: block; width: clamp(290px, 27vw, 375px); flex: 0 0 auto; }
  /* Keep the supplied transparent logo intact; retain the existing omission of the unconfirmed registration mark. */
  .hd-logo img { width: 100%; height: auto; clip-path: polygon(0 0,93% 0,93% 24%,100% 24%,100% 100%,0 100%); }
  .hd-header-actions { display: flex; align-items: center; gap: 34px; }
  .hd-header .mg-booking { width: 260px; }
  .hd-menu { position: relative; }
  .hd-menu > summary { display: flex; align-items: center; justify-content: center; width: 56px; height: 60px; list-style: none; }
  .hd-menu > summary::-webkit-details-marker { display: none; }
  .hd-menu > summary svg { width: 40px; height: 36px; fill: none; stroke: #684321; stroke-width: 2; }
  .hd-menu > nav { position: absolute; z-index: 10; top: 76px; right: 0; width: min(350px, 80vw); padding: 8px; color: var(--mg-text); filter: drop-shadow(0 6px 14px #513f2614); }
  .hd-menu-content { position: relative; max-height: calc(100dvh - var(--hd-menu-top, 98px) - 32px); overflow-y: auto; overscroll-behavior: contain; padding: 14px 22px 8px; }
  .hd-menu > nav a, .hd-menu-pending { display: block; padding: 14px 4px; min-height: 48px; font: 1.125rem/1.4 var(--mg-serif); overflow-wrap: anywhere; border-bottom: 1px solid #e5d6bf; }
  .hd-menu > nav a:last-of-type { border-bottom: 0; }
  .hd-menu > nav a:hover { color: var(--mg-text); background: #f5eddf; }
  .hd-menu > nav a:focus-visible { outline: 2px solid #624426; outline-offset: 2px; background: #f5eddf; }
  .hd-menu-pending { color: var(--mg-text); }
  .hd-menu-pending small { display: block; font: .8125rem/1.5 'Segoe UI', sans-serif; }
  .hd-menu-ornament { display: block; width: 76%; height: 20px; margin: 6px auto 4px; fill: none; stroke: #c4a271; stroke-width: .85px; pointer-events: none; }
  .hd-menu-ornament .hd-menu-diamond { fill: #c4a271; stroke: none; }
  .hd-pilot { position: relative; max-width: 1600px; margin: auto; }
  .hd-back { position: absolute; z-index: 3; left: 48px; top: 6px; min-height: 44px; display: inline-flex; align-items: center; gap: 12px; font: 1.125rem/1.3 var(--mg-serif); }
  .hd-back span { text-decoration: underline; text-underline-offset: 5px; }
  .hd-map { position: relative; isolation: isolate; width: calc(100% - 64px); max-width: 1120px; margin: 0 auto; }
  .hd-portrait { display: block; position: absolute; left: 50%; transform: translateX(-50%); z-index: -1; pointer-events: none; }
  .hd-portrait img { display: block; width: 100%; height: auto; max-width: none; mask-image: linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%); }
  .hd-connectors { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
  .hd-connectors path, .hd-connectors circle { fill: none; stroke: var(--mg-line-color); stroke-width: var(--mg-line-width); vector-effect: non-scaling-stroke; }
  .hd-connectors circle { fill: #fffdf9; }
  .mg-control { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: .7em; min-height: 48px; padding: 10px 22px; border: 0; border-radius: 0; background: transparent; color: var(--mg-text); font: 400 1.375rem/1.25 var(--mg-serif); text-decoration: none; cursor: pointer; }
  .mg-control > span, .mg-control > .mg-icon { position: relative; z-index: 1; }
  .mg-control:hover { color: #543714; }
  .mg-control:focus-visible { outline: 3px solid #624426; outline-offset: 5px; }
  .mg-frame { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 0; }
  .mg-frame path { stroke-linejoin: miter; vector-effect: non-scaling-stroke; }
  .mg-frame-outer { fill: var(--mg-paper); }
  .mg-frame-inner { fill: none; }
  .mg-icon { width: 22px; height: 22px; flex: 0 0 auto; stroke: currentColor; stroke-width: 1.4; }
  .hd-labels .mg-area { position: absolute; width: 160px; min-height: 48px; transform: translate(-50%,-50%); padding: 8px 16px; white-space: nowrap; }
  :is(.mg-area,.mg-whole) .mg-frame-outer { stroke: var(--mg-label-color); stroke-width: var(--mg-label-width); }
  :is(.mg-area,.mg-whole) .mg-frame-inner { display: none; }
  .mg-booking { min-height: 60px; font-size: 1.25rem; letter-spacing: .015em; }
  .mg-booking .mg-frame-outer, .hd-menu-frame .mg-frame-outer { fill: #fffaf2f5; stroke: #97672f; stroke-width: var(--mg-booking-width); }
  .mg-booking .mg-frame-inner, .hd-menu-frame .mg-frame-inner { stroke: #c4a271; stroke-width: .85px; }
  .hd-menu-frame .mg-frame-outer { fill: #fffcf7; }
  .mg-whole { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); min-width: 245px; min-height: 56px; font-size: 1.5rem; }
  .hd-bottom { position: relative; width: calc(100% - 80px); max-width: 840px; padding: 18px 30px 8px; margin: 0 auto; }
  .mg-modes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
  .mg-mode { min-height: 54px; font-size: 1.5rem; }
  .mg-mode .mg-frame-outer { stroke: #97672f; stroke-width: var(--mg-mode-width); }
  .mg-mode .mg-frame-inner { stroke: #c4a271; stroke-width: .85px; }
  .mg-mode[aria-current] .mg-frame-outer { fill: #f2e5ce; }
  /* Shared feedback for existing and future framed controls; keep selection visible. */
  .mg-control:is(:hover, :focus-visible) .mg-frame-outer { fill: var(--mg-control-hover); }
  .mg-mode[aria-current]:is(:hover, :focus-visible) .mg-frame-outer { fill: var(--mg-control-selected-hover); }
  .head-area form.mg-search { position: relative; display: flex; align-items: center; gap: 14px; min-height: 56px; max-width: none; margin: 10px 24px 0; padding: 4px 14px; }
  .mg-search .mg-frame-outer { stroke: #ac9171; stroke-width: var(--mg-search-width); }
  .mg-search .mg-frame-inner { display: none; }
  /* Focus follows the existing cut-corner frame, including on treatment pages. */
  .mg-search:focus-within .mg-frame-outer { stroke: #97672f; stroke-width: 2px; fill: #fffaf2; }
  .mg-search:focus-within input:focus { outline: none; box-shadow: none; }
  .mg-search > .mg-icon, .mg-search input, .mg-search button { position: relative; z-index: 1; }
  .mg-search input { min-width: 0; width: 100%; flex: 1; border: 0; outline: 0; padding: 8px 0; color: var(--mg-text); background: transparent; font: 1.125rem/1.4 var(--mg-serif); }
  .mg-search input::placeholder { color: #74675c; opacity: 1; }
  .mg-search button { display: flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; min-height: 44px; padding: 8px; border: 0; background: transparent; color: var(--mg-text); }
  .hd-support { width: calc(100% - 80px); max-width: 780px; margin: 8px auto 0; }
  .hd-alternative > summary { display: flex; align-items: center; justify-content: center; gap: 10px; width: fit-content; max-width: 100%; min-height: 48px; margin: 0 auto; padding: 14px 8px; font-size: 1rem; line-height: 1.4; text-align: center; }
  .hd-disclosure-arrow { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.4; }
  .hd-alternative[open] .hd-disclosure-arrow { transform: rotate(180deg); }
  .hd-alternative .choice-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 28px; margin: 12px 0 0; border: 0; }
  .hd-alternative .choice-list li { border: 0; }
  .hd-alternative .choice-row { min-height: 64px; padding: 14px 12px; background: transparent; }
  .hd-alternative .choice-row > span { font-size: 1.125rem; font-weight: 500; color: #30251c; text-align: center; }
  .hd-alternative .hd-area-count { font-size: .875em; font-weight: 400; color: #5e4c3b; white-space: nowrap; }
  .hd-alternative .choice-row:hover > span { text-decoration: underline; text-underline-offset: 4px; }
  .hd-alternative :is(summary,a):focus-visible { outline: 3px solid #624426; outline-offset: 3px; }
  .mg-info { min-height: 48px; font-size: 1.125rem; margin: 4px 0 20px; }
  .mg-info .mg-frame-outer { stroke: #a78355; stroke-width: .85px; }
  .mg-info .mg-frame-inner { display: none; }
  .hd-image-error { position: absolute; top: 30%; left: 33%; width: 34%; padding: 20px; text-align: center; background: #fffdf9; }
  .head-area > .site-footer { display: none; }
  /* Keep the supplied transparent PNG intact; only trim its empty canvas in the layout. */
  .hd-ornament { position: relative; width: calc(100% - 80px); max-width: 760px; height: 96px; margin: 0 auto; overflow: hidden; }
  .hd-ornament img { position: absolute; display: block; width: 100%; height: auto; top: 50%; transform: translateY(-50%); }
  .hd-portrait-failed .hd-connectors { display: none; }
  .large-text .hd-header { align-items: flex-start; flex-wrap: wrap; }
  .large-text .hd-header-actions { gap: 20px; }
  .large-text .hd-header .mg-booking { width: auto; }
  .large-text .hd-back { position: static; margin: 16px 48px; }
  .large-text .hd-map { aspect-ratio: auto; display: flex; flex-direction: column; gap: 20px; }
  .large-text .hd-portrait { position: static; transform: none; width: 430px; max-width: 100%; margin: auto; }
  .large-text .hd-connectors { display: none; }
  .large-text .hd-labels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .large-text .hd-labels .mg-area { position: relative; left: auto; top: auto; transform: none; width: auto; min-height: 72px; padding: 16px; }
  .large-text .mg-whole { position: relative; transform: none; left: auto; bottom: auto; align-self: center; max-width: 100%; }
  .large-text .hd-bottom { margin-top: 30px; }
  .large-text .hd-bottom .mg-modes { grid-template-columns: 1fr; }
  .large-text .hd-alternative .choice-list { grid-template-columns: 1fr; }
  .large-text .hd-menu > nav { width: min(450px, 80vw); }
}
@media (min-width:1024px) and (max-width:1199px) {
  .hd-header { padding-inline: 28px; }
  .hd-header-actions { gap: 18px; }
  .hd-header .mg-booking { width: 230px; }
  .hd-labels .mg-area { width: 140px; font-size: 1.25rem; }
  .hd-back { left: 28px; }
}
@media (forced-colors:active) {
  .mg-control, .mg-search { border: 1px solid ButtonText; }
  .mg-frame { display: none; }
  .mg-search:focus-within { outline: 2px solid Highlight; outline-offset: 3px; }
  .hd-menu > nav { background: Canvas; border: 1px solid CanvasText; filter: none; }
}
