/*
Theme Name:   Centralia Carillon Child
Theme URI:    https://carillon.tecsinc.com/
Description:  Divi child theme for the Centralia Carillon website.
Author:       TEC Services Consulting, Inc.
Author URI:   https://www.tecsinc.com/
Template:     Divi
Version:      1.0.0
*/

/* Add site-wide custom CSS below this line. */

/* =================================================================
   History (Design 4) — Group Carousel slideshows
   REPLACES "History slideshow — Option B (mockup match)" and
   "History slideshow — tablet + phone (≤980px)".
   Bars + arrows sit directly under the photo at EVERY width,
   so they never move between slides.
   Slide photo heights live HERE (--cc-slide-h). Divi's Height
   field on the slide images no longer applies.
   Classes: Section cc-history · Group Carousel cc-slides ·
            each slide Image cc-slide-img
   ================================================================= */
.cc-history .cc-slides {
  position: relative;
  --cc-slide-h: 260px;   /* desktop slide photo height */
  --cc-ctrl-h: 56px;     /* controls row: 40px arrows + 8px above/below */
}

/* Slide photo: full width, fixed height.
   Each slide keeps its own Object Fit (Cover/Contain) and position. */
.cc-history .cc-slides .cc-slide-img,
.cc-history .cc-slides .cc-slide-img .et_pb_image_wrap {
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
}
.cc-history .cc-slides .cc-slide-img img {
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: var(--cc-slide-h) !important;
  background: #e8e2d2;
}

/* Controls row: full width, directly under the photo */
.cc-history .cc-slides .et_pb_group_carousel_dots {
  position: absolute;
  top: var(--cc-slide-h);
  left: 0;
  right: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 4px;
  box-sizing: border-box;
  width: auto;
  height: var(--cc-ctrl-h);
  min-height: 0;
  margin: 0;
  padding: 0 114px 0 20px;   /* right: room for the two arrows */
  border-bottom: 1px solid #e0dac9;
}

/* Bars: 3px line inside a 24px-tall tap area */
.cc-history .cc-slides .et_pb_group_carousel_dot,
.cc-history .cc-slides .et_pb_group_carousel_dot.et_pb_group_carousel_dot_active {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  height: 24px;
  padding: 10.5px 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background-clip: content-box;
  cursor: pointer;
}
.cc-history .cc-slides .et_pb_group_carousel_dot {
  background-color: #8a8478;   /* inactive — meets 3:1 */
}
.cc-history .cc-slides .et_pb_group_carousel_dot.et_pb_group_carousel_dot_active {
  background-color: #9c1b2e;
}

/* Square 40px arrows, level with the bars */
.cc-history .cc-slides .et_pb_group_carousel_arrow {
  position: absolute;
  top: calc(var(--cc-slide-h) + (var(--cc-ctrl-h) - 40px) / 2);
  bottom: auto;
  left: auto;
  transform: none;
  z-index: 3;
  width: 40px;
  height: 40px;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid #d9d3c6;
  border-radius: 4px;
  background: #ffffff;
  opacity: 1;
}
.cc-history .cc-slides .et_pb_group_carousel_arrow .et-pb-icon {
  color: #6b6557;
  font-size: 20px;
  line-height: 1;
}
.cc-history .cc-slides .et_pb_group_carousel_arrow_prev { right: 62px; }
.cc-history .cc-slides .et_pb_group_carousel_arrow_next { right: 14px; }

/* Slide text starts below the controls row */
.cc-history .cc-slides .cc-slide-img + * {
  margin-top: var(--cc-ctrl-h) !important;
}

/* Visible keyboard focus (WCAG 2.4.7) */
.cc-history .cc-slides .et_pb_group_carousel_arrow:focus-visible,
.cc-history .cc-slides .et_pb_group_carousel_dot:focus-visible,
.cc-history .cc-slides .cc-slide-img a:focus-visible {
  outline: 2px solid #9c1b2e;
  outline-offset: 2px;
}

/* Tablet and phone slide photo heights */
@media (max-width: 980px) {
  .cc-history .cc-slides { --cc-slide-h: 380px; }
}
@media (max-width: 767px) {
  .cc-history .cc-slides { --cc-slide-h: 240px; }
  .cc-history .cc-slides .et_pb_group_carousel_dots { padding-left: 14px; }
}

/* =================================================================
   History (Design 4) — enlarge badge on photos that open a lightbox
   Section photos: class cc-zoom · slide photos: cc-slide-img
   ================================================================= */
.cc-history .cc-zoom .et_pb_image_wrap,
.cc-history .cc-slide-img .et_pb_image_wrap {
  position: relative;
}
.cc-history .cc-zoom .et_pb_image_wrap::after,
.cc-history .cc-slide-img .et_pb_image_wrap::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 36px;
  height: 36px;
  border-radius: 4px;
  background: rgba(35, 48, 58, .78) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.8'%3E%3Cpath d='M10 1.5h4.5V6M14.5 1.5L9 7M6 14.5H1.5V10M1.5 14.5L7 9'/%3E%3C/svg%3E") no-repeat center / 16px 16px;
  pointer-events: none;   /* clicks go through to the photo */
}
.cc-history .cc-zoom a:focus-visible {
  outline: 2px solid #9c1b2e;
  outline-offset: 3px;
}

/* =================================================================
   History (Design 4) — section paragraphs
   Text modules: class cc-para
   ================================================================= */
.cc-history .cc-para p {
  -webkit-hyphens: auto;
  hyphens: auto;          /* fewer wide gaps in justified text */
}
.cc-history .cc-para a {
  text-decoration: none;
}
.cc-history .cc-para a:hover,
.cc-history .cc-para a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cc-history .cc-para a:focus-visible {
  outline: 2px solid #9c1b2e;
  outline-offset: 2px;
}

/* =================================================================
   Foundation page — "Other major projects" carousel
   Scope: Section class cc-fp-projects  ›  Group Carousel class cc-projects

   1200px and up : text and photo side by side, titled strip under the text.
   1199px and down: photo on top, strip + arrows directly under the photo,
                    text below. The arrows sit in the same place on every
                    slide, so visitors can flip through without scrolling.

   This CSS controls the carousel's layout and photo sizes at every width,
   so the slide Image heights and slide-row tablet/phone settings in Divi
   no longer affect it.
   ================================================================= */

.cc-fp-projects .cc-projects { position: relative; }

/* ---------- Photo always fills its column ---------- */
.cc-fp-projects .cc-proj-photo {
  position: relative;
  overflow: hidden;
  background: #e8e2d2;          /* the band behind portrait photos */
}
.cc-fp-projects .cc-proj-photo .et_pb_image {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
.cc-fp-projects .cc-proj-photo .et_pb_image_wrap {
  display: block;
  width: 100%;
  height: 100%;
}
.cc-fp-projects .cc-proj-photo img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover;
  object-position: center;
}

/* Focal points for the landscape photos */
.cc-fp-projects .cc-proj-3 .cc-proj-photo img { object-position: center 55%; }  /* locomotive */
.cc-fp-projects .cc-proj-4 .cc-proj-photo img { object-position: center 60%; }  /* arts center + sign */

/* Caption bar: always on the photo's bottom edge */
.cc-fp-projects .cc-proj-caption {
  position: absolute !important;
  top: auto !important;
  right: 0;
  bottom: 0 !important;
  left: 0 !important;
  width: auto !important;
  margin: 0 !important;
  z-index: 1;
}

/* Slide 01 "Photograph to come" box: fills the photo area, 20px inset */
.cc-fp-projects .cc-proj-placeholder {
  position: absolute !important;
  inset: 20px;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
}

/* ---------- Strip, desktop: bottom of the text column ---------- */
.cc-fp-projects .cc-projects .et_pb_group_carousel_dots {
  position: absolute;
  left: 48px;
  bottom: 36px;
  width: calc(50% - 192px);   /* stops 16px short of the arrows */
  height: 112px;
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid #e2dccc;
  z-index: 3;
}
.cc-fp-projects .cc-projects .et_pb_group_carousel_dot {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  height: auto;
  margin: -1px 0 0;
  padding: 12px 14px 0 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
  border: 0;
  border-top: 2px solid #e2dccc;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.cc-fp-projects .cc-projects .et_pb_group_carousel_dot.et_pb_group_carousel_dot_active {
  border-top-color: #9c1b2e;
  background: transparent;
}
.cc-fp-projects .cc-strip-num {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 15px;
  line-height: 1.2;
  color: #6b6557;
}
.cc-fp-projects .cc-strip-title {
  font-family: 'Public Sans', -apple-system, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.35;
  color: #6b6557;
  /* never more than 2 lines; the full title stays in the button's label */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.cc-fp-projects .et_pb_group_carousel_dot_active .cc-strip-num { color: #9c1b2e; }
.cc-fp-projects .et_pb_group_carousel_dot_active .cc-strip-title {
  font-weight: 700;
  color: #23303a;
}
.cc-fp-projects .et_pb_group_carousel_dot:hover .cc-strip-title { color: #23303a; }

/* ---------- Arrows, desktop: round, beside the strip ---------- */
.cc-fp-projects .cc-projects .et_pb_group_carousel_arrow {
  position: absolute;
  top: auto;
  bottom: 98px;
  right: auto;
  transform: none;
  width: 36px;
  height: 36px;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid #d9d3c6;
  border-radius: 50%;
  background: #ffffff;
  opacity: 1;
  z-index: 4;
}
.cc-fp-projects .cc-projects .et_pb_group_carousel_arrow .et-pb-icon {
  color: #6b6557;
  font-size: 20px;
  line-height: 1;
}
.cc-fp-projects .cc-projects .et_pb_group_carousel_arrow_prev { left: calc(50% - 128px); }
.cc-fp-projects .cc-projects .et_pb_group_carousel_arrow_next { left: calc(50% - 84px); }

/* Keyboard focus (WCAG 2.4.7) */
.cc-fp-projects .et_pb_group_carousel_dot:focus-visible,
.cc-fp-projects .et_pb_group_carousel_arrow:focus-visible {
  outline: 2px solid #9c1b2e;
  outline-offset: 3px;
}

/* Narrow desktops (1200–1399px): the strip is tight, so a bit smaller */
@media (min-width: 1200px) and (max-width: 1399px) {
  .cc-fp-projects .cc-projects .et_pb_group_carousel_dot { padding-right: 8px; }
  .cc-fp-projects .cc-strip-title { font-size: 12px; letter-spacing: -0.005em; }
}

/* =================================================================
   1199px and below: stacked
   --cc-photo-h  photo height: 16:9 of the carousel width, max 440px
   --cc-strip-h  strip height: number + up to 2 lines of title
   ================================================================= */
@media (max-width: 1199px) {
  .cc-fp-projects .cc-projects {
    container-type: inline-size;          /* lets "cqw" mean carousel width */
    --cc-photo-h: min(56.25cqw, 440px);
    --cc-strip-h: 92px;
  }

  /* Photo first, text second, both full width */
  .cc-fp-projects .cc-proj-slide > .et_pb_row {
    display: flex !important;
    flex-direction: column-reverse !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }
  .cc-fp-projects .cc-proj-slide > .et_pb_row > .et_pb_column {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  .cc-fp-projects .cc-proj-photo {
    height: var(--cc-photo-h) !important;
    min-height: 0 !important;
  }

  /* Portrait photos: show the whole photo on a cream band */
  .cc-fp-projects .cc-photo-contain .cc-proj-photo img { object-fit: contain; }

  /* Text starts below the strip */
  .cc-fp-projects .cc-proj-text {
    min-height: 0 !important;
    padding: calc(var(--cc-strip-h) + 28px) 32px 32px !important;
  }

  /* Strip: pinned to the photo's bottom edge */
  .cc-fp-projects .cc-projects .et_pb_group_carousel_dots {
    top: var(--cc-photo-h);
    right: 0;
    bottom: auto;
    left: 0;
    width: auto;
    height: var(--cc-strip-h);
    padding: 0 124px 0 20px;              /* right side = room for arrows */
    border-top: 0;
    border-bottom: 1px solid #e2dccc;
    background: #faf8f2;
  }
  .cc-fp-projects .cc-projects .et_pb_group_carousel_dot {
    margin: 0;
    padding: 12px 12px 0 0;
  }

  /* Arrows: 44px touch targets, centred in the strip */
  .cc-fp-projects .cc-projects .et_pb_group_carousel_arrow {
    top: calc(var(--cc-photo-h) + (var(--cc-strip-h) - 44px) / 2);
    bottom: auto;
    width: 44px;
    height: 44px;
  }
  .cc-fp-projects .cc-projects .et_pb_group_carousel_arrow_prev { left: auto; right: 70px; }
  .cc-fp-projects .cc-projects .et_pb_group_carousel_arrow_next { left: auto; right: 18px; }
}

/* =================================================================
   767px and below: 4:3 photo, numbers-only strip, no caption bar
   ================================================================= */
@media (max-width: 767px) {
  .cc-fp-projects .cc-projects {
    --cc-photo-h: min(75cqw, 400px);
    --cc-strip-h: 64px;
  }
  .cc-fp-projects .cc-proj-text {
    padding: calc(var(--cc-strip-h) + 24px) 24px 28px !important;
  }
  .cc-fp-projects .cc-proj-caption { display: none !important; }

  .cc-fp-projects .cc-projects .et_pb_group_carousel_dots {
    padding: 0 120px 0 16px;
  }
  .cc-fp-projects .cc-projects .et_pb_group_carousel_dot {
    padding: 0;
    justify-content: center;
    align-items: center;
  }
  .cc-fp-projects .cc-strip-num { font-size: 16px; }
  /* Titles hidden visually; screen readers still hear them */
  .cc-fp-projects .cc-strip-title {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}

/* =================================================================
   OPTIONAL — hero link card: arrow slides right when the card is hovered
   ================================================================= */
.cc-hero-card .cc-hero-arrow {
  transition: transform .28s cubic-bezier(.22, 1, .36, 1);
}
.cc-hero-card:hover .cc-hero-arrow,
.cc-hero-card:focus-within .cc-hero-arrow {
  transform: translateX(8px);
}
@media (prefers-reduced-motion: reduce) {
  .cc-hero-card .cc-hero-arrow { transition: none; }
}

/* =================================================================
   Events page — jump links bar
   Text module class: cc-jump
   ================================================================= */
.cc-jump nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 36px;
}
.cc-jump a {
  display: inline-block;
  padding: 18px 0;
  border-bottom: 2.5px solid transparent;
  font-family: 'Public Sans', -apple-system, sans-serif;
  font-size: 15.5px;
  font-weight: 700;
  color: #23303a;
  text-decoration: none;
}
.cc-jump a:hover,
.cc-jump a:focus-visible {
  border-bottom-color: #9c1b2e;
  color: #23303a;
}
.cc-jump a:focus-visible {
  outline: 2px solid #9c1b2e;
  outline-offset: 2px;
}

/* Anchor targets clear the sticky header (88px + breathing room) */
#concerts,
#community-events,
#carillon-tours,
#tour-request {
  scroll-margin-top: 96px;
}
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* =================================================================
   Events page — tour gallery (Divi Gallery module, Slider layout)
   Gallery class: cc-tour-gallery
   Fixed photo height so arrows don't jump; arrows always visible.
   ================================================================= */
.cc-tour-gallery .et_pb_gallery_image img {
  display: block;
  width: 100%;
  height: 300px;                 /* change to taste */
  object-fit: cover;
}
.cc-tour-gallery .et-pb-arrow-prev,
.cc-tour-gallery .et-pb-arrow-next {
  opacity: 1 !important;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  border-radius: 50%;
  border: 1.5px solid #d9d3c6;
  background: #ffffff;
  color: #6b6557;
  font-size: 32px;
  line-height: 42px;
  text-align: center;
  text-shadow: none;
}
.cc-tour-gallery .et-pb-arrow-prev { left: 12px !important; }
.cc-tour-gallery .et-pb-arrow-next { right: 12px !important; }
.cc-tour-gallery .et-pb-arrow-prev:focus-visible,
.cc-tour-gallery .et-pb-arrow-next:focus-visible {
  outline: 2px solid #9c1b2e;
  outline-offset: 2px;
}

/* =================================================================
   Events page — tour request form: visible labels above fields
   Contact Form class: cc-tour-form
   ◇ Delete this block if Divi 5 already shows labels.
   ================================================================= */
.cc-tour-form .et_pb_contact_form_label {
  display: block !important;
  margin: 0 0 7px;
  font-family: 'Public Sans', -apple-system, sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  color: #3a3a36;
}
/* Labels now name each field, so hide the duplicate placeholder text */
.cc-tour-form input::placeholder,
.cc-tour-form textarea::placeholder {
  color: transparent;
}

/* =========================================================
   Forminator — Contact Page Form (Centralia Carillon)
   Paste at the end of the child theme's style.css.
   Requires: Forminator form → Appearance → Design Style = None
   ========================================================= */

.forminator-ui.forminator-custom-form {
	--cc-crimson: #9c1b2e;
	--cc-navy: #23303a;
	--cc-border: #d8d0c2;
	--cc-body: #55514a;
	--cc-cream: #f6f2ea;
	font-family: 'Public Sans', sans-serif;
	color: var(--cc-navy);
}

/* Spacing between fields */
.forminator-ui.forminator-custom-form .forminator-row {
	margin-bottom: 22px;
}

/* Labels */
.forminator-ui.forminator-custom-form .forminator-label {
	display: block;
	margin-bottom: 6px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--cc-navy);
}
.forminator-ui.forminator-custom-form .forminator-required {
	color: var(--cc-crimson);
}

/* Text inputs, textarea, and the dropdown box */
.forminator-ui.forminator-custom-form .forminator-input,
.forminator-ui.forminator-custom-form .forminator-textarea,
.forminator-ui.forminator-custom-form select,
.forminator-ui.forminator-custom-form .select2-container .select2-selection--single {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--cc-border);
	border-radius: 4px;
	font-family: inherit;
	font-size: 16px; /* 16px stops iPhones from zooming in on tap */
	line-height: 1.5;
	color: var(--cc-navy);
	box-shadow: none;
}
.forminator-ui.forminator-custom-form .forminator-textarea {
	min-height: 160px;
	resize: vertical;
}
.forminator-ui.forminator-custom-form ::placeholder {
	color: #6b665e;
	opacity: 1;
}

/* Dropdown (select2) — inner parts */
.forminator-ui.forminator-custom-form .select2-container {
	width: 100% !important;
}
.forminator-ui.forminator-custom-form .select2-container .select2-selection--single {
	height: auto;
	min-height: 50px;
	display: flex;
	align-items: center;
}
.forminator-ui.forminator-custom-form .select2-selection__rendered {
	padding: 0 !important;
	color: var(--cc-navy) !important;
	line-height: 1.5 !important;
}
.forminator-ui.forminator-custom-form .select2-selection__arrow {
	height: 100% !important;
	right: 12px !important;
}

/* Dropdown list (opens attached to the page body, so not scoped to the form) */
.forminator-select-dropdown .select2-results__option {
	padding: 10px 14px;
	font-family: 'Public Sans', sans-serif;
	font-size: 16px;
	color: #23303a;
}
.forminator-select-dropdown .select2-results__option--highlighted,
.forminator-select-dropdown .select2-results__option[aria-selected="true"] {
	background: #23303a !important;
	color: #fff !important;
}

/* Visible focus ring (WCAG 2.4.7) */
.forminator-ui.forminator-custom-form .forminator-input:focus,
.forminator-ui.forminator-custom-form .forminator-textarea:focus,
.forminator-ui.forminator-custom-form select:focus,
.forminator-ui.forminator-custom-form .select2-container--focus .select2-selection--single,
.forminator-ui.forminator-custom-form .select2-container--open .select2-selection--single {
	outline: none;
	border-color: var(--cc-crimson);
	box-shadow: 0 0 0 3px rgba(156, 27, 46, 0.2);
}

/* Help text under fields */
.forminator-ui.forminator-custom-form .forminator-description {
	display: block;
	margin-top: 6px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--cc-body);
}

/* File upload button */
.forminator-ui.forminator-custom-form .forminator-button-upload {
	display: inline-block;
	padding: 10px 18px;
	background: #fff;
	border: 1px solid var(--cc-navy);
	border-radius: 4px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--cc-navy);
	cursor: pointer;
}
.forminator-ui.forminator-custom-form .forminator-button-upload:hover,
.forminator-ui.forminator-custom-form .forminator-button-upload:focus-visible {
	background: var(--cc-navy);
	color: #fff;
}
.forminator-ui.forminator-custom-form .forminator-file-upload > span {
	margin-left: 10px;
	font-size: 14px;
	color: var(--cc-body);
}

/* Submit button */
.forminator-ui.forminator-custom-form .forminator-button-submit {
	padding: 14px 26px;
	background: var(--cc-crimson);
	border: 0;
	border-radius: 4px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	cursor: pointer;
	transition: background 0.15s ease;
}
.forminator-ui.forminator-custom-form .forminator-button-submit:hover {
	background: var(--cc-navy);
}
.forminator-ui.forminator-custom-form .forminator-button-submit:focus-visible {
	outline: 3px solid var(--cc-navy);
	outline-offset: 2px;
}

/* Field errors */
.forminator-ui.forminator-custom-form .forminator-error-message {
	display: block;
	margin-top: 6px;
	font-size: 14px;
	color: var(--cc-crimson);
}
.forminator-ui.forminator-custom-form .forminator-has_error .forminator-input,
.forminator-ui.forminator-custom-form .forminator-has_error .forminator-textarea,
.forminator-ui.forminator-custom-form .forminator-has_error .select2-selection--single {
	border-color: var(--cc-crimson);
}

/* Success / error banner after submit */
.forminator-ui.forminator-custom-form .forminator-response-message {
	margin-bottom: 20px;
	padding: 16px 20px;
	background: var(--cc-cream);
	border-left: 4px solid var(--cc-navy);
	border-radius: 4px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--cc-navy);
}
.forminator-ui.forminator-custom-form .forminator-response-message.forminator-error {
	border-left-color: var(--cc-crimson);
}

/* Hide the message box until there's a message to show */
.forminator-ui.forminator-custom-form .forminator-response-message[aria-hidden="true"],
.forminator-ui.forminator-custom-form .forminator-response-message:empty {
	display: none;
}

/* Native file input button */
.forminator-ui.forminator-custom-form input[type="file"] {
	font-family: inherit;
	font-size: 14px;
	color: var(--cc-body);
}
.forminator-ui.forminator-custom-form input[type="file"]::file-selector-button {
	margin-right: 12px;
	padding: 10px 18px;
	background: #fff;
	border: 1px solid var(--cc-navy);
	border-radius: 4px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--cc-navy);
	cursor: pointer;
}
.forminator-ui.forminator-custom-form input[type="file"]::file-selector-button:hover {
	background: var(--cc-navy);
	color: #fff;
}
.forminator-ui.forminator-custom-form input[type="file"]:focus-visible {
	outline: 3px solid var(--cc-navy);
	outline-offset: 2px;
}

/* "Remove file" link */
.forminator-ui.forminator-custom-form .cc-remove-file {
	display: inline-block;
	margin-top: 8px;
	padding: 0;
	background: none;
	border: 0;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--cc-crimson);
	text-decoration: underline;
	cursor: pointer;
}
.forminator-ui.forminator-custom-form .cc-remove-file:hover {
	color: var(--cc-navy);
}
.forminator-ui.forminator-custom-form .cc-remove-file:focus-visible {
	outline: 3px solid var(--cc-navy);
	outline-offset: 2px;
}
.forminator-ui.forminator-custom-form .cc-remove-file[hidden] {
	display: none;
}

/* Larger form text (client request, Nov 2026) */
.forminator-ui.forminator-custom-form .forminator-label {
	font-size: 17px;
}
.forminator-ui.forminator-custom-form .forminator-input,
.forminator-ui.forminator-custom-form .forminator-textarea,
.forminator-ui.forminator-custom-form select {
	font-size: 18px;
}
.forminator-ui.forminator-custom-form .forminator-description {
	font-size: 16px;
}
.forminator-ui.forminator-custom-form .forminator-error-message,
.forminator-ui.forminator-custom-form .cc-remove-file,
.forminator-ui.forminator-custom-form input[type="file"] {
	font-size: 15px;
}
.forminator-ui.forminator-custom-form input[type="file"]::file-selector-button,
.forminator-ui.forminator-custom-form .forminator-button-submit {
	font-size: 17px;
}
.forminator-ui.forminator-custom-form .forminator-response-message {
	font-size: 17px;
}