:root {
  --rea-ink: #15171b;
  --rea-muted: #686e78;
  --rea-line: #e4e7eb;
  --rea-soft: #f5f6f8;
  --rea-accent: #0e73b8;
  --rea-accent-dark: #095b92;
  --rea-green: #17784a;
  --rea-radius: 18px;
  --rea-shadow: 0 12px 34px rgba(17, 22, 34, .09);
}

/* Keep existing Bookings data intact, but hide it on quote-enabled products. */
.rea-attraction-product .summary .price,
.rea-attraction-product .summary form.cart,
.rea-attraction-product .summary .wc-bookings-booking-form,
.rea-attraction-product .summary .wc-bookings-booking-cost { display:none !important; }
.rea-attraction-card .price { display:none !important; }

.rea-button,
.rea-add-quote,
.rea-sticky__button,
.rea-submit,
.rea-next-step {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid transparent;
  text-decoration:none !important;
  font-weight:750;
  line-height:1;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.rea-button:hover,.rea-add-quote:hover,.rea-sticky__button:hover,.rea-submit:hover,.rea-next-step:hover { transform:translateY(-1px); }
.rea-button--primary,.rea-card__quote,.rea-loop-quote-button,.rea-submit,.rea-next-step { background:var(--rea-accent); color:#fff !important; }
.rea-button--primary:hover,.rea-card__quote:hover,.rea-loop-quote-button:hover,.rea-submit:hover,.rea-next-step:hover { background:var(--rea-accent-dark); }
.rea-button--ghost { border-color:var(--rea-line); color:var(--rea-ink) !important; background:#fff; }
.rea-button--light { background:#fff; color:var(--rea-ink) !important; }
.rea-button--hero { background:#fff; color:var(--rea-ink) !important; min-height:50px; padding:0 22px; }
.rea-add-quote.is-added { background:var(--rea-green); color:#fff !important; }

/* Single attraction product */
.rea-single-quote {
  margin:18px 0 10px;
  padding:22px;
  border:1px solid var(--rea-line);
  border-radius:var(--rea-radius);
  background:linear-gradient(180deg,#fff,#fbfbfc);
  box-shadow:var(--rea-shadow);
}
.rea-single-quote__eyebrow,.rea-kicker {
  color:var(--rea-accent);
  font-size:12px;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.rea-single-summary { color:var(--rea-ink); }
.rea-single-summary > :first-child { margin-top:0; }
.rea-single-summary > :last-child { margin-bottom:0; }
.rea-single-summary ul { margin:0 0 0 18px; }
.rea-single-summary li { margin:0 0 5px; }
.rea-single-summary a { font-weight:650; }
.rea-facts { display:flex; flex-wrap:wrap; gap:7px; margin:15px 0 0; }
.rea-facts span { padding:7px 10px; border-radius:999px; background:var(--rea-soft); color:#34373d; font-size:12px; }
.rea-single-quote__cta { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:18px; padding-top:17px; border-top:1px solid var(--rea-line); }
.rea-single-quote__cta p { color:var(--rea-muted); margin:4px 0 0; line-height:1.45; }
.rea-single-actions { display:flex; gap:10px; flex-wrap:wrap; flex:0 0 auto; }

/* Avada page chrome */
.rea-attractions-page .fusion-page-title-bar,
.rea-quote-page .fusion-page-title-bar { display:none !important; }
.rea-attractions-page #main,
.rea-quote-page #main { padding-top:0; }
.rea-catalog,.rea-quote-page-wrap { color:var(--rea-ink); }

/* Landing hero */
.rea-hero {
  margin:0 calc(50% - 50vw) 24px;
  overflow:hidden;
  background:linear-gradient(180deg, #f8fbff 0%, #eef5fb 100%);
  color:var(--rea-ink);
  border-top:1px solid #eef1f5;
  border-bottom:1px solid #e5ebf1;
}
.rea-hero__inner {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);
  gap:50px;
  align-items:center;
  width:min(1240px,calc(100% - 48px));
  min-height:390px;
  margin:0 auto;
  padding:46px 0;
}
.rea-hero__content { max-width:760px; position:relative; z-index:2; }
.rea-hero .rea-kicker { color:var(--rea-accent); }
.rea-hero h1 { margin:8px 0 15px; color:var(--rea-ink) !important; font-size:clamp(38px,4.7vw,58px); line-height:1.02; letter-spacing:-.03em; }
.rea-hero p { max-width:720px; margin:0; color:#3f4d5b; font-size:clamp(16px,1.6vw,19px); line-height:1.6; }
.rea-hero__actions { display:flex; gap:20px; align-items:center; flex-wrap:wrap; margin-top:24px; }
.rea-hero__secondary { color:var(--rea-ink) !important; font-weight:750; text-decoration:none !important; border-bottom:1px solid rgba(21,23,27,.24); padding:4px 0; }
.rea-hero__proof { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:27px; color:#5c6978; font-size:12px; }
.rea-hero__proof span { display:flex; align-items:center; gap:5px; }
.rea-hero__proof span + span:before { content:'•'; margin-right:7px; opacity:.45; }
.rea-hero__proof strong { color:var(--rea-ink); }
.rea-hero__mosaic {
  position:relative;
  min-height:345px;
}

.rea-hero__tile { position:absolute; overflow:hidden; border-radius:20px; border:1px solid rgba(10,39,69,.08); box-shadow:0 18px 45px rgba(15,33,58,.12); background:#fff; }
.rea-hero__tile img { width:100%; height:100%; object-fit:cover; display:block; }
.rea-hero__tile--1 { left:0; top:18px; width:62%; height:62%; z-index:3; }
.rea-hero__tile--2 { right:0; top:0; width:45%; height:42%; z-index:2; }
.rea-hero__tile--3 { right:2%; bottom:0; width:56%; height:52%; z-index:4; }
.rea-hero__tile--4 { left:5%; bottom:0; width:37%; height:34%; z-index:5; }

.rea-catalog-intro {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  overflow:hidden;
  margin:0 0 28px;
  border:1px solid var(--rea-line);
  border-radius:15px;
  background:var(--rea-line);
}
.rea-catalog-intro > div { display:flex; align-items:center; gap:11px; padding:16px 18px; background:#fff; }
.rea-catalog-intro strong { display:flex; width:28px; height:28px; align-items:center; justify-content:center; border-radius:50%; background:var(--rea-ink); color:#fff; font-size:12px; }
.rea-catalog-intro span { font-weight:700; color:#373b42; font-size:13px; }

/* Landing filters and cards */
.rea-catalog-controls { display:flex; gap:18px; justify-content:space-between; align-items:center; margin:0 0 22px; scroll-margin-top:28px; }
.rea-filter-row { display:flex; flex-wrap:wrap; gap:7px; }
.rea-filter { border:1px solid var(--rea-line); background:#fff; color:#303238; border-radius:999px; padding:9px 14px; font-weight:700; cursor:pointer; }
.rea-filter.is-active { background:var(--rea-ink); border-color:var(--rea-ink); color:#fff; }
.rea-search-wrap { position:relative; flex:0 0 min(300px,100%); }
.rea-search-icon { position:absolute; left:15px; top:50%; transform:translateY(-50%); color:#767b84; font-size:18px; pointer-events:none; }
.rea-search { width:100%; height:44px; border:1px solid var(--rea-line) !important; border-radius:999px !important; padding:0 17px 0 40px !important; background:#fff; }

.rea-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.rea-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--rea-line); border-radius:var(--rea-radius); overflow:hidden; background:#fff; box-shadow:0 4px 16px rgba(20,24,35,.045); transition:transform .2s ease,box-shadow .2s ease; }
.rea-card:hover { transform:translateY(-3px); box-shadow:var(--rea-shadow); }
.rea-card__image { display:block; aspect-ratio:4/3; overflow:hidden; background:var(--rea-soft); }
.rea-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; display:block; }
.rea-card:hover .rea-card__image img { transform:scale(1.025); }
.rea-card__body { display:flex; flex:1; flex-direction:column; padding:17px; }
.rea-card h2 { margin:0 0 9px; font-size:17px; line-height:1.18; letter-spacing:-.018em; }
.rea-card h2 a { color:var(--rea-ink) !important; text-decoration:none !important; }
.rea-card__facts { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.rea-card__facts span { padding:5px 8px; border-radius:999px; background:var(--rea-soft); color:#4b5059; font-size:10px; font-weight:700; line-height:1.2; }
.rea-card p { color:var(--rea-muted); font-size:13px; line-height:1.5; margin:0 0 15px; }
.rea-card__actions { display:flex; align-items:center; gap:9px; margin-top:auto; }
.rea-card__details { color:var(--rea-ink) !important; font-weight:750; font-size:12px; white-space:nowrap; text-decoration:underline !important; text-underline-offset:3px; }
.rea-card__quote { min-height:39px; padding:0 12px; margin-left:auto; font-size:12px; }
.rea-no-results { padding:30px; text-align:center; background:var(--rea-soft); border-radius:var(--rea-radius); }

.rea-bottom-cta { display:flex; justify-content:space-between; align-items:center; gap:30px; margin:46px 0 20px; padding:34px 36px; border-radius:24px; background:linear-gradient(135deg, #0f1720 0%, #13314b 100%); color:#fff; overflow:hidden; }
.rea-bottom-cta > div { max-width:720px; }
.rea-bottom-cta .rea-kicker { color:#8dc7f1; }
.rea-bottom-cta h2 { color:#fff; margin:5px 0 7px; font-size:clamp(24px,3vw,38px); }
.rea-bottom-cta p { margin:0; color:rgba(255,255,255,.66); }

/* Sticky basket */
.rea-sticky { position:fixed; z-index:9999; left:50%; bottom:18px; width:min(780px,calc(100% - 28px)); transform:translateX(-50%); }
.rea-sticky[hidden] { display:none !important; }
.rea-sticky__inner { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:11px 12px 11px 18px; border:1px solid rgba(255,255,255,.12); border-radius:999px; background:rgba(14,23,32,.96); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); color:#fff; box-shadow:0 15px 44px rgba(0,0,0,.25); }
.rea-sticky__button { background:#fff; color:var(--rea-ink) !important; min-height:42px; }

/* Quote flow */
.rea-quote-page-wrap { max-width:980px; margin:0 auto; padding:44px 0 72px; }
.rea-quote-header { max-width:800px; margin:0 auto 30px; text-align:center; }
.rea-quote-header h1 { margin:7px 0 10px; font-size:clamp(30px,4.6vw,48px); line-height:1.06; letter-spacing:-.03em; color:var(--rea-ink) !important; }
.rea-quote-header p { max-width:710px; margin:0 auto; color:var(--rea-muted); font-size:17px; line-height:1.55; }
.rea-progress { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:24px; color:#9aa0a9; font-size:12px; font-weight:750; }
.rea-progress span { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.rea-progress span b { display:flex; width:25px; height:25px; align-items:center; justify-content:center; border-radius:50%; border:1px solid #d7dbe0; background:#fff; color:#7a8089; font-size:11px; }
.rea-progress span.is-active { color:var(--ink,#15171b); }
.rea-progress span.is-active b { border-color:var(--rea-ink); background:var(--rea-ink); color:#fff; }
.rea-progress span.is-current { color:var(--rea-accent); }
.rea-progress span.is-current b { border-color:var(--rea-accent); background:var(--rea-accent); color:#fff; }
.rea-progress i { width:48px; height:1px; background:#dfe2e6; }
.rea-success { margin:0 auto 28px; padding:17px 19px; max-width:820px; border-radius:13px; background:#edf8f2; border:1px solid #b9e1ca; color:#205d3e; text-align:center; }
.rea-flow-step[hidden] { display:none !important; }
.rea-flow-card { border:1px solid var(--rea-line); border-radius:21px; background:#fff; padding:28px; box-shadow:0 7px 26px rgba(20,24,35,.055); }
.rea-contact-card { margin-top:18px; }
.rea-section-heading { display:flex; gap:13px; align-items:flex-start; margin-bottom:22px; }
.rea-section-heading h2 { margin:0 0 4px; font-size:23px; }
.rea-section-heading p { margin:0; color:var(--rea-muted); font-size:14px; line-height:1.45; }
.rea-step { display:flex; width:32px; height:32px; flex:0 0 32px; align-items:center; justify-content:center; border-radius:50%; background:var(--rea-ink); color:#fff; font-size:13px; font-weight:850; }
.rea-quote-items { display:flex; flex-direction:column; gap:11px; }
.rea-quote-item { display:grid; grid-template-columns:78px minmax(0,1fr) auto; gap:14px; align-items:center; padding:11px; border-radius:14px; background:var(--rea-soft); }
.rea-quote-item__image { display:block; width:78px; height:64px; border-radius:10px; overflow:hidden; background:#fff; }
.rea-quote-item__image img { width:100%; height:100%; object-fit:cover; display:block; }
.rea-quote-item__info > a { display:block; color:var(--rea-ink) !important; font-weight:800; text-decoration:none !important; line-height:1.25; }
.rea-remove { padding:0; margin-top:5px; border:0; background:none; color:var(--rea-muted); font-size:12px; text-decoration:underline; cursor:pointer; }
.rea-qty { display:flex; align-items:center; border:1px solid var(--rea-line); border-radius:999px; background:#fff; overflow:hidden; }
.rea-qty button { width:32px; height:32px; border:0; background:#fff; cursor:pointer; font-size:18px; }
.rea-qty span { min-width:24px; text-align:center; font-weight:800; }
.rea-selection-actions { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:24px; padding-top:20px; border-top:1px solid var(--rea-line); }
.rea-back-catalog,.rea-back-step { color:#5f6570 !important; background:none; border:0; padding:0; font:inherit; font-weight:700; text-decoration:underline !important; text-underline-offset:3px; cursor:pointer; }
.rea-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.rea-event-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.rea-contact-grid { grid-template-columns:1fr 1fr; }
.rea-form-grid label { display:flex; flex-direction:column; gap:6px; font-weight:700; color:#34373d; font-size:13px; }
.rea-form-grid input,.rea-form-grid select,.rea-form-grid textarea { width:100%; min-height:46px; border:1px solid #d6dae0 !important; border-radius:10px !important; padding:10px 12px !important; background:#fff; color:var(--rea-ink); font:inherit; box-shadow:none !important; }
.rea-form-grid input:focus,.rea-form-grid select:focus,.rea-form-grid textarea:focus { outline:2px solid rgba(196,20,49,.13); border-color:var(--rea-accent) !important; }
.rea-form-grid textarea { min-height:120px; resize:vertical; }
.rea-span-2 { grid-column:span 2; }
.rea-final-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:22px; padding-top:20px; border-top:1px solid var(--rea-line); }
.rea-submit { min-width:235px; min-height:52px; border:0; font-size:14px; }
.rea-form-note { color:var(--rea-muted); font-size:11px; line-height:1.5; margin:12px 0 0; }
.rea-form-note a { color:inherit !important; text-decoration:underline !important; }
.rea-hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.rea-empty-state { padding:25px; border:1px dashed #cfd3d9; border-radius:14px; background:var(--rea-soft); text-align:center; }
.rea-empty-state h2,.rea-empty-state h3 { margin-top:0; }
.rea-empty-state p { color:var(--rea-muted); }



@media (max-width: 1100px) {
  .rea-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .rea-catalog-controls { align-items:flex-start; flex-direction:column; }
  .rea-hero__inner { grid-template-columns:minmax(0,1fr) minmax(320px,.75fr); gap:28px; }
}

@media (max-width: 860px) {
  .rea-hero__inner { grid-template-columns:1fr; min-height:0; padding:45px 0; }
  .rea-hero__mosaic { min-height:270px; max-width:620px; width:100%; }
  .rea-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .rea-bottom-cta { align-items:flex-start; flex-direction:column; }
}

@media (max-width: 860px) {
  .rea-event-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 680px) {
  .rea-single-quote__cta { align-items:stretch; flex-direction:column; }
  .rea-single-actions .rea-button { width:100%; justify-content:center; }
  .rea-hero__inner { width:calc(100% - 36px); padding:38px 0; }
  .rea-hero h1 { font-size:42px; }
  .rea-hero p { font-size:16px; }
  .rea-hero__mosaic { min-height:220px; }
  .rea-hero__proof { display:none; }
  .rea-catalog-intro { grid-template-columns:1fr; }
  .rea-catalog-intro > div { padding:12px 15px; }
  .rea-filter-row { flex-wrap:nowrap; width:100%; overflow-x:auto; padding-bottom:5px; -webkit-overflow-scrolling:touch; }
  .rea-filter { flex:0 0 auto; }
  .rea-search-wrap { width:100%; flex-basis:auto; }
  .rea-card__body { padding:12px; }
  .rea-card h2 { font-size:15px; }
  .rea-card p { display:none; }
  .rea-card__facts span { font-size:9px; }
  .rea-card__actions { align-items:stretch; flex-direction:column; gap:8px; }
  .rea-card__details { text-align:center; }
  .rea-card__quote { width:100%; margin-left:0; min-height:40px; }
  .rea-add-icon { display:none; }
  .rea-bottom-cta { margin-top:30px; padding:24px; }
  .rea-sticky { bottom:9px; width:calc(100% - 18px); }
  .rea-sticky__inner { padding-left:14px; font-size:12px; }
  .rea-sticky__button { min-height:40px; padding:0 13px; font-size:11px; }
  .rea-quote-page-wrap { padding:30px 0 58px; }
  .rea-quote-header { text-align:left; }
  .rea-progress { justify-content:flex-start; overflow-x:auto; padding-bottom:3px; }
  .rea-progress i { width:24px; flex:0 0 24px; }
  .rea-flow-card { padding:19px; }
  .rea-form-grid { grid-template-columns:1fr; }
  .rea-span-2 { grid-column:span 1; }
  .rea-quote-item { grid-template-columns:58px minmax(0,1fr); }
  .rea-quote-item__image { width:58px; height:50px; }
  .rea-qty { grid-column:2; justify-self:start; }
  .rea-selection-actions,.rea-final-actions { align-items:stretch; flex-direction:column-reverse; }
  .rea-next-step,.rea-submit { width:100%; }
  .rea-back-catalog,.rea-back-step { text-align:center; }
}

@media (max-width: 390px) {
  .rea-grid { grid-template-columns:1fr; }
  .rea-hero__mosaic { min-height:190px; }
}

@media (max-width: 860px) {
  .rea-event-grid { grid-template-columns:1fr 1fr; }
}


.rea-catalog h1,.rea-catalog h2,.rea-catalog h3,.rea-quote-page-wrap h1,.rea-quote-page-wrap h2,.rea-quote-page-wrap h3 { color: var(--rea-ink) !important; }
