/* 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;
  }
}

/* --- occasion pages: facts strip --- */
.fact-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(214,186,89,.3);
  border-bottom: 1px solid rgba(214,186,89,.3);
}
.fact-grid > div { padding: 28px 24px; border-left: 1px solid rgba(214,186,89,.2); }
.fact-grid > div:nth-child(3n+1) { border-left: none; }
.fact-grid > div:nth-child(n+4) { border-top: 1px solid rgba(214,186,89,.2); }
@media (max-width: 860px) {
  .fact-grid { grid-template-columns: 1fr; }
  .fact-grid > div { border-left: none; border-top: 1px solid rgba(214,186,89,.2); }
  .fact-grid > div:first-child { border-top: none; }
}

/* --- occasion cards: same hover as the venue image cards --- */
.linked-card { display: block; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.linked-card:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(0,0,0,.45); border-color: rgba(214,186,89,.35) !important; }
.lc-cta { background: linear-gradient(#D6BA59,#D6BA59) left bottom / 0 1px no-repeat; padding-bottom: 3px; transition: background-size .2s ease; }
.linked-card:hover .lc-cta { background-size: 100% 1px; }
.lc-arrow { display: inline-block; transition: transform .2s ease; }
.linked-card:hover .lc-arrow { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) {
  .linked-card, .lc-arrow, .lc-cta { transition: none !important; }
  .linked-card:hover { transform: none; box-shadow: none; }
  .linked-card:hover .lc-arrow { transform: none; }
}

/* --- footer site map: four named groups in a double-width column --- */
@media (min-width: 1000px) {
  .om-fgrid { grid-template-columns: 1.2fr 1fr 2fr 1fr !important; }
  .om-fmap  { grid-template-columns: 1fr 1fr !important; }
}
/* between phone and desktop the cell is too narrow for two groups side by
   side, so give the site map the whole footer row instead of one column */
@media (min-width: 620px) and (max-width: 999px) {
  .om-fcell { grid-column: 1 / -1; }
  .om-fmap  { grid-template-columns: 1fr 1fr !important; }
}

/* --- Food & Fun banner: the CTA reads as a button, not a text link --- */
.lc-btn {
  display: inline-block; background: #D6BA59; color: #050505;
  font-family: Jost, sans-serif; font-size: 12px; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase;
  padding: 16px 30px; border-radius: 6px; white-space: nowrap;
  transition: background .25s ease;
}
.linked-card:hover .lc-btn { background: #E2CA74; }
@media (max-width: 760px) {
  .lc-btnwrap { flex: 1 1 100% !important; }
  .lc-btn { display: block; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .lc-btn { transition: none !important; } }

/* --- gift card: numbered steps --- */
.gc-steps li > span:first-child::before { content: counter(gc) "."; }
