/* ============================================================================
   SIMPLY ARI — SITE STYLESHEET
   ----------------------------------------------------------------------------
   Styles for all pages EXCEPT the homepage.
   Homepage styles live in simply-ari-home.css, loaded conditionally.

   MAINTENANCE NOTES
   - To change anything, edit THIS file. One file, all site-wide styles.
   - After editing, bump the version number in the child theme's
     functions.php enqueue call (e.g. '1.0.0' -> '1.0.1') so browsers and
     caches pick up the change. If you skip this, you may see stale CSS.
   - Sections are clearly delimited. Use Find (Ctrl/Cmd+F) to jump to a
     section by its heading.

   SECTION INDEX
     1. PRODUCT PAGE — benefit pills, skin chips, trust badges
     2. ABOUT PAGE
     3. CONTACT PAGE
     4. CHECKOUT (WooCommerce block checkout)
     5. THANK-YOU / ORDER RECEIVED PAGE
   ============================================================================ */



/* ============================================================================
   1. PRODUCT PAGE — Benefit Pills, Skin Types, Trust Badges
   ============================================================================ */

.sa-benefit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 14px 0;
}
.sa-benefit-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid rgba(58,156,142,0.15);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(58,156,142,0.06);
}
.sa-benefit-icon {
  font-size: 18px;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  background: #e1f5ee;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sa-benefit-text {
  font-size: 12px;
  font-weight: 700;
  color: #2d2233;
  line-height: 1.35;
  font-family: 'Nunito Sans', sans-serif;
}

.sa-skin-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #7a6e82;
  margin-bottom: 7px;
  font-family: 'Nunito Sans', sans-serif;
}
.sa-skin-chips {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.sa-skin-chip {
  font-size: 12px;
  font-weight: 600;
  font-family: 'Nunito Sans', sans-serif;
  padding: 5px 14px;
  border-radius: 40px;
  border: 1.5px solid #3a9c8e;
  color: #3a9c8e;
  background: transparent;
}

.sa-trust-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(58,156,142,0.15);
}
.sa-trust-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  font-family: 'Nunito Sans', sans-serif;
  color: #7a6e82;
  background: #f5f0eb;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid rgba(58,156,142,0.12);
}
.sa-trust-badge span {
  font-size: 14px;
}

@media (max-width: 480px) {
  .sa-benefit-grid {
    grid-template-columns: 1fr;
  }
  .sa-trust-row {
    flex-direction: column;
  }
}




/* ============================================================================
   2. ABOUT PAGE
   ============================================================================ */

/* TEMPORARY - TOOLBAR OFFSET
   Pushes the hero text down so it is not hidden behind the site toolbar
   while that toolbar is still being fixed. REMOVE THIS BLOCK once the
   toolbar work is done. */
.sa-hero .wp-block-cover__inner-container {
  padding-top: 160px !important;
}
@media (max-width: 800px) {
  .sa-hero .wp-block-cover__inner-container {
    padding-top: 76px !important;
  }
}
/* END temporary toolbar offset */

.sa-section { padding: 80px 40px; }
@media (max-width: 800px) { .sa-section { padding: 60px 20px; } }

.sa-eyebrow {
  font-size: 10px !important; font-weight: 800; letter-spacing: 0.24em;
  text-transform: uppercase; color: #3a9c8e; margin-bottom: 6px;
}
.sa-stitle {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(28px, 3.5vw, 46px) !important; font-weight: 600;
  line-height: 1.1; color: #2d2233;
}
.sa-stitle em { color: #3a9c8e; font-style: italic; }
.sa-muted { font-size: 15px; color: #7a6e82; line-height: 1.8; }

.sa-hero .wp-block-cover__inner-container { max-width: 1160px; margin: 0 auto; width: 100%; padding: 0 40px 64px; }
.sa-kicker {
  display: inline-block; background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2); color: #fff;
  font-size: 10px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase;
  padding: 6px 14px; border-radius: 40px; margin-bottom: 18px;
}
.sa-hero-h1 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(38px, 6vw, 72px) !important; font-weight: 600;
  line-height: 1.05; color: #fff !important; margin-bottom: 16px; max-width: 640px;
}
.sa-hero-h1 em { color: #fce8f3; font-style: italic; }
.sa-hero-sub { font-size: 15px; color: rgba(255,255,255,0.82); line-height: 1.7; max-width: 460px; }
@media (max-width: 800px) { .sa-hero .wp-block-cover__inner-container { padding: 0 20px 44px; } }

.sa-founders-wrap { background: #fdf9f6; }
.sa-founders { border-radius: 24px; overflow: hidden; box-shadow: 0 4px 20px rgba(58,156,142,0.07); background: #fff; gap: 0 !important; }
.sa-fnd-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sa-fnd-content { padding: 60px 52px !important; display: flex; flex-direction: column; justify-content: center; }
.sa-fnd-names { font-family: 'Cormorant Garamond', serif !important; font-size: 26px; font-weight: 600; font-style: italic; color: #3a9c8e; margin: 6px 0 0; }
.sa-fnd-role { font-size: 11px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: #7a6e82; margin: 2px 0 0; }
.sa-fnd-soc { margin-top: 14px; }
@media (max-width: 800px) { .sa-fnd-content { padding: 40px 28px !important; } }

.sa-story-wrap { background: linear-gradient(180deg,#fdf9f6 0%,#eef7f3 18%,#eef7f3 82%,#fdf9f6 100%); text-align: center; }
.sa-story-lead {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(20px, 2.4vw, 26px) !important; font-style: italic;
  color: #3a9c8e; line-height: 1.5; margin: 24px 0 28px;
}
.sa-story-body { font-size: 16px; color: #3a3a3a; line-height: 1.85; text-align: left; }

.sa-cardgrid { gap: 20px !important; margin-top: 36px; }
.sa-vcard, .sa-icard {
  background: #fff; border-radius: 16px; padding: 34px 28px !important;
  border: 1px solid rgba(58,156,142,0.12);
  box-shadow: 0 4px 20px rgba(58,156,142,0.07);
  position: relative; overflow: hidden;
  transition: transform 0.22s, box-shadow 0.22s;
}
.sa-vcard:hover, .sa-icard:hover { transform: translateY(-6px); box-shadow: 0 14px 40px rgba(58,156,142,0.15); }
.sa-vcard::before, .sa-icard::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; }
.sa-cardgrid .wp-block-column:nth-child(1) .sa-vcard::before,
.sa-cardgrid .wp-block-column:nth-child(1) .sa-icard::before { background: linear-gradient(90deg,#3a9c8e,#e05a9a); }
.sa-cardgrid .wp-block-column:nth-child(2) .sa-vcard::before,
.sa-cardgrid .wp-block-column:nth-child(2) .sa-icard::before { background: linear-gradient(90deg,#e05a9a,#2d8a50); }
.sa-cardgrid .wp-block-column:nth-child(3) .sa-vcard::before,
.sa-cardgrid .wp-block-column:nth-child(3) .sa-icard::before { background: linear-gradient(90deg,#2d8a50,#3a9c8e); }
.sa-card-title { font-family: 'Cormorant Garamond', serif !important; font-size: 24px !important; font-weight: 600; color: #2d2233; margin-bottom: 8px; }
.sa-icard-num { font-family: 'Cormorant Garamond', serif !important; font-size: 40px; font-weight: 600; line-height: 1; margin-bottom: 6px; }
.sa-icard-num em { font-style: italic; }
.sa-cardgrid .wp-block-column:nth-child(1) .sa-icard-num em { color: #9ed8d0; }
.sa-cardgrid .wp-block-column:nth-child(2) .sa-icard-num em { color: #f5c0d8; }
.sa-cardgrid .wp-block-column:nth-child(3) .sa-icard-num em { color: #9ed4b4; }

.sa-ing-wrap { background: #fdf9f6; }
.sa-ing-intro { font-size: 15px; color: #7a6e82; line-height: 1.75; max-width: 540px; margin: 14px auto 0; }

.sa-btn .wp-block-button__link {
  background: #3a9c8e !important; color: #fff !important;
  font-family: 'Nunito Sans', sans-serif; font-size: 12px; font-weight: 800;
  letter-spacing: 0.13em; text-transform: uppercase;
  padding: 13px 36px; border-radius: 40px;
}
.sa-btn .wp-block-button__link:hover { opacity: 0.88; }

@media (max-width: 781px) {
  .sa-founders, .sa-cardgrid { display: block; }
  .sa-founders .wp-block-column, .sa-cardgrid .wp-block-column { margin-bottom: 20px; }
}

/* ============================================================
   NEWSLETTER / SUREFORMS — VERTICAL STACK (TURNSTILE-AWARE)
   Full-width column stack: email pill → Turnstile → submit pill.
   Each element is its own row, so nothing breaks regardless of
   whether Turnstile is active or hidden.
   ============================================================ */

.sa-nl {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  max-width: 100vw;
  background: linear-gradient(135deg, #e1f5ee 0%, #eaf5ee 100%);
  padding: 80px 20px;
  text-align: center !important;
}
.sa-nl .sa-nl-eyebrow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #3a9c8e;
  margin-bottom: 10px;
  text-align: center !important;
}
.sa-nl .sa-nl-eyebrow::before,
.sa-nl .sa-nl-eyebrow::after {
  content: "" !important;
  display: inline-block !important;
  width: 28px !important;
  height: 1px !important;
  background: #3a9c8e !important;
  opacity: 0.4 !important;
  flex: 0 0 auto !important;
}
.sa-nl h2.wp-block-heading,
.sa-nl .wp-block-heading,
div.sa-nl h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(28px, 3.5vw, 42px) !important;
  font-weight: 600 !important;
  color: #2d2233 !important;
  line-height: 1.15 !important;
  margin: 0 auto 12px !important;
  text-align: center !important;
  display: block !important;
  width: 100% !important;
}
.sa-nl h2.wp-block-heading em,
.sa-nl .wp-block-heading em {
  color: #3a9c8e !important;
  font-style: italic !important;
}
.sa-nl > p,
.sa-nl p.has-text-align-center {
  font-size: 14px;
  color: #7a6e82;
  line-height: 1.7;
  max-width: 480px;
  margin: 0 auto 28px !important;
  text-align: center !important;
}

/* Form container */
.sa-nl .srfm-form-container {
  background: transparent !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 420px !important;
  margin: 0 auto !important;
}

/* Form — full-width column, centred */
.sa-nl form.srfm-form {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 420px !important;
  margin: 0 auto !important;
  gap: 12px !important;
}

/* Email block — full width */
.sa-nl .srfm-email-block-wrap {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.sa-nl .srfm-email-block,
.sa-nl .srfm-block-wrap {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Email input — full width rounded pill */
.sa-nl input.srfm-input-email {
  height: 54px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 0 22px !important;
  border: 1.5px solid rgba(58,156,142,0.3) !important;
  border-radius: 40px !important;
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 15px !important;
  background: #ffffff !important;
  color: #2d2233 !important;
  margin: 0 !important;
  box-shadow: none !important;
  display: block !important;
}
.sa-nl input.srfm-input-email:focus {
  border-color: #3a9c8e !important;
  box-shadow: none !important;
  outline: none !important;
}
.sa-nl input.srfm-input-email::placeholder {
  color: #b0a8b8 !important;
}

/* Submit container — full width column
   DOM order: .cf-turnstile → br.cf-turnstile-br → button
   We keep this order — Turnstile above button looks intentional */
.sa-nl .srfm-submit-container {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Turnstile widget — centred, full row */
.sa-nl .cf-turnstile {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

/* Hide the <br> SureForms injects */
.sa-nl .cf-turnstile-br {
  display: none !important;
}

/* wp-block-button wrapper — full width */
.sa-nl .srfm-submit-container .wp-block-button {
  width: 100% !important;
  margin: 0 !important;
  text-align: center !important;
}

/* Subscribe button — full width rounded pill */
.sa-nl button#srfm-submit-btn,
.sa-nl .srfm-button {
  background: #3a9c8e !important;
  color: #ffffff !important;
  border: none !important;
  height: 54px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 0 32px !important;
  border-radius: 40px !important;
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  margin: 0 !important;
  display: block !important;
  transition: background 0.18s !important;
}
.sa-nl button#srfm-submit-btn:hover,
.sa-nl .srfm-button:hover {
  background: #2d8a50 !important;
}
.sa-nl .srfm-submit-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.sa-nl .srfm-error-wrap {
  position: absolute !important;
  pointer-events: none !important;
}
.sa-nl .srfm-validation-error {
  text-align: center !important;
  font-size: 12px !important;
}
/* ↑↑↑ END newsletter / SureForms block ↑↑↑ */


/* ============================================================================
   3. CONTACT PAGE
   ============================================================================ */

.sa-hero { position: relative; display: flex; align-items: flex-end; overflow: hidden; }
.sa-hero .wp-block-cover__image-background {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}
.sa-hero .wp-block-cover__inner-container { position: relative; z-index: 2; }

.sa-contact-wrap { background: #fdf9f6; }
.sa-contact-intro {
  font-size: 15px; color: #7a6e82; line-height: 1.75;
  max-width: 540px; margin: 14px auto 0; text-align: center;
}
.sa-contact-grid { gap: 20px !important; margin-top: 40px; max-width: 1000px; margin-left: auto; margin-right: auto; }
.sa-ccard {
  background: #fff; border-radius: 16px; padding: 38px 30px !important;
  border: 1px solid rgba(58,156,142,0.12);
  box-shadow: 0 4px 20px rgba(58,156,142,0.07);
  text-align: center; position: relative; overflow: hidden;
  transition: transform 0.22s, box-shadow 0.22s;
}
.sa-ccard:hover { transform: translateY(-6px); box-shadow: 0 14px 40px rgba(58,156,142,0.15); }
.sa-ccard::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; }
.sa-contact-grid .wp-block-column:nth-child(1) .sa-ccard::before { background: linear-gradient(90deg,#3a9c8e,#e05a9a); }
.sa-contact-grid .wp-block-column:nth-child(2) .sa-ccard::before { background: linear-gradient(90deg,#e05a9a,#2d8a50); }
.sa-contact-grid .wp-block-column:nth-child(3) .sa-ccard::before { background: linear-gradient(90deg,#2d8a50,#3a9c8e); }
.sa-ccard-emoji {
  width: 56px; height: 56px; margin: 0 auto 18px !important;
  display: flex; align-items: center; justify-content: center;
  background: #e1f5ee; border-radius: 50%; font-size: 24px;
}
.sa-ccard-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 24px !important; font-weight: 600;
  color: #2d2233; margin-bottom: 8px;
}
.sa-ccard .sa-muted { font-size: 14px; margin-bottom: 12px; }
.sa-ccard-detail {
  font-size: 13px; font-weight: 800; letter-spacing: 0.04em;
  color: #3a9c8e; font-family: 'Nunito Sans', sans-serif;
}

.sa-faq-wrap { background: linear-gradient(180deg,#fdf9f6 0%,#eef7f3 18%,#eef7f3 82%,#fdf9f6 100%); }
.sa-faq-intro {
  font-size: 15px; color: #7a6e82; line-height: 1.75;
  max-width: 540px; margin: 14px auto 0; text-align: center;
}
.sa-faq { max-width: 720px; margin: 40px auto 0; }
.sa-faq-item {
  background: #fff; border: 1px solid rgba(58,156,142,0.12);
  border-radius: 14px; margin-bottom: 14px; padding: 0;
  box-shadow: 0 4px 20px rgba(58,156,142,0.06);
  transition: box-shadow 0.22s;
}
.sa-faq-item[open] { box-shadow: 0 10px 32px rgba(58,156,142,0.13); }
.sa-faq-item summary {
  list-style: none; cursor: pointer; padding: 22px 26px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 16px; font-weight: 700; color: #2d2233;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.sa-faq-item summary::-webkit-details-marker { display: none; }
.sa-faq-item summary::after {
  content: "+"; flex: 0 0 auto;
  font-size: 24px; font-weight: 400; line-height: 1;
  color: #3a9c8e; transition: transform 0.22s;
}
.sa-faq-item[open] summary::after { content: "-"; }
.sa-faq-item p {
  font-size: 15px; color: #3a3a3a; line-height: 1.8;
  font-family: 'Nunito Sans', sans-serif;
  margin: 0 26px 24px;
}
.sa-faq-item p strong { color: #2d2233; font-weight: 700; }

.sa-formband {
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  width: 100vw; max-width: 100vw;
  background: linear-gradient(135deg, #e1f5ee 0%, #eaf5ee 100%);
  padding: 80px 20px; text-align: center;
}
.sa-form-eyebrow {
  display: flex !important; align-items: center !important; justify-content: center !important;
  gap: 10px; font-size: 10px; font-weight: 800; letter-spacing: 0.24em;
  text-transform: uppercase; color: #3a9c8e; margin-bottom: 10px;
}
.sa-form-eyebrow::before, .sa-form-eyebrow::after {
  content: ""; display: inline-block; width: 28px; height: 1px;
  background: #3a9c8e; opacity: 0.4; flex: 0 0 auto;
}
.sa-formband h2.wp-block-heading {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(28px, 3.5vw, 42px) !important; font-weight: 600 !important;
  color: #2d2233 !important; line-height: 1.15 !important;
  margin: 0 auto 12px !important; text-align: center !important;
}
.sa-formband h2.wp-block-heading em { color: #3a9c8e !important; font-style: italic !important; }
.sa-formband > p {
  font-size: 14px; color: #7a6e82; line-height: 1.7;
  max-width: 480px; margin: 0 auto 32px !important; text-align: center;
}
.sa-formband .srfm-form-container {
  background: #fff !important;
  border: 1px solid rgba(58,156,142,0.12) !important;
  border-radius: 20px !important;
  box-shadow: 0 14px 40px rgba(58,156,142,0.12) !important;
  padding: 40px !important;
  width: 100% !important; max-width: 560px !important;
  margin: 0 auto !important; text-align: left !important;
}
.sa-formband .srfm-block-label {
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 11px !important; font-weight: 800 !important;
  letter-spacing: 0.14em !important; text-transform: uppercase !important;
  color: #7a6e82 !important; margin-bottom: 8px !important; display: block !important;
}
.sa-formband .srfm-required { color: #e05a9a !important; }
.sa-formband input.srfm-input-common,
.sa-formband textarea.srfm-input-common {
  width: 100% !important; box-sizing: border-box !important;
  border: 1.5px solid rgba(58,156,142,0.3) !important;
  border-radius: 12px !important; background: #fdf9f6 !important;
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 15px !important; color: #2d2233 !important;
  padding: 13px 16px !important; box-shadow: none !important;
  transition: border-color 0.15s !important;
}
.sa-formband input.srfm-input-common { height: 52px !important; }
.sa-formband textarea.srfm-input-common { min-height: 130px !important; resize: vertical !important; }
.sa-formband input.srfm-input-common:focus,
.sa-formband textarea.srfm-input-common:focus {
  border-color: #3a9c8e !important; outline: none !important; box-shadow: none !important;
}
.sa-formband .srfm-submit-container .wp-block-button { width: 100% !important; text-align: center !important; }
.sa-formband button#srfm-submit-btn,
.sa-formband .srfm-button {
  background: #3a9c8e !important; color: #fff !important; border: none !important;
  width: 100% !important; height: 54px !important; box-sizing: border-box !important;
  border-radius: 40px !important; font-family: 'Nunito Sans', sans-serif !important;
  font-size: 12px !important; font-weight: 800 !important;
  letter-spacing: 0.14em !important; text-transform: uppercase !important;
  cursor: pointer !important; margin: 0 !important;
  transition: background 0.15s, transform 0.12s !important;
}
.sa-formband button#srfm-submit-btn:hover,
.sa-formband .srfm-button:hover {
  background: #2d8a50 !important; transform: translateY(-2px) !important;
}
.sa-formband .srfm-submit-wrap {
  display: flex !important; align-items: center !important; justify-content: center !important;
}
.sa-formband .srfm-error-wrap { position: absolute !important; pointer-events: none; }
.sa-formband .srfm-block { position: relative; }

@media (max-width: 781px) {
  .sa-contact-grid { display: block; }
  .sa-contact-grid .wp-block-column { margin-bottom: 20px; }
}
@media (max-width: 600px) {
  .sa-formband { padding: 60px 16px; }
  .sa-formband .srfm-form-container { padding: 28px 22px !important; }
}


/* ============================================================================
    4. CHECKOUT — WooCommerce BLOCK CHECKOUT  (the [woocommerce/checkout] block)
   ----------------------------------------------------------------------------
   Targets the React-rendered block checkout's wc-block-* classes.
   Layout: form sections in the left column (wc-block-components-main),
   order summary in the right column (wc-block-components-sidebar).
   Place Order button + terms checkbox stay native at the bottom of the
   left column and are restyled in place.

   NOTE: the block checkout is React-rendered. Class names are stable but
   CAN shift on a major WooCommerce update — do a quick visual check of the
   checkout after big WooCommerce updates.
   ============================================================================ */

/* Design tokens for checkout + thank-you */
.woocommerce-checkout,
.woocommerce-order {
  --co-teal:       #3a9c8e;
  --co-teal-light: #e1f5ee;
  --co-teal-mid:   #9ed8d0;
  --co-teal-dark:  #1e6e62;
  --co-green:      #2d8a50;
  --co-pink:       #e05a9a;
  --co-pink-light: #fce8f3;
  --co-pink-dark:  #c03878;
  --co-text:       #2d2233;
  --co-muted:      #7a6e82;
  --co-cream:      #fdf9f6;
  --co-border:     rgba(58,156,142,0.15);
  --co-shadow:     0 4px 20px rgba(58,156,142,0.07);
  --co-r:          16px;
  --co-pill:       40px;
}

/* ---- PAGE BASE ---- */
.woocommerce-checkout {
  background: var(--co-cream);
}

/* ---- CHECKOUT INTRO ----
   Blocks added in the page editor ABOVE the Checkout block:
   a Paragraph (CSS class "sa-eyebrow-line") and a Heading.
   Optionally wrapped in a Group with class "sa-checkout-intro".
   The rules below work WITH OR WITHOUT that Group wrapper. */
.sa-checkout-intro {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 40px 6px;
  text-align: center;
}
/* eyebrow — styles itself directly, no wrapper needed.
   Forced full-width + flex-center so it can't drift off to one side
   regardless of Astra's paragraph alignment or the block's own width. */
.woocommerce-checkout .sa-eyebrow-line,
.sa-eyebrow-line {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 10px;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: var(--co-teal) !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 40px !important;
  margin-bottom: 8px !important;
}
.woocommerce-checkout .sa-eyebrow-line::before,
.woocommerce-checkout .sa-eyebrow-line::after,
.sa-eyebrow-line::before,
.sa-eyebrow-line::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--co-teal);
  opacity: 0.4;
  flex: 0 0 auto;
}
/* heading — targeted via its relationship to the eyebrow, so it works with
   the real markup (wp-block-group + wp-block-heading, no custom classes).
   Also keeps the older .sa-checkout-intro / .sa-checkout-title selectors
   working if those classes are present. */
.sa-checkout-intro h1,
.sa-checkout-intro h2,
.woocommerce-checkout .sa-checkout-title,
.sa-eyebrow-line + h1,
.sa-eyebrow-line + h2,
.sa-eyebrow-line + .wp-block-heading {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(30px, 4vw, 46px) !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  color: var(--co-text) !important;
  text-align: center !important;
  margin: 0 0 8px !important;
}
/* the italic word — teal. Targets <em> in the intro heading whichever way
   the heading is classed. */
.sa-checkout-intro h1 em,
.sa-checkout-intro h2 em,
.woocommerce-checkout .sa-checkout-title em,
.sa-eyebrow-line + h1 em,
.sa-eyebrow-line + h2 em,
.sa-eyebrow-line + .wp-block-heading em {
  color: var(--co-teal) !important;
  font-style: italic !important;
}
/* the group block that holds the eyebrow + heading — center it full-width.
   WordPress gives this group "is-layout-constrained", which left-aligns its
   children in a content column. We override that so the heading centers. */
.woocommerce-checkout .wp-block-group:has(.sa-eyebrow-line) {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto !important;
  text-align: center !important;
  padding: 40px 20px 6px !important;
}
.woocommerce-checkout .wp-block-group:has(.sa-eyebrow-line) > * {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.woocommerce-checkout .wp-block-group:has(.sa-eyebrow-line) > .wp-block-heading,
.woocommerce-checkout .wp-block-group:has(.sa-eyebrow-line) > h1 {
  text-align: center !important;
  width: 100% !important;
}
@media (max-width: 768px) {
  .sa-checkout-intro { padding: 28px 20px 4px; }
  .woocommerce-checkout .wp-block-group:has(.sa-eyebrow-line) {
    padding: 28px 20px 4px !important;
  }
  .woocommerce-checkout .sa-eyebrow-line { margin-top: 28px !important; }
}

/* Astra wraps the page content in .ast-container with a max-width cap.
   On the checkout page, widen it so the two-column checkout has room. */
.woocommerce-checkout .ast-container,
.woocommerce-checkout .site-content .ast-container,
.woocommerce-checkout .content-area,
.woocommerce-checkout .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.woocommerce-checkout .wc-block-checkout,
.woocommerce-checkout .wp-block-woocommerce-checkout {
  font-family: 'Nunito Sans', sans-serif;
  color: var(--co-text);
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 40px 80px;
}
@media (max-width: 768px) {
  .woocommerce-checkout .wc-block-checkout,
  .woocommerce-checkout .wp-block-woocommerce-checkout {
    padding: 20px 16px 60px;
  }
}

/* ---- TWO-COLUMN LAYOUT ----
   The block checkout decides one- vs two-column by adding is-small / is-medium
   / is-large to wc-block-components-sidebar-layout, based on container width
   measured by its JS at load. On some themes it mis-measures and stays
   one-column (is-small), stacking the summary on top. The rules below FORCE
   the two-column row layout on screens wide enough for it, regardless of which
   is-* class WooCommerce picked. Below 940px we let it stack (correct mobile). */
.woocommerce-checkout .wc-block-components-sidebar-layout {
  gap: 28px;
}
@media (min-width: 941px) {
  .woocommerce-checkout .wc-block-components-sidebar-layout,
  .woocommerce-checkout .wc-block-checkout {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
  }
  .woocommerce-checkout .wc-block-components-main,
  .woocommerce-checkout .wc-block-checkout__main {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  .woocommerce-checkout .wc-block-components-sidebar,
  .woocommerce-checkout .wc-block-checkout__sidebar {
    flex: 0 0 380px !important;
    width: 380px !important;
    max-width: 380px !important;
    order: 2 !important;
  }
}
@media (min-width: 941px) and (max-width: 1080px) {
  .woocommerce-checkout .wc-block-components-sidebar,
  .woocommerce-checkout .wc-block-checkout__sidebar {
    flex-basis: 340px !important;
    width: 340px !important;
  }
}
/* below 941px: stacked, summary on top — block checkout's mobile mode is fine */
@media (max-width: 940px) {
  .woocommerce-checkout .wc-block-components-sidebar,
  .woocommerce-checkout .wc-block-checkout__sidebar {
    order: -1;
  }
}

/* ---- FORM SECTION CARDS ----
   Each checkout-step becomes a white rounded card. */
.woocommerce-checkout .wc-block-components-checkout-step {
  background: #fff;
  border: 1px solid var(--co-border) !important;
  border-radius: var(--co-r);
  box-shadow: var(--co-shadow);
  padding: 26px 28px !important;
  margin-bottom: 22px !important;
}
@media (max-width: 768px) {
  .woocommerce-checkout .wc-block-components-checkout-step {
    padding: 20px 18px !important;
  }
}

/* step heading */
.woocommerce-checkout .wc-block-components-checkout-step__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  color: var(--co-text) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.woocommerce-checkout .wc-block-components-checkout-step__heading {
  margin-bottom: 18px !important;
}

/* STEP NUMBER BADGES (best-effort)
   The checkout-step__heading-content holds the title; we add a numbered
   badge before each step's heading. WooCommerce renders the steps in a
   fixed order, so :nth-of-type targets them. If a WC update changes the
   step order/markup, adjust the numbers here. */
.woocommerce-checkout .wc-block-components-checkout-step__heading-content {
  position: relative;
}
.woocommerce-checkout .wc-block-components-checkout-step__heading::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--co-teal-light);
  color: var(--co-teal-dark);
  border: 1.5px solid var(--co-teal-mid);
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px;
  font-weight: 800;
  margin-right: 12px;
  flex-shrink: 0;
}
.woocommerce-checkout .wc-block-components-checkout-step__heading {
  display: flex !important;
  align-items: center !important;
}
.woocommerce-checkout .wc-block-checkout__contact-fields
  .wc-block-components-checkout-step__heading::before { content: "1"; }
.woocommerce-checkout .wc-block-checkout__shipping-fields
  .wc-block-components-checkout-step__heading::before { content: "2"; }
.woocommerce-checkout .wc-block-checkout__shipping-option
  .wc-block-components-checkout-step__heading::before { content: "3"; }
.woocommerce-checkout .wc-block-checkout__payment-method
  .wc-block-components-checkout-step__heading::before { content: "4"; }

/* ---- FORM FIELDS ----
   The block checkout uses FLOATING labels: the label sits inside the field
   and animates upward when the field has focus/content. The input therefore
   needs extra top padding so the floated label and the typed value don't
   overlap. Do NOT reposition the label itself — let WooCommerce's JS handle
   the float; we only set colours/fonts on it. */
.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-text-input select,
.woocommerce-checkout .wc-block-components-country-input input,
.woocommerce-checkout .wc-block-components-country-input select,
.woocommerce-checkout .wc-block-components-state-input input,
.woocommerce-checkout .wc-block-components-state-input select {
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--co-text) !important;
  border: 1.5px solid var(--co-border) !important;
  border-radius: 10px !important;
  background: var(--co-cream) !important;
  /* extra top padding leaves room for the floating label */
  padding: 22px 14px 8px !important;
  height: auto !important;
  line-height: 1.4 !important;
}
.woocommerce-checkout .wc-block-components-text-input input:focus,
.woocommerce-checkout .wc-block-components-text-input select:focus {
  border-color: var(--co-teal) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(58,156,142,0.1) !important;
}
/* floating field label — colours/font only, position left to WooCommerce JS */
.woocommerce-checkout .wc-block-components-text-input label {
  font-family: 'Nunito Sans', sans-serif !important;
  color: var(--co-muted) !important;
}
/* the label when floated up (field has content) — keep it clear of the value */
.woocommerce-checkout .wc-block-components-text-input.is-active label {
  font-size: 11px !important;
}

/* ---- SHIPPING & PAYMENT OPTIONS (radio rows) ----
   The block checkout positions the radio input absolutely and uses
   __option-layout to lay out the label. Our job: recolour the border,
   give the label room so it doesn't overlap the radio, and NOT add a
   second border on top of the block's own selected-state border. */
.woocommerce-checkout .wc-block-components-radio-control__option {
  border: 1.5px solid var(--co-border) !important;
  border-radius: 10px !important;
  padding: 14px 16px 14px 44px !important; /* left padding clears the radio */
  margin-bottom: 10px !important;
}
/* the radio input — sits in the left padding gap */
.woocommerce-checkout .wc-block-components-radio-control__input {
  accent-color: var(--co-teal);
  left: 16px !important;
}
/* selected option — single teal border + tint, no doubling */
.woocommerce-checkout .wc-block-components-radio-control__option-checked,
.woocommerce-checkout .wc-block-components-radio-control__option--checked-option-highlighted {
  border-color: var(--co-teal) !important;
  background: var(--co-teal-light) !important;
  box-shadow: none !important;
}
/* the block's --highlight-checked wrapper draws its own outline — remove it
   so only the option's own border shows (kills the doubled-border look) */
.woocommerce-checkout .wc-block-components-radio-control--highlight-checked::before,
.woocommerce-checkout .wc-block-components-radio-control--highlight-checked::after {
  display: none !important;
}
.woocommerce-checkout .wc-block-components-radio-control--highlight-checked {
  border: 0 !important;
  box-shadow: none !important;
}
/* PAYMENT ACCORDION — when the payment method renders as an accordion it
   gets its OWN dark outline on these wrapper elements. Neutralise them so
   only our own teal/cream option border shows (kills the black box). */
.woocommerce-checkout .wc-block-components-radio-control-accordion-option,
.woocommerce-checkout .wc-block-components-radio-control-accordion-content,
.woocommerce-checkout .wc-block-components-radio-control--highlight-checked--first-selected,
.woocommerce-checkout .wc-block-components-radio-control--highlight-checked--last-selected {
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
/* the checked accordion option — clean teal border, WHITE inside
   (not the teal tint — keeps the card fields area neutral) */
.woocommerce-checkout .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  border: 1.5px solid var(--co-teal) !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.woocommerce-checkout .wc-block-components-radio-control__label {
  font-weight: 700 !important;
  color: var(--co-text) !important;
}
.woocommerce-checkout .wc-block-components-radio-control__secondary-label {
  font-weight: 800 !important;
  color: var(--co-teal-dark) !important;
}

/* ---- PAYMENT METHOD ---- */
.woocommerce-checkout .wc-block-components-payment-method-label {
  font-weight: 700;
  color: var(--co-text);
}

/* ---- EXPRESS CHECKOUT ----
   The Express Checkout block (Google Pay pill) sits above the form.
   We wrap it in ONE clean white card: the "Express Checkout" title at the
   top, then the Google Pay pill below it with clear spacing. The black pill
   itself is Google's widget and is intentionally left as-is — we only style
   the card and title AROUND it. */
.woocommerce-checkout .wc-block-components-express-payment {
  background: #fff !important;
  border: 1px solid var(--co-border) !important;
  border-radius: var(--co-r) !important;
  box-shadow: var(--co-shadow) !important;
  outline: 0 !important;
  padding: 22px 24px !important;
  margin-bottom: 22px !important;
}
/* inner layers — transparent, no borders, but KEEP vertical spacing so the
   title and the pill don't collapse on top of each other */
.woocommerce-checkout .wc-block-components-express-payment__content,
.woocommerce-checkout .wc-block-components-express-payment__event-buttons,
.woocommerce-checkout .wc-block-components-express-payment__title-container,
.woocommerce-checkout .wc-block-components-express-payment--checkout {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
}
/* title container — give it space below so the pill sits clear of it.
   The block draws lines beside the title; force them to the SAME thin
   1px border colour as the "Or continue below" rule so they match. */
.woocommerce-checkout .wc-block-components-express-payment__title-container {
  margin-bottom: 14px !important;
  padding: 0 !important;
  text-align: center;
}
.woocommerce-checkout .wc-block-components-express-payment__title-container::before,
.woocommerce-checkout .wc-block-components-express-payment__title-container::after,
.woocommerce-checkout .wc-block-components-express-payment__title::before,
.woocommerce-checkout .wc-block-components-express-payment__title::after {
  background-color: var(--co-border) !important;
  background-image: none !important;
  border: 0 !important;
  border-top: 1px solid var(--co-border) !important;
  height: 1px !important;
  box-shadow: none !important;
}
.woocommerce-checkout .wc-block-components-express-payment__content {
  padding: 0 !important;
}
.woocommerce-checkout .wc-block-components-express-payment__event-buttons {
  margin: 0 !important;
  padding: 0 !important;
}
/* the "Express Checkout" title — matches the "Or continue below" style:
   small, uppercase, muted, Nunito Sans (NOT Cormorant) */
.woocommerce-checkout .wc-block-components-express-payment__title {
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--co-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  background: transparent !important;
  position: static !important;
}
/* the "Or continue below" divider rule */
.woocommerce-checkout .wc-block-components-express-payment-continue-rule {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--co-muted) !important;
}
.woocommerce-checkout .wc-block-components-express-payment-continue-rule::before,
.woocommerce-checkout .wc-block-components-express-payment-continue-rule::after {
  border-color: var(--co-border) !important;
}
/* "save payment information" box — see build notes; styled subtly */
.woocommerce-checkout .wc-block-components-payment-methods__save-card-info {
  background: var(--co-cream);
  border: 1px dashed var(--co-border);
  border-radius: 10px;
  padding: 12px 14px;
  margin-top: 10px;
  font-size: 12.5px;
  color: var(--co-muted);
}

/* ---- TERMS CHECKBOX (native bottom of left column) ---- */
.woocommerce-checkout .wc-block-checkout__terms {
  background: #fff;
  border: 1px solid var(--co-border);
  border-radius: var(--co-r);
  box-shadow: var(--co-shadow);
  padding: 18px 20px !important;
  margin-bottom: 22px !important;
  font-size: 12.5px;
  color: var(--co-text);
}
.woocommerce-checkout .wc-block-checkout__terms--with-separator {
  border-top: 1px solid var(--co-border);
}
.woocommerce-checkout .wc-block-checkout__terms a {
  color: var(--co-teal-dark);
  font-weight: 700;
}
.woocommerce-checkout .wc-block-checkout__terms .wc-block-components-checkbox__input {
  accent-color: var(--co-teal);
}

/* ---- PLACE ORDER BUTTON (native bottom of left column) ---- */
.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  width: 100% !important;
  background: var(--co-teal) !important;
  color: #fff !important;
  border: 0 !important;
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 17px !important;
  border-radius: var(--co-pill) !important;
  box-shadow: 0 8px 24px rgba(58,156,142,0.28) !important;
  transition: opacity 0.15s, transform 0.12s;
}
.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
  opacity: 0.92;
  transform: translateY(-2px);
}

/* ---- RETURN TO CART LINK ---- */
.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
  font-size: 13px;
  font-weight: 600;
  color: var(--co-muted) !important;
  fill: var(--co-muted);
}
.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button:hover {
  color: var(--co-teal) !important;
  fill: var(--co-teal);
}

/* ---- ORDER SUMMARY (right column, single card) ----
   Real structure: wc-block-checkout__sidebar wraps everything;
   the visible content is wc-block-components-order-summary +
   wc-block-components-totals-wrapper blocks. The coupon is a
   collapsible wc-block-components-panel (the "Add coupons" toggle). */

/* the whole sidebar becomes one white card */
.woocommerce-checkout .wc-block-checkout__sidebar {
  background: #fff !important;
  border: 1px solid var(--co-border) !important;
  border-radius: var(--co-r) !important;
  box-shadow: var(--co-shadow) !important;
  padding: 0 !important;
  overflow: hidden;
}
/* remove inner borders/backgrounds the block adds so it reads as ONE card */
.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-panel,
.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.woocommerce-checkout .wc-block-components-order-summary {
  background: transparent !important;
  border-radius: 0 !important;
}
/* inner padding for the summary body sections */
.woocommerce-checkout .wc-block-components-order-summary__content,
.woocommerce-checkout .wc-block-components-totals-wrapper {
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* summary title — gradient header band */
.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
  background: linear-gradient(135deg, var(--co-teal-light), var(--co-pink-light));
  padding: 18px 24px !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--co-border);
}
.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 23px !important;
  font-weight: 600 !important;
  color: var(--co-text) !important;
  text-transform: none !important;
}
.woocommerce-checkout .wc-block-components-checkout-order-summary__title-price {
  font-weight: 800 !important;
  color: var(--co-text) !important;
}

/* line items */
.woocommerce-checkout .wc-block-components-order-summary-item {
  padding: 14px 0 !important;
  border-bottom: 1px solid var(--co-border);
}
.woocommerce-checkout .wc-block-components-order-summary-item__image img {
  border-radius: 12px;
  border: 1px solid rgba(224,90,154,0.12);
}
.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
  background: var(--co-teal) !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}
.woocommerce-checkout .wc-block-components-product-name {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--co-text) !important;
}
.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
.woocommerce-checkout .wc-block-components-order-summary-item__individual-price {
  font-weight: 800 !important;
  color: var(--co-text) !important;
}

/* COUPON — collapsed "Add coupons" panel toggle */
.woocommerce-checkout .wc-block-components-panel__button {
  background: var(--co-cream) !important;
  border: 1.5px solid var(--co-border) !important;
  border-radius: var(--co-pill) !important;
  padding: 11px 18px !important;
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--co-text) !important;
}
.woocommerce-checkout .wc-block-components-panel__button-icon {
  fill: var(--co-teal) !important;
}
/* coupon — expanded input + apply button */
.woocommerce-checkout .wc-block-components-totals-coupon__input input {
  border: 1.5px solid var(--co-border) !important;
  border-radius: var(--co-pill) !important;
  background: var(--co-cream) !important;
  font-family: 'Nunito Sans', sans-serif !important;
}
.woocommerce-checkout .wc-block-components-totals-coupon__button {
  background: var(--co-teal) !important;
  border: 1.5px solid var(--co-teal) !important;
  color: #fff !important;
  border-radius: var(--co-pill) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
}
.woocommerce-checkout .wc-block-components-totals-coupon-link {
  color: var(--co-teal-dark) !important;
  font-weight: 700;
}

/* totals rows */
.woocommerce-checkout .wc-block-components-totals-item {
  padding: 5px 0 !important;
}
.woocommerce-checkout .wc-block-components-totals-item__label {
  color: var(--co-muted) !important;
  font-size: 13.5px !important;
}
.woocommerce-checkout .wc-block-components-totals-item__value {
  color: var(--co-text) !important;
  font-weight: 700 !important;
}
/* grand total — emphasised, divider above */
.woocommerce-checkout .wc-block-components-totals-footer-item {
  border-top: 1.5px solid var(--co-border) !important;
  margin-top: 6px !important;
  padding-top: 14px !important;
}
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 21px !important;
  font-weight: 600 !important;
  color: var(--co-text) !important;
}
.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 21px !important;
  font-weight: 800 !important;
  color: var(--co-text) !important;
}


/* ---- NOTICES ---- */
.woocommerce-checkout .wc-block-components-notice-banner.is-error {
  background: var(--co-pink-light);
  border-radius: 10px;
}
.woocommerce-checkout .wc-block-components-notice-banner.is-success,
.woocommerce-checkout .wc-block-components-notice-banner.is-info {
  background: var(--co-teal-light);
  border-radius: 10px;
}

/* ---- TRUST BADGES ----
   Plain text paragraphs added in the page editor after the checkout.
   Each paragraph carries two classes:
     badge 1 (SSL):       sa-trust-badge sa-trust-ssl
     badge 2 (Questions): sa-trust-badge sa-trust-help
   The monotonal teal icon is drawn by CSS as a ::before background image,
   so the editor content stays plain text (no emoji, no SVG to paste).
   Styled to match the mockup: soft teal, blended-in, small. */
.sa-trust-badges,
.woocommerce-checkout .wp-block-group:has(.sa-trust-badge) {
  max-width: 1200px;
  margin: 0 auto !important;
  padding: 18px 40px 50px !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px 28px !important;
  background: transparent !important;
}
/* the badge itself — soft teal text, blended, small (matches mockup).
   These are loose <p> tags (not in a group), so each badge is a
   block on its OWN line, centered. */
.sa-trust-badge,
.woocommerce-checkout .sa-trust-badge {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  width: 100% !important;
  margin: 6px auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: var(--co-teal) !important;
  text-align: center !important;
}
/* first badge gets a little space above to separate from Place Order */
.sa-trust-ssl {
  margin-top: 20px !important;
}
/* the monotonal icon — drawn before the text, teal (#3a9c8e baked in) */
.sa-trust-badge::before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
/* badge 1 — shield (SSL encrypted & secure) */
.sa-trust-ssl::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a9c8e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
}
/* badge 2 — chat bubble (Questions? We're here to help) */
.sa-trust-help::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a9c8e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5z'/%3E%3C/svg%3E");
}
/* lock variant — for the "Your payment is secure" line in the payment card.
   Add class "sa-trust-badge sa-trust-lock" to that paragraph. */
.sa-trust-lock::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a9c8e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
}
/* the secure-payment line sits inside the payment card, so it gets a
   little top spacing rather than the trust-row spacing */
.sa-trust-lock {
  margin: 12px auto 0 !important;
}
/* if the emoji image is still present in the paragraph, hide it
   (the CSS icon replaces it) */
.sa-trust-badge img.emoji {
  display: none !important;
}
@media (max-width: 768px) {
  .sa-trust-badges,
  .woocommerce-checkout .wp-block-group:has(.sa-trust-badge) {
    flex-direction: column !important;
    gap: 8px !important;
    padding: 14px 20px 44px !important;
  }
}



/* ============================================================================
    5. THANK-YOU / ORDER RECEIVED PAGE
   ============================================================================ */

.woocommerce-order {
  font-family: 'Nunito Sans', sans-serif;
  max-width: 720px;
  margin: 0 auto;
  padding: 40px 24px 80px;
}
.woocommerce-thankyou-order-received {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 600;
  color: var(--co-text);
  text-align: center;
  margin-bottom: 24px;
}
.woocommerce-order .woocommerce-order-overview {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  list-style: none;
  margin: 0 0 28px;
  padding: 20px 24px;
  background: #fff;
  border: 1px solid var(--co-border);
  border-radius: var(--co-r);
  box-shadow: var(--co-shadow);
}
.woocommerce-order .woocommerce-order-overview li {
  flex: 1 1 auto;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--co-muted);
  border: 0;
}
.woocommerce-order .woocommerce-order-overview li strong {
  display: block;
  margin-top: 4px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--co-text);
}
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details {
  background: #fff;
  border: 1px solid var(--co-border);
  border-radius: var(--co-r);
  box-shadow: var(--co-shadow);
  padding: 24px 26px;
  margin-bottom: 22px;
}
.woocommerce-order .woocommerce-order-details h2,
.woocommerce-order .woocommerce-customer-details h2,
.woocommerce-order .woocommerce-column__title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  font-weight: 600;
  color: var(--co-text);
}

/* END OF SIMPLY ARI SITE STYLESHEET */
