/* Generated from style-hover / style-focus in the Claude Design canvas. */
.of-1762ec4d:focus{border-color:#D6BA59 !important}
.oh-15f24783:hover{color:#D6BA59 !important;border-bottom:1px solid #D6BA59 !important}
.oh-1671cc9a:hover{background:rgba(214,186,89,.1) !important}
.oh-1fbd8891:hover{border-color:#D6BA59 !important;color:#D6BA59 !important}
.oh-25633c3e:hover{border-color:#D6BA59 !important;background:rgba(214,186,89,.1) !important}
.oh-29276011:hover{background:#E2CA74 !important}
.oh-2c886f10:hover{background:rgba(214,186,89,.12) !important}
.oh-36067406:hover{background:rgba(214,186,89,.3) !important}
.oh-3a607f97:hover{color:#FBFBF9 !important}
.oh-6fae9623:hover{background:#E2CA74 !important;color:#050505 !important}
.oh-9459e18d:hover{transform:translateY(-2px) !important;background:#E2CA74 !important}
.oh-a1e7be86:hover{color:#FBFBF9 !important;border-bottom:1px solid #2A3B43 !important}
.oh-b657dd16:hover{background:#D6BA59 !important;color:#FBFBF9 !important}
.oh-b7c92865:hover{color:#D6BA59 !important}
.oh-d5ee0c5c:hover{background:rgba(214,186,89,.2) !important}
.oh-e7bb73d8:hover{background:rgba(214,186,89,.12) !important;color:#D6BA59 !important}
.oh-f5c8ec79:hover{background:#D6BA59 !important;color:#050505 !important}
.oh-f871cd79:hover{opacity:.85 !important}
.oh-fa4ac4c6:hover{background:rgba(214,186,89,.1) !important;color:#D6BA59 !important}

/* --- Static-site shell rules (added by the converter) --- */
[data-oobu-header="mobile"]{display:none}
@media (max-width:1160px){
  [data-oobu-header="desktop"]{display:none}
  [data-oobu-header="mobile"]{display:block}
}
[hidden]{display:none !important}
img{max-width:100%}
html{scrollbar-width:thin;scrollbar-color:rgba(214,186,89,.45) #1B2429}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#1B2429}
::-webkit-scrollbar-thumb{background:rgba(214,186,89,.45);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:#E2CA74}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.001ms !important;animation-duration:.001ms !important}
}

/* --- dc-runtime island (InquiryWizard): neutralise its full-page CSS --- */
html, body { height: auto !important; }
#dc-root, #dc-root > .sc-host { height: auto !important; }
[data-oobu-wizard] { display: block; }

/* --- mobile: stop iOS Safari zooming the page when a field is focused --- */
/* Safari zooms whenever an editable field is under 16px. The design's 15px is
   applied inline, so this needs !important to win. Desktop keeps 15px. */
@media (max-width: 900px) {
  input, select, textarea { font-size: 16px !important; }
}

/* --- tap targets: keep the visual size, grow the hit area to 24px --- */
/* Carousel dots are 9px by design; the pseudo-element adds reach without
   changing layout (WCAG 2.5.8 minimum target size). */
[data-oobu-dot] { position: relative; }
[data-oobu-dot]::after {
  content: ""; position: absolute; left: 50%; top: 50%;
  width: 24px; height: 24px; transform: translate(-50%, -50%);
}

/* --- slot images: fit the frame instead of stretching --- */
/* The converter froze a per-viewport percentage height into each image
   (e.g. height:291.892% with object-fit:fill), so every photo distorted as
   soon as the window changed size - 46% squash at 700px. Cover-crop instead. */
.oslot img {
  position: absolute !important;
  inset: 0 !important;
  left: 0 !important; top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  transform: none !important;
  object-fit: cover !important;
  /* Focal point: the canvas froze a crop offset into each image, which the
     rule above discards. --focus restores it (and lets us tune it), set per
     slot by _tools/apply-focus.py from _tools/focus/focus.json.
     Default 50% 50% = the old behaviour. */
  object-position: var(--focus, 50% 50%) !important;
}

/* --- venue carousel: cells must fit the screen --- */
/* They are a fixed 510px in the canvas, which is wider than a phone. */
@media (max-width: 620px) {
  .vc-scroll > figure {
    width: min(84vw, 510px) !important;
    height: auto !important;
    aspect-ratio: 3 / 2;
  }
}
@media (max-width: 400px) {
  .vc-scroll > figure { width: 88vw !important; }
}

/* --- guest review carousel --- */
/* These sizing rules lived only in the front page's own <style>, so the same
   markup reused on another page produced one card as wide as its longest
   quote, with the text clipped. They belong here, next to the behaviour. */
.rev-track { scrollbar-width: none; -ms-overflow-style: none; }
.rev-track::-webkit-scrollbar { display: none; }
.rev-card { width: calc((100% - 40px) / 3); }
@media (max-width: 900px) { .rev-card { width: 100%; } }

/* --- tap targets --- */
/* Footer links, the phone number and the language switcher sit around 16-20px
   tall, under the 24px minimum Google's mobile-usability check looks for and
   fiddly on a phone. This grows the touchable area without moving anything:
   the padding is negative-margined back out, so the layout is unchanged. */
@media (max-width: 900px) {
  footer a,
  a[href^="tel:"],
  a[href^="mailto:"] {
    display: inline-block;
    padding: 6px 4px;
    margin: -6px -4px;
  }
}
