/* V1.4 — contrast, section separation and consistent light/dark surfaces.
   Loaded after site.css and refinements.css. No content or data migration. */
:root {
  --burgundy: #4b1024;
  --burgundy-deep: #380c1c;
  --warm-surface: #fff8eb;
  --gold-ink: #80591d;
  --muted: #4f5e70;
  --line: #d9d0bf;
  --card-shadow: 0 8px 28px rgb(7 24 47 / 7%);
}

/* Focus remains visible on both ivory and dark sections. */
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 3px solid var(--navy);
  outline-offset: 4px;
  box-shadow: 0 0 0 4px #fff;
}
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--navy);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}
.button { transition: background .18s, color .18s, border-color .18s, transform .18s; }
.button-red { color: #fff; background: var(--red); border-color: var(--red); }
.button-red:hover { background: var(--red-dark); border-color: var(--red-dark); }
.button-outline { background: #fff; border-color: #7b8490; color: var(--navy); }
.button-outline:hover { border-color: var(--navy); background: #f1ecdf; }
.button-outline-light { border-color: #a7b7c9; }
.text-link { text-underline-offset: 5px; }
.text-link:hover { text-decoration: underline; }
.title-star { color: var(--gold-ink); }

/* Header and photographic hero retain the validated art direction. */
.main-nav { font-size: 14px; gap: 22px; }
.main-nav > a, .nav-dropdown > summary { min-height: 60px; }
.dropdown-panel { border-color: #bcb2a1; }
.dropdown-panel a:hover, .dropdown-panel a:focus-visible { background: #efe5d3; }
.header-phone:hover { background: #f8d98d; }
.hero-visual figcaption { color: #fff; background: #350b1e; opacity: 1; }

/* Dates: dark badges against genuinely light cards, not beige on beige. */
.home-tour { background: #fff; border-bottom: 1px solid var(--line); }
.home-tour .home-date {
  background: #fffaf0;
  border: 1px solid #d2c4a9;
  box-shadow: 0 4px 14px rgb(7 24 47 / 4%);
}
.home-tour .home-date:hover { background: #fff; border-color: #a58a51; }
.home-tour .date-badge, .date-badge {
  color: #fff;
  background: var(--navy);
  border: 1px solid var(--navy);
}
.home-tour .date-badge span, .date-badge > span { color: var(--gold); }
.home-tour .date-badge small, .date-badge > small { color: #e3eaf3; }
.home-tour .title-star { color: var(--gold-ink); }
.home-tour .tour-empty { background: #faf5eb; }
.home-date-range { font-weight: 600; }

/* Cards: white interiors, clear bounds and quiet elevation. */
.services-section { background: #f6f0e4; }
.service-card, .rental-category, .offering-card, .inflatable-card {
  background: #fff;
  border-color: #d6cbb8;
  box-shadow: var(--card-shadow);
}
.service-card-copy, .inflatable-card-body { background: #fff; }
.service-number { color: var(--gold-ink); }
.service-link { border-top-color: #d9d0bf; }
.service-link .icon { border-color: #c6949e; }
.image-tag { background: var(--navy); border-color: #91a1b5; color: #fff; }
.home-catalogue { background: #ebe2d1; border-color: #d3c6ad; }
.featured-inflatable { background: #fff; border-color: #cbbda3; box-shadow: 0 5px 18px rgb(7 24 47 / 6%); }
.featured-inflatable > div:last-child { background: #fff; }
.featured-photo { border-bottom-color: #e0d5c3; }
.featured-inflatable:hover { border-color: #a58a51; box-shadow: 0 10px 24px rgb(7 24 47 / 11%); }
.home-formula { color: #3e4d60; }

/* The story and its signature are two clearly different surfaces. */
.home-story { background: var(--burgundy); color: #fff8ed; }
.home-story .story-grid { padding-block: 76px; gap: 86px; }
.home-story .story-copy h2 { color: #fff8eb; font-size: clamp(36px, 3.6vw, 48px); }
.home-story .story-copy .eyebrow, .home-story .story-copy .title-star { color: var(--gold); }
.home-story .story-copy p { color: #f5e9e7; font-size: 16px; line-height: 1.85; }
.home-story .story-copy .story-lead { color: #fff; font-size: 18px; line-height: 1.8; }
.story-signature {
  position: relative;
  isolation: isolate;
  background: var(--warm-surface);
  border: 1px solid #e8c982;
  border-radius: 100px 100px 18px 18px;
  padding: 34px 35px 30px;
  color: var(--burgundy);
  box-shadow: 0 20px 40px rgb(21 3 10 / 20%);
}
.story-signature::before {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 11px;
  border: 1px solid #cbb38c;
  border-radius: 90px 90px 10px 10px;
  z-index: -1;
}
.signature-spark { color: var(--gold-ink); margin: 0 0 12px; }
.signature-spark .icon { width: 31px; height: 31px; stroke-width: 1.3; }
.signature-year { color: var(--burgundy); font-size: 100px; letter-spacing: -.055em; }
.story-signature > p { color: var(--navy); font-size: 25px; }
.signature-names { color: var(--burgundy); font-size: 16px; font-weight: 650; margin-top: 25px; }
.signature-rule { background: #aa854b; margin-top: 22px; width: 48px; }
.story-signature .signature-small { color: #586070; font-size: 14px; }
.story-signature.has-photo { border-radius: 18px; padding: 22px; }
.story-signature.has-photo::before { border-radius: 10px; }
.story-signature figure { margin: 0; }
.story-signature figcaption { color: #485769; font-size: 12px; }

/* A light invitation separates the dark story from the navy footer. */
.project-cta {
  background: var(--warm-surface);
  color: var(--navy);
  border-top: 1px solid #ddc79f;
  border-bottom: 1px solid #ddc79f;
}
.cta-inner { padding-block: 54px; gap: 40px; }
.project-cta .eyebrow { color: #7c1733; font-size: 11px; letter-spacing: .11em; }
.project-cta h2 { color: var(--navy); font-size: clamp(36px, 3.7vw, 48px); margin-top: 10px; }
.project-cta p { color: #455269; font-size: 17px; margin-top: 13px; }
.project-cta .button { min-height: 54px; min-width: 228px; font-size: 15px; }
.project-cta .cta-spark { display: none; }
/* Support a cached V1.3 partial during staged deployment. */
.project-cta .button-gold { background: var(--red); border-color: var(--red); color: #fff; }
.project-cta .button-gold:hover { background: var(--red-dark); border-color: var(--red-dark); }

/* Footer: stronger text and controlled column/line spacing. */
.site-footer { background: var(--navy); color: #e0e7ef; padding-top: 54px; }
.footer-grid { gap: 44px; padding-bottom: 40px; }
.footer-grid h2 { color: #fff8eb; font-size: 16px; margin-bottom: 18px; }
.footer-brand p { color: #c0ccdb; font-size: 14px; }
.footer-grid p, .footer-grid nav a { font-size: 14px; }
.footer-grid nav a { padding-block: 7px; line-height: 1.65; }
.footer-grid .contact-line { color: #fff; font-size: 16px; margin-top: 16px; }
.footer-grid .contact-line .icon { color: var(--gold); }
.footer-grid nav a:hover, .footer-bottom a:hover, .contact-line:hover { color: #ffe2a0; text-decoration: underline; text-underline-offset: 5px; }
.footer-quote-link { color: var(--gold); font-size: 14px; min-height: 44px; }
.social-links a { width: 42px; height: 42px; border-color: #9dacc0; color: #fff; }
.social-links a:hover { color: var(--navy); background: var(--gold); border-color: var(--gold); }
.footer-bottom { border-top-color: #546071; color: #c0ccdb; font-size: 12px; }
.footer-bottom a { padding-block: 8px; }
.footer-flourish > .icon:first-child { opacity: 1; stroke-width: 1; }
.footer-flourish span { color: #f1cd7d; }

/* Catalogue and technical information: no pale gold body text on cream. */
.rental-benefits { background: #fff; border-block: 1px solid #d6c8af; }
.rental-benefits strong { color: var(--navy); }
.rental-benefits small { color: #4f5e70; }
.rental-benefits .icon { color: #97213d; }
.inflatable-hero-photo { border-color: #92a0ae; }
.capacity-pill { background: #f6ead5; border-color: #d0ad6a; color: #593d12; }
.inflatable-card-actions .button-outline { border-color: #7b8490; }
.card-dimensions { border-color: #d9d0bf; }
.video-badge { background: var(--navy); color: #fff; opacity: 1; }
.inflatable-service-section { background: #eee6d7; border-block: 1px solid #d6c7ae; }
.equipment-card { background: #fff; border: 1px solid #cdbda1; box-shadow: var(--card-shadow); }
.equipment-card h2, .equipment-card h3 { color: var(--navy); }
.equipment-card > p { color: var(--muted); }
.included-list li { color: var(--ink); }
.included-list .icon { color: #8c1733; }
.comparison-section { background: #fff; }
.comparison-scroll { border-color: #c4b99f; }
.comparison-table thead { background: var(--navy); color: #fff; }
.comparison-table thead th { color: #fff; font-size: 14px; }
.comparison-table tbody tr:nth-child(even) { background: #faf5eb; }
.comparison-table tbody th { color: var(--navy); }
.comparison-table caption { color: #4f5e70; background: #fff; }
.inflatable-specs { border-color: #c7b896; }
.inflatable-specs dt { color: #4f5e70; }
.inflatable-specs dd { color: var(--navy); }
.detail-video-link { color: var(--red); }
.photo-zoom { background: var(--navy); color: #fff; opacity: 1; }
.detail-sidebar { background: #fff; border-color: #c8b99e; box-shadow: var(--card-shadow); }
.detail-sidebar .text-link { color: #96132c; }

/* Secondary pages, tour and form: avoid almost invisible borders/labels. */
.heading-inner p, .breadcrumb { color: #d6e0eb; }
.page-heading .heading-emblem .icon { opacity: .9; }
.category-photo figcaption { color: #fff; font-size: 12px; }
.category-links a { border-color: #c5b79c; background: #fff; }
.category-links a:hover { border-color: #9e7e41; background: #fff8eb; }
.note-box { background: #fff8eb; border-color: #bca47a; }
.tour-tabs { border-bottom-color: #c6bca9; }
.tour-tabs a { color: #485569; }
.tour-tabs [aria-current] { color: var(--red); }
.tour-card, .session-detail { background: #fff; border-color: #cdbfa7; box-shadow: 0 5px 20px rgb(7 24 47 / 5%); }
.session-pill { background: #f3ece0; color: var(--navy); border: 1px solid #d1c2a8; }
.session-pill b { font-size: 12px; }
.form-card { background: #fff; border-color: #c9bda7; box-shadow: var(--card-shadow); }
.field label, .project-fields legend { color: var(--navy); }
.field input, .field select, .field textarea, .tour-filters input, .tour-filters select { border-color: #7a8491; background-color: #fff; color: var(--navy); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: #a71230; background: #fff5f6; }
input::placeholder, textarea::placeholder { color: #596575; opacity: 1; }
.field .optional, .form-required-help, .privacy-notice { color: #516071; }
.project-fields { background: #f9f3e7; border-color: #bdb097; }
.contact-direct { background: #f8f0df; border-color: #b69e70; color: #553c12; }
.contact-direct a { color: #6c142d; text-decoration: underline; text-underline-offset: 3px; }
.selected-model { background: #edf4ee; border-color: #9aae9d; color: #20543e; }
.contact-aside-bottom { color: #7c1733; }
.contact-aside-bottom .icon { opacity: 1; color: var(--gold-ink); }
.privacy-notice a { color: #8b1330; text-decoration: underline; }
.mobile-quote:not([hidden]) { border-top-color: #a99a7e; background: #fff; }
.lightbox-close { background: #28405b; border: 1px solid #9cb0c7; }
.lightbox-close:hover { background: #4a617a; }

@media(max-width:1100px) {
  .main-nav { gap: 15px; font-size: 13px; }
  .home-story .story-grid { gap: 48px; }
  .story-signature { padding: 32px 26px; }
  .signature-year { font-size: 86px; }
  .footer-grid { gap: 28px; }
}
@media(max-width:900px) and (min-width:761px) {
  .home-story .story-grid { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 32px; }
  .story-signature { padding: 30px 18px; border-radius: 75px 75px 16px 16px; }
  .story-signature::before { border-radius: 65px 65px 10px 10px; }
  .story-signature > p { font-size: 22px; }
  .signature-year { font-size: 74px; }
  .signature-names { font-size: 14px; }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
}
@media(max-width:760px) {
  .main-nav { font-size: 16px; }
  .main-nav > a, .nav-dropdown > summary { min-height: 46px; }
  .home-story .story-grid { grid-template-columns: 1fr; padding-block: 46px; gap: 32px; }
  .home-story .story-copy h2 { font-size: 37px; }
  .home-story .story-copy p { font-size: 16px; }
  .home-story .story-copy .story-lead { font-size: 17px; }
  .story-signature { max-width: 410px; width: 100%; margin-inline: auto; padding: 28px 24px; border-radius: 50px 50px 16px 16px; }
  .story-signature::before { inset: 9px; border-radius: 41px 41px 9px 9px; }
  .signature-year { font-size: 78px; }
  .story-signature > p { font-size: 22px; margin-top: 12px; }
  .signature-names { margin-top: 17px; font-size: 15px; }
  .story-signature .signature-small { display: block; margin-top: 12px; font-size: 13px; }
  .story-signature.has-photo { padding: 18px; }
  .cta-inner { align-items: flex-start; padding-block: 38px; gap: 25px; }
  .project-cta .eyebrow { font-size: 10px; letter-spacing: .08em; }
  .project-cta h2 { font-size: 36px; }
  .project-cta p { font-size: 16px; }
  .project-cta .button { width: 100%; max-width: 380px; min-height: 52px; }
  .site-footer { padding-top: 38px; }
  .footer-grid { gap: 30px 22px; padding-bottom: 30px; }
  .footer-grid h2 { font-size: 16px; }
  .footer-brand p { font-size: 13px; }
  .footer-grid nav a { font-size: 14px; padding-block: 8px; }
  .footer-bottom { gap: 14px; }
  .footer-bottom > div { flex-wrap: wrap; }
  .comparison-table thead { background: transparent; }
  .comparison-table tbody tr { background: #fff; border-color: #cbbba0; }
  .comparison-table tbody th { background: var(--navy); color: #fff; }
  .comparison-table tbody th a:hover { color: var(--gold); }
  .comparison-table td[data-label]::before { color: #4f5e70; }
  .equipment-card { padding: 25px 21px; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
  .home-story, .project-cta, .site-footer { background: #fff; color: #000; }
  .home-story .story-copy *, .project-cta *, .site-footer * { color: #000 !important; }
  .story-signature, .service-card, .form-card { box-shadow: none; }
}
.offering-specs-public{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:22px 0 30px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.offering-specs-public>div{padding:14px 16px;background:var(--paper);border-bottom:1px solid var(--line)}.offering-specs-public>div:nth-child(odd){border-right:1px solid var(--line)}.offering-specs-public dt{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.offering-specs-public dd{margin:5px 0 0;font-size:14px;font-weight:650}.carousel-models{background:var(--cream)}
@media(max-width:600px){.offering-specs-public{grid-template-columns:1fr}.offering-specs-public>div:nth-child(odd){border-right:0}}
