.qcol-section {
  padding-block: var(--qcol-pad-top) var(--qcol-pad-bottom);
  margin-block: var(--qcol-margin-top) var(--qcol-margin-bottom);
  background: var(--qcol-section-bg);
  overflow: clip;
}
.qcol-container { width:min(calc(100% - (var(--qasf-gutter,1rem)*2)),var(--qcol-max-width)); margin-inline:auto; }
.qcol-width-full .qcol-container { width:calc(100% - (var(--qasf-gutter,1rem)*2)); max-width:none; }
.qcol-heading { display:grid; gap:.45rem; margin:0 0 var(--qcol-heading-gap); text-align:var(--qcol-title-align); }
.qcol-heading h2 { margin:0; color:var(--qcol-title-color); font-family:var(--qasf-heading-font,inherit); font-size:var(--qcol-title-m); font-weight:var(--qcol-title-weight); line-height:1.18; }
.qcol-heading p { margin:0; color:var(--qcol-subtitle-color); line-height:1.7; }
.qcol-shell { position:relative; min-width:0; }
.qcol-viewport { min-width:0; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.qcol-viewport::-webkit-scrollbar { display:none; }
.qcol-track { display:flex; align-items:stretch; gap:var(--qcol-gap-m); min-width:0; }
.qcol-mode-grid .qcol-viewport { overflow:visible; }
.qcol-mode-grid .qcol-track { display:grid; grid-template-columns:repeat(var(--qcol-cols-m),minmax(0,1fr)); width:100%; }
.qcol-mode-slider .qcol-viewport { scroll-snap-type:x mandatory; touch-action:pan-y; }
.qcol-mode-slider .qcol-item { flex:0 0 calc((100% - ((var(--qcol-cols-m) - 1)*var(--qcol-gap-m)))/var(--qcol-cols-m)); scroll-snap-align:start; }
/* Fail-safe: before JS, marquee is a normal horizontally scrollable row. */
.qcol-mode-marquee .qcol-track { width:max-content; min-width:max-content; }
.qcol-mode-marquee .qcol-item { flex:0 0 var(--qcol-card-w-m); width:var(--qcol-card-w-m); }
.qcol-mode-marquee.is-ready .qcol-viewport { overflow:hidden; touch-action:pan-y; }
.qcol-item { display:grid; align-content:start; justify-items:center; gap:.45rem; min-width:0; color:var(--qasf-text,inherit); text-align:center; text-decoration:none; -webkit-tap-highlight-color:transparent; }
.qcol-card-surface { display:grid; place-items:center; width:min(100%,var(--qcol-card-w-m)); height:var(--qcol-card-h-m); overflow:hidden; border:var(--qcol-border-width) solid var(--qcol-border-color); border-radius:var(--qcol-radius); background:var(--qcol-card-bg); box-shadow:0 8px 26px rgba(15,35,55,var(--qcol-shadow-alpha)); transition:transform var(--qcol-transition) var(--qcol-ease),box-shadow var(--qcol-transition) var(--qcol-ease),border-color var(--qcol-transition) var(--qcol-ease),background var(--qcol-transition) var(--qcol-ease); }
.qcol-shape-square .qcol-card-surface { border-radius:0; }
.qcol-shape-rounded .qcol-card-surface,.qcol-shape-rectangle .qcol-card-surface { border-radius:var(--qcol-radius); }
.qcol-shape-circle .qcol-card-surface { width:min(100%,min(var(--qcol-card-w-m),var(--qcol-card-h-m))); height:min(var(--qcol-card-w-m),var(--qcol-card-h-m)); border-radius:999px; }
.qcol-media { display:grid; place-items:center; width:100%; height:100%; padding:var(--qcol-media-padding); }
.qcol-image { display:block; width:var(--qcol-media-scale); height:var(--qcol-media-scale); max-width:100%; max-height:100%; margin:auto; object-position:center; opacity:var(--qcol-media-opacity); transition:transform var(--qcol-transition) var(--qcol-ease),filter var(--qcol-transition) var(--qcol-ease),opacity var(--qcol-transition) var(--qcol-ease); }
.qcol-fit-contain .qcol-image { object-fit:contain; }
.qcol-fit-cover .qcol-media { padding:0; }
.qcol-fit-cover .qcol-image { width:100%; height:100%; object-fit:cover; }
.qcol-placeholder { display:grid; place-items:center; width:58%; aspect-ratio:1; border-radius:50%; background:var(--qasf-primary-soft,rgba(0,0,0,.06)); color:var(--qasf-primary,currentColor); font-size:clamp(1.3rem,4vw,2rem); font-weight:800; }
.qcol-name { max-width:100%; color:var(--qasf-text,inherit); font-weight:750; line-height:1.35; text-wrap:balance; }
.qcol-count,.qcol-description { color:var(--qasf-muted,currentColor); line-height:1.4; }
.qcol-name-hover .qcol-name { opacity:0; transform:translateY(-3px); transition:opacity var(--qcol-transition) var(--qcol-ease),transform var(--qcol-transition) var(--qcol-ease); }
.qcol-grayscale .qcol-image { filter:grayscale(1); }
.qcol-arrows { display:flex; justify-content:center; gap:.65rem; margin-top:1rem; pointer-events:none; }
.qcol-arrows-inside .qcol-arrows { position:absolute; z-index:4; inset-inline:.35rem; top:50%; justify-content:space-between; margin:0; transform:translateY(-50%); }
.qcol-arrow { display:inline-grid; place-items:center; width:calc(var(--qcol-arrow-size) + 22px); height:calc(var(--qcol-arrow-size) + 22px); padding:0; border:1px solid color-mix(in srgb,var(--qcol-arrow-color) 18%,transparent); border-radius:50%; background:var(--qcol-arrow-bg); color:var(--qcol-arrow-color); box-shadow:0 8px 24px rgba(15,35,55,.12); cursor:pointer; pointer-events:auto; }
.qcol-arrow:disabled { opacity:.3; cursor:default; }
.qcol-arrow svg,.qcol-arrow-custom,.qcol-arrow-custom img { display:block; width:var(--qcol-arrow-size); height:var(--qcol-arrow-size); object-fit:contain; }
.qcol-arrow-custom.is-next { transform:scaleX(-1); }
.qcol-dots { display:flex; justify-content:center; gap:.45rem; margin-top:.85rem; }
.qcol-dots button { width:.55rem; height:.55rem; padding:0; border:0; border-radius:99px; background:var(--qcol-dot-color); cursor:pointer; transition:width var(--qcol-transition) var(--qcol-ease),background var(--qcol-transition) var(--qcol-ease); }
.qcol-dots button.is-active { width:1.35rem; background:var(--qcol-dot-active); }
.qcol-section-action { margin-top:1.1rem; text-align:center; }
.qcol-shell.is-dragging .qcol-viewport { cursor:grabbing; user-select:none; }
.qcol-shell[data-drag="1"] .qcol-viewport { cursor:grab; }

/* Reveal is progressive enhancement only; content is visible until JS marks the section ready. */
.qcol-section:has(.qcol-shell.is-ready).qcol-reveal-fade .qcol-item,
.qcol-section:has(.qcol-shell.is-ready).qcol-reveal-fade_up .qcol-item,
.qcol-section:has(.qcol-shell.is-ready).qcol-reveal-scale .qcol-item { opacity:0; transition:opacity 360ms ease,transform 360ms ease; }
.qcol-section:has(.qcol-shell.is-ready).qcol-reveal-fade_up .qcol-item { transform:translateY(10px); }
.qcol-section:has(.qcol-shell.is-ready).qcol-reveal-scale .qcol-item { transform:scale(.98); }
.qcol-section.qcol-inview .qcol-item { opacity:1!important; transform:none!important; }
.qcol-section.qcol-inview .qcol-item:nth-child(2){transition-delay:calc(var(--qcol-stagger)*1)}
.qcol-section.qcol-inview .qcol-item:nth-child(3){transition-delay:calc(var(--qcol-stagger)*2)}
.qcol-section.qcol-inview .qcol-item:nth-child(4){transition-delay:calc(var(--qcol-stagger)*3)}
.qcol-section.qcol-inview .qcol-item:nth-child(5){transition-delay:calc(var(--qcol-stagger)*4)}
.qcol-section.qcol-inview .qcol-item:nth-child(6){transition-delay:calc(var(--qcol-stagger)*5)}

/* Features */
.qmod-features .qcol-card-surface { height:auto; min-height:var(--qcol-card-h-m); padding:clamp(1rem,2vw,1.5rem); align-content:center; gap:.85rem; }
.qmod-feature-media { display:grid; place-items:center; width:var(--qmod-icon-size,54px); height:var(--qmod-icon-size,54px); color:var(--qasf-primary,currentColor); background:var(--qasf-primary-soft,rgba(0,0,0,.06)); overflow:hidden; }
.qmod-icon-shape-circle { border-radius:50%; }
.qmod-icon-shape-rounded { border-radius:14px; }
.qmod-icon-shape-square { border-radius:0; }
.qmod-icon-shape-none { background:transparent; }
.qmod-feature-media svg { width:58%; height:58%; }
.qmod-feature-image { width:100%; height:100%; object-fit:contain; }
.qmod-feature-content { display:grid; gap:.4rem; text-align:center; }
.qmod-feature-content strong { font-size:1.05em; color:var(--qasf-text,inherit); }
.qmod-feature-content span { color:var(--qasf-muted,currentColor); line-height:1.65; }

/* Testimonials keep their semantic review card but inherit collection layout. */
.qmod-testimonials .qcol-item { display:block; text-align:initial; }
.qmod-testimonials .qasf-review-card { width:100%; min-height:var(--qcol-card-h-m); border:var(--qcol-border-width) solid var(--qcol-border-color); border-radius:var(--qcol-radius); background:var(--qcol-card-bg); box-shadow:0 8px 26px rgba(15,35,55,var(--qcol-shadow-alpha)); }

/* CTA module additions */
.qmod-cta-center .qasf-cta { text-align:center; justify-items:center; }
.qmod-cta-center .qasf-cta-actions { justify-content:center; }
.qmod-cta-align-left .qasf-section-heading { text-align:left; }
.qmod-cta-align-center .qasf-section-heading { text-align:center; }
.qmod-cta-align-right .qasf-section-heading { text-align:right; }
.qmod-cta-width-full .qasf-container { max-width:none; width:calc(100% - (var(--qasf-gutter,1rem)*2)); }

@media (hover:hover) and (pointer:fine) {
  .qcol-name-hover .qcol-item:hover .qcol-name,.qcol-name-hover .qcol-item:focus-visible .qcol-name { opacity:1; transform:none; }
  .qcol-color-on-hover.qcol-grayscale .qcol-item:hover .qcol-image,.qcol-color-on-hover.qcol-grayscale .qcol-item:focus-visible .qcol-image { filter:none; }
  .qcol-item:hover .qcol-image,.qcol-item:focus-visible .qcol-image { transform:scale(var(--qcol-media-hover-scale)); opacity:1; }
  .qcol-hover-zoom .qcol-item:hover .qcol-card-surface,.qcol-hover-zoom .qcol-item:focus-visible .qcol-card-surface { transform:scale(1.025); background:var(--qcol-hover-bg); }
  .qcol-hover-lift .qcol-item:hover .qcol-card-surface,.qcol-hover-lift .qcol-item:focus-visible .qcol-card-surface { transform:translateY(-4px); background:var(--qcol-hover-bg); box-shadow:0 14px 34px rgba(15,35,55,.16); }
  .qcol-hover-shadow .qcol-item:hover .qcol-card-surface,.qcol-hover-shadow .qcol-item:focus-visible .qcol-card-surface { background:var(--qcol-hover-bg); box-shadow:0 16px 38px rgba(15,35,55,.2); }
  .qcol-hover-border .qcol-item:hover .qcol-card-surface,.qcol-hover-border .qcol-item:focus-visible .qcol-card-surface { background:var(--qcol-hover-bg); border-color:var(--qasf-primary,var(--qcol-border-color)); }
}
@media (max-width:47.99rem) {
  .qcol-hide-mobile-arrows .qcol-arrows { display:none; }
  .qcol-name-hover .qcol-name { opacity:1; transform:none; }
}
@media (min-width:48rem) {
  .qcol-heading h2 { font-size:var(--qcol-title-t); }
  .qcol-track { gap:var(--qcol-gap-t); }
  .qcol-mode-grid .qcol-track { grid-template-columns:repeat(var(--qcol-cols-t),minmax(0,1fr)); }
  .qcol-mode-slider .qcol-item { flex-basis:calc((100% - ((var(--qcol-cols-t) - 1)*var(--qcol-gap-t)))/var(--qcol-cols-t)); }
  .qcol-mode-marquee .qcol-item { flex-basis:var(--qcol-card-w-t); width:var(--qcol-card-w-t); }
  .qcol-card-surface { width:min(100%,var(--qcol-card-w-t)); height:var(--qcol-card-h-t); }
  .qcol-shape-circle .qcol-card-surface { width:min(100%,min(var(--qcol-card-w-t),var(--qcol-card-h-t))); height:min(var(--qcol-card-w-t),var(--qcol-card-h-t)); }
  .qmod-features .qcol-card-surface { height:auto; min-height:var(--qcol-card-h-t); }
  .qmod-testimonials .qasf-review-card { min-height:var(--qcol-card-h-t); }
}
@media (min-width:64rem) {
  .qcol-heading h2 { font-size:var(--qcol-title-d); }
  .qcol-track { gap:var(--qcol-gap-d); }
  .qcol-mode-grid .qcol-track { grid-template-columns:repeat(var(--qcol-cols-d),minmax(0,1fr)); }
  .qcol-mode-slider .qcol-item { flex-basis:calc((100% - ((var(--qcol-cols-d) - 1)*var(--qcol-gap-d)))/var(--qcol-cols-d)); }
  .qcol-mode-marquee .qcol-item { flex-basis:var(--qcol-card-w-d); width:var(--qcol-card-w-d); }
  .qcol-card-surface { width:min(100%,var(--qcol-card-w-d)); height:var(--qcol-card-h-d); }
  .qcol-shape-circle .qcol-card-surface { width:min(100%,min(var(--qcol-card-w-d),var(--qcol-card-h-d))); height:min(var(--qcol-card-w-d),var(--qcol-card-h-d)); }
  .qmod-features .qcol-card-surface { height:auto; min-height:var(--qcol-card-h-d); }
  .qmod-testimonials .qasf-review-card { min-height:var(--qcol-card-h-d); }
}
@media (prefers-reduced-motion:reduce) {
  .qcol-section *,.qcol-section *::before,.qcol-section *::after { transition-duration:.01ms!important; animation-duration:.01ms!important; }
  .qcol-section .qcol-item { opacity:1!important; transform:none!important; }
}
