:root {
  --ca-font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --ca-font-display: "Fraunces", "Times New Roman", serif;
  --ca-navy: #0e3d4f;
  --ca-navy-dark: #0a2d3a;
  --ca-brand: #0082b0;
  --ca-brand-dark: #006892;
  --ca-brand-soft: #e6f5fb;
  --ca-heat: #c2410c;
  --ca-paper: #f4f0ea;
  --ca-sand: #e7dfd3;
  --ca-ink: #161616;
  --ca-muted: #5c5853;
  --ca-max: 72rem;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; overflow-x: clip; }

.ca-skip {
  position: absolute;
  left: .75rem;
  top: -4rem;
  z-index: 100;
  padding: .5rem .75rem;
  background: var(--ca-navy);
  color: #fff;
  border-radius: .25rem;
}
.ca-skip:focus {
  top: .75rem;
}

.ca-crumbs {
  margin: 0 0 1.25rem;
  font-size: .8125rem;
  color: var(--ca-muted);
}
.ca-crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ca-crumbs li:not(:last-child)::after {
  content: "/";
  margin-left: .5rem;
  color: var(--ca-sand);
}
.ca-crumbs a { color: var(--ca-brand-dark); }
.ca-crumbs [aria-current="page"] { color: var(--ca-ink); }

.ca-404 .ca-404-links {
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .75rem;
}
.ca-404 .ca-404-links a { font-weight: 500; }

body {
  margin: 0;
  color: var(--ca-ink);
  background: #fff;
  font-family: var(--ca-font-sans);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
  overflow-x: clip;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--ca-brand-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, textarea, select { font: inherit; }
h1, h2, h3, .ca-display {
  font-family: var(--ca-font-display);
  font-weight: 600;
  line-height: 1.2;
  margin: 0;
}

.ca-wrap {
  width: min(100% - 2rem, var(--ca-max));
  margin-inline: auto;
}

/* Announcement + header */
.ca-announce {
  background: var(--ca-navy);
  color: #fff;
  text-align: center;
  font-size: 0.8125rem;
  padding: 0.5rem 1rem;
  margin: 0;
}
.ca-announce-desktop { display: none; }
@media (min-width: 640px) {
  .ca-announce-mobile { display: none; }
  .ca-announce-desktop { display: inline; }
}
.ca-header {
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
}
.ca-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem 0;
}
.ca-logo {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--ca-navy);
  font-weight: 500;
  font-size: .875rem;
  text-decoration: none;
}
.ca-logo img { height: 1.75rem; width: auto; }
.ca-nav {
  display: none;
  gap: 1.5rem;
  font-size: .875rem;
  color: var(--ca-muted);
}
.ca-nav a { color: inherit; text-decoration: none; }
.ca-nav a:hover { color: var(--ca-ink); }
.ca-header-actions { display: flex; align-items: center; gap: .5rem; }
.ca-cart-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 2.75rem;
  padding: 0 .75rem;
  border-radius: 999px;
  border: 1px solid rgba(0,130,176,.3);
  background: var(--ca-brand-soft);
  color: var(--ca-brand-dark);
  font-weight: 600;
  font-size: .875rem;
  text-decoration: none;
  cursor: pointer;
}
.ca-cart-btn:hover { text-decoration: none; }
.ca-cart-icon { display: inline-flex; line-height: 0; }
.ca-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 .25rem;
  border-radius: 999px;
  background: var(--ca-brand);
  color: #fff;
  font-size: .6875rem;
}
.ca-cart-count[hidden] { display: none !important; }
.ca-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  min-width: 2.75rem;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: .5rem;
  background: #fff;
  cursor: pointer;
}
.ca-mobile-nav {
  display: none;
  border-top: 1px solid rgba(0,0,0,.08);
  padding: .5rem 0 1rem;
}
.ca-mobile-nav.is-open { display: block; }
.ca-mobile-nav[hidden] { display: none !important; }
.ca-mobile-nav a {
  display: block;
  padding: .75rem .5rem;
  color: var(--ca-ink);
  font-weight: 500;
  font-size: .875rem;
  text-decoration: none;
  border-radius: .5rem;
}
.ca-mobile-nav a:hover { background: var(--ca-paper); }
.ca-mobile-account { color: var(--ca-muted) !important; }

@media (min-width: 1024px) {
  .ca-nav { display: flex; }
  .ca-menu-toggle { display: none; }
  .ca-mobile-nav { display: none !important; }
  .ca-logo-text { display: inline; }
}
@media (max-width: 1023px) {
  .ca-logo-text { display: none; }
  .ca-cart-label { display: none; }
}

/* Buttons */
.ca-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 1.25rem;
  border-radius: 999px;
  border: 0;
  font-weight: 700;
  font-size: .875rem;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
}
.ca-btn:hover { text-decoration: none; }
.ca-btn-brand { background: var(--ca-brand); color: #fff; }
.ca-btn-brand:hover { background: var(--ca-brand-dark); color: #fff; }
.ca-btn-navy { background: var(--ca-navy); color: #fff; }
.ca-btn-navy:hover { background: var(--ca-navy-dark); color: #fff; }
.ca-btn-ghost {
  background: transparent;
  color: var(--ca-navy);
  border: 1px solid rgba(14, 61, 79, .28);
}
.ca-btn-ghost:hover { background: var(--ca-brand-soft); color: var(--ca-navy); }
.ca-btn-block { width: 100%; }

/* Hero / buy box */
.ca-hero {
  display: grid;
  gap: 1.5rem;
  padding: 1.25rem 0 2rem;
}
.ca-eyebrow {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ca-heat);
  margin: 0;
}
.ca-hero h1 {
  margin-top: .4rem;
  font-size: clamp(1.35rem, 3vw, 1.75rem);
}
.ca-lede { color: var(--ca-muted); font-size: .875rem; margin: .5rem 0 0; }
.ca-buybox {
  margin-top: .75rem;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: .75rem;
  background: #fff;
  padding: 1rem;
}
.ca-price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem .75rem; }
.ca-price { font-size: 1.75rem; font-weight: 700; letter-spacing: -0.02em; margin: 0; }
.ca-compare { color: var(--ca-muted); text-decoration: line-through; font-size: .875rem; margin: 0; }
.ca-save {
  background: var(--ca-brand-soft);
  color: var(--ca-brand-dark);
  font-size: .75rem;
  font-weight: 600;
  padding: .15rem .5rem;
  border-radius: .375rem;
}
.ca-stock { color: #067d62; font-weight: 600; font-size: .875rem; margin: .4rem 0 0; }
.ca-meta { color: var(--ca-muted); font-size: .75rem; margin: .15rem 0 0; }
.ca-gallery {
  display: grid;
  gap: .75rem;
}
.ca-gallery-main {
  border-radius: .75rem;
  overflow: hidden;
  background: var(--ca-paper);
  aspect-ratio: 1;
}
.ca-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.ca-thumbs {
  display: flex;
  gap: .5rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: .25rem;
  scrollbar-width: none;
}
.ca-thumbs::-webkit-scrollbar { display: none; }
.ca-thumbs button {
  border: 2px solid transparent;
  border-radius: .5rem;
  padding: 0;
  overflow: hidden;
  background: var(--ca-paper);
  cursor: pointer;
  flex: 0 0 3.5rem;
  width: 3.5rem;
  height: 3.5rem;
}
.ca-thumbs button.is-active { border-color: var(--ca-brand); }
.ca-thumbs img { width: 100%; height: 100%; object-fit: cover; }

@media (min-width: 768px) {
  .ca-hero {
    grid-template-columns: 1.2fr .8fr;
    gap: 2rem;
    padding: 2.5rem 0;
    align-items: start;
  }
  .ca-buy-col { position: sticky; top: 6rem; }
}

.ca-qty {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid rgba(0,0,0,.2);
  border-radius: .5rem;
  background: var(--ca-paper);
  width: 100%;
  max-width: 9rem;
}
.ca-qty button {
  min-height: 2.75rem;
  min-width: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--ca-brand-dark);
  cursor: pointer;
}
.ca-actions { display: grid; gap: .5rem; margin-top: .75rem; }
.ca-countdown {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  margin: .65rem 0 0;
  font-size: .75rem;
  line-height: 1.35;
  color: var(--ca-brand-dark);
}
.ca-countdown-ico { flex-shrink: 0; }
.ca-countdown-num { font-variant-numeric: tabular-nums; font-weight: 600; }
.ca-trust {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  border-top: 1px solid rgba(0,0,0,.08);
  margin-top: .65rem;
  padding-top: .65rem;
  font-size: .75rem;
  color: var(--ca-muted);
}
.ca-highlights {
  list-style: none;
  padding: 0;
  margin: 1rem 0 0;
  display: none;
  gap: .5rem;
  font-size: .875rem;
}
@media (min-width: 768px) {
  .ca-highlights {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  .ca-highlights { grid-template-columns: 1fr 1fr 1fr 1fr; }
}
.ca-highlights li {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  background: var(--ca-paper);
  border-radius: .5rem;
  padding: .65rem .75rem;
}
.ca-highlights li::before {
  content: "✓";
  color: var(--ca-brand);
  font-weight: 700;
  flex-shrink: 0;
}

/* Sections */
.ca-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  background: var(--ca-paper);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: .75rem;
  padding: 1.25rem 1rem;
  margin: 0 auto 2rem;
  width: min(100% - 2rem, var(--ca-max));
}
.ca-stats strong {
  display: block;
  font-family: var(--ca-font-display);
  font-size: 1.5rem;
  color: var(--ca-navy);
}
.ca-stats span { font-size: .75rem; color: var(--ca-muted); }
@media (min-width: 768px) {
  .ca-stats { grid-template-columns: repeat(4, 1fr); padding: 2rem 1.5rem; }
  .ca-stats strong { font-size: 1.875rem; }
}

.ca-section { padding: 3rem 0; }
.ca-section-navy { background: var(--ca-navy); color: #fff; }
.ca-section-navy .ca-muted, .ca-section-navy p { color: rgba(255,255,255,.75); }
.ca-section-paper { background: var(--ca-paper); }
.ca-split {
  display: grid;
  gap: 1.5rem;
  align-items: center;
}
.ca-split img {
  border-radius: .75rem;
  width: 100%;
  max-height: 520px;
  object-fit: cover;
  object-position: top center;
}
@media (min-width: 768px) {
  .ca-split { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .ca-split.is-reverse .ca-split-copy { order: -1; }
}

.ca-table-wrap {
  overflow-x: auto;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: .75rem;
  -webkit-overflow-scrolling: touch;
}
.ca-table {
  width: 100%;
  min-width: 32rem;
  border-collapse: collapse;
  text-align: left;
  font-size: .875rem;
}
.ca-table th, .ca-table td {
  padding: .75rem;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.ca-table .ca-col-abis { background: var(--ca-paper); color: var(--ca-ink); font-weight: 500; }
.ca-table th.ca-col-abis { color: var(--ca-navy); }

/* Reviews — mobile stack → tablet 2-col → denser desktop */
#reviews.ca-section {
  padding: 2rem 0;
}
@media (min-width: 768px) {
  #reviews.ca-section { padding: 2.5rem 0; }
}
@media (min-width: 1024px) {
  #reviews.ca-section { padding: 3rem 0; }
}
#reviews h2 {
  font-size: clamp(1.375rem, 3.5vw, 1.875rem);
}
.ca-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: .625rem;
  margin-top: 1rem;
}
.ca-card {
  border: 1px solid rgba(14, 61, 79, .08);
  border-radius: .625rem;
  padding: .75rem .875rem;
  background: #fff;
  box-shadow: 0 1px 0 rgba(14, 61, 79, .04);
  margin: 0;
  min-width: 0;
  min-height: 0;
}
.ca-card-head {
  display: flex;
  align-items: center;
  gap: .625rem;
}
.ca-card-who {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .1rem;
  line-height: 1.2;
}
.ca-card-who strong {
  font-size: .875rem;
  color: var(--ca-navy);
}
.ca-stars {
  color: var(--ca-heat);
  font-size: .75rem;
  letter-spacing: .06em;
  line-height: 1;
}
.ca-card-quote {
  margin: .55rem 0 .35rem;
  font-size: .8125rem;
  line-height: 1.45;
  color: var(--ca-ink);
  overflow-wrap: anywhere;
}
.ca-card .ca-meta {
  margin: 0;
  line-height: 1.35;
  font-size: .6875rem;
}
.ca-avatar {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  color: #fff;
  font-weight: 600;
  font-size: .875rem;
  line-height: 1;
  letter-spacing: .02em;
}
/* Tablet ~768: 2-col, reduced gutters */
@media (min-width: 640px) {
  .ca-cards {
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin-top: 1.125rem;
  }
  .ca-card { padding: .8rem .9rem; }
  .ca-avatar {
    width: 2.25rem;
    height: 2.25rem;
    font-size: .8125rem;
  }
  .ca-card-who strong { font-size: .9375rem; }
  .ca-stars { font-size: .7rem; }
  .ca-card .ca-meta { font-size: .75rem; }
}
/* Desktop: denser fancy rhythm */
@media (min-width: 1024px) {
  .ca-cards {
    gap: .875rem;
    margin-top: 1.25rem;
  }
  .ca-card { padding: .9rem 1rem; }
  .ca-card-quote {
    margin: .65rem 0 .45rem;
  }
}

.ca-faq details {
  border-bottom: 1px solid rgba(0,0,0,.1);
  padding: 1rem 0;
}
.ca-faq summary {
  cursor: pointer;
  font-weight: 500;
  list-style: none;
}
.ca-faq summary::-webkit-details-marker { display: none; }
.ca-faq p { color: var(--ca-muted); margin: .5rem 0 0; }

.ca-cta-band { text-align: center; padding: 3rem 1rem; }
.ca-cta-band h2 { font-size: 1.875rem; }

/* Sticky mobile ATC — hidden until buy-box scrolls away */
.ca-sticky-atc {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 35;
  display: none;
  align-items: center;
  gap: .5rem;
  padding: .65rem .75rem calc(.65rem + env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.1);
  box-shadow: 0 -4px 20px rgba(0,0,0,.08);
}
.ca-sticky-atc.is-visible { display: flex; }
.ca-sticky-atc[hidden] { display: none !important; }
.ca-sticky-info {
  min-width: 0;
  flex-shrink: 1;
}
.ca-sticky-name {
  margin: 0;
  font-size: .75rem;
  color: var(--ca-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ca-sticky-price {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.ca-sticky-actions {
  margin-left: auto;
  display: flex;
  flex-shrink: 0;
  gap: .5rem;
}
.ca-sticky-actions .ca-btn {
  min-height: 2.75rem;
  padding: 0 .875rem;
}
@media (min-width: 1024px) {
  .ca-sticky-atc,
  .ca-sticky-atc.is-visible { display: none !important; }
}
body.has-sticky-atc { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom)); }

/* Page shell */
.ca-page { padding: 2.5rem 0 4rem; }
.ca-page h1 { font-size: clamp(1.75rem, 4vw, 2.25rem); }
.ca-page .ca-lede { max-width: 40rem; margin-top: .75rem; font-size: 1rem; }
.ca-prose { max-width: 42rem; margin-top: 2rem; display: grid; gap: 1.25rem; }
.ca-prose h2 { font-size: 1.125rem; font-family: var(--ca-font-sans); font-weight: 600; }
.ca-prose p, .ca-prose li { color: var(--ca-muted); }
.ca-prose ul, .ca-prose ol { padding-left: 1.25rem; margin: 0; }
.ca-prose strong { color: var(--ca-ink); }
.ca-post-cta { margin-top: 2rem; }

/* Related reading (single posts) */
.ca-related {
  max-width: 42rem;
  margin-top: 2.5rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(0,0,0,.08);
}
.ca-related-title {
  font-family: var(--ca-font-sans);
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 0 .75rem;
  color: var(--ca-ink);
}
.ca-related-list {
  margin: 0;
  padding-left: 1.15rem;
  display: grid;
  gap: .45rem;
}
.ca-related-list a {
  color: var(--ca-brand);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ca-related-list a:hover { color: var(--ca-brand-dark); }
.ca-related-pages {
  margin: 1rem 0 0;
  font-size: .9375rem;
  color: var(--ca-muted);
  line-height: 1.5;
}
.ca-related-pages-label {
  color: var(--ca-ink);
  font-weight: 600;
  margin-right: .25rem;
}
.ca-related-pages a {
  color: var(--ca-brand);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ca-related-pages a:hover { color: var(--ca-brand-dark); }
.ca-prose a {
  color: var(--ca-brand);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ca-prose a:hover { color: var(--ca-brand-dark); }
.ca-prose a.ca-btn {
  text-decoration: none;
  font-weight: 700;
  justify-self: start;
}
.ca-prose a.ca-btn-brand,
.ca-prose a.ca-btn-brand:hover { color: #fff; }
.ca-prose a.ca-btn-navy,
.ca-prose a.ca-btn-navy:hover { color: #fff; }
.ca-prose a.ca-btn-ghost,
.ca-prose a.ca-btn-ghost:hover { color: var(--ca-navy); }

/* Blog */
.ca-blog-cats { margin-top: 1.25rem; }
.ca-blog-cats ul {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ca-blog-cats a {
  display: inline-block;
  padding: .35rem .7rem;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 999px;
  font-size: .8125rem;
  text-decoration: none;
  color: inherit;
}
.ca-blog-cats a:hover,
.ca-blog-cats a[aria-current="page"] {
  border-color: rgba(0,130,176,.45);
  color: var(--ca-brand-dark, #006a91);
  text-decoration: none;
}
.ca-blog-grid { display: grid; gap: 1.25rem; margin-top: 2rem; }
@media (min-width: 640px) { .ca-blog-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .ca-blog-grid { grid-template-columns: 1fr 1fr 1fr; } }
.ca-blog-card {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: .75rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
}
.ca-blog-card:hover { border-color: rgba(0,130,176,.35); text-decoration: none; }
.ca-blog-card-media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #e8eef2;
}
.ca-blog-card-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ca-blog-card h2,
.ca-blog-card > p {
  padding-left: 1.15rem;
  padding-right: 1.15rem;
}
.ca-blog-card h2 {
  font-family: var(--ca-font-sans);
  font-size: clamp(1.1875rem, 2.6vw, 1.375rem); /* was 1rem / 16px */
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.015em;
  margin: 0;
  padding-top: .35rem;
  color: var(--ca-ink);
}
.ca-blog-card > p {
  color: var(--ca-muted);
  font-size: .875rem;
  line-height: 1.45;
  margin: 0;
  flex: 1;
}
.ca-blog-card-cta {
  align-self: flex-start;
  margin: .25rem 1.15rem 1.15rem;
  min-height: 2.5rem;
  padding: 0 1.1rem;
  pointer-events: none;
}
.ca-blog-card:hover .ca-blog-card-cta {
  background: var(--ca-brand-dark);
  color: #fff;
}
/* Featured images: cards only — never on single posts */
.single-post .post-thumbnail,
.single-post .wp-post-image,
.single .ca-prose > .wp-post-image,
.single article > .wp-post-image { display: none !important; }
.single .entry-date,
.blog .entry-date,
.archive .entry-date,
.ca-hide-date { display: none !important; }

/* Contact form */
.ca-form label { display: block; font-size: .875rem; }
.ca-form input, .ca-form textarea {
  display: block;
  width: 100%;
  margin-top: .35rem;
  padding: .65rem .75rem;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: .5rem;
}
.ca-form { display: grid; gap: 1rem; max-width: 28rem; }
.ca-form-success {
  background: var(--ca-brand-soft);
  color: var(--ca-brand-dark);
  padding: 1rem;
  border-radius: .75rem;
}

/* Footer */
.ca-footer {
  border-top: 1px solid rgba(0,0,0,.08);
  background: var(--ca-paper);
  color: var(--ca-muted);
  font-size: .875rem;
  padding: 2.5rem 0;
  margin-top: auto;
}
.ca-footer-grid {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media (min-width: 768px) {
  .ca-footer-grid { flex-direction: row; justify-content: space-between; }
}
.ca-footer strong { color: var(--ca-ink); font-weight: 500; }
.ca-footer-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem 2rem;
}
@media (min-width: 640px) { .ca-footer-nav { grid-template-columns: 1fr 1fr 1fr; } }
.ca-footer-nav a { color: inherit; text-decoration: none; }
.ca-footer-nav a:hover { color: var(--ca-ink); text-decoration: underline; }

/* Woo tweaks */
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce #respond input#submit {
  border-radius: 999px !important;
  background: var(--ca-brand) !important;
  color: #fff !important;
  font-weight: 700 !important;
}
.woocommerce .button.alt,
.woocommerce button.button.alt {
  background: var(--ca-navy) !important;
}

/* Cart checkout CTA — Woo Blocks uses an <a.wp-element-button>, so theme link colour/underline win without this */
.woocommerce-cart a.checkout-button,
.woocommerce-cart a.wc-block-cart__submit-button,
.woocommerce-page a.wc-block-cart__submit-button,
a.wc-block-cart__submit-button.wc-block-components-button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3rem;
  padding: .75rem 1.25rem !important;
  border: 0 !important;
  border-radius: .5rem !important;
  background: var(--ca-brand) !important;
  color: #fff !important;
  font-family: var(--ca-font-sans);
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  letter-spacing: 0;
  line-height: 1.2;
  text-decoration: none !important;
  text-align: center;
  box-shadow: none !important;
}
.woocommerce-cart a.checkout-button:hover,
.woocommerce-cart a.checkout-button:focus,
.woocommerce-cart a.checkout-button:visited,
.woocommerce-cart a.wc-block-cart__submit-button:hover,
.woocommerce-cart a.wc-block-cart__submit-button:focus,
.woocommerce-cart a.wc-block-cart__submit-button:visited,
.woocommerce-page a.wc-block-cart__submit-button:hover,
.woocommerce-page a.wc-block-cart__submit-button:focus,
.woocommerce-page a.wc-block-cart__submit-button:visited,
a.wc-block-cart__submit-button.wc-block-components-button:hover,
a.wc-block-cart__submit-button.wc-block-components-button:focus,
a.wc-block-cart__submit-button.wc-block-components-button:visited {
  background: var(--ca-brand-dark) !important;
  color: #fff !important;
  text-decoration: none !important;
}
.wc-block-cart__submit-button .wc-block-components-button__text {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  text-decoration: none !important;
}

/* Cart line item — Woo Blocks defaults to ~13px name / ~11px short description */
.woocommerce-cart .wc-block-cart-item__image,
.woocommerce-cart .wc-block-cart-items__header-image {
  width: 6.5rem;
}
.woocommerce-cart .wc-block-cart-item__image img {
  width: 6rem !important;
  height: 6rem !important;
  max-width: 6rem;
  border-radius: .5rem;
  object-fit: cover;
}
.woocommerce-cart .wc-block-cart-item__product,
.woocommerce-cart .wc-block-cart-item__wrap {
  font-size: 1rem;
}
.woocommerce-cart a.wc-block-components-product-name {
  font-size: 1.0625rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: var(--ca-ink) !important;
  text-decoration: none !important;
}
.woocommerce-cart a.wc-block-components-product-name:hover,
.woocommerce-cart a.wc-block-components-product-name:focus {
  color: var(--ca-navy) !important;
  text-decoration: underline !important;
}
.woocommerce-cart .wc-block-cart-item__prices,
.woocommerce-cart .wc-block-components-product-price,
.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--ca-ink) !important;
}
.woocommerce-cart .wc-block-components-product-price__regular {
  font-size: .875rem !important;
  font-weight: 400 !important;
  color: var(--ca-muted) !important;
}
.woocommerce-cart .wc-block-components-product-metadata,
.woocommerce-cart .wc-block-components-product-metadata__description,
.woocommerce-cart .wc-block-components-product-metadata__description p {
  font-size: .875rem !important;
  line-height: 1.45 !important;
  color: var(--ca-muted) !important;
}
.woocommerce-cart .wc-block-components-product-metadata__description p {
  margin: .4rem 0 0 !important;
}
.woocommerce-cart .wc-block-components-sale-badge {
  font-size: .75rem !important;
  font-weight: 600 !important;
}
.woocommerce-message,
.woocommerce-info { border-top-color: var(--ca-brand); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
  border-radius: .5rem;
  border-color: rgba(0,0,0,.15);
}
.site-content .woocommerce { max-width: var(--ca-max); margin: 0 auto; padding: 2rem 1rem 4rem; }

/* Video thumbs — play on-page, not a new YouTube tab */
.ca-videos { display: grid; gap: 1.5rem; margin-top: 2rem; }
@media (min-width: 768px) { .ca-videos { grid-template-columns: 1fr 1fr; } }
.ca-video {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: .75rem;
  overflow: hidden;
  background: transparent;
  color: #fff;
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.ca-video:hover { color: #fff; text-decoration: none; }
.ca-video:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.ca-video img { width: 100%; aspect-ratio: 16/9; object-fit: cover; pointer-events: none; }
.ca-video::after {
  content: "▶";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 3.5rem;
  height: 3.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: var(--ca-navy);
  border-radius: 999px;
  font-size: 1rem;
  pointer-events: none;
}
.ca-video span {
  position: absolute;
  left: .75rem; right: .75rem; bottom: .75rem;
  font-size: .875rem;
  font-weight: 500;
  z-index: 1;
  pointer-events: none;
}
.ca-video::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.25);
  pointer-events: none;
}

.ca-video-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(0,0,0,.8);
}
.ca-video-modal[hidden] { display: none !important; }
.ca-video-modal-panel { width: min(100%, 48rem); }
.ca-video-modal-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: .5rem;
  overflow: hidden;
}
.ca-video-modal-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.ca-video-modal-close {
  display: inline-block;
  margin-top: .75rem;
  padding: 0;
  border: 0;
  background: none;
  color: #fff;
  font: inherit;
  font-size: .875rem;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ca-video-modal-close:hover { color: #fff; }
body.ca-video-open { overflow: hidden; }

.ca-spec { align-items: start; }
.ca-spec img {
  max-height: none;
  object-fit: contain;
  background: var(--ca-paper);
}
.ca-spec > div { min-width: 0; }
.ca-spec dl { margin: 1.5rem 0 0; min-width: 0; }
.ca-spec dt, .ca-spec dd {
  font-size: .875rem;
}
.ca-spec dl > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: .75rem 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
  font-size: .875rem;
}
.ca-spec dt { color: var(--ca-ink); font-weight: 500; flex: 0 1 auto; }
.ca-spec dd {
  margin: 0;
  color: var(--ca-muted);
  text-align: right;
  min-width: 0;
  overflow-wrap: anywhere;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  border: 0;
}

/* Cookie consent — lean UK PECR banner */
.ca-cookie {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .97);
  border-top: 1px solid rgba(14, 61, 79, .12);
  box-shadow: 0 -8px 28px rgba(14, 61, 79, .08);
}
.ca-cookie[hidden] { display: none !important; }
.ca-cookie-inner {
  width: min(100%, var(--ca-max));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.ca-cookie-text {
  margin: 0;
  font-size: .8125rem;
  line-height: 1.45;
  color: var(--ca-muted);
}
.ca-cookie-text a {
  color: var(--ca-brand-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ca-cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
}
.ca-cookie-actions .ca-btn {
  min-height: 2.5rem;
  padding: 0 1rem;
  font-size: .8125rem;
}
@media (min-width: 720px) {
  .ca-cookie-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
  }
  .ca-cookie-text { flex: 1; max-width: 46rem; }
  .ca-cookie-actions { flex-shrink: 0; }
}
/* Sit above mobile sticky ATC on homepage */
body.has-sticky-atc .ca-cookie {
  bottom: calc(4.85rem + env(safe-area-inset-bottom));
  padding-bottom: .75rem;
}

/* ---- Cart drawer (prototype match) ---- */
body.ca-drawer-open { overflow: hidden; }
.ca-drawer {
  position: fixed;
  inset: 0;
  z-index: 60;
}
.ca-drawer[hidden] { display: none !important; }
.ca-drawer-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0,0,0,.4);
  cursor: pointer;
}
.ca-drawer-panel {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(100%, 28rem);
  display: flex;
  flex-direction: column;
  background: #fff;
  box-shadow: -8px 0 32px rgba(0,0,0,.12);
}
.ca-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.ca-drawer-title { margin: 0; font-size: .875rem; font-weight: 600; }
.ca-drawer-sub { margin: .15rem 0 0; font-size: .75rem; color: var(--ca-muted); }
.ca-drawer-x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  min-width: 2.75rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--ca-ink);
}
.ca-drawer-x:hover { background: var(--ca-paper); }
.ca-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem 1rem;
}
.ca-drawer [hidden] { display: none !important; }
.ca-drawer-empty p { margin: 0 0 1rem; color: var(--ca-muted); }
.ca-drawer-line:not([hidden]) {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
}
.ca-drawer-line img {
  width: 5rem;
  height: 5rem;
  border-radius: .5rem;
  object-fit: cover;
  flex-shrink: 0;
}
.ca-drawer-line-main { flex: 1; min-width: 0; }
.ca-drawer-name {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.ca-drawer-specs {
  margin: .4rem 0 0;
  font-size: .875rem;
  line-height: 1.45;
  color: var(--ca-muted);
}
.ca-drawer-each { margin: .35rem 0 0; font-size: .875rem; color: var(--ca-muted); }
.ca-drawer-qty { margin-top: .75rem; width: auto; max-width: none; }
.ca-drawer-line-total {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
.ca-drawer-ship {
  margin-top: 1.5rem;
  padding: 1rem;
  border-radius: .75rem;
  background: var(--ca-brand-soft);
  font-size: .875rem;
}
.ca-drawer-ship-title { margin: 0; font-weight: 600; color: var(--ca-brand-dark); }
.ca-drawer-ship p:last-child { margin: .35rem 0 0; color: var(--ca-muted); }
.ca-drawer-foot {
  border-top: 1px solid rgba(0,0,0,.08);
  padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom));
}
.ca-drawer-subtotal {
  display: flex;
  justify-content: space-between;
  margin-bottom: .75rem;
  font-size: .875rem;
}
.ca-drawer-subtotal span { color: var(--ca-muted); }
.ca-drawer-continue {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: .5rem;
  min-height: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--ca-navy);
  font-weight: 500;
  font-size: .875rem;
  text-decoration: none;
}
.ca-drawer-continue:hover { color: var(--ca-ink); text-decoration: none; }

/* ---- Checkout (prototype stepped + summary column) ---- */
.ca-is-checkout .ca-page { padding-top: 2rem; }
.ca-is-checkout .woocommerce-form-coupon-toggle,
.ca-is-checkout form.checkout_coupon,
.ca-is-checkout .woocommerce-additional-fields,
.ca-is-checkout #customer_details .col-2,
.ca-is-checkout .woocommerce-shipping-fields,
.ca-is-checkout .woocommerce-billing-fields > h3,
.ca-is-checkout .ca-checkout-hide-field,
.ca-is-checkout #order_review_heading {
  display: none !important;
}
.ca-checkout-back-wrap { margin: 0; }
.ca-checkout-back {
  font-size: .875rem;
  color: var(--ca-muted);
  text-decoration: none;
}
.ca-checkout-back:hover { color: var(--ca-ink); text-decoration: none; }
.ca-checkout-title {
  margin-top: .75rem;
  font-size: clamp(1.75rem, 4vw, 1.875rem);
}
.ca-checkout-lede { margin: .35rem 0 0 !important; font-size: .875rem; color: var(--ca-muted); }
.ca-journey {
  list-style: none;
  display: flex;
  gap: .5rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding: 0 0 .75rem;
  margin: 1.5rem 0 0;
  font-size: .75rem;
  color: var(--ca-muted);
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 640px) {
  .ca-journey { flex-wrap: wrap; overflow: visible; gap: .75rem; font-size: .875rem; }
}
.ca-journey li {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  flex-shrink: 0;
}
.ca-journey li[data-ca-step] { cursor: default; }
.ca-journey li.is-done { cursor: pointer; color: var(--ca-ink); }
.ca-journey li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: var(--ca-paper);
  font-size: .6875rem;
  font-weight: 700;
}
.ca-journey li.is-active { color: var(--ca-ink); font-weight: 600; }
.ca-journey li.is-active span,
.ca-journey li.is-done span {
  background: var(--ca-brand);
  color: #fff;
}
.ca-checkout-grid {
  display: grid;
  gap: 2rem;
  margin-top: 1.5rem;
  align-items: start;
}
@media (min-width: 768px) {
  .ca-checkout-grid { grid-template-columns: 1fr 18rem; gap: 2.5rem; }
}
.ca-checkout-primary { min-width: 0; width: 100%; position: relative; }
.ca-is-checkout #customer_details.col2-set,
.ca-is-checkout #customer_details .col-1 {
  width: 100%;
  float: none;
  max-width: none;
}
.ca-checkout-section-title {
  font-family: var(--ca-font-sans);
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0 0 1rem;
}
.ca-checkout-pane .form-row { margin: 0 0 1rem; }
.ca-is-checkout .ca-checkout-pane[hidden] { display: none !important; }
/* First paint / refresh: hide shipping fields until JS is on that step (avoids address flash on Contact). */
.ca-is-checkout:not(.ca-checkout-step-shipping) #billing_address_1_field,
.ca-is-checkout:not(.ca-checkout-step-shipping) #billing_address_2_field,
.ca-is-checkout:not(.ca-checkout-step-shipping) #billing_city_field,
.ca-is-checkout:not(.ca-checkout-step-shipping) #billing_postcode_field,
.ca-is-checkout:not(.ca-checkout-step-shipping) #billing_phone_field,
.ca-is-checkout:not(.ca-checkout-step-shipping) .ca-checkout-ship-note {
  display: none !important;
}
.ca-is-checkout:not(.ca-checkout-step-contact) #billing_email_field,
.ca-is-checkout:not(.ca-checkout-step-contact) #billing_first_name_field,
.ca-is-checkout:not(.ca-checkout-step-contact) #billing_last_name_field {
  display: none !important;
}
.ca-is-checkout #billing_address_2_field label.screen-reader-text {
  position: static !important;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
  clip-path: none !important;
  overflow: visible !important;
  white-space: normal !important;
  margin: 0 !important;
}
.ca-is-checkout:not(.ca-checkout-step-payment) #wc-stripe-express-checkout-element,
.ca-is-checkout:not(.ca-checkout-step-payment) .wc-stripe-express-checkout-element,
.ca-is-checkout:not(.ca-checkout-step-payment) #wc-stripe-payment-request-wrapper {
  display: none !important;
}
.ca-is-checkout #wc-stripe-express-checkout-button-separator,
.ca-is-checkout .wc-stripe-express-checkout-button-separator,
.ca-is-checkout #wc-stripe-payment-request-button-separator {
  display: none !important;
}
.ca-is-checkout .woocommerce form .form-row label {
  font-size: .875rem;
  font-weight: 500;
  color: var(--ca-ink);
}
.ca-is-checkout .woocommerce form .form-row,
.ca-is-checkout .woocommerce form .form-row .woocommerce-input-wrapper {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.ca-is-checkout .woocommerce form .form-row input.input-text,
.ca-is-checkout .woocommerce form .form-row select,
.ca-is-checkout .woocommerce form .form-row textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: .25rem;
  padding: .65rem .75rem;
  border-radius: .5rem;
  border: 1px solid rgba(0,0,0,.15);
}
.ca-is-checkout .form-row.woocommerce-invalid label {
  color: var(--ca-heat);
}
.ca-is-checkout .form-row.woocommerce-invalid input.input-text,
.ca-is-checkout .form-row.woocommerce-invalid select,
.ca-is-checkout .form-row.woocommerce-invalid textarea,
.ca-is-checkout .form-row.woocommerce-invalid input.input-text:focus,
.ca-is-checkout .form-row.woocommerce-invalid select:focus,
.ca-is-checkout .form-row.woocommerce-invalid textarea:focus {
  border-color: var(--ca-heat);
  box-shadow: 0 0 0 3px rgba(194, 65, 12, .16);
  outline: none;
}
.ca-checkout-field-error {
  display: block;
  margin-top: .35rem;
  font-size: .8125rem;
  font-weight: 500;
  color: var(--ca-heat);
}
.ca-is-checkout .form-row.woocommerce-invalid .woocommerce-form__label-for-checkbox {
  color: var(--ca-heat);
}
.ca-is-checkout .form-row.woocommerce-invalid #terms {
  outline: 2px solid var(--ca-heat);
  outline-offset: 2px;
}
.ca-is-checkout .wc_payment_methods.ca-checkout-invalid-pay {
  outline: 2px solid var(--ca-heat);
  outline-offset: 4px;
  border-radius: .5rem;
}
.ca-is-checkout .woocommerce form .form-row-first,
.ca-is-checkout .woocommerce form .form-row-last {
  float: none;
  width: 100%;
  max-width: 100%;
}
@media (min-width: 640px) {
  .ca-is-checkout .woocommerce-billing-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr;
  }
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="contact"] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 .75rem;
  }
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="contact"] .ca-checkout-section-title,
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="contact"] #billing_email_field {
    grid-column: 1 / -1;
  }
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="shipping"] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 .75rem;
  }
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="shipping"] .ca-checkout-section-title,
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="shipping"] #billing_address_1_field,
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="shipping"] #billing_address_2_field,
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="shipping"] #billing_phone_field,
  .ca-is-checkout .ca-checkout-pane[data-ca-pane="shipping"] .ca-checkout-ship-note {
    grid-column: 1 / -1;
  }
}
.ca-is-checkout .ca-checkout-summary thead { display: none; }
.ca-is-checkout .ca-checkout-summary .product-total { text-align: right; }
.ca-is-checkout #payment > h3 { display: none; }
.ca-checkout-ship-note {
  margin: .25rem 0 1rem;
  padding: .75rem;
  border-radius: .5rem;
  border: 1px solid var(--ca-brand);
  background: var(--ca-brand-soft);
  font-size: .875rem;
}
.ca-checkout-ship-note-title { margin: 0; font-weight: 600; color: var(--ca-brand-dark); }
.ca-checkout-ship-note p { margin: .15rem 0 0; color: var(--ca-muted); }
.ca-checkout-nav {
  display: flex;
  gap: .5rem;
  margin-top: .25rem;
}
.ca-checkout-nav .ca-btn-ghost { flex: 0 0 auto; padding: 0 1.25rem; }
.ca-checkout-nav [data-ca-checkout-next] { flex: 1; min-height: 3rem; }
/* display:flex/inline-flex beats the hidden attribute — Review uses Woo Pay, not Continue */
.ca-is-checkout .ca-checkout-nav[hidden],
.ca-is-checkout [data-ca-checkout-next][hidden],
.ca-is-checkout [data-ca-checkout-back][hidden],
.ca-checkout-step-review .ca-checkout-nav {
  display: none !important;
}
.ca-checkout-review-card {
  border: 1px solid rgba(0,0,0,.1);
  border-radius: .75rem;
  padding: 1rem;
  font-size: .875rem;
  display: grid;
  gap: .75rem;
  margin-bottom: 1.25rem;
}
.ca-checkout-review-card p { margin: .15rem 0 0; color: var(--ca-muted); }
.ca-checkout-review-card strong { color: var(--ca-ink); font-weight: 600; }
.ca-checkout-summary {
  background: var(--ca-paper);
  border-radius: .75rem;
  padding: 1.25rem;
}
@media (min-width: 768px) {
  .ca-checkout-summary { position: sticky; top: 5rem; }
}
@media (max-width: 767px) {
  .ca-checkout-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.25rem;
  }
  .ca-checkout-primary,
  .ca-checkout-summary {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .ca-checkout-summary {
    order: -1;
    padding: .75rem 1rem;
  }
  .ca-checkout-summary-title { display: none; }
  .ca-is-checkout .ca-checkout-summary table.shop_table { margin: .15rem 0 0; }
  .ca-is-checkout .ca-checkout-summary .cart-subtotal,
  .ca-is-checkout .ca-checkout-summary .woocommerce-shipping-totals,
  .ca-is-checkout .ca-checkout-summary .fee,
  .ca-is-checkout .ca-checkout-summary .tax-rate,
  .ca-is-checkout .ca-checkout-summary .order-total small,
  .ca-is-checkout .ca-checkout-summary .includes_tax {
    display: none !important;
  }
  .ca-checkout-thumb {
    width: 3rem;
    height: 3rem;
  }
  .ca-checkout-item-copy {
    font-size: .875rem;
  }
  .ca-checkout-item-copy::after {
    content: "Free next-day";
    display: block;
    margin-top: .15rem;
    font-weight: 400;
    color: var(--ca-muted);
    font-size: .8125rem;
  }
  .ca-is-checkout .ca-checkout-summary table.shop_table tfoot .order-total th,
  .ca-is-checkout .ca-checkout-summary table.shop_table tfoot .order-total td,
  .ca-is-checkout .ca-checkout-summary table.shop_table tfoot tr:first-child th,
  .ca-is-checkout .ca-checkout-summary table.shop_table tfoot tr:first-child td {
    border-top: 0;
    padding-top: .4rem;
  }
  body.ca-checkout-step-payment .ca-checkout-summary {
    display: none !important;
  }
}
.ca-checkout-summary-title {
  margin: 0;
  font-size: .875rem;
  font-weight: 500;
}
.ca-is-checkout .ca-checkout-summary table.shop_table {
  width: 100%;
  margin: 1rem 0 0;
  border: 0;
  background: transparent;
}
.ca-is-checkout .ca-checkout-summary table.shop_table th,
.ca-is-checkout .ca-checkout-summary table.shop_table td {
  border: 0;
  padding: .35rem 0;
  background: transparent;
  font-size: .875rem;
}
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot th,
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot td {
  border-top: 1px solid rgba(0,0,0,.1);
  padding-top: 1rem;
}
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot .cart-subtotal th,
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot .cart-subtotal td,
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot .woocommerce-shipping-totals th,
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot .woocommerce-shipping-totals td {
  border-top: 0;
  padding-top: .35rem;
}
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot tr:first-child th,
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot tr:first-child td {
  border-top: 1px solid rgba(0,0,0,.1);
  padding-top: 1rem;
}
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot .order-total th,
.ca-is-checkout .ca-checkout-summary table.shop_table tfoot .order-total td {
  font-weight: 700;
}
.ca-checkout-item {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
}
.ca-checkout-thumb {
  width: 4rem;
  height: 4rem;
  object-fit: cover;
  border-radius: .375rem;
  flex-shrink: 0;
}
.ca-checkout-item-copy {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
}
.ca-is-checkout #payment .wc_payment_methods {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: grid;
  gap: .5rem;
}
.ca-is-checkout #payment .wc_payment_method {
  margin: 0;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: .5rem;
  padding: .75rem;
}
.ca-is-checkout #payment .wc_payment_method:has(input:checked) {
  border-color: var(--ca-brand);
  background: var(--ca-brand-soft);
}
.ca-is-checkout #payment .payment_box {
  margin: .75rem 0 0;
  padding: 0;
  background: transparent;
}
.ca-checkout-review-note {
  font-size: .8125rem;
  color: var(--ca-muted);
  margin: 0 0 .75rem;
  text-align: center;
}
.ca-is-checkout .woocommerce-privacy-policy-text {
  display: none !important;
}
/* Stripe-safe hide — never display:none on #payment / card iframes */
.ca-is-checkout .ca-checkout-clip {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  pointer-events: none;
}

/* Passwordless: never show login / create-account on checkout or thank-you */
.ca-is-checkout .woocommerce-form-login-toggle,
.ca-is-checkout .woocommerce-form-login,
.ca-is-checkout .woocommerce-account-fields,
.ca-is-checkout .create-account,
.ca-is-checkout #createaccount,
.ca-is-checkout label[for="createaccount"],
.ca-is-thanks .woocommerce-form-login-toggle,
.ca-is-thanks .woocommerce-form-login,
.ca-is-thanks .woocommerce-account-fields,
.ca-is-thanks .create-account,
.wc-block-checkout__create-account,
.wc-block-order-confirmation-create-account,
.woocommerce-order-received .woocommerce-form-register,
.woocommerce-order-received form.woocommerce-form-register {
  display: none !important;
}

/* Checkout pay CTA — brand teal, full-width, centred */
.ca-is-checkout #payment .place-order {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: center;
  margin-top: 1rem;
  gap: .5rem;
}
.ca-checkout-step-review #payment .place-order {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
}
.ca-is-checkout #place_order {
  width: 100%;
  max-width: 28rem;
  margin: .25rem auto 0;
  min-height: 3.35rem;
  padding: .85rem 1.5rem;
  font-family: var(--ca-font-sans);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.2;
  text-align: center;
  background: var(--ca-brand) !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(0, 130, 176, .28);
}
.ca-checkout-step-review #place_order {
  flex: 1;
  width: auto;
  max-width: none;
  margin: 0;
}
.ca-checkout-step-review #payment .place-order [data-ca-checkout-back] {
  flex: 0 0 auto;
}
.ca-is-checkout #place_order:hover,
.ca-is-checkout #place_order:focus {
  background: var(--ca-brand-dark) !important;
  color: #fff !important;
}

/* ---- Thank you / confirmation ---- */
.ca-thanks {
  max-width: 42rem;
  width: 100%;
  min-width: 0;
  margin: 0 auto;
  padding: 2rem 0 3.5rem;
}
.ca-page .ca-thanks { padding-left: 0; padding-right: 0; }
.ca-is-thanks .woocommerce-order-details,
.ca-is-thanks .woocommerce-customer-details,
.ca-thanks .woocommerce-order-details,
.ca-thanks .woocommerce-customer-details,
.ca-is-thanks .ca-footer {
  display: none !important;
}
.ca-thanks-hero { text-align: center; }
.ca-thanks-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  background: #e6f6f1;
  color: #067d62;
  font-size: 1.35rem;
  font-weight: 700;
}
.ca-thanks-hero h1 {
  margin-top: 1rem;
  font-size: clamp(1.75rem, 4vw, 2rem);
}
.ca-thanks-total { margin: .35rem 0 0; font-weight: 600; overflow-wrap: anywhere; }
.ca-thanks-hero p { overflow-wrap: anywhere; }
.ca-thanks-card {
  margin-top: 1.75rem;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: .75rem;
  padding: 1.15rem;
  overflow: hidden;
}
@media (min-width: 640px) {
  .ca-thanks-card { padding: 1.35rem 1.5rem; }
}
.ca-thanks-line {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
}
.ca-thanks-line > div {
  min-width: 0;
  flex: 1;
}
.ca-thanks-line img {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: .5rem;
  object-fit: cover;
  flex-shrink: 0;
}
@media (min-width: 640px) {
  .ca-thanks-line img { width: 5rem; height: 5rem; }
}
.ca-thanks-pname { margin: 0; font-weight: 500; }
.ca-thanks-pline { margin: .35rem 0 0; font-size: .875rem; font-weight: 600; }
.ca-thanks-steps {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 1.15rem 0 0;
  border-top: 1px solid rgba(0,0,0,.08);
  display: grid;
  gap: 1rem;
}
.ca-thanks-steps li {
  display: flex;
  gap: .75rem;
  font-size: .875rem;
}
.ca-thanks-steps li > div {
  min-width: 0;
  flex: 1;
}
.ca-thanks-ico {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: var(--ca-brand-soft);
  color: var(--ca-brand-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  line-height: 1;
}
.ca-thanks-step-title { margin: 0; font-weight: 500; }
.ca-thanks-block-title {
  font-family: var(--ca-font-sans);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ca-muted);
  margin: 1.35rem 0 .65rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(0,0,0,.08);
}
.ca-thanks-totals {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: .9375rem;
}
.ca-thanks-totals th,
.ca-thanks-totals td {
  padding: .45rem 0;
  text-align: left;
  font-weight: 500;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.ca-thanks-totals th:first-child {
  width: 32%;
  padding-right: .5rem;
}
.ca-thanks-totals td:last-child,
.ca-thanks-totals th:last-child {
  text-align: right;
  font-variant-numeric: tabular-nums;
  padding-left: .5rem;
  white-space: normal;
  word-break: break-word;
}
@media (min-width: 640px) {
  .ca-thanks-totals td:last-child,
  .ca-thanks-totals th:last-child {
    white-space: nowrap;
    padding-left: 1rem;
  }
}
.ca-thanks-muted { color: var(--ca-muted); font-weight: 400; }
.ca-thanks-grand th,
.ca-thanks-grand td {
  border-top: 1px solid rgba(0,0,0,.1);
  padding-top: .7rem;
  font-weight: 700;
  color: var(--ca-ink);
}
.ca-thanks-addrs {
  display: grid;
  gap: 1.15rem;
}
@media (min-width: 640px) {
  .ca-thanks-addrs { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
.ca-thanks-addrs h3 {
  font-family: var(--ca-font-sans);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ca-muted);
  margin: 0 0 .4rem;
}
.ca-thanks-addrs p { margin: 0; font-size: .9375rem; color: var(--ca-ink); }
.ca-thanks-actions {
  display: grid;
  gap: .75rem;
  margin-top: 1.25rem;
}
@media (min-width: 640px) {
  .ca-thanks-actions { grid-template-columns: 1fr 1fr; }
}
.ca-thanks-actions .ca-btn {
  width: 100%;
  justify-self: stretch;
  min-height: 3rem;
}
.ca-thanks-failed { text-align: center; }

/* ---- My Account (logged-in dashboard; guests go to magic login) ---- */
.ca-is-account .ca-page { padding-bottom: 4rem; }
.ca-is-account .woocommerce {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .ca-is-account .woocommerce {
    grid-template-columns: 13rem minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
  }
}
.ca-is-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .2rem;
}
.ca-is-account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: .55rem .75rem;
  border-radius: .5rem;
  color: var(--ca-ink);
  text-decoration: none;
  font-size: .9375rem;
}
.ca-is-account .woocommerce-MyAccount-navigation a:hover {
  background: var(--ca-paper);
  text-decoration: none;
}
.ca-is-account .woocommerce-MyAccount-navigation .is-active a {
  background: var(--ca-brand-soft);
  color: var(--ca-navy);
  font-weight: 600;
}
.ca-is-account .woocommerce-MyAccount-content { min-width: 0; }
.ca-is-account .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.ca-is-account .woocommerce-MyAccount-content h2,
.ca-is-account .woocommerce-MyAccount-content h3 {
  font-family: var(--ca-font-sans);
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 0 .75rem;
}
.ca-is-account .woocommerce table.shop_table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: .875rem;
}
.ca-is-account .woocommerce table.shop_table th,
.ca-is-account .woocommerce table.shop_table td {
  padding: .65rem .4rem;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.ca-is-account .woocommerce form .form-row { margin: 0 0 1rem; }
.ca-is-account .woocommerce form .form-row input.input-text,
.ca-is-account .woocommerce form .form-row textarea,
.ca-is-account .woocommerce form .form-row select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: .25rem;
  padding: .65rem .75rem;
  border-radius: .5rem;
  border: 1px solid rgba(0,0,0,.15);
}
.ca-is-account .woocommerce button.button,
.ca-is-account .woocommerce a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 1.25rem;
  border-radius: 999px;
  border: 0;
  background: var(--ca-brand);
  color: #fff !important;
  font-weight: 700;
  font-size: .875rem;
  text-decoration: none;
}
.ca-is-account .woocommerce button.button:hover,
.ca-is-account .woocommerce a.button:hover {
  background: var(--ca-brand-dark);
  color: #fff !important;
  text-decoration: none;
}
.ca-is-account .woocommerce-Addresses {
  display: grid;
  gap: 1.25rem;
}
@media (min-width: 640px) {
  .ca-is-account .woocommerce-Addresses { grid-template-columns: 1fr 1fr; }
}
