/*
 * Base look of the event sites. Loaded after app.css (Bootstrap) on every page.
 * Everything that can be customised comes from the custom properties defined
 * by App\Support\Theme (Settings > Appearance): --brand, --brand-dark,
 * --brand-soft, --header-*, --topbar-bg, --body-bg, --text, --muted,
 * --footer-*, --font-body, --font-heading, --radius, --container-max.
 * The fallbacks below keep the page usable if that block is missing.
 */
:root {
  --brand: #2563a8;
  --brand-rgb: 37, 99, 168;
  --brand-dark: #1e5088;
  --brand-soft: #e9eff6;
  --header-bg: #ffffff;
  --header-text: #1f2937;
  --header-border: #e5e7eb;
  --topbar-bg: #111827;
  --body-bg: #f6f7f9;
  --text: #1f2937;
  --muted: #6b7280;
  --footer-bg: #111827;
  --footer-text: #cbd5e1;
  --font-body: 'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-heading: 'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;
  --radius: 10px;
  --container-max: 1560px;

  /* Bootstrap hooks: brand colour, text, links */
  --bs-primary: var(--brand);
  --bs-primary-rgb: var(--brand-rgb);
  --bs-link-color: var(--brand);
  --bs-link-color-rgb: var(--brand-rgb);
  --bs-link-hover-color: var(--brand-dark);
  --bs-body-color: var(--text);
  --bs-body-bg: var(--body-bg);
  --bs-body-font-family: var(--font-body);
  --bs-border-radius: calc(var(--radius) * .6);
  --bs-border-radius-lg: var(--radius);
  --shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
  --shadow-md: 0 4px 12px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .06);
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  background: var(--body-bg);
  color: var(--text);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.01em;
  color: var(--text);
}
h1, .h1 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); }
h2, .h2 { font-size: clamp(1.45rem, 1.1rem + 1.2vw, 1.9rem); }
h3, .h3 { font-size: clamp(1.25rem, 1.05rem + .7vw, 1.55rem); }
a { text-underline-offset: 2px; }
.text-muted, .text-body-secondary { color: var(--muted) !important; }
hr { border-color: var(--header-border); opacity: 1; }

.container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
  max-width: min(var(--container-max), 100%);
  padding-left: 1rem;
  padding-right: 1rem;
}

/* ---------- header ---------- */
.site-header { position: relative; z-index: 1030; }

.topbar {
  background: var(--topbar-bg);
  font-size: .8125rem;
  /* above the sticky main bar, so its dropdown menus are never hidden behind it */
  position: relative;
  z-index: 1050;
}
.topbar .dropdown-menu { z-index: 1060; }
.topbar .nav-link {
  color: rgba(255, 255, 255, .78);
  padding: .5rem .7rem;
  transition: color .15s;
}
.topbar .nav-link:hover, .topbar .nav-link:focus, .topbar .show > .nav-link { color: #fff; }
.topbar .dropdown-toggle::after { margin-left: .35em; vertical-align: .1em; }

.site-nav {
  background: var(--header-bg);
  color: var(--header-text);
  border-bottom: 1px solid var(--header-border);
  box-shadow: var(--shadow-sm);
  position: sticky;
  top: 0;
  z-index: 1030;
  padding: .35rem 0;
}
.site-nav .navbar-brand { padding: .15rem 0; margin-right: 1.5rem; display: flex; align-items: center; }
.site-logo { height: clamp(48px, 7vw, 64px); width: auto; display: block; }
.site-name { font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; color: var(--header-text); letter-spacing: -.01em; }

.site-nav .navbar-toggler {
  border: 1px solid var(--header-border);
  color: var(--header-text);
  padding: .3rem .55rem;
  border-radius: calc(var(--radius) * .6);
  font-size: 1.6rem;
  line-height: 1;
  box-shadow: none;
}
.site-nav .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(var(--brand-rgb), .25); }

.site-nav .nav-item.mb-2 { margin-bottom: 0 !important; }
.site-nav .navbar-nav .nav-link {
  color: var(--header-text);
  font-weight: 500;
  font-size: .95rem;
  padding: .7rem .85rem;
  position: relative;
  transition: opacity .15s;
}
.site-nav .navbar-nav .nav-link:hover, .site-nav .navbar-nav .nav-link:focus { opacity: .78; }
@media (min-width: 992px) {
  .site-nav .site-links > .nav-item > .nav-link::before {
    content: "";
    position: absolute;
    left: .85rem; right: .85rem; bottom: .35rem;
    height: 2px;
    background: var(--brand);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .2s ease;
  }
  .site-nav .site-links > .nav-item > .nav-link:hover::before,
  .site-nav .site-links > .nav-item.show > .nav-link::before { transform: scaleX(1); }
}
.site-nav .dropdown-toggle::after { margin-left: .4em; vertical-align: .12em; }

/* menus that drop down */
.dropdown-menu {
  border: 0;
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  padding: .4rem;
  font-size: .9rem;
}
.dropdown-item { border-radius: calc(var(--radius) * .5); padding: .45rem .75rem; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--brand-soft); color: var(--brand-dark); }
.dropdown-item.active, .dropdown-item:active { background: var(--brand); color: #fff; }

/* mobile: a single collapsible menu */
@media (max-width: 991.98px) {
  .site-nav .navbar-collapse {
    margin-top: .5rem;
    padding-top: .5rem;
    border-top: 1px solid var(--header-border);
    max-height: calc(100vh - 5rem);
    overflow-y: auto;
  }
  .site-nav .navbar-nav .nav-link { padding: .75rem .25rem; font-size: 1rem; }
  .site-nav .navbar-nav .dropdown-menu {
    box-shadow: none;
    background: transparent;
    border-left: 2px solid var(--header-border);
    border-radius: 0;
    padding: 0 0 0 .75rem;
    margin: 0 0 .25rem .25rem;
  }
  .site-nav .navbar-nav .dropdown-menu .dropdown-item { color: var(--header-text); padding: .55rem .5rem; }

  .mobile-menu { margin-top: .5rem; }
  .m-section { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--header-border); }
  .m-section-title {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 600;
    color: var(--header-text);
    opacity: .6;
    margin-bottom: .25rem;
  }
  .m-link, .m-group summary {
    display: block;
    padding: .65rem .25rem;
    color: var(--header-text);
    text-decoration: none;
    font-weight: 500;
  }
  .m-link:hover { color: var(--brand); }
  .m-group summary { cursor: pointer; list-style: none; position: relative; }
  .m-group summary::-webkit-details-marker { display: none; }
  .m-group summary::after {
    content: "\F282"; /* bootstrap-icons chevron-down */
    font-family: "bootstrap-icons";
    position: absolute; right: .25rem; top: 50%; transform: translateY(-50%);
    transition: transform .2s; font-size: .8rem;
  }
  .m-group[open] summary::after { transform: translateY(-50%) rotate(180deg); }
  .m-child { padding-left: 1rem; font-weight: 400; opacity: .9; border-left: 2px solid var(--header-border); }
}

/* the bell */
#notifBell { color: var(--header-text); }
#notifBell.has-new { color: #dc3545; }

/* ---------- content ---------- */
.site-main { min-height: 50vh; }

.card {
  border: 0;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  background: #fff;
}
.card-header {
  background: #fff;
  border-bottom: 1px solid #eef0f3;
  font-weight: 600;
  border-radius: var(--radius) var(--radius) 0 0 !important;
  padding: .85rem 1.1rem;
}
.card-body { padding: 1.1rem; }

.btn { border-radius: calc(var(--radius) * .6); font-weight: 500; }
.btn-primary {
  --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--brand-dark); --bs-btn-hover-border-color: var(--brand-dark); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--brand-dark); --bs-btn-active-border-color: var(--brand-dark); --bs-btn-active-color: #fff;
  --bs-btn-disabled-bg: var(--brand); --bs-btn-disabled-border-color: var(--brand);
  --bs-btn-focus-shadow-rgb: var(--brand-rgb);
}
.btn-outline-primary {
  --bs-btn-color: var(--brand); --bs-btn-border-color: var(--brand);
  --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--brand-dark); --bs-btn-active-border-color: var(--brand-dark); --bs-btn-active-color: #fff;
  --bs-btn-disabled-color: var(--brand); --bs-btn-disabled-border-color: var(--brand);
  --bs-btn-focus-shadow-rgb: var(--brand-rgb);
}
.bg-primary, .text-bg-primary { background-color: var(--brand) !important; }
.text-primary { color: var(--brand) !important; }
.border-primary { border-color: var(--brand) !important; }
.alert-primary {
  --bs-alert-bg: var(--brand-soft); --bs-alert-border-color: transparent; --bs-alert-color: var(--brand-dark);
}
.alert { border: 0; border-radius: var(--radius); }
.badge { border-radius: 999px; font-weight: 500; }

.form-control, .form-select {
  border-color: #d5dae1;
  border-radius: calc(var(--radius) * .6);
}
.form-control:focus, .form-select:focus {
  border-color: rgba(var(--brand-rgb), .6);
  box-shadow: 0 0 0 .2rem rgba(var(--brand-rgb), .15);
}
.form-check-input:checked { background-color: var(--brand); border-color: var(--brand); }
.form-check-input:focus { border-color: rgba(var(--brand-rgb), .6); box-shadow: 0 0 0 .2rem rgba(var(--brand-rgb), .15); }
.form-label { font-weight: 500; }

.table { --bs-table-bg: transparent; }
.table > thead > tr > th {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  font-weight: 600;
  white-space: nowrap;
}

.nav-tabs .nav-link.active, .nav-pills .nav-link.active { color: var(--brand); }
.nav-pills .nav-link.active { background: var(--brand-soft); }
.page-link { color: var(--brand); }
.page-item.active .page-link { background: var(--brand); border-color: var(--brand); color: #fff; }
.modal-content { border: 0; border-radius: var(--radius); box-shadow: var(--shadow-md); }
.modal-header { border-bottom-color: #eef0f3; }
.modal-footer { border-top-color: #eef0f3; }
.breadcrumb { font-size: .875rem; }
.list-group-item { border-color: #eef0f3; }

/* page content written in the editor */
.site-main img { max-width: 100%; height: auto; }
.site-main p { margin-bottom: 1rem; }

/* ---------- footer ---------- */
.site-footer {
  background: var(--footer-bg);
  color: var(--footer-text);
  margin-top: 4rem;
  padding: 3rem 0 2.5rem;
  font-size: .925rem;
}
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5, .site-footer h6 { color: #fff; }
.site-footer a { color: #fff; text-decoration: none; opacity: .88; }
.site-footer a:hover { opacity: 1; text-decoration: underline; }
.site-footer .social-links a { font-size: 1.15rem; }

/* print: no chrome */
@media print {
  .topbar, .site-nav, .site-footer { display: none !important; }
  body { background: #fff; }
}

/* ---------- page content (CMS posts) ---------- */
.content-page .blog-item > h2 {
  position: relative;
  padding-bottom: .6rem;
  margin-bottom: 1.5rem;
}
.content-page .blog-item > h2::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 3rem; height: 3px;
  background: var(--brand);
  border-radius: 2px;
}
/* the page's own container already sets the reading width (Appearance > Page width) */
/* the legacy markup nests .row inside .col inside .row: take the extra gutters out so text lines up with the header and the hero */
.content-page > .row { --bs-gutter-x: 0; }
.row > .col-md-12:has(> .content-page) { padding-left: 0; padding-right: 0; }
.content-page .blog-item h1 { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.05rem); }
.content-page .blog-item img { border-radius: calc(var(--radius) * .8); }
.content-page .blog-item blockquote {
  border-left: 4px solid var(--brand);
  background: var(--brand-soft);
  padding: .75rem 1rem;
  border-radius: 0 var(--radius) var(--radius) 0;
}
.content-page .blog-item table { max-width: 100%; }

/* ---------- registration form ---------- */
#record_edit .form-group.row {
  padding: .9rem 0;
  margin-bottom: 0 !important;
  border-bottom: 1px solid #eef0f3;
}
#record_edit .form-group.row:last-of-type { border-bottom: 0; }
#record_edit .col-form-label small { color: var(--muted); font-weight: 400; }
#linha_preco_final_calculado .alert {
  background: var(--brand-soft);
  color: var(--text);
  border: 0;
  border-left: 4px solid var(--brand);
}

/* ---------- calendar (programme) ---------- */
.fc {
  --fc-button-bg-color: var(--brand);
  --fc-button-border-color: var(--brand);
  --fc-button-hover-bg-color: var(--brand-dark);
  --fc-button-hover-border-color: var(--brand-dark);
  --fc-button-active-bg-color: var(--brand-dark);
  --fc-button-active-border-color: var(--brand-dark);
  --fc-today-bg-color: var(--brand-soft);
  --fc-border-color: #e5e7eb;
}

/* ---------- sign-in / registration / password pages ---------- */
.auth-page .row.justify-content-center > [class*="col-md-"] { flex: 0 0 100%; width: 100%; max-width: 480px; }
.auth-page .card { box-shadow: var(--shadow-md); }
.auth-page .card-header { font-size: 1.15rem; padding: 1.1rem 1.4rem; }
.auth-page .card-body { padding: 1.4rem; }
.auth-page form .row > label { flex: 0 0 100%; width: 100%; max-width: 100%; text-align: left !important; margin-bottom: .25rem; }
.auth-page form .row > [class*="col-md-"] { flex: 0 0 100%; width: 100%; max-width: 100%; margin-left: 0; }
.auth-page form .btn-primary { min-width: 8rem; }

/* ---------- administration pages ---------- */
/* same width as every other page (Appearance > Page width); only the spacing differs */
.admin-page .site-main { padding-top: 1.25rem !important; }
.admin-page .table > :not(caption) > * > * { padding: .55rem .6rem; }
.admin-page .table td, .admin-page .table th { vertical-align: middle; }
.table-responsive { border-radius: var(--radius); }
.table-responsive > .table { margin-bottom: 0; }
/* a table that is not a "table-striped" one still reads well: soft row hover */
.admin-page .table-hover > tbody > tr:hover > * { background-color: var(--brand-soft); }

/* ---------- Home highlight band (Settings > Appearance > Home highlight) ---------- */
.site-hero { position: relative; color: #fff; }
.site-hero-slide {
  position: relative;
  display: flex;
  align-items: center;
  min-height: min(var(--hero-h, 300px), 80vh);
  padding: 2.5rem 0;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%) center / cover no-repeat;
  isolation: isolate;
}
.site-hero-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(0, 0, 0, var(--hero-overlay, .45));
}
.site-hero-slide .container { width: 100%; }
.site-hero-inner { max-width: 60rem; }
.site-hero-title { font-family: var(--font-heading); font-weight: 700; font-size: clamp(1.7rem, 3.6vw, 2.6rem); line-height: 1.15; margin: 0 0 .5rem; color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .25); }
.site-hero .lead { font-size: clamp(1.05rem, 1.8vw, 1.3rem); margin: 0; opacity: .94; }
.site-hero.align-center { text-align: center; }
.site-hero.align-center .site-hero-inner { margin-left: auto; margin-right: auto; }
.site-hero .btn-outline-light:hover { color: #111; }
/* slideshow: arrows sit at the edges, dots stay clear of the text */
.site-hero .carousel-control-prev, .site-hero .carousel-control-next { width: 4rem; opacity: .75; }
.site-hero .carousel-control-prev:hover, .site-hero .carousel-control-next:hover { opacity: 1; }
.site-hero .carousel-indicators { margin-bottom: .5rem; }
.site-hero .carousel-indicators [data-bs-target] { width: .6rem; height: .6rem; border-radius: 50%; border: 0; margin: 0 .3rem; }
@media (max-width: 575.98px) {
  .site-hero-slide { padding: 2rem 0 2.75rem; }
  .site-hero .btn-lg { width: 100%; }
  .site-hero .carousel-control-prev, .site-hero .carousel-control-next { display: none; }
}
/* ---------- Administration pages: titles, loose tables, navigation tree ---------- */
.admin-page .site-main h1, .admin-page .site-main .h1 { font-size: 1.5rem; margin-bottom: 1rem; }
.admin-page .site-main h2 { font-size: 1.3rem; }
.admin-page .site-main h1.display-one { font-size: 1.5rem; }

/* a table that sits straight on the page (not inside a card) gets its own white panel */
.admin-page .site-main .container > .table-responsive {
  background: #fff;
  box-shadow: var(--shadow-sm);
}

/* navigation editor (jquery-sortable-lists): brand-coloured drag strip, white rows */
.admin-page .sortableList ul { border: 0; background: transparent; margin: 0; padding: 0; }
.admin-page .sortableList > ul { padding: .25rem 0; }
.admin-page .sortableList li ul { margin-left: .25rem; padding: 0 .35rem .35rem 0; }
.admin-page .sortableList li, #s-l-base li {
  margin: .35rem 0;
  border: 1px solid var(--brand);
  border-radius: var(--radius);
  background-color: var(--brand);
  overflow: hidden;
}
.admin-page .sortableList li > div { background: #fff; padding: .5rem .75rem; }
.admin-page .sortableList li li { margin-left: .25rem; }
.admin-page .sortableList .placeholder { background-color: var(--brand-soft); }
.admin-page .sortableList .hint { background-color: var(--brand-soft); border: 1px dashed var(--brand); }
.admin-page .sortableList li .current { background-color: var(--brand-soft); }
.admin-page .sortableList .btn-primary, .admin-page .sortableList .btn-danger { --bs-btn-padding-y: .2rem; --bs-btn-padding-x: .45rem; }
.admin-page .sortableList li > div > .clickable:not(.float-end) { display: inline-block; margin-left: .75rem; }
.admin-page .sortableList .delete_navigation { margin-left: .25rem !important; }

/* ---------- one look for the action buttons (administration) ----------
   Page-level actions (Save, New ...) stay solid; the actions on a row - edit, delete, view, send - are
   always the same compact outline button, whatever colour class the page gave them. Colour = meaning:
   blue edit/view, red delete, green confirm/send, grey neutral. */
.admin-page :is(.table, .sortableList, .list-group, .card-header) .btn-sm:is(.btn-primary, .btn-secondary, .btn-success, .btn-danger, .btn-warning, .btn-info) {
  --bs-btn-bg: transparent; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; --bs-btn-disabled-bg: transparent;
}
.admin-page :is(.table, .sortableList, .list-group, .card-header) .btn-sm.btn-primary { --bs-btn-color: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand); --bs-btn-active-bg: var(--brand-dark); --bs-btn-active-border-color: var(--brand-dark); --bs-btn-disabled-color: var(--brand); }
.admin-page :is(.table, .sortableList, .list-group, .card-header) .btn-sm.btn-secondary { --bs-btn-color: #6c757d; --bs-btn-border-color: #6c757d; --bs-btn-hover-bg: #6c757d; --bs-btn-hover-border-color: #6c757d; --bs-btn-active-bg: #5c636a; --bs-btn-active-border-color: #5c636a; --bs-btn-disabled-color: #6c757d; }
.admin-page :is(.table, .sortableList, .list-group, .card-header) .btn-sm.btn-success { --bs-btn-color: #198754; --bs-btn-border-color: #198754; --bs-btn-hover-bg: #198754; --bs-btn-hover-border-color: #198754; --bs-btn-active-bg: #146c43; --bs-btn-active-border-color: #146c43; --bs-btn-disabled-color: #198754; }
.admin-page :is(.table, .sortableList, .list-group, .card-header) .btn-sm.btn-danger { --bs-btn-color: #dc3545; --bs-btn-border-color: #dc3545; --bs-btn-hover-bg: #dc3545; --bs-btn-hover-border-color: #dc3545; --bs-btn-active-bg: #b02a37; --bs-btn-active-border-color: #b02a37; --bs-btn-disabled-color: #dc3545; }
.admin-page :is(.table, .sortableList, .list-group, .card-header) .btn-sm.btn-warning { --bs-btn-color: #997404; --bs-btn-border-color: #ffc107; --bs-btn-hover-color: #000; --bs-btn-hover-bg: #ffc107; --bs-btn-hover-border-color: #ffc107; --bs-btn-active-color: #000; --bs-btn-active-bg: #e0a800; --bs-btn-active-border-color: #e0a800; --bs-btn-disabled-color: #997404; }
.admin-page :is(.table, .sortableList, .list-group, .card-header) .btn-sm.btn-info { --bs-btn-color: #087990; --bs-btn-border-color: #0dcaf0; --bs-btn-hover-color: #000; --bs-btn-hover-bg: #0dcaf0; --bs-btn-hover-border-color: #0dcaf0; --bs-btn-active-color: #000; --bs-btn-active-bg: #31d2f2; --bs-btn-active-border-color: #31d2f2; --bs-btn-disabled-color: #087990; }
/* the same size and spacing for every row action; a group of them never wraps under the name */
.admin-page .table .btn-sm { --bs-btn-padding-y: .22rem; --bs-btn-padding-x: .55rem; --bs-btn-font-size: .8125rem; line-height: 1.35; }
.admin-page .table td:last-child:has(> .btn, > form, > a.btn) { white-space: nowrap; }
.admin-page .table td > form.d-inline { margin: 0; }
.admin-page .table td .btn + .btn, .admin-page .table td .btn + form, .admin-page .table td form + .btn, .admin-page .table td form + form { margin-left: .25rem; }

/* ---------- settings: section list + save bar ---------- */
.settings-nav .list-group-item { display: flex; align-items: center; gap: .6rem; padding: .6rem .9rem; }
.settings-nav .list-group-item.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.settings-nav .list-group-item i { opacity: .8; }
@media (min-width: 992px) { .settings-nav { position: sticky; top: 1rem; } }
/* the Save button stays in view while a long section scrolls */
.settings-savebar {
  position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: flex-end; align-items: center; gap: 1rem;
  padding: .75rem 0; margin-top: 1rem; background: linear-gradient(to top, var(--body-bg, #fff) 70%, rgba(255, 255, 255, 0));
}

/* ---------- registration form: the price stays in view while the form is filled in ---------- */
.price-summary { position: sticky; bottom: 0; z-index: 30; padding: .75rem 0 .5rem; background: linear-gradient(to top, #fff 75%, rgba(255, 255, 255, 0)); }
.price-summary .alert { background: var(--brand-soft); color: var(--text, #212529); border: 1px solid rgba(var(--brand-rgb), .25); border-left: 4px solid var(--brand); box-shadow: 0 -4px 14px rgba(0, 0, 0, .10); }
