/* Layout shells */
.paragraph--type--pwc-cta {
  position: relative;
}

.pwc-cta__outer,
.cta__outer {
  position: relative;
  overflow: hidden;
}

.pwc-cta__outer--bleed {
  margin-left: calc(50% - 50vw);
  width: 100vw;
}

/* Opt-in vertical bleed with bounded top/bottom */
.pwc-cta__outer--ybleed {
  --pwc-cta-yb-top: 0px;
  --pwc-cta-yb-bot: 0px;
  margin-top: calc(var(--pwc-cta-yb-top) * -1);
  margin-bottom: calc(var(--pwc-cta-yb-bot) * -1);
}

.pwc-cta__container,
.cta__container {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  width: 100%;
  max-width: min(var(--content-max-width, 1280px), 100%);
  box-sizing: border-box;
}

.cta__card {
  position: relative;
  overflow: hidden;
}

@media (min-width: 768px) {
  /* no additional rules for larger screens currently */
}

/* Background SVG layers */
.pwc-cta__svg-page,
.cta__page-svg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.pwc-cta__svg-bg,
.cta__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.pwc-cta__svg-wrap,
.cta__wrap-svg {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

.svg-canvas svg,
.pwc-cta__svg-canvas svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Grid + alignment */
.cta__grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "image"
    "content";
  gap: clamp(1.5rem, 4vw, 2.5rem);
  align-items: flex-start;
  text-align: left;
}

.cta__grid.cta__grid--content-only {
  grid-template-areas: "content";
}

.cta__grid--align-center {
  text-align: center;
  justify-items: center;
}

@media (min-width: 768px) {
  .cta__grid.cta__grid--two {
    /* Use variables provided by preprocess; default to 50/50 if not set */
    grid-template-columns: var(--cta-image-col, 50%) var(--cta-content-col, 50%);
  }

  .cta__grid.cta__grid--two.cta__grid--image-left {
    grid-template-areas: "image content";
  }

  .cta__grid.cta__grid--two.cta__grid--image-right {
    grid-template-areas: "content image";
  }

  .cta__grid.cta__grid--two.cta__grid--content-only {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Content */
.cta__content {
  grid-area: content;
  display: flex;
  flex-direction: column;
  gap: clamp(0.75rem, 2vw, 1.5rem);
}

.cta__heading {
  margin: 0;
}

.cta__body {
  max-width: var(--text-max-width, 65ch);
}

/* Buttons */
.cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.5rem;
  justify-content: flex-start;
}

.cta__actions--center {
  justify-content: center;
}

/* Image box */
.cta__figure,
.cta__media {
  grid-area: image;
  margin: 0;
}

/* Simplified image: render at intrinsic aspect, maxing out column width. */
.cta__image img {
  width: 100%;
  height: auto;
  display: block;
}

/* Image rounding tokens */
.pwc-cta-rounded-none {
  border-radius: 0;
}

.pwc-cta-rounded-sm {
  border-radius: 4px;
}

.pwc-cta-rounded-md {
  border-radius: 6px;
}

.pwc-cta-rounded-lg {
  border-radius: 8px;
}

.pwc-cta-rounded-xl {
  border-radius: 12px;
}

.pwc-cta-rounded-2xl {
  border-radius: 16px;
}

.pwc-cta-rounded-3xl {
  border-radius: 20px;
}

.pwc-cta-rounded-full {
  border-radius: 9999px;
}

/* CTA theme variables and component styles moved from theme.css */
:root {
  --pwc-cta-surface-default: var(--colour-bg-body);
  --pwc-cta-surface-solid: var(--colour-red);
  --pwc-cta-surface-outline: var(--colour-bg-body);
  --pwc-cta-surface-subtle: var(--colour-background-grey);
  --pwc-cta-border-default: transparent;
  --pwc-cta-border-outline: var(--colour-dividers);
  --pwc-cta-border-solid: transparent;
  --pwc-cta-text-default: var(--colour-near-black);
  --pwc-cta-text-on-solid: var(--colour-bg-body);
  --pwc-cta-card-radius: var(--corner_radius-large);
  --pwc-cta-button-padding: 0.75rem 1.75rem;
  --pwc-cta-button-font-weight: 600;
  --pwc-cta-button-border-width: 1px;
  --pwc-cta-button-primary-bg: var(--colour-red);
  --pwc-cta-button-primary-color: var(--colour-bg-body);
  --pwc-cta-button-outline-color: var(--colour-red);
}

.paragraph--type--pwc-cta.cta {
  --cta-surface-color: var(--pwc-cta-surface-default);
  --cta-border-color: var(--pwc-cta-border-default);
  --cta-text-color: var(--pwc-cta-text-default);
  color: var(--cta-text-color);
}

.paragraph--type--pwc-cta .cta__card {
  position: relative;
  color: inherit;
  border-radius: var(--pwc-cta-card-radius);
  border: var(--pwc-cta-button-border-width) solid var(--cta-border-color);
}

.paragraph--type--pwc-cta .cta__bg,
.paragraph--type--pwc-cta .cta__wrap-svg {
  color: inherit;
}

.paragraph--type--pwc-cta .prose {
  max-width: var(--text-max-width);
}

.paragraph--type--pwc-cta .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: var(--pwc-cta-button-padding);
  font-weight: var(--pwc-cta-button-font-weight);
  border-radius: var(--pwc-cta-button-radius, var(--pwc-button-radius));
  border-width: var(--pwc-cta-button-border-width);
  border-style: solid;
  text-decoration: none;
  transition: background-color var(--transition-duration-regular),
    color var(--transition-duration-regular),
    border-color var(--transition-duration-regular),
    box-shadow var(--transition-duration-regular);
}

.paragraph--type--pwc-cta .btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.paragraph--type--pwc-cta .btn.btn-primary {
  background-color: var(--pwc-cta-button-primary-bg);
  color: var(--pwc-cta-button-primary-color);
  border-color: transparent;
}

.paragraph--type--pwc-cta .btn.btn-primary:hover,
.paragraph--type--pwc-cta .btn.btn-primary:focus {
  background-color: var(--pwc-button-hover-bg);
  color: var(--pwc-button-hover-color);
}

.paragraph--type--pwc-cta .btn.btn-outline {
  background-color: transparent;
  color: var(--pwc-cta-button-outline-color);
  border-color: var(--pwc-cta-button-outline-color);
}

.paragraph--type--pwc-cta .btn.btn-outline:hover,
.paragraph--type--pwc-cta .btn.btn-outline:focus {
  background-color: var(--pwc-button-hover-bg);
  color: var(--pwc-button-hover-color);
  border-color: var(--pwc-button-hover-bg);
}

.paragraph--type--pwc-cta.cta--variant--solid {
  --cta-surface-color: var(--pwc-cta-surface-solid);
  --cta-border-color: var(--pwc-cta-border-solid);
  --cta-text-color: var(--pwc-cta-text-on-solid);
  color: var(--cta-text-color);
}

.paragraph--type--pwc-cta.cta--variant--solid .btn.btn-outline {
  color: var(--pwc-cta-text-on-solid);
  border-color: color-mix(in srgb, var(--pwc-cta-text-on-solid) 85%, transparent);
}

.paragraph--type--pwc-cta.cta--variant--solid .btn.btn-outline:hover,
.paragraph--type--pwc-cta.cta--variant--solid .btn.btn-outline:focus {
  background-color: color-mix(in srgb, var(--pwc-cta-text-on-solid) 15%, transparent);
  color: var(--pwc-cta-text-on-solid);
  border-color: var(--pwc-cta-text-on-solid);
}

.paragraph--type--pwc-cta.cta--variant--outline {
  --cta-surface-color: var(--pwc-cta-surface-outline);
  --cta-border-color: var(--pwc-cta-border-outline);
}

.paragraph--type--pwc-cta.cta--variant--subtle {
  --cta-surface-color: var(--pwc-cta-surface-subtle);
}

.paragraph--type--pwc-cta .cta__svg svg {
  width: 100%;
  height: 100%;
  display: block;
}

.paragraph--type--pwc-cta.cta--align--center .cta__card {
  text-align: center;
}

.paragraph--type--pwc-cta.cta--align--start .cta__card {
  text-align: left;
}
