/* Concierge Events – shared site styles
   Replaces the FrontPage shared borders (_borders/top, right, bottom) and the
   per-page <font>/<body> presentational attributes with one stylesheet.
   Colours, fonts and layout reproduce the original 2005–2015 design. */

:root {
  --ce-purple: #800080;
  --ce-olive: #7A7A00;
  --ce-white: #ffffff;
  --ce-gutter: 24px;
  --ce-font: Arial, Helvetica, sans-serif;
}

/* ---------- base (was <body text/link/alink> + style="font-family: Arial; font-size: 10pt"; body text raised to 16px) */
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 8px;
  background: var(--ce-white);
  color: var(--ce-purple);
  font-family: var(--ce-font);
  font-size: 16px;
}
body[style*="background-image"] { background-repeat: repeat; }
a:link, a:visited { color: var(--ce-purple); }
a:active { color: var(--ce-olive); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--ce-olive);
  outline-offset: 2px;
}
img { border: 0; }
input, select, textarea, button { font-family: var(--ce-font); color: var(--ce-purple); }

/* The original pages rendered in browser "quirks mode", where tables do not
   inherit font size from the page. This keeps the content looking the same
   now that the pages use a standards <!DOCTYPE html>. */
.q .ce-content table {
  font-size: medium; font-weight: normal; font-style: normal;
  line-height: normal; white-space: normal; text-align: start;
}
/* quirks mode also dropped the default top/bottom margin of the first/last paragraph in a cell */
.q .ce-content td > p:first-child, .q .ce-content th > p:first-child { margin-top: 0; }
.q .ce-content td > p:last-child,  .q .ce-content th > p:last-child  { margin-bottom: 0; }

/* <center> and <div align="center|right"> replacements */
.center { text-align: center; text-align: -moz-center; text-align: -webkit-center; }
.right  { text-align: right;  text-align: -moz-right;  text-align: -webkit-right; }

/* ---------- accessibility */
.ce-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--ce-purple); color: var(--ce-white) !important;
  padding: 8px 12px; z-index: 10; font-weight: bold;
}
.ce-skip:focus { left: 8px; }

/* ---------- header (was _borders/top.htm) */
.ce-header { text-align: center; }
.ce-brand {
  display: flex; justify-content: space-between; align-items: flex-end;
  width: 693px; max-width: 100%; min-height: 96px; margin: 0 auto;
}
.ce-logo img { display: block; background: var(--ce-white); }
.ce-tagline { margin: 0; font-size: 16px; }
.ce-tagline img { vertical-align: bottom; }

.ce-nav ul, .ce-catbar ul, .ce-footer ul { list-style: none; margin: 0; padding: 0; }
.ce-nav { margin: 1em 0 0.9em; font-size: small; }
.ce-nav ul { display: flex; flex-wrap: wrap; justify-content: center; }
.ce-nav li + li::before { content: "|"; margin: 0 0.3em; }

.ce-catbar ul {
  display: grid; grid-template-columns: repeat(9, auto);   /* cells sized to their labels, sharing the spare width */
  gap: 1px; width: 857px; max-width: 100%; margin: 0 auto; padding: 1px;
}
.ce-catbar li {
  background: var(--ce-purple); color: var(--ce-white);
  font-size: medium; line-height: 23px; text-align: center; white-space: nowrap;
}
.ce-catbar a:link, .ce-catbar a:visited { color: var(--ce-white); text-decoration: none; display: block; }
.ce-catbar a:hover, .ce-catbar a:focus-visible { background: var(--ce-olive); }
.ce-catbar a[aria-current="page"] { text-decoration: underline; }

/* ---------- body layout (was the 3-cell msnavigation table) */
.ce-layout { display: flex; align-items: flex-start; gap: var(--ce-gutter); margin-top: 1em; }
.ce-content { flex: 1 1 auto; min-width: 0; }
.no-sidebar .ce-content { width: 100%; }
/* Pages whose content should sit centred under the menus (not just centred in the space
   left of the art column): equal outer columns, the art column sits in the right one. */
/* A left spacer the same width as the art column keeps the content area symmetric,
   so anything centred in it is centred on the page. The spacer gives way only when
   wide content needs the room. */
@media (min-width: 1021px) {
  .ce-centered .ce-layout { display: grid; grid-template-columns: minmax(0, 172px) 1fr 172px; column-gap: var(--ce-gutter); }
  .ce-centered .ce-content { grid-column: 2; min-width: auto; }
  .ce-centered .ce-sidebar { grid-column: 3; width: 172px; box-sizing: border-box; }
}
/* Small laptops: no room to centre, so drop the empty left spacer (and its gap)
   and keep the art column beside the content. */
@media (min-width: 1021px) and (max-width: 1100px) {
  .ce-centered .ce-layout { grid-template-columns: 1fr 172px; }
  .ce-centered .ce-content { grid-column: 1; }
  .ce-centered .ce-sidebar { grid-column: 2; }
}
/* Narrower still: the art column moves below the content, as on tablets. */
@media (min-width: 901px) and (max-width: 1020px) {
  .ce-centered .ce-layout { flex-direction: column; }
  .ce-centered .ce-content { width: 100%; }
  .ce-centered .ce-sidebar {
    flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: flex-end;
    min-height: 0; width: 100%; box-sizing: border-box;
  }
}

/* ---------- right-hand art column (was _borders/right.htm) */
.ce-sidebar {
  flex: 0 0 auto; display: flex; flex-direction: column; align-items: center;
  gap: 10px; padding: 5px; min-height: 706px; text-align: center;
}
.ce-promo { display: flex; flex-direction: column; align-items: center; gap: 1em; font-size: small; }
.ce-promo img { display: block; }
.ce-promo img[src$="list-your-event.webp"] { width: 140px; height: 94px; object-fit: cover; border-radius: 6px; }

/* ---------- footer (was _borders/bottom.htm) */
.ce-footer { text-align: center; margin-top: 1em; font-weight: bold; }
.ce-legal-links { display: flex; flex-wrap: wrap; justify-content: center; font-size: x-small; }
.ce-legal-links li + li::before { content: "|"; margin: 0 0.3em; }
.ce-foot-services { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; font-size: small; font-weight: normal; margin-top: 2px !important; }
.ce-foot-services a:link, .ce-foot-services a:visited { color: var(--ce-olive); }
.ce-foot-services li + li::before { content: "|"; color: var(--ce-purple); font-size: large; font-weight: bold; margin: 0 0.35em; }
.ce-legal { font-size: x-small; margin: 1em 0 0; }
.ce-copy { font-size: medium; text-decoration: none; }

/* ---------- replacements for dead FrontPage / Java components */
.ce-button {
  display: inline-block; min-width: 100px; padding: 3px 10px; margin: 2px;
  background: var(--btn, #330099); color: var(--btn-text, #fff) !important;
  font: bold 14px var(--ce-font); text-decoration: none; text-align: center;
  transition: background-color .15s;
}
.ce-button:hover, .ce-button:focus-visible { background: var(--btn-hover, #800080); }
.ce-bullet { font-size: 20pt; margin-right: 0.4em; vertical-align: middle; }

/* ---------- Kids hub (kids/default.html): one page for all nine kids party topics */
.kids-hub { width: 801px; max-width: 100%; margin: 0 auto; text-align: left; }
.kids-hero {
  background: url('../Images/home-kids.webp') center / cover; border-radius: 6px; text-align: center;
  padding: 1.6em 1.2em; box-shadow: inset 0 0 0 2000px rgba(255, 255, 255, .8);
}
.kids-hero h1 { font-family: 'Chewy', cursive; font-weight: normal; font-size: 2.8em; color: var(--ce-purple); margin: 0; }
.kids-hero p { margin: .2em 0 .9em; font-size: 1.15em; }
.kids-hero .kids-hero-note { font-size: .9em; margin: .9em auto 0; max-width: 34em; }
.kids-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: .45em .5em; margin: 1.1em 0 .4em; }
.kids-jump a { padding: .3em .85em; border-radius: 999px; background: #F6EEF6; text-decoration: none; font-size: .95em; }
.kids-jump a:hover, .kids-jump a:focus-visible { background: #66CCFF; }
.kids-group { margin: 1.4em 0; }
.kids-blue { --kids-accent: #66CCFF; } .kids-pink { --kids-accent: #FF99FF; } .kids-gold { --kids-accent: #FFCC00; }
.kids-group h2 {
  font-family: 'Chewy', cursive; font-weight: normal; font-size: 1.6em; color: var(--ce-purple);
  background: var(--kids-accent); border-radius: 4px; padding: .15em .6em; margin: 0 0 .55em;
}
.kids-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.kids-card {
  display: flex; flex-direction: column; background: #fff; overflow: hidden; scroll-margin-top: 12px;
  border: 1px solid #E5D5E5; border-top: 6px solid var(--kids-accent); border-radius: 6px;
}
.kids-card:target { outline: 3px solid var(--ce-purple); outline-offset: 2px; }
.kids-card img { display: block; width: 100%; height: 140px; }
.kids-card img.photo { object-fit: cover; }
.kids-card img.clip { object-fit: contain; padding: 10px; box-sizing: border-box; background: #fff; }
.kids-card-body { display: flex; flex-direction: column; flex: 1; padding: .7em .9em 1em; }
.kids-card h3 { margin: 0 0 .35em; font-size: 1.15em; }
.kids-card p { margin: 0 0 .9em; font-size: .95em; line-height: 1.45; }
.kids-actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: .4em; }
.kids-actions .ce-button { min-width: 0; margin: 0; font-size: 14px; padding: 5px 12px; }
.kids-shop { box-shadow: inset 0 0 0 2px var(--ce-purple); }
@media (max-width: 760px) { .kids-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .kids-grid { grid-template-columns: 1fr; } .kids-hero h1 { font-size: 2.2em; } }

/* ---------- Wedding hub (wedding_services/services_weddings.html): one page for all wedding services */
.wed-hub { width: 801px; max-width: 100%; margin: 0 auto; text-align: left; }
.wed-hero { display: grid; grid-template-columns: 1fr 260px; gap: 1.2em; align-items: center;
  border: 1px solid #E5D5E5; border-top: 6px solid var(--ce-purple); border-radius: 6px; padding: 1.2em 1.4em; background: #fff; }
.wed-hero h1 { font-family: 'Great Vibes', 'Vladimir Script', cursive; font-weight: normal; font-size: 3.4em; color: var(--ce-purple); margin: 0 0 .1em; line-height: 1.1; }
.wed-hero p { margin: 0 0 1em; line-height: 1.5; }
.wed-hero-img { width: 100%; height: auto; border-radius: 6px; display: block; }
.wed-steps { display: grid; grid-template-columns: 110px 1fr; gap: 1.2em; align-items: center; margin: 1.2em 0;
  background: #FBF6FB; border-left: 6px solid #FFCC00; border-radius: 6px; padding: 1em 1.3em; }
.wed-ourday { width: 100%; height: auto; }
.wed-steps h2 { margin: 0 0 .4em; font-size: 1.3em; }
.wed-steps ol { margin: 0; padding-left: 1.3em; line-height: 1.5; }
.wed-steps li + li { margin-top: .35em; }
.wed-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: .45em .5em; margin: 1em 0 .4em; }
.wed-jump a { padding: .3em .85em; border-radius: 999px; background: #F6EEF6; text-decoration: none; font-size: .95em; }
.wed-jump a:hover, .wed-jump a:focus-visible { background: #FFCC00; }
.wed-group { margin: 1.4em 0; scroll-margin-top: 12px; }
.wed-group h2 {
  font-family: 'Great Vibes', 'Vladimir Script', cursive; font-weight: normal; font-size: 2em; color: var(--ce-purple);
  margin: 0 0 .55em; padding: .25em .7em; border-radius: 4px; border-left: 6px solid #FFCC00;
  background: linear-gradient(rgba(255, 255, 255, .72), rgba(255, 255, 255, .72)), var(--wed-banner) center / cover;
}
.wed-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.wed-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #E5D5E5; border-top: 4px solid var(--ce-purple);
  border-radius: 6px; padding: .8em .95em 1em; scroll-margin-top: 12px; }
.wed-card:target { outline: 3px solid #FFCC00; outline-offset: 2px; }
.wed-card h3 { margin: 0 0 .35em; font-size: 1.1em; }
.wed-card p { margin: 0 0 .9em; font-size: .95em; line-height: 1.45; }
.wed-ring { float: right; width: 52px; height: 52px; margin: 0 0 .3em .5em; border-radius: 4px; }
.wed-featured { border: 2px solid var(--ce-purple); border-top-width: 6px; background: #FBF6FB; grid-column: span 2; }
.wed-actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: .4em; }
.wed-actions .ce-button { min-width: 0; margin: 0; font-size: 14px; padding: 5px 12px; }
.wed-hero .wed-actions .ce-button { font-size: 15px; padding: 7px 14px; }
.wed-shop { box-shadow: inset 0 0 0 2px var(--ce-purple); }
.wed-ask { display: flex; align-items: center; gap: 1em; margin: 1.4em 0 .5em; padding: .8em 1.1em; border: 1px solid #E5D5E5; border-radius: 6px; background: #fff; }
.wed-ask img { display: block; flex: 0 0 auto; }
.wed-ask p { margin: 0; }
@media (max-width: 760px) {
  .wed-hero { grid-template-columns: 1fr; } .wed-hero-img { max-height: 220px; object-fit: cover; }
  .wed-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .wed-grid { grid-template-columns: 1fr; } .wed-featured { grid-column: auto; }
  .wed-steps { grid-template-columns: 1fr; } .wed-ourday { display: none; }
  .wed-hero h1 { font-size: 2.8em; } .wed-ask { flex-direction: column; text-align: center; }
}

/* ---------- Travel hub (travel/default.html): services + travel quote form */
.trv-hub { width: 801px; max-width: 100%; margin: 0 auto; text-align: left; }
.trv-hero { text-align: center; padding: 1.4em 1.2em; border-radius: 6px; color: #fff;
  background: linear-gradient(135deg, var(--ce-purple), #5A005A 60%, var(--ce-olive)); }
.trv-hero h1 { margin: 0 0 .3em; font-size: 2.1em; letter-spacing: .02em; color: #FFFF00; }
.trv-hero p { margin: 0 auto 1em; max-width: 36em; font-size: 1.08em; line-height: 1.5; }
.trv-hero .ce-button { --btn: #FFFF00 !important; --btn-text: #800080 !important; --btn-hover: #FFFFFF !important; font-size: 15px; padding: 7px 16px; }
.trv-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: .45em .5em; margin: 1em 0 .4em; }
.trv-jump a { padding: .3em .85em; border-radius: 999px; background: #F2F2E6; text-decoration: none; font-size: .95em; }
.trv-jump a:hover, .trv-jump a:focus-visible { background: #E2E2B8; }
.trv-group { margin: 1.4em 0; scroll-margin-top: 12px; }
.trv-group h2 { margin: 0 0 .55em; padding: .3em .7em; font-size: 1.35em; color: var(--ce-purple);
  background: #F2F2E6; border-left: 6px solid var(--ce-olive); border-radius: 4px; }
.trv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.trv-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #E2E2CC; border-top: 4px solid var(--ce-olive);
  border-radius: 6px; padding: .8em .95em 1em; scroll-margin-top: 12px; }
.trv-card:target { outline: 3px solid var(--ce-olive); outline-offset: 2px; }
.trv-card h3 { margin: 0 0 .35em; font-size: 1.1em; }
.trv-card p { margin: 0 0 .6em; font-size: .95em; line-height: 1.45; }
.trv-also { display: block; margin: 0 0 .8em; font-size: .88em; }
.trv-actions { margin-top: auto; }
.trv-actions .ce-button { min-width: 0; margin: 0; font-size: 14px; padding: 5px 12px; }
.trv-quote { margin: 1.6em 0 .6em; padding: 1.1em 1.3em 1.3em; background: #fff; border: 2px solid var(--ce-purple);
  border-top-width: 6px; border-radius: 6px; scroll-margin-top: 12px; }
.trv-quote h2 { margin: 0 0 .3em; }
.trv-quote > p { margin: 0 0 .8em; }
.trv-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: .2em 1em; }
.trv-fields label { display: block; margin: .6em 0 .25em; font-weight: bold; font-size: .95em; }
.trv-fields input, .trv-fields select, .trv-fields textarea {
  width: 100%; box-sizing: border-box; padding: .5em .55em; font-size: 1em; border: 1px solid #B98AB9; border-radius: 3px; background: #fff; }
.trv-wide { grid-column: 1 / -1; }
.trv-opt { font-weight: normal; color: #555; }
.trv-submit { margin-top: 1em !important; font-size: 15px !important; padding: 8px 18px !important; border: 0; cursor: pointer; }
@media (max-width: 760px) { .trv-grid, .trv-fields { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .trv-grid, .trv-fields { grid-template-columns: 1fr; } .trv-hero h1 { font-size: 1.8em; } }

/* ---------- Theatre hub (theatre/services_theatre.html): theatre red & gold */
.thr-hub { --thr-red: #8B1A2B; --thr-gold: #D4A017; width: 801px; max-width: 100%; margin: 0 auto; text-align: left; }
.thr-hero { text-align: center; padding: 1.5em 1.2em; border-radius: 6px; color: #fff;
  background: radial-gradient(ellipse at top, #B0263B 0%, var(--thr-red) 45%, #4A0A14 100%); border-bottom: 6px solid var(--thr-gold); }
.thr-hero h1 { margin: 0 0 .3em; font-size: 2.2em; color: #FFD54F; letter-spacing: .03em; }
.thr-hero p { margin: 0 auto 1em; max-width: 36em; font-size: 1.08em; line-height: 1.5; }
.thr-hero .ce-button { font-size: 15px; padding: 7px 16px; }
.thr-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: .45em .5em; margin: 1em 0 .4em; }
.thr-jump a { padding: .3em .85em; border-radius: 999px; background: #FBF3F4; color: var(--thr-red); text-decoration: none; font-size: .95em; }
.thr-jump a:hover, .thr-jump a:focus-visible { background: #FFE9A8; }
.thr-group, .thr-tickets, .thr-quote { scroll-margin-top: 12px; }
.thr-group { margin: 1.4em 0; }
.thr-group h2, .thr-tickets h2 { margin: 0 0 .55em; padding: .3em .7em; font-size: 1.35em; color: var(--thr-red);
  background: #FBF3F4; border-left: 6px solid var(--thr-gold); border-radius: 4px; }
.thr-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.thr-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #EBD6D9; border-top: 4px solid var(--thr-red);
  border-radius: 6px; padding: .8em .95em 1em; scroll-margin-top: 12px; }
.thr-card:target { outline: 3px solid var(--thr-gold); outline-offset: 2px; }
.thr-card h3 { margin: 0 0 .35em; font-size: 1.1em; color: var(--thr-red); }
.thr-card p { margin: 0 0 .6em; font-size: .95em; line-height: 1.45; }
.thr-also { display: block; margin: 0 0 .8em; font-size: .88em; }
.thr-actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: .4em; }
.thr-actions .ce-button { min-width: 0; margin: 0; font-size: 14px; padding: 5px 12px; }
.thr-shop { box-shadow: inset 0 0 0 2px var(--thr-red); }
.thr-tickets { margin: 1.4em 0; }
.thr-tickets > p { margin: 0 0 .5em; }
.thr-ticket-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 1.2em; }
.thr-ticket-cols h3 { margin: .4em 0 .3em; font-size: 1em; color: var(--thr-red); }
.thr-ticket-cols ul { margin: 0; padding-left: 1.1em; line-height: 1.7; }
.thr-quote { margin: 1.6em 0 .6em; padding: 1.1em 1.3em 1.3em; background: #fff; border: 2px solid var(--thr-red); border-top-width: 6px; border-radius: 6px; }
.thr-quote h2 { margin: 0 0 .3em; color: var(--thr-red); }
.thr-quote > p { margin: 0 0 .8em; }
.thr-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: .2em 1em; }
.thr-fields label, .thr-label { display: block; margin: .6em 0 .25em; font-weight: bold; font-size: .95em; }
.thr-fields input:not([type=checkbox]), .thr-fields select, .thr-fields textarea {
  width: 100%; box-sizing: border-box; padding: .5em .55em; font-size: 1em; border: 1px solid #C99BA2; border-radius: 3px; background: #fff; }
.thr-fields .thr-check { display: inline-flex; gap: .35em; align-items: center; margin: 0 1.2em .2em 0; font-weight: normal; }
.thr-wide { grid-column: 1 / -1; }
.thr-span2 { grid-column: span 2; }
.thr-opt { font-weight: normal; color: #555; }
.thr-submit { margin-top: 1em !important; font-size: 15px !important; padding: 8px 18px !important; border: 0; cursor: pointer; }
@media (max-width: 760px) { .thr-grid, .thr-fields, .thr-ticket-cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .thr-grid, .thr-fields, .thr-ticket-cols { grid-template-columns: 1fr; } .thr-span2 { grid-column: auto; } .thr-hero h1 { font-size: 1.8em; } }

/* ---------- Ask Me (ask-me/default.html): plum & pink from the Ask Me logo */
.ask-hub { --ask-plum: #A10F55; --ask-pink: #C55A90; width: 801px; max-width: 100%; margin: 0 auto; text-align: left; }
.ask-hero { display: grid; grid-template-columns: 200px 1fr; gap: 1.4em; align-items: center; padding: 1.2em 1.4em;
  background: #fff; border: 1px solid #EBD3DF; border-top: 6px solid var(--ask-plum); border-radius: 6px; }
.ask-hero img { width: 100%; height: auto; display: block; }
.ask-tag { margin: 0 0 .2em; color: var(--ask-pink); font-style: italic; font-size: 1.1em; }
.ask-hero h1 { margin: 0 0 .35em; font-size: 1.8em; color: var(--ask-plum); }
.ask-hero p { margin: 0 0 .9em; line-height: 1.5; }
.ask-hero .ce-button { font-size: 15px; padding: 7px 16px; }
.ask-hub h2 { margin: 0 0 .55em; padding: .3em .7em; font-size: 1.3em; color: var(--ask-plum);
  background: #FBF1F6; border-left: 6px solid var(--ask-pink); border-radius: 4px; }
.ask-shortcuts, .ask-faq { margin: 1.4em 0; }
.ask-chips { display: flex; flex-wrap: wrap; gap: .5em; }
.ask-chips a { padding: .45em 1em; border-radius: 999px; border: 2px solid var(--ask-plum); color: var(--ask-plum);
  background: #fff; text-decoration: none; font-weight: bold; font-size: .95em; }
.ask-chips a:hover, .ask-chips a:focus-visible { background: var(--ask-plum); color: #fff; }
.ask-faq details { border: 1px solid #EBD3DF; border-radius: 6px; background: #fff; margin: 0 0 .5em; }
.ask-faq summary { cursor: pointer; padding: .65em .9em; font-weight: bold; color: var(--ask-plum); list-style: none; }
.ask-faq summary::-webkit-details-marker { display: none; }
.ask-faq summary::before { content: "+"; display: inline-block; width: 1.2em; font-size: 1.1em; color: var(--ask-pink); }
.ask-faq details[open] summary::before { content: "\2013"; }
.ask-faq details p { margin: 0; padding: 0 .9em .8em 2.1em; line-height: 1.5; }
.ask-form { margin: 1.6em 0 .6em; padding: 1.1em 1.3em 1.3em; background: #fff; border: 2px solid var(--ask-plum);
  border-top-width: 6px; border-radius: 6px; scroll-margin-top: 12px; }
.ask-form h2 { background: none; border: 0; padding: 0; margin: 0 0 .4em; }
.ask-fields { display: grid; grid-template-columns: repeat(4, 1fr); gap: .2em 1em; }
.ask-fields > div:nth-last-child(-n+4) { grid-column: span 2; }
.ask-fields label, .ask-label { display: block; margin: .6em 0 .25em; font-weight: bold; font-size: .95em; }
.ask-fields input:not([type=radio]), .ask-fields select, .ask-fields textarea {
  width: 100%; box-sizing: border-box; padding: .5em .55em; font-size: 1em; border: 1px solid #D8A9C2; border-radius: 3px; background: #fff; }
.ask-fields .ask-radio { display: inline-flex; gap: .35em; align-items: center; margin: .3em 1.4em 0 0; font-weight: normal; }
.ask-wide { grid-column: 1 / -1; }
.ask-hint { margin: .8em 0 0; font-size: .92em; color: #555; }
.ask-opt { font-weight: normal; color: #555; }
.ask-privacy { margin: .9em 0 0; font-size: .9em; }
.ask-submit { margin-top: .8em !important; font-size: 15px !important; padding: 8px 18px !important; border: 0; cursor: pointer; }
@media (max-width: 760px) { .ask-fields { grid-template-columns: 1fr 1fr; } .ask-fields > div:nth-last-child(-n+4) { grid-column: auto; } }
@media (max-width: 520px) {
  .ask-hero { grid-template-columns: 1fr; text-align: center; } .ask-hub .ask-hero img { max-width: 160px; margin: 0 auto; }
  .ask-fields { grid-template-columns: 1fr; } .ask-hero h1 { font-size: 1.5em; }
}

/* ---------- Join as a supplier (member_suppliers/supplier_intro.html): purple & olive */
.sup-hub { width: 801px; max-width: 100%; margin: 0 auto; text-align: left; }
.sup-promo-logo { text-align: center; margin: .5em 0 1em; }   /* stand-alone promo copy of the supplier page */
.sup-promo-logo img { display: inline-block; }
.sup-hero { text-align: center; padding: 1.5em 1.3em; border-radius: 6px; color: #fff;
  background: linear-gradient(135deg, var(--ce-purple), #5A005A 65%, var(--ce-olive)); }
.sup-hero h1 { margin: 0 0 .35em; font-size: 2.1em; color: #FFFF00; }
.sup-hero > p { margin: 0 auto 1em; max-width: 38em; line-height: 1.5; font-size: 1.05em; }
.sup-actions { display: flex; flex-wrap: wrap; gap: .6em; justify-content: center; }
.sup-actions .ce-button { margin: 0; font-size: 15px; padding: 7px 16px; }
.sup-hero .ce-button:first-child { --btn: #FFFF00 !important; --btn-text: #800080 !important; --btn-hover: #FFFFFF !important; }
.sup-outline { box-shadow: inset 0 0 0 2px #fff; --btn: transparent !important; --btn-text: #FFFFFF !important; --btn-hover: rgba(255,255,255,.15) !important; }
.sup-signin { margin: .9em 0 0 !important; font-size: .92em; }
.sup-signin a:link, .sup-signin a:visited { color: #FFFF00; }
.sup-section { margin: 1.5em 0; }
.sup-section h2, .sup-cta h2 { margin: 0 0 .6em; padding: .3em .7em; font-size: 1.35em; color: var(--ce-purple);
  background: #F2F2E6; border-left: 6px solid var(--ce-olive); border-radius: 4px; }
.sup-steps { list-style: none; counter-reset: sup; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.sup-steps li { counter-increment: sup; background: #fff; border: 1px solid #E2E2CC; border-radius: 6px; padding: .8em .9em; position: relative; }
.sup-steps li::before { content: counter(sup); display: inline-flex; align-items: center; justify-content: center; width: 1.8em; height: 1.8em;
  border-radius: 50%; background: var(--ce-purple); color: #FFFF00; font-weight: bold; margin-bottom: .4em; }
.sup-steps h3 { margin: 0 0 .3em; font-size: 1.02em; }
.sup-steps p { margin: 0; font-size: .93em; line-height: 1.45; }
.sup-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.sup-card { background: #fff; border: 1px solid #E5D5E5; border-top: 4px solid var(--ce-purple); border-radius: 6px; padding: .8em .95em .9em; }
.sup-card h3 { margin: 0 0 .35em; font-size: 1.08em; }
.sup-card p { margin: 0; font-size: .95em; line-height: 1.45; }
.sup-chips { display: flex; flex-wrap: wrap; gap: .5em; }
.sup-chips a { padding: .4em .95em; border-radius: 999px; border: 2px solid var(--ce-olive); background: #fff; text-decoration: none; font-weight: bold; font-size: .93em; }
.sup-chips a:hover, .sup-chips a:focus-visible { background: #F2F2E6; }
.sup-venue { margin: .8em 0 0; }
.sup-faq details { border: 1px solid #E2E2CC; border-radius: 6px; background: #fff; margin: 0 0 .5em; }
.sup-faq summary { cursor: pointer; padding: .65em .9em; font-weight: bold; list-style: none; }
.sup-faq summary::-webkit-details-marker { display: none; }
.sup-faq summary::before { content: "+"; display: inline-block; width: 1.2em; color: var(--ce-olive); font-size: 1.1em; }
.sup-faq details[open] summary::before { content: "\2013"; }
.sup-faq details p { margin: 0; padding: 0 .9em .8em 2.1em; line-height: 1.5; }
.sup-cta { text-align: center; margin: 1.6em 0 .6em; padding: 1.2em; border-radius: 6px; background: var(--ce-purple); color: #fff; }
.sup-cta h2 { background: none; border: 0; padding: 0; color: #FFFF00; margin: 0 0 .3em; }
.sup-cta p { margin: 0 0 .9em; }
.sup-cta p a { color: #FFFF66 !important; font-weight: bold; }
.sup-cta p a:hover { color: #fff !important; }
.sup-cta .ce-button { font-size: 15px; padding: 7px 18px; }
@media (max-width: 760px) { .sup-steps, .sup-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .sup-steps, .sup-grid { grid-template-columns: 1fr; } .sup-hero h1 { font-size: 1.7em; } }

/* ---------- What's On Where + Events Registry (w_o_w/*.php): purple & gold */
.wow-hub { width: 801px; max-width: 100%; margin: 0 auto; text-align: left; }
.wow-hero { text-align: center; padding: 1.3em 1.2em; border-radius: 6px; color: #fff;
  background: linear-gradient(135deg, var(--ce-purple), #5A005A 70%, #8A6A00); border-bottom: 6px solid #FFCC00; }
.wow-hero h1 { font-family: 'Lobster', cursive; font-weight: normal; font-size: 2.6em; color: #FFCC00; margin: 0 0 .2em; }
.wow-hero p { margin: 0 auto .9em; max-width: 36em; line-height: 1.5; }
.wow-hero .ce-button { font-size: 15px; padding: 7px 16px; }
.wow-hub h2 { margin: 0 0 .5em; padding: .3em .7em; font-size: 1.3em; color: var(--ce-purple); background: #FBF6FB; border-left: 6px solid #FFCC00; border-radius: 4px; }
.wow-hub h2 span { font-weight: normal; font-size: .8em; color: #555; }
.wow-list { margin: 1.2em 0; scroll-margin-top: 12px; }
.wow-empty { padding: 1em; background: #fff; border: 1px dashed #B98AB9; border-radius: 6px; }
.wow-month { margin: 1.2em 0 .5em; font-size: 1.05em; color: var(--ce-olive); text-transform: uppercase; letter-spacing: .05em; }
.wow-event { display: grid; grid-template-columns: 64px 1fr; gap: 1em; background: #fff; border: 1px solid #E5D5E5;
  border-left: 5px solid #FFCC00; border-radius: 6px; padding: .8em .95em; margin: 0 0 .7em; scroll-margin-top: 12px; }
.wow-event:target { outline: 3px solid #FFCC00; }
.wow-badge { text-align: center; background: var(--ce-purple); color: #fff; border-radius: 6px; padding: .35em 0; align-self: start; }
.wow-badge .d { display: block; font-size: 1.6em; font-weight: bold; line-height: 1; color: #FFFF00; }
.wow-badge .m { display: block; font-size: .8em; letter-spacing: .08em; }
.wow-body h4 { margin: 0 0 .2em; font-size: 1.12em; }
.wow-tag { display: inline-block; font-size: .7em; font-weight: bold; vertical-align: middle; padding: .1em .55em; border-radius: 999px; background: #F6EEF6; }
.wow-yearly { background: #FFF3C4; }
.wow-meta { margin: 0 0 .4em; font-size: .92em; color: #555; }
.wow-body p { margin: 0 0 .5em; line-height: 1.45; font-size: .95em; }
.wow-body details summary { cursor: pointer; list-style: none; line-height: 1.45; font-size: .95em; }
.wow-body details summary::-webkit-details-marker { display: none; }
.wow-body details[open] summary { display: none; }
.wow-more { color: var(--ce-olive); font-weight: bold; white-space: nowrap; }
.wow-actions { display: flex; flex-wrap: wrap; gap: .4em; margin-top: .3em; }
.wow-actions .ce-button { min-width: 0; margin: 0; font-size: 14px; padding: 5px 12px; }
.wow-outline { box-shadow: inset 0 0 0 2px var(--ce-purple); }
.wow-form { margin: 1.2em 0; }
.wow-form fieldset { border: 1px solid #E5D5E5; border-radius: 6px; background: #fff; padding: .9em 1.1em 1.1em; margin: 0 0 1em; }
.wow-form legend { font-weight: bold; color: var(--ce-purple); padding: 0 .4em; font-size: 1.05em; }
.wow-mode label { display: block; margin: .35em 0; font-weight: normal; }
.wow-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: .2em 1em; }
.wow-fields label { display: block; margin: .6em 0 .25em; font-weight: bold; font-size: .95em; }
.wow-fields input:not([type=checkbox]), .wow-fields select, .wow-fields textarea {
  width: 100%; box-sizing: border-box; padding: .5em .55em; font-size: 1em; border: 1px solid #B98AB9; border-radius: 3px; background: #fff; }
.wow-wide { grid-column: 1 / -1; }
.wow-check { display: flex; align-items: flex-end; } .wow-check label { font-weight: normal; display: flex; gap: .4em; align-items: center; }
.wow-hint { font-size: .9em; color: #555; margin: .4em 0 0; }
.wow-opt { font-weight: normal; color: #555; }
.wow-submit { border: 0; cursor: pointer; font-size: 15px !important; padding: 8px 18px !important; }
/* What's On Where (whats_on_where.php): search, state pills, chips, state tiles, this week, closing panels */
.wow-search { display: flex; gap: 6px; max-width: 480px; margin: 0 auto .8em; }
.wow-search input { flex: 1; min-width: 0; padding: .55em .7em; font-size: 15px; border: 0; border-radius: 4px; }
.wow-search input:focus { outline: 3px solid #FFCC00; }
.wow-search button { padding: 0 1em; border: 0; border-radius: 4px; background: #FFCC00; color: #800080; font: bold 15px var(--ce-font); cursor: pointer; }
.wow-states { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; }
.wow-states a { padding: .15em .7em; border: 1px solid #fff; border-radius: 999px; color: #fff !important; text-decoration: none; font-size: .9em; }
.wow-states a:hover { background: rgba(255,255,255,.15); }
.wow-states a.on { background: #FFCC00; border-color: #FFCC00; color: #800080 !important; font-weight: bold; }
.wow-find { margin: 1em 0; scroll-margin-top: 12px; }
.wow-chips { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin: 0 0 6px; }
.wow-chip { padding: .2em .75em; border: 1px solid #C9B3C9; border-radius: 999px; background: #fff; color: #5A005A !important; text-decoration: none; font-size: .9em; }
.wow-chip:hover { border-color: var(--ce-purple); background: #FBF6FB; }
.wow-chip.on { background: var(--ce-purple); border-color: var(--ce-purple); color: #fff !important; }
.wow-more-types { display: contents; }
.wow-more-types summary { padding: .2em .4em; color: var(--ce-purple); font-weight: bold; font-size: .9em; cursor: pointer; list-style: none; }
.wow-more-types summary::-webkit-details-marker { display: none; }
.wow-more-types[open] summary { display: none; }
.wow-more-types .wow-chips { display: contents; }
.wow-clear { margin-left: .4em; font-size: .9em; font-weight: bold; }
.wow-around { margin: 1.2em 0; }
.wow-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.wow-tile { display: flex; flex-direction: column; align-items: center; padding: .55em .4em; background: #FBF6FB; border: 1px solid #E5D5E5; border-radius: 6px;
  text-decoration: none; color: #333 !important; transition: transform .15s; }
.wow-tile:hover { transform: translateY(-2px); border-color: var(--ce-purple); }
.wow-tile b { color: var(--ce-purple); }
.wow-tile .n { font-size: 1.6em; font-weight: bold; line-height: 1.2; }
.wow-tile small { font-size: .8em; color: #666; }
.wow-tile.on { background: var(--ce-purple); border-color: var(--ce-purple); color: #fff !important; }
.wow-tile.on b, .wow-tile.on small { color: #FFFF00; }
.wow-tile.empty .n { color: #B9A5B9; }
.wow-week { margin: 1.2em 0; }
.wow-week-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.wow-week-grid a { display: block; padding: .7em .8em; background: var(--ce-purple); border-radius: 6px; border-bottom: 4px solid #FFCC00; color: #fff !important; text-decoration: none; }
.wow-week-grid a:hover { background: #5A005A; }
.wow-week-grid b { display: block; color: #FFFF00; }
.wow-week-grid span { font-size: .85em; }
.wow-tool { cursor: pointer; font-family: var(--ce-font); border: 0; }
.wow-close { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 1.6em 0 .5em; }
.wow-close section { padding: 1em 1.1em; border-radius: 6px; }
.wow-hub .wow-close h2 { margin: 0 0 .3em; padding: 0; background: none; border: 0; }
.wow-close p { margin: 0 0 .7em; font-size: .95em; }
.wow-close .ce-button { min-width: 0; margin: 0; font-size: 15px; padding: 7px 16px; }
.wow-close-list { background: var(--ce-purple); color: #fff; }
.wow-hub .wow-close-list h2 { color: #FFFF00; }
.wow-close-join { background: #FFF6D6; border: 1px solid #E8D48A; }
.wow-hub .wow-close-join h2 { color: #6B4A00; }
@media (max-width: 760px) {
  .wow-tiles { grid-template-columns: repeat(2, 1fr); }
  .wow-week-grid, .wow-close { grid-template-columns: 1fr; }
}
/* List Your Event (events_registry.php) */
.wow-ticks { display: flex; flex-wrap: wrap; justify-content: center; gap: .3em 1.4em; margin: 0; padding: 0; list-style: none; font-size: .9em; color: #F4D7F4; }
.wow-ticks li::before { content: '\2713\00a0'; color: #FFCC00; font-weight: bold; }
.wow-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 1.2em 0 0; padding: 0; list-style: none; counter-reset: wstep; }
.wow-steps li { counter-increment: wstep; padding: .6em .8em; border: 1px solid #E5D5E5; border-radius: 6px; background: #fff; font-size: .9em; color: #555; }
.wow-steps li::before { content: counter(wstep); float: left; width: 1.7em; height: 1.7em; margin-right: .5em; line-height: 1.7em; text-align: center;
  border-radius: 50%; background: var(--ce-purple); color: #FFFF00; font-weight: bold; }
.wow-steps b { display: block; color: var(--ce-purple); }
.wow-reg .wow-mode { border: 0; padding: 0; background: none; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wow-reg .wow-mode legend { padding: 0 0 .4em; }
.wow-choice { display: flex !important; gap: .6em; align-items: flex-start; margin: 0 !important; padding: .8em .9em; border: 1px solid #E5D5E5; border-radius: 6px;
  background: #fff; cursor: pointer; font-size: .92em; color: #555; }
.wow-choice b { display: block; font-size: 1.1em; color: var(--ce-purple); }
.wow-choice input { margin-top: .25em; accent-color: var(--ce-purple); }
.wow-choice.on { border: 2px solid var(--ce-purple); background: #FBF6FB; padding: calc(.8em - 1px) calc(.9em - 1px); }
.wow-choice:has(input:disabled) { opacity: .6; cursor: default; }
.wow-n { display: inline-block; width: 1.5em; height: 1.5em; line-height: 1.5em; margin-right: .2em; text-align: center; border-radius: 50%;
  background: #FFCC00; color: var(--ce-purple); font-size: .85em; }
.wow-compose { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.wow-compose .wow-fields { grid-template-columns: 1fr 1fr; }
.wow-private { background: #F7F7F7 !important; border-color: #DDD !important; }
.wow-private legend { color: #444 !important; }
.wow-private .wow-n { background: #888; color: #fff; }
.wow-confirm { display: flex; gap: .5em; align-items: flex-start; margin: 0 0 1em; font-size: .95em; }
.wow-confirm input { margin-top: .25em; }
.wow-preview { position: sticky; top: 12px; padding: .7em; border: 1px dashed #B98AB9; border-radius: 6px; background: #FFFDF5; }
.wow-preview-title { margin: 0 0 .5em; font-size: .85em; font-weight: bold; color: var(--ce-purple); }
.wow-preview .wow-event { margin: 0; grid-template-columns: 52px 1fr; gap: .7em; font-size: .92em; }
.wow-preview #p-desc { overflow-wrap: anywhere; }
.wow-preview [hidden], .wow-reg [hidden] { display: none !important; }
.wow-faq { margin: 1.6em 0 .6em; }
.wow-faq details { border: 1px solid #E5D5E5; border-radius: 6px; background: #fff; margin: 0 0 6px; }
.wow-faq summary { padding: .55em .8em; cursor: pointer; font-weight: bold; color: var(--ce-purple); }
.wow-faq details p { margin: 0; padding: 0 .8em .7em; font-size: .95em; line-height: 1.5; }
.wow-back { text-align: center; font-weight: bold; }
@media (max-width: 760px) {
  .wow-compose, .wow-reg .wow-mode, .wow-steps { grid-template-columns: 1fr; }
  .wow-preview { position: static; }
}
@media (max-width: 520px) { .wow-compose .wow-fields { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .wow-fields { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .wow-fields { grid-template-columns: 1fr; } .wow-event { grid-template-columns: 52px 1fr; gap: .7em; } .wow-hero h1 { font-size: 2.1em; } }

/* ---------- invitation to the online planners */
.ce-cta { max-width: 801px; margin: 0 auto 1.2em; padding: .8em 1.1em; border: 2px solid var(--ce-purple);
  background: #F6EEF6; text-align: center; border-radius: 4px; }
.ce-cta strong { font-size: 1.1em; }
.ce-cta p { margin: .2em 0 .6em; }

/* ---------- forms: photo upload previews, result message, spam trap */
.ce-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.ce-thumb { position: relative; width: 96px; height: 72px; border: 1px solid #C0C0C0; background: #fff; }
.ce-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ce-thumb button {
  position: absolute; top: 2px; right: 2px; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%;
  background: var(--ce-purple); color: #fff; font: bold 14px/22px var(--ce-font); cursor: pointer;
}
.ce-thumb-count { flex-basis: 100%; margin: 0; font-size: small; }
.ce-form-status { max-width: 690px; margin: 0 auto 1em; padding: 10px 14px; font-weight: bold; text-align: center; border-radius: 3px; }
.ce-form-status.ok  { background: #E8F5E8; color: #1E6B1E; border: 1px solid #1E6B1E; }
.ce-form-status.err { background: #FDECEC; color: #A40000; border: 1px solid #A40000; }
.ce-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* "Add to request list" panels on the service pages (js/request-panel.js) */
.ce-req-steps { display: flex; flex-wrap: wrap; gap: .3em 1.2em; margin: 0 0 .8em; padding: 0; list-style: none; font-size: .9em; color: #555; }
.ce-req-steps li::before { content: counter(rqs) '. '; counter-increment: rqs; font-weight: bold; color: var(--ce-purple); }
.ce-req-steps { counter-reset: rqs; }
.ce-req-panel .ce-req-questions { margin-top: .2em; }
.ce-req-panel .ce-req-questions:empty { display: none; }
.ce-req-panel textarea { width: 100%; box-sizing: border-box; padding: .5em .55em; font-size: 1em; border: 1px solid #B98AB9; border-radius: 3px; }
.ce-req-bar { display: flex; flex-wrap: wrap; gap: .6em 1.2em; align-items: center; margin-top: 1em; }
.ce-req-add { margin: 0 !important; padding: 8px 18px !important; font-size: 15px !important; border: 0; cursor: pointer;
  --btn: #800080; --btn-hover: #7A7A00; --btn-text: #FFFF00; }
.ce-req-add:disabled { opacity: .6; cursor: wait; }
.ce-req-view { font-weight: bold; }
.ce-req-note { font-size: .88em; color: #555; margin: .6em 0 0; }
.ce-req-soon { padding: .9em 1.1em; text-align: center; background: #fff; border: 1px dashed #B98AB9; border-radius: 6px; }
.ce-req-soon p { margin: .3em 0 .6em; }
.ce-req-soon .ce-button { display: inline-block; margin: 0 .3em; padding: 6px 16px; border-radius: 4px; background: var(--ce-purple); color: #FFFF00 !important; font-weight: bold; text-decoration: none; }
.ce-req-soon-title { font-weight: bold; color: var(--ce-purple); font-size: 1.05em; }
.ce-req-soon-supplier { font-size: .9em; color: #555; }
.ce-req-off { opacity: .55; pointer-events: none; }
.ce-venue-req { margin: 1em auto 1.6em; max-width: 760px; text-align: left; }
.ce-venue-list-title { margin: 1.2em 0 .4em; color: var(--ce-purple); font-size: 1.3em; text-align: left; }
/* Request list badge and "added" message (js/request-list.js) */
.ce-req-badge a { font-weight: bold; }
.ce-req-badge span { display: inline-block; min-width: 1.4em; margin-left: .2em; padding: 0 .35em; border-radius: 999px; background: var(--ce-purple);
  color: #FFFF00; font-size: .85em; text-align: center; text-decoration: none; }
.ce-req-toast { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 1000; width: 460px; max-width: calc(100% - 32px); box-sizing: border-box;
  padding: .8em 2.4em .8em 1em; border-radius: 6px; background: #1E4B1E; color: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.25); font-size: .95em; }
.ce-req-toast.err { background: #A40000; }
.ce-req-toast a { color: #FFFF66 !important; font-weight: bold; }
.ce-req-toast button { position: absolute; top: .3em; right: .4em; border: 0; background: none; color: #fff; font-size: 1.3em; cursor: pointer; }
/* Forms for signed-in users (js/account-forms.js) */
.ce-login-gate { margin: .6em 0 1em; padding: 1em 1.2em; text-align: center; background: #FBF6FB; border: 2px dashed #B98AB9; border-radius: 6px; }
.ce-login-gate p { margin: .3em 0 .6em; }
.ce-login-btn { display: inline-block; margin: .2em; padding: 7px 16px; border-radius: 4px; background: var(--ce-purple); color: #FFFF00 !important; font-weight: bold; text-decoration: none; }
.ce-login-btn:hover { background: #5A005A; }
.ce-login-alt { background: #fff; color: var(--ce-purple) !important; box-shadow: inset 0 0 0 2px var(--ce-purple); }
.ce-login-alt:hover { background: #F6EEF6; }
.ce-login-small { font-size: .85em; color: #555; }
.ce-prefill-note { margin: 0 0 .8em; padding: .5em .8em; background: #E8F5E8; border-radius: 4px; font-size: .9em; color: #1E4B1E; }
.ce-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- Home page (index.html): purple & gold hero, tiles, steps, live events, sign-up */
.home { width: 720px; max-width: 100%; margin: 0 auto; text-align: left; line-height: 1.5; }
.home a:focus-visible { outline: 3px solid #FFCC00; outline-offset: 2px; }
.home-hero { text-align: center; padding: 1.6em 1.2em 1.3em; border-radius: 6px; color: #fff;
  background: linear-gradient(135deg, var(--ce-purple), #5A005A 70%, #8A6A00); border-bottom: 6px solid #FFCC00; }
.home-hero h1 { font-family: 'Lobster', cursive; font-weight: normal; font-size: 3em; line-height: 1.1; color: #FFFF00; margin: 0 0 .2em; }
.home-hero > p { margin: 0 auto .9em; max-width: 30em; font-size: 1.1em; }
.home-cta { display: flex; flex-wrap: wrap; gap: .6em; justify-content: center; }
.home-btn { display: inline-block; padding: 8px 18px; border: 0; border-radius: 4px; background: var(--ce-purple); color: #fff !important;
  font: bold 15px var(--ce-font); text-decoration: none; cursor: pointer; }
.home-btn:hover { background: #5A005A; }
.home-hero .home-btn, .home-suppliers .home-btn { background: #FFCC00; color: #800080 !important; font-size: 16px; padding: 10px 20px; }
.home-hero .home-btn:hover, .home-suppliers .home-btn:hover { background: #FFFF66; }
.home-hero .home-btn-outline { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 2px #fff; }
.home-hero .home-btn-outline:hover { background: rgba(255,255,255,.15); }
.home-btn-light { background: #fff; color: var(--ce-purple) !important; box-shadow: inset 0 0 0 2px var(--ce-purple); }
.home-btn-light:hover { background: #FBF6FB; }
.home-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: .3em 1.4em; margin: 1em 0 0; padding: 0; list-style: none; font-size: .9em; color: #F4D7F4; }
.home-trust li::before { content: '\2713\00a0'; color: #FFCC00; font-weight: bold; }
.home-section { margin: 1.6em 0; }
.home h2 { margin: 0 0 .6em; padding: .3em .7em; font-size: 1.3em; color: var(--ce-purple); background: #FBF6FB; border-left: 6px solid #FFCC00; border-radius: 4px; }
.home-center { text-align: center; margin: 1em 0 0; }
.home-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.home-tile { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; min-height: 130px;
  border-radius: 6px; overflow: hidden; text-decoration: none; color: #fff !important; transition: transform .15s; }
.home-tile:hover { transform: translateY(-3px); }
.home-tile span { position: relative; width: 100%; padding: .45em .5em; text-align: center; font-weight: bold; font-size: 1.05em; }
.home-photo { background: var(--tile-img) center / cover #5A005A; }
.home-photo span { background: rgba(90, 0, 90, .82); }
.home-colour { background: var(--tile); justify-content: center; }
.home-colour svg { width: 54px; height: 54px; fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.home-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.home-steps li { counter-increment: step; padding: .8em .9em; border: 1px solid #E5D5E5; border-radius: 6px; background: #fff; font-size: .95em; }
.home-steps li::before { content: counter(step); display: flex; align-items: center; justify-content: center; width: 1.8em; height: 1.8em;
  margin-bottom: .4em; border-radius: 50%; background: var(--ce-purple); color: #FFFF00; font-weight: bold; }
.home-steps strong { display: block; color: var(--ce-purple); margin-bottom: .2em; }
.home-verbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 1.6em 0; }
.home-verbs a { display: block; padding: .6em .7em; background: var(--v); color: #fff !important; text-decoration: none; border-radius: 4px; font-size: .9em; line-height: 1.3; }
.home-verbs a:hover { filter: brightness(1.12); }
.home-verbs b { display: block; font-size: 1.15em; color: #fff; }
.home-verbs i { font-family: 'Lobster', cursive; font-style: normal; }
.home-events { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.home-event { display: block; padding: .6em .8em; background: #F3FAFA; border-left: 5px solid #007070; border-radius: 0 4px 4px 0; text-decoration: none; color: #222 !important; }
.home-event:hover { background: #E3F3F3; }
.home-event b { display: block; color: #005555; }
.home-event small { display: block; color: #555; font-size: .85em; }
.home-events-empty { grid-column: 1 / -1; margin: 0; padding: .8em 1em; text-align: center; background: #F3FAFA; border: 1px dashed #66AAAA; border-radius: 6px; }
.home-link { margin-left: 1em; font-weight: bold; }
.home-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 1.6em 0 .5em; }
.home-duo section { padding: 1em 1.1em; border-radius: 6px; scroll-margin-top: 12px; }
.home-duo h2 { background: none; border: 0; padding: 0; margin: 0 0 .3em; }
.home-duo p { margin: 0 0 .7em; font-size: .95em; }
.home-join { background: #FFF6D6; border: 1px solid #E8D48A; }
.home-join h2 { color: #6B4A00; }
.home-join .ce-form-status { margin: 0 0 .6em; font-size: .9em; }
.home-join-row { display: flex; gap: 6px; }
.home-join-row input { flex: 1; min-width: 0; padding: .5em; font-size: 15px; border: 1px solid #B98AB9; border-radius: 4px; }
.home-consent { display: flex; gap: .4em; align-items: flex-start; margin-top: .5em; font-size: .85em; }
.home-consent input { margin-top: .2em; }
.home-suppliers { background: var(--ce-purple); color: #fff; }
.home-suppliers h2 { color: #FFFF00; }
@media (max-width: 760px) {
  .home-tiles, .home-verbs { grid-template-columns: 1fr 1fr; }
  .home-steps, .home-events, .home-duo { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .home-hero h1 { font-size: 2.3em; }
  .home-tile { min-height: 110px; }
}
/* ---------- CE Info (general/coy-info.html): reuses the home hero, headings and buttons */
.info-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.info-card { display: flex; flex-direction: column; padding: .8em .9em; background: #fff; border: 1px solid #E5D5E5; border-top: 5px solid var(--c);
  text-decoration: none; color: #333 !important; font-size: .95em; transition: transform .15s; }
.info-card:hover, .info-doors a:hover { transform: translateY(-3px); }
.info-card b, .info-doors b { display: block; margin-bottom: .3em; font-size: 1.1em; color: var(--ce-purple); }
.info-card span, .info-doors span { margin-top: auto; padding-top: .5em; font-weight: bold; color: var(--c, #800080); }
.info-card span::after, .info-doors span::after { content: ' \203A'; }
.info-doors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.info-doors a { display: flex; flex-direction: column; padding: .8em .9em; background: #FBEAF0; border-radius: 6px; text-decoration: none;
  color: #4B1528 !important; font-size: .95em; transition: transform .15s; }
.info-doors b { color: #72243E; }
.info-doors span { color: #993556; }
.info-promise { display: grid; grid-template-columns: 1fr 1fr; gap: .4em 1.4em; margin: 0; padding: 0; list-style: none; }
.info-promise li::before { content: '\2713\00a0'; color: #C49A00; font-weight: bold; }
.info-checks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 0; padding: 0; list-style: none; }
.info-checks li { padding: .7em .9em; background: #fff; border: 1px solid #E5D5E5; border-left: 4px solid #7A7A00; font-size: .93em; color: #555; }
.info-checks strong { display: block; color: var(--ce-purple); margin-bottom: .2em; }
@media (max-width: 760px) { .info-checks { grid-template-columns: 1fr; } }
.info-ask { display: flex; align-items: center; gap: 1em; margin: 1.6em 0; padding: .9em 1.1em; background: #fff; border: 1px solid #E5D5E5; border-radius: 6px; }
.info-ask h2 { background: none; border: 0; padding: 0; margin: 0 0 .2em; }
.info-ask p { margin: 0; font-size: .95em; }
.info-ask .home-btn { white-space: nowrap; }
.info-contact { margin: 1.6em 0 .5em; padding: 1em 1.2em; background: #FBF6FB; border: 2px solid var(--ce-purple); border-radius: 6px; scroll-margin-top: 12px; }
.info-contact h2 { background: none; border: 0; padding: 0; margin: 0 0 .5em; }
.info-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; }
.info-contact-grid b { display: block; color: var(--ce-purple); }
.info-contact-grid > div > a { font-size: 1.15em; font-weight: bold; word-break: break-word; }
.info-contact-grid small { display: block; color: #555; margin-top: .2em; }
.info-company { margin: 1em 0 0; font-size: .85em; color: #555; }
@media (max-width: 760px) {
  .info-cards, .info-doors, .info-promise, .info-contact-grid { grid-template-columns: 1fr; }
  .info-ask { flex-wrap: wrap; justify-content: center; text-align: center; }
}
/* ---------- Services (services/services_catagories.html): search + category cards, built from the database list */
.svc-search { display: flex; gap: 6px; max-width: 480px; margin: 0 auto; }
.svc-search input { flex: 1; min-width: 0; padding: .55em .7em; font-size: 15px; border: 0; border-radius: 4px; }
.svc-search input:focus { outline: 3px solid #FFCC00; }
.svc-intro { margin: 1em 0; font-size: .95em; color: #555; text-align: center; }
.svc-own { display: flex; flex-wrap: wrap; align-items: center; gap: .5em .8em; margin: 1.2em 0; padding: .8em 1em; background: #FBF6FB; border-left: 6px solid #FFCC00; border-radius: 0; }
.svc-own h2 { margin: 0; padding: 0; background: none; border: 0; font-size: 1.15em; }
.svc-own ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.svc-own li { padding: .15em .7em; border: 1px solid var(--ce-purple); border-radius: 999px; color: var(--ce-purple); font-size: .9em; }
.svc-own .home-btn { margin-left: auto; }
.svc-count { float: right; font-weight: normal; font-size: .7em; color: #555; line-height: 2; }
.svc-key { margin: -.3em 0 .7em; font-size: .85em; color: #555; }
.svc-bag { width: 13px; height: 13px; margin-left: 4px; vertical-align: -1px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; align-items: start; }
.svc-card { border: 1px solid #E5D5E5; border-radius: 6px; overflow: hidden; background: #fff; }
.svc-card h3 { display: flow-root; margin: 0; padding: .45em .7em; background: var(--c); color: #fff; font-size: 1.05em; }
.svc-card h3 small { font-weight: normal; font-size: .75em; opacity: .9; margin-left: .2em; }
.svc-card h3 em { float: right; font-style: normal; font-weight: normal; font-size: .75em; }
.svc-items { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: .6em .7em 0; list-style: none; }
.svc-items li { padding: .1em .5em; background: var(--t); border-radius: 3px; font-size: .85em; color: #333; }
.svc-items li.svc-match { box-shadow: inset 0 0 0 2px var(--c); font-weight: bold; }
.svc-card details { padding: 0; }
.svc-card details .svc-items { padding-top: 4px; }
.svc-card summary { padding: .3em .7em 0; color: var(--c); font-weight: bold; font-size: .85em; cursor: pointer; list-style: none; }
.svc-card summary::-webkit-details-marker { display: none; }
.svc-card details[open] summary { font-size: 0; padding: 0; }
.svc-links { display: flex; flex-wrap: wrap; gap: .3em 1em; margin: 0; padding: .6em .7em .7em; }
.svc-links a { color: var(--c); font-weight: bold; font-size: .9em; }
.svc-links a::after { content: ' \203A'; }
.svc-soon { opacity: .75; }
.svc-soon h3 em { background: rgba(0, 0, 0, .25); padding: 0 .5em; border-radius: 999px; }
.svc-soon .svc-items { padding-bottom: .7em; }
.svc-none { padding: .8em 1em; text-align: center; background: #FBF6FB; border: 1px dashed #B98AB9; border-radius: 6px; }
.svc-ask { background: #fff; border: 1px solid #E5D5E5; }
@media (max-width: 760px) {
  .svc-grid { grid-template-columns: 1fr 1fr; }
  .svc-own .home-btn { margin-left: 0; }
}
@media (max-width: 520px) {
  .svc-grid { grid-template-columns: 1fr; }
  .svc-search { flex-direction: column; }
  .svc-count { float: none; display: block; }
}
/* ---------- Caterers (catering/services_catering.html): reuses home, services and travel-form styles */
.cat-hero { display: flex; align-items: center; gap: 1.2em; padding: 1.2em 1.4em; border-radius: 6px; color: #fff;
  background: linear-gradient(135deg, var(--ce-purple), #5A005A 70%, #7A7A00); border-bottom: 6px solid #7A7A00; }
.cat-hero img { flex: none; width: 120px; height: 120px; object-fit: cover; border-radius: 50%; border: 4px solid #fff; background: #fff; }
.hire-panel { min-height: 45vh; scroll-margin-top: 8px; }   /* so both hero buttons scroll their section to the top */
.hire .home-hero { background: linear-gradient(135deg, rgba(128, 0, 128, .88), rgba(90, 0, 90, .82) 70%, rgba(138, 106, 0, .8)), url('../Images/hire.webp') center / cover; }
.cat-tagline { margin: 0; font: normal 1.9em/1.2 'Times New Roman', Georgia, serif; color: #fff; }
.cat-tagline span { white-space: nowrap; }
.cat-tagline i { font: italic .75em Tahoma, Arial, sans-serif; color: #F4D7F4; }
.cat-total { margin: .1em 0 .7em; font: 1.4em 'Times New Roman', Georgia, serif; color: #FFFF00; letter-spacing: .03em; }
.cat-hero .home-cta { justify-content: flex-start; margin: 0; }
.cat-hint { margin: -.3em 0 .7em; font-size: .9em; color: #555; }
.cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.cat-card { display: block; padding: .7em .8em; background: #fff; border: 1px solid #E5D5E5; border-top: 4px solid var(--ce-purple);
  text-decoration: none; color: #555 !important; font-size: .88em; line-height: 1.4; transition: transform .15s; }
.cat-card:hover { transform: translateY(-3px); border-color: var(--ce-purple); }
.cat-card b { display: block; margin-bottom: .2em; font-size: 1.12em; color: var(--ce-purple); }
.cat-alt { border-top-color: #7A7A00; }
.cat-boxes { display: flex; flex-wrap: wrap; gap: .3em 1.2em; margin: .6em 0 0; padding: .5em .8em .7em; border: 1px solid #E5D5E5; border-radius: 4px; }
.cat-boxes legend { font-weight: bold; font-size: .95em; padding: 0 .3em; }
.trv-fields .cat-boxes label { display: flex; gap: .35em; align-items: center; margin: .2em 0; font-weight: normal; }
.trv-fields .cat-boxes input { width: auto; }
.cat-private { margin: 1em 0 0; padding: .4em .9em .9em; background: #F7F7F7; border: 1px solid #DDD; border-radius: 6px; }
.cat-private legend { font-weight: bold; color: #444; padding: 0 .3em; }
@media (max-width: 760px) {
  .cat-grid { grid-template-columns: 1fr 1fr; }
  .cat-hero { flex-direction: column; text-align: center; }
  .cat-hero .home-cta { justify-content: center; }
}
@media (max-width: 520px) { .cat-tagline { font-size: 1.5em; } .cat-quote .trv-fields { grid-template-columns: 1fr; } }
/* ---------- Venue / Events Management (services/*_Management.php): plain business layout */
.biz-hero h1 { font-family: var(--ce-font); font-weight: bold; font-size: 2.2em; }
.biz-intro { margin: 1.2em 0; font-size: 1.02em; line-height: 1.6; }
.biz-scope { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 14px; margin: 0; padding: 0; list-style: none; }
.biz-scope li { padding: .45em .7em; background: #FBF6FB; border-left: 4px solid var(--ce-purple); font-size: .95em; }
.biz-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: bstep; }
.biz-steps li { counter-increment: bstep; padding: .7em .8em; border: 1px solid #E5D5E5; border-radius: 6px; background: #fff; font-size: .9em; color: #555; }
.biz-steps li::before { content: counter(bstep); display: block; font-size: 1.4em; font-weight: bold; color: #7A7A00; }
.biz-steps strong, .biz-why strong { display: block; color: var(--ce-purple); margin-bottom: .2em; }
.biz-why { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0; padding: 0; list-style: none; }
.biz-why li { padding: .7em .8em; font-size: .92em; color: #555; border-top: 3px solid #FFCC00; background: #fff; }
.biz-why strong::before { content: '\2713\00a0'; color: #7A7A00; }
.biz-off { margin: 1.5em 0; padding: 2em 1.2em; text-align: center; background: #FBF6FB; border: 1px solid #E5D5E5; border-radius: 6px; }
.biz-off h1 { margin: 0 0 .3em; color: var(--ce-purple); }
.biz-off .home-cta { justify-content: center; }
@media (max-width: 760px) {
  .biz-scope, .biz-why { grid-template-columns: 1fr 1fr; }
  .biz-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) { .biz-scope, .biz-why, .biz-steps { grid-template-columns: 1fr; } .biz-meet .trv-fields { grid-template-columns: 1fr; } }
/* ---------- Plan an event hub (general/event_planner.html) and Sign in (sign-in.html) */
.plan-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 1.4em 0; }
.plan-card { display: flex; flex-direction: column; align-items: flex-start; gap: .5em; padding: 1em 1.1em; background: #fff;
  border: 1px solid #E5D5E5; border-top: 5px solid var(--ce-purple); border-radius: 6px; }
.plan-card h2 { margin: 0; padding: 0; background: none; border: 0; font-size: 1.2em; }
.plan-card p { margin: 0 0 .3em; flex: 1; font-size: .95em; color: #444; }
.plan-card-main { border-top-color: #FFCC00; background: #FFFDF5; }
.plan-link { font-weight: bold; font-size: .95em; }
.plan-package-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: .6em 0 1em; padding: 0; list-style: none; }
.plan-package-list li { padding: .6em .8em; background: #FBF6FB; border-radius: 4px; font-size: .9em; color: #555; }
.plan-package-list strong { display: block; color: var(--ce-purple); margin-bottom: .2em; }
@media (max-width: 760px) { .plan-package-list { grid-template-columns: 1fr; } }
.plan-budget { padding: 1em 1.1em; background: #FBF6FB; border-radius: 6px; }
.plan-budget h2 { background: none; border: 0; padding: 0; }
.signin { margin: 1.5em auto; text-align: left; }   /* width comes from .home (720px, never wider than the screen) */
.signin h1 { color: var(--ce-purple); margin: 0 0 .2em; }
.signin-lede { margin: 0; color: #555; }
.signin-options { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 760px) { .plan-options, .signin-options { grid-template-columns: 1fr; } }
/* ---------- Legal pages (Privacy Statement, Supplier Terms) */
.legal { max-width: 760px; margin: 1em auto 2em; text-align: left; line-height: 1.6; }
.legal h1 { color: var(--ce-purple); margin: 0 0 .2em; }
.legal-meta { margin: 0 0 1.2em; color: #555; font-size: .9em; }
.legal h2 { margin: 1.5em 0 .4em; padding: .25em .6em; font-size: 1.15em; color: var(--ce-purple); background: #FBF6FB; border-left: 5px solid #FFCC00; }
.legal ul { padding-left: 1.3em; }
.legal li { margin: .3em 0; }
.legal-actions { display: flex; flex-wrap: wrap; gap: .6em; margin-top: 1.6em; }
.nl-page { max-width: 560px; margin: 2em auto; padding: 0 1em; text-align: center; }
.nl-form { display: flex; flex-direction: column; gap: .6em; align-items: center; margin: 1em 0; }
.nl-form input[type=email] { width: 100%; max-width: 360px; padding: .5em; font-size: 15px; border: 1px solid #B98AB9; border-radius: 4px; }

/* ---------- responsive: tablets and phones (the original was fixed at ~1100px wide) */
@media (max-width: 900px) {
  .ce-layout { flex-direction: column; }
  .ce-content { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ce-sidebar {
    flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: flex-end;
    min-height: 0; width: 100%; box-sizing: border-box;
  }
  .ce-catbar ul { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 600px) {
  body { margin: 8px 16px; }
  .ce-brand { flex-direction: column; align-items: center; gap: 6px; min-height: 0; }
  .ce-catbar ul { grid-template-columns: repeat(2, 1fr); }
  .ce-catbar li { font-size: small; }
  .ce-content img { max-width: 100%; height: auto; }
  .ce-nav { font-size: medium; line-height: 2; }
}

@media print {
  .ce-nav, .ce-catbar, .ce-sidebar, .ce-skip, .ce-foot-services { display: none; }
  body { background: none !important; }
}

/* ---------- Venues showcase (/Venues/), List your venue, Register your event services */
.home-suppliers .home-btn-outline { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 2px #fff; }
.home-suppliers .home-btn-outline:hover { background: rgba(255,255,255,.15); }
.vn-hero { background: linear-gradient(135deg, rgba(128, 0, 128, .9), rgba(90, 0, 90, .84) 70%, rgba(138, 106, 0, .8)), url('../Images/kids-venues.webp') center / cover; }
.vn-filters { margin: 1em 0 .4em; padding: .7em .8em .4em; background: #FBF6FB; border-radius: 6px; }
.vn-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; align-items: start; }
.vn-card { border: 1px solid #E5D5E5; border-radius: 6px; overflow: hidden; background: #fff; }
.vn-card > img, .vn-noimg { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.vn-noimg { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #800080, #5A005A); color: #FFFF00; font: 3em 'Lobster', cursive; }
.vn-body { padding: .7em .9em .9em; }
.vn-body h3 { margin: 0; color: var(--ce-purple); font-size: 1.15em; }
.vn-meta { margin: .1em 0 .4em; font-size: .9em; color: #555; }
.vn-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 .5em; }
.vn-tags span { padding: .05em .5em; background: #FFF6D6; border-radius: 3px; font-size: .8em; color: #5A4500; }
.vn-desc { margin: 0 0 .5em; font-size: .93em; color: #333; }
.vn-card details p, .vr-fee-small, .rs-steps li { color: #444; }
.vn-card details { margin: 0 0 .7em; font-size: .9em; }
.vn-card summary { cursor: pointer; color: var(--ce-purple); font-weight: bold; }
.vn-card details p { margin: .35em 0; }
.vn-request { margin: 0; }
.vn-empty { padding: 1em; text-align: center; background: #FBF6FB; border: 1px dashed #B98AB9; border-radius: 6px; }
.vn-owner { margin: 1.6em 0; padding: 1em 1.2em; text-align: center; background: #FFFDF5; border: 1px solid #F0E2A8; border-radius: 6px; }
.vn-owner h2 { background: none; border: 0; padding: 0; text-align: center; }
.vr-fees { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 1.2em 0 .4em; }
.vr-fee { display: flex; flex-direction: column; align-items: center; padding: 1em; text-align: center; background: #fff; border: 2px solid var(--ce-purple); border-radius: 6px; }
.vr-fee-now { background: #FFFDF5; border-color: #FFCC00; }
.vr-fee-label { font-weight: bold; color: var(--ce-purple); text-transform: uppercase; letter-spacing: .04em; font-size: .85em; }
.vr-fee-amount { margin: .1em 0; font: 2.2em 'Times New Roman', Georgia, serif; color: #333; }
.vr-fee-note { font-size: .85em; color: #555; }
.vr-fee-small { margin: 0 0 1.2em; text-align: center; font-size: .88em; color: #555; }
.vr-form { margin: 1em 0; }
.vr-step { margin: 0 0 1em; padding: .5em 1em 1em; background: #fff; border: 1px solid #E5D5E5; border-radius: 6px; }
.vr-step legend { padding: 0 .3em; font-weight: bold; font-size: 1.05em; color: var(--ce-purple); }
.vr-private { background: #F7F7F7; border-color: #DDD; }
.vr-ticks { display: grid; grid-template-columns: repeat(3, 1fr); gap: .25em 1em; margin: .3em 0; }
.vr-ticks label, .vr-check { display: flex; gap: .4em; align-items: flex-start; font-weight: normal; font-size: .95em; cursor: pointer; }
.vr-ticks input, .vr-check input { width: auto; margin-top: .25em; flex: none; }
.vr-check { display: inline-flex; margin: .3em 1.2em .3em 0; }
.vr-label { display: block; margin: .6em 0 .25em; font-weight: bold; font-size: .95em; }
.vr-group { margin: .8em 0 .1em; font-weight: bold; font-size: .9em; color: #7A7A00; }
.vr-caps { display: grid; grid-template-columns: repeat(3, 1fr); gap: .2em 1em; }
.vr-caps label { display: block; margin: .6em 0 .25em; font-weight: bold; font-size: .95em; }
.vr-caps input { width: 100%; box-sizing: border-box; padding: .45em .5em; font-size: 1em; border: 1px solid #B98AB9; border-radius: 3px; }
.vr-terms { display: flex; margin: 1em 0 0; }
.rs-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 1.2em 0; padding: 0; list-style: none; counter-reset: rs; }
.rs-steps li { counter-increment: rs; padding: .7em .8em; background: #fff; border: 1px solid #E5D5E5; border-top: 3px solid #FFCC00; border-radius: 6px; font-size: .9em; color: #555; }
.rs-steps li::before { content: counter(rs); display: block; font-size: 1.3em; font-weight: bold; color: #7A7A00; }
.rs-steps strong { color: var(--ce-purple); }
.rs-cats { display: grid; gap: 6px; margin: .3em 0 .6em; }
.rs-cat { border: 1px solid #E5D5E5; border-radius: 4px; background: #FBF6FB; }
.rs-cat > summary { padding: .45em .8em; cursor: pointer; font-weight: bold; color: var(--ce-purple); }
.rs-cat[open] > summary { border-bottom: 1px solid #E5D5E5; }
.rs-cat .vr-ticks { padding: .4em .8em .6em; background: #fff; }
.rs-n { display: inline-block; min-width: 1.4em; padding: 0 .4em; border-radius: 999px; background: var(--ce-purple); color: #fff; font-size: .8em; text-align: center; }
.rs-all { grid-column: 1 / -1; }
@media (max-width: 760px) { .vr-ticks, .vr-caps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .vn-grid, .vr-fees, .vr-ticks, .vr-caps, .rs-steps { grid-template-columns: 1fr; } .vr-fee-amount { font-size: 1.9em; } }
/* ---------- Venue availability (Venues page date filter, venue cards, supplier "My calendar") */
.vn-date { display: flex; flex-wrap: wrap; align-items: center; gap: .4em .7em; margin: .5em 0 .3em; padding-top: .6em; border-top: 1px solid #E5D5E5; }
.vn-date label { font-weight: bold; font-size: .9em; }
.vn-date input[type=date], .vn-date select { padding: .35em .45em; font-size: .95em; border: 1px solid #B98AB9; border-radius: 3px; }
.vn-date .vn-booked { font-weight: normal; display: inline-flex; gap: .3em; align-items: center; }
.vn-date .home-btn { padding: 6px 14px; font-size: 14px; }
.vn-for { font-weight: normal; font-size: .75em; color: #555; }
.vn-hidden { margin: -.3em 0 .7em; font-size: .9em; color: #555; }
.vc-badge { margin: 0 0 .5em; padding: .3em .6em; border-radius: 4px; font-size: .88em; font-weight: bold; }
.vc-badge span { font-weight: normal; font-size: .9em; }
.vc-free { background: #E8F5E8; color: #1E6B1E; }
.vc-free::before { content: '\25CF\00a0'; }
.vc-booked { background: #FDECEC; color: #A40000; }
.vc-booked::before { content: '\2715\00a0'; }
.vc-unknown { background: #F3F3F3; color: #555; font-weight: normal; }
.vc-unknown::before { content: '\25CB\00a0'; }
.vc-note { margin: .3em 0; font-size: .88em; color: #555; }
.vc-wrap { margin-top: .5em; }
.vc-month { width: 100%; max-width: 280px; border-collapse: separate; border-spacing: 2px; font-size: .78em; }
.vc-month caption { font-weight: bold; color: var(--ce-purple); text-align: left; padding-bottom: .2em; }
.vc-month th { color: #777; font-weight: normal; }
.vc-month td { height: 26px; padding: 0; text-align: center; border-radius: 3px; position: relative; }
.vc-month td span { position: relative; z-index: 1; }
.vc-month td.d-f.e-f { background: linear-gradient(#DDF1DD 50%, #CDE8CD 50%); }
.vc-month td.d-b.e-b { background: linear-gradient(#F7D2D2 50%, #F0C0C0 50%); }
.vc-month td.d-f.e-b { background: linear-gradient(#DDF1DD 50%, #F0C0C0 50%); }
.vc-month td.d-b.e-f { background: linear-gradient(#F7D2D2 50%, #CDE8CD 50%); }
.vc-month td.past { color: #BBB; }
.vc-month td.mark { box-shadow: inset 0 0 0 2px var(--ce-purple); font-weight: bold; }
.vc-key { margin: .2em 0 0; font-size: .75em; color: #666; }
.vc-key span { display: inline-block; width: .9em; height: .9em; border-radius: 2px; vertical-align: -.1em; }
.vc-key .k-f { background: #CDE8CD; } .vc-key .k-b { background: #F0C0C0; }
.vc-status { padding: .5em .7em; border-radius: 4px; font-size: .95em; }
.vc-status.ok { background: #E8F5E8; color: #1E4B1E; } .vc-status.stale { background: #FFF6D6; color: #6B4F00; }
.vc-row { display: flex; flex-wrap: wrap; align-items: center; gap: .5em; }
.vc-row label { margin: 0; }
.vc-row select { width: auto !important; }
.ce-auth .vc-row button, .ce-auth .vc-closures button { margin-top: 0; }
.ce-auth button.vc-light, .vc-light { background: #fff; color: var(--ce-purple); box-shadow: inset 0 0 0 2px var(--ce-purple); }
.vc-nav { display: flex; justify-content: space-between; align-items: center; margin: .5em 0; }
.vc-grid { table-layout: fixed; }
.ce-auth .vc-grid th { text-align: center; }
.ce-auth .vc-grid td { height: 62px; padding: .2em; text-align: center; vertical-align: top; }
.vc-grid td.past { background: #F7F7F7; color: #BBB; }
.vc-d { display: block; font-size: .85em; color: #555; }
.vc-s { display: inline-block; min-width: 1.9em; margin: 1px; padding: .15em .3em; border: 0; border-radius: 3px; font: bold .8em var(--ce-font); cursor: pointer; }
.ce-auth .vc-grid button.vc-s { margin: 1px; padding: .15em .3em; font-size: .8em; }
.vc-s.free, .ce-auth button.vc-s.free { background: #DDF1DD; color: #1E6B1E; }
.vc-s.booked, .ce-auth button.vc-s.booked { background: #A40000; color: #fff; }
.vc-s.locked, .ce-auth button.vc-s.locked { background: #5A005A; color: #fff; cursor: not-allowed; }
.vc-s.closed, .ce-auth button.vc-s.closed { background: #888; color: #fff; cursor: not-allowed; }
.vc-legend { font-size: .85em; color: #555; }
.vc-legend .vc-s { cursor: default; }
.vc-closures { padding-left: 1.1em; } .vc-closures li { margin: .3em 0; } .vc-closures form { display: inline; }
@media (max-width: 600px) { .ce-auth .vc-grid td { height: 70px; } .vc-s { min-width: 1.6em; } }