/* =============================================================================
   Angelcam store style for FastSpring Classic
   -----------------------------------------------------------------------------
   Loaded AFTER FastSpring's base_103.css and country/decorate.css. Every rule
   here either styles the template chrome (.ac-*) or restyles the markup that
   FastSpring injects (.core-*, .store-*). The injected markup of the three
   order steps is captured in preview/mock-*.html; AGENTS.md lists the rules.

   House rules:
   - mobile first; one column below 640px; no fixed pixel widths on content
   - no position:absolute against FastSpring markup (the only exception is the
     country/currency dropdown, which is a real dropdown)
   - !important only against FastSpring's own !important or inline styles
   - selectors that fight base.css are prefixed with .ac-page / .ac-card so
     they win by specificity and source order, not by !important
   ============================================================================= */

/* Space Grotesk is the Angelcam brand face. FastSpring discourages external
   resources, but a HTTPS @import from Google Fonts has worked since 2015 (the
   previous template loaded Roboto the same way). The stack falls back to
   system fonts if the import is ever blocked. */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* ---------------------------------------------------------------------------
   1. Design tokens (from angelcam.com Webflow CSS, November 2026)
   --------------------------------------------------------------------------- */
:root {
  --ac-blue: #004fff;
  --ac-blue-hover: #0040d6;
  --ac-blue-soft: #e5eeff;
  --ac-lime: #9df15b;
  --ac-ink: #0a0e24;
  --ac-text: #202024;
  --ac-muted: #566074;
  --ac-border: #dfe3eb;
  --ac-border-strong: #c5cbd6;
  --ac-bg: #f1f4f5;
  --ac-card: #ffffff;
  --ac-error: #cf1322;
  --ac-warn-bg: #fffbe6;
  --ac-warn-border: #ffe58f;
  --ac-success: #237804;
  --ac-radius: 6px;
  --ac-radius-lg: 12px;
  --ac-font: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ac-shadow: 0 1px 2px rgba(10, 14, 36, 0.06), 0 8px 24px rgba(10, 14, 36, 0.06);
}

/* ---------------------------------------------------------------------------
   2. Base: undo the 2008-era reset in FastSpring's base.css
   --------------------------------------------------------------------------- */
*,
*:before,
*:after {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--ac-bg);
  color: var(--ac-text);
  font-family: var(--ac-font);
  font-size: 1rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: var(--ac-blue);
  text-decoration: underline;
  text-underline-offset: 2px;
}

a:hover {
  color: var(--ac-blue-hover);
}

/* base.css sets `* { font-size: 1em }` and `h1..h6 { font-size: 100% }`,
   so every heading size must be restated. */
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding: 0;
  color: var(--ac-ink);
  font-weight: 600;
  line-height: 1.25;
}

h1 { font-size: 1.5rem; }
h2 { font-size: 1.25rem; }
h3 { font-size: 1.125rem; }
h4, h5, h6 { font-size: 1rem; }

p {
  margin: 0;
  padding: 0;
}

p + p {
  margin-top: 0.75em;
}

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

label {
  white-space: normal;   /* base.css: nowrap */
}

table {
  border-collapse: collapse;
}

td, th {
  padding: 0;
  vertical-align: top;
  text-align: left;
}

form {
  display: block;        /* base.css: inline */
}

hr {
  display: none;         /* the template's own <hr/> above the footer is not needed */
}

/* ---------------------------------------------------------------------------
   3. Template chrome (.ac-*)
   --------------------------------------------------------------------------- */
.ac-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.ac-wrap {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 0 16px;
}

.ac-header {
  background: var(--ac-ink);
  color: #fff;
}

.ac-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}

.ac-logo {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}

.ac-logo img {
  width: 124px;
  height: 24px;
}

.ac-header-note {
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.72);
}

.ac-main {
  flex: 1 0 auto;
  padding: 24px 0 32px;
}

.ac-card {
  background: var(--ac-card);
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius-lg);
  box-shadow: var(--ac-shadow);
  padding: 20px 16px;
}

.ac-footer {
  border-top: 1px solid var(--ac-border);
  padding: 24px 0 32px;
  color: var(--ac-muted);
  font-size: 0.8125rem;
}

.ac-footer-inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ac-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  margin-bottom: 8px;
}

.ac-footer-links a {
  color: var(--ac-muted);
  text-decoration: none;
}

.ac-footer-links a:hover {
  color: var(--ac-blue);
  text-decoration: underline;
}

.ac-footer-note {
  max-width: 48em;
}

.ac-security {
  line-height: 0;
}

.ac-security img {
  width: auto;
  max-height: 56px;
}

@media (min-width: 640px) {
  .ac-main {
    padding: 40px 0 48px;
  }

  .ac-card {
    padding: 32px 36px;
  }

  .ac-footer-inner {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
  }

  .ac-security {
    order: 2;
    flex: 0 0 auto;
  }
}

/* ---------------------------------------------------------------------------
   4. Sections, messages, country/currency selector
   --------------------------------------------------------------------------- */
.ac-card .core-section {
  clear: both;
  padding-top: 24px;
  margin-top: 24px;
  border-top: 1px solid var(--ac-border);
}

.ac-card .core-window > .core-section:first-child,
.ac-card .core-window > form > .core-section:first-child,
.ac-card .store-surveys .core-section {
  padding-top: 0;
  margin-top: 0;
  border-top: 0;
}

.ac-card .store-surveys {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--ac-border);
}

.ac-card .core-section-header {
  margin-bottom: 16px;
  font-size: 1.125rem;
  font-weight: 600;
}

.ac-card .core-section-body {
  font-size: 0.9375rem;
}

.ac-card .core-messages {
  margin: 0 0 20px;
  padding: 12px 16px;
  border: 1px solid var(--ac-warn-border);
  border-radius: var(--ac-radius);
  background: var(--ac-warn-bg);
  font-size: 0.9375rem;
}

.ac-card .core-message-warn,
.ac-card .core-message-error,
.ac-card .core-message-fatal {
  color: var(--ac-error);
}

.ac-card .core-form-field-error,
.ac-card .core-form-field-invalid .core-form-field-label {
  color: var(--ac-error);
}

/* Country / currency selector in the top right corner (.store-tools) */
.ac-card .store-tools {
  position: relative;
  margin: 0 0 16px;
  text-align: right;
  font-size: 0.875rem;
}

.ac-card #store-variation-selector-command {
  display: inline-block;
  padding: 4px 24px 4px 8px;
  border: 1px solid var(--ac-border);
  border-radius: 999px;
  color: var(--ac-muted);
  font-size: 0.875rem;
  text-decoration: none;
  background-position: right 8px center;   /* keeps decorate.css's chevron icon */
}

.ac-card #store-variation-selector-command:hover {
  color: var(--ac-ink);
  border-color: var(--ac-border-strong);
}

.ac-card #store-variation-selection-body {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 20;
  width: 280px;
  max-width: 100%;
  max-height: 320px;
  margin-top: 6px;
  overflow: auto;
  text-align: left;
  background: #fff;
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius);
  box-shadow: var(--ac-shadow);
}

.ac-card .store-variation-select-item-list {
  margin: 0;
  padding: 6px 0;
}

.ac-card .store-variation-select-item-list li a {
  display: block;
  padding: 8px 16px;
  color: var(--ac-text);
  font-size: 0.9375rem;
  text-decoration: none;
}

.ac-card .store-variation-select-item-list li a:hover {
  background: var(--ac-blue-soft);
  color: var(--ac-blue);
  font-weight: 500;
}

/* ---------------------------------------------------------------------------
   5. Forms
   Markup: .core-form-field-group > h3.core-form-field-group-header +
           .core-form-field-group-body > .core-form-field-area-left/right >
           .core-form-field > .core-form-field-label + .core-form-field-body
   --------------------------------------------------------------------------- */
.ac-card .core-form-field-group {
  clear: both;
  width: 100%;
  margin: 0;
}

.ac-card .core-form-field-group + .core-form-field-group {
  margin-top: 24px;
}

.ac-card .core-form-field-group-header {
  margin: 0 0 12px;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--ac-ink);
}

/* base.css floats a 40% / 50% two-column layout. Mobile: one column. */
.ac-card .core-form-field-group-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: static;
}

.ac-card .core-form-field-area-left,
.ac-card .core-form-field-area-right {
  float: none;
  width: 100%;
  margin: 0;
}

.ac-card .core-form-field {
  margin: 0;
}

.ac-card .core-form-field + .core-form-field {
  margin-top: 16px;
}

.ac-card .core-form-field-label {
  display: block;
  margin: 0 0 6px;
  white-space: normal;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ac-ink);
}

.ac-card .core-form-field-required .core-form-field-label {
  font-weight: 600;
}

.ac-card .core-form-field-required .core-form-field-label label:after {
  content: " *";
  color: var(--ac-blue);
}

.ac-card .core-label-optional:after {
  content: "";
}

.ac-card .core-form-field-body-note {
  margin-top: 6px;
  font-size: 0.8125rem;
  color: var(--ac-muted);
  width: auto;
}

/* Text-like controls. The .ac-card prefix beats base.css's
   `.store-field-contact-email input { width: 16em }` family of rules. */
.ac-card input[type="text"],
.ac-card input[type="email"],
.ac-card input[type="tel"],
.ac-card input[type="number"],
.ac-card input[type="password"],
.ac-card input:not([type]),
.ac-card .core-form-field select,
.ac-card .core-form-field textarea,
.ac-card .store-field-address-country select,
.ac-card .store-field-address-region select,
.ac-card .store-action-input,
.ac-card .store-action-input-line {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--ac-border-strong);
  border-radius: var(--ac-radius);
  background: #fff;
  color: var(--ac-text);
  font: inherit;
  font-size: 1rem;      /* 16px keeps iOS from zooming on focus */
  line-height: 1.4;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.ac-card .core-form-field select,
.ac-card .store-field-address-country select,
.ac-card .store-field-address-region select {
  padding-right: 40px;
  background-image: url("images/select-arrow.png");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  cursor: pointer;
}

.ac-card .core-form-field textarea {
  min-height: 6em;
  resize: vertical;
}

.ac-card input:focus,
.ac-card select:focus,
.ac-card textarea:focus {
  outline: none;
  border-color: var(--ac-blue);
  box-shadow: 0 0 0 3px var(--ac-blue-soft);
}

.ac-card input::placeholder,
.ac-card textarea::placeholder {
  color: #9aa3b2;
}

.ac-card input[type="checkbox"],
.ac-card input[type="radio"] {
  display: inline-block;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0 8px 0 0;
  padding: 0;
  vertical-align: -3px;
  accent-color: var(--ac-blue);
  cursor: pointer;
}

/* Region: FastSpring shows a hidden <select> plus a text input */
.ac-card .store-field-address-region .core-form-field-body select {
  margin-bottom: 8px;
}

/* Small inline inputs that must stay small */
.ac-card .store-order-action-coupon .store-action-input {
  display: inline-block;
  width: 12em;
  max-width: 100%;
  font-weight: 500;
}

.ac-card .store-order-item-action-quantity .store-action-input {
  display: inline-block;
  width: 4.5em;
  text-align: center;
}

.ac-card .store-product-detail-quantity input {
  display: inline-block;
  width: 4.5em !important;   /* FastSpring sets style="width: 3em" inline */
  text-align: center;
}

.ac-card .store-field-cc-number input {
  width: 100%;
  letter-spacing: 0.04em;
}

.ac-card .store-field-cc-security-code input,
.ac-card .store-field-cc-expiration select {
  display: inline-block;
  width: auto;
  min-width: 6em;
}

/* Consent checkbox (FastSpring wraps it in a table) */
.ac-card .store-surveys table {
  width: 100%;
}

.ac-card .store-surveys td {
  padding: 4px 0;
}

.ac-card .store-surveys label {
  font-size: 0.9375rem;
  white-space: normal;
}

.ac-card .store-surveys .core-form-field-label {
  font-weight: 500;
  white-space: normal;
}

@media (min-width: 640px) {
  .ac-card .core-form-field-group-body {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
  }

  .ac-card .core-form-field-area-left,
  .ac-card .core-form-field-area-right {
    flex: 1 1 calc(50% - 12px);
    width: auto;
    min-width: 0;
  }

  /* An area that is the only child stays full width. */
  .ac-card .core-form-field-area-left:last-child,
  .ac-card .core-form-field-group-body > .core-form-field:only-child {
    flex-basis: 100%;
  }
}

/* ---------------------------------------------------------------------------
   6. Buttons
   FastSpring renders actions as
     <li><input type="submit" class="core-js-disabled-inline"/>
         <span class="store-action … core-js-enabled-inline">
           <a class="store-action-command"><span class="store-action-title">…</span></a>
         </span></li>
   The body class store-decorate-button adds grey button styles with
   (0,3,1) specificity; the .ac-page prefixed selectors below tie it and win
   by source order.
   --------------------------------------------------------------------------- */
.ac-page .store-action-command,
.ac-page .store-page-navigation .store-action-command,
.ac-page .store-product-list-item-action-list .store-action-command,
.ac-page .store-product-detail-action-list .store-action-command,
.ac-page input[type="submit"],
.ac-page input[type="button"],
.ac-page button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0;
  padding: 10px 20px;
  border: 1px solid var(--ac-blue);
  border-radius: var(--ac-radius);
  background: var(--ac-blue);
  color: #fff;
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-indent: 0;
  white-space: normal;
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s;
}

.ac-page .store-action-command:hover,
.ac-page .store-page-navigation .store-action-command:hover,
.ac-page .store-product-list-item-action-list .store-action-command:hover,
.ac-page .store-product-detail-action-list .store-action-command:hover,
.ac-page input[type="submit"]:hover,
.ac-page input[type="button"]:hover,
.ac-page button:hover {
  background: var(--ac-blue-hover);
  border-color: var(--ac-blue-hover);
  color: #fff;
  text-decoration: none;
}

.ac-page .store-action-command:active,
.ac-page .store-page-navigation .store-action-command:active,
.ac-page .store-product-list-item-action-list .store-action-command:active {
  background: var(--ac-ink);
  border-color: var(--ac-ink);
  color: #fff;
}

.ac-page .store-action-command:focus-visible,
.ac-page input[type="submit"]:focus-visible,
.ac-page button:focus-visible {
  outline: 3px solid var(--ac-blue-soft);
  outline-offset: 1px;
}

.ac-page .store-action-command .store-action-title {
  display: inline;
  padding: 0;
  margin: 0;
  width: auto;
  background: none;
  color: inherit;
  text-align: center;
}

/* Secondary actions: make changes, coupon, previous, continue shopping */
.ac-page .store-order-action-edit .store-action-command,
.ac-page .store-order-action-more .store-action-command,
.ac-page .store-order-action-coupon .store-action-command,
.ac-page .store-order-item-group-action-list .store-action-command,
.ac-page .store-subscription-action-list .store-action-command,
.ac-page .store-action-prev .store-action-command,
.ac-page .store-action-cancel .store-action-command,
.ac-page .store-action-continue-shopping .store-action-command {
  background: #fff;
  border-color: var(--ac-border-strong);
  color: var(--ac-ink);
}

.ac-page .store-order-action-edit .store-action-command:hover,
.ac-page .store-order-action-more .store-action-command:hover,
.ac-page .store-order-action-coupon .store-action-command:hover,
.ac-page .store-order-item-group-action-list .store-action-command:hover,
.ac-page .store-subscription-action-list .store-action-command:hover,
.ac-page .store-action-prev .store-action-command:hover,
.ac-page .store-action-cancel .store-action-command:hover,
.ac-page .store-action-continue-shopping .store-action-command:hover {
  background: var(--ac-bg);
  border-color: var(--ac-ink);
  color: var(--ac-ink);
}

/* Inline "command + input" pairs (coupon) */
.ac-page .store-action-command + .store-action-input,
.ac-page .store-action-input + .store-action-command {
  margin-left: 8px;
}

/* Page navigation: the primary action row at the bottom of each step */
.ac-card .store-page-navigation {
  margin: 28px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--ac-border);
  text-align: left;
}

.ac-card .store-page-navigation .store-action-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-align: left;
}

.ac-card .store-page-navigation .store-action-list li {
  display: block;
  margin: 0;
  padding: 0;
  float: none;
  text-align: left;
  white-space: normal;
}

.ac-card .store-page-navigation .store-action-list .store-action-prev-li {
  display: none;
}

.ac-card .store-page-navigation .store-action,
.ac-card .store-page-navigation .core-js-enabled-inline {
  float: none;
}

.ac-card .store-page-navigation .store-action-command,
.ac-card .store-page-navigation input[type="submit"] {
  width: 100%;
}

/* With JavaScript on, FastSpring shows the <a> and hides the <input type="submit">
   twin (base.css: .core-js-support .core-js-disabled-inline { display: none }).
   The button rules above have higher specificity, so restate it here. */
.core-js-support .ac-page .core-js-disabled-inline,
.core-js-support .ac-page input.core-js-disabled-inline {
  display: none;
}

.core-js-support .ac-page .core-js-enabled-inline {
  display: inline;
}

/* "Processing, please wait" shown instead of the button while submitting */
#store-processing-element {
  display: inline-block;
  padding: 12px 0 12px 230px;
  font-weight: 600;
  font-size: 1rem;
  color: var(--ac-muted);
}

/* Order actions under the cart (make changes, coupon) */
.ac-card .store-order-action-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 20px 0 0;
  text-align: left;
}

.ac-card .store-order-action-list li {
  display: block;
  margin: 0;
  padding: 0;
  float: none;
  white-space: normal;
}

.ac-card .store-order-action-list .store-action {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.ac-card .store-order-action-coupon-li {
  float: none;
  margin: 0;
}

.ac-card .store-order-action-coupon .store-action-input {
  margin: 0;
}

@media (min-width: 640px) {
  .ac-card .store-page-navigation .store-action-list {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
  }

  .ac-card .store-page-navigation .store-action-command,
  .ac-card .store-page-navigation input[type="submit"] {
    width: auto;
    min-width: 200px;
  }

  .ac-card .store-order-action-list {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
  }
}

/* ---------------------------------------------------------------------------
   7. Product detail
   Markup: .store-product-detail > .store-product-detail-image +
           h2.store-product-detail-title + h3.store-product-detail-pricing +
           h3.store-product-detail-offers + .store-product-detail-quantity +
           .store-product-detail-description
   --------------------------------------------------------------------------- */
.ac-card .store-product-detail {
  clear: both;
  position: static;
}

.ac-card .store-product-detail:after {
  content: "";
  display: table;
  clear: both;
}

.ac-card .store-product-detail-image {
  float: none;
  margin: 0 0 16px;
  line-height: 0;
}

.ac-card .store-product-detail-image img {
  padding: 0;
  margin: 0;
  border-radius: var(--ac-radius);
}

.ac-card .store-product-detail-title {
  display: block;
  margin: 0 0 6px;
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--ac-ink);
}

.ac-card .store-product-detail-pricing {
  display: block;
  margin: 0 0 4px;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ac-ink);
}

.ac-card .store-product-price-original,
.ac-card .store-order-item-price-original {
  margin-right: 8px;
  color: var(--ac-muted);
  font-weight: 400;
  text-decoration: line-through;
}

.ac-card .store-product-detail-offers {
  margin: 0 0 4px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ac-success);
}

.ac-card .store-product-detail-offer {
  display: block;
  margin: 0;
  padding: 0;
}

.ac-card .store-product-detail-description,
.ac-card .store-product-detail-description-short,
.ac-card .store-product-detail-description-pricing {
  margin-top: 12px;
  color: var(--ac-muted);
  font-size: 0.9375rem;
}

.ac-card .store-product-detail-description:empty {
  display: none;
}

/* Inline quantity on the product page */
.ac-card .store-product-detail-quantity {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
}

.ac-card .store-product-detail-quantity .core-form-field-label {
  display: inline;
  margin: 0;
}

.ac-card .store-product-detail-quantity .core-form-field-body {
  display: inline;
  padding: 0;
}

/* Legacy copy rule carried over from the 2015 template: explain trial pricing. */
.ac-card span.store-product-detail-pricing-additional-title:after {
  content: " (when this trial is over, we will start to charge you)";
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--ac-muted);
}

@media (min-width: 640px) {
  .ac-card .store-product-detail-image {
    float: left;
    max-width: 260px;
    margin: 0 24px 16px 0;
  }
}

/* ---------------------------------------------------------------------------
   8. Order contents and totals (confirm page)
   Markup: .store-order-items > .store-order-item-group >
             .store-order-item.store-order-item-base >
               .store-order-item-base-title + .store-order-item-base-pricing
           .store-order-pricing > .store-order-price.store-order-price-* >
             .store-order-price-label + .store-order-price-value
   --------------------------------------------------------------------------- */
.ac-card .store-order-items {
  clear: both;
  margin-bottom: 8px;
}

.ac-card .store-order-item-group {
  clear: both;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--ac-border);
}

.ac-card .store-order-item-group + .store-order-item-group {
  margin-top: 0;
  padding-top: 12px;
  border-top: 0;
}

.ac-card .store-order-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
}

.ac-card .store-order-item-base-title,
.ac-card .store-order-item-child-title {
  float: none;
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 600;
  color: var(--ac-ink);
}

.ac-card .store-order-item-child-title {
  font-weight: 400;
}

.ac-card .store-order-item-base-pricing,
.ac-card .store-order-item-child-pricing {
  flex: 0 0 auto;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.ac-card .store-order-item-quantity {
  padding: 0 0 0 6px;
  font-weight: 400;
  color: var(--ac-muted);
}

.ac-card .store-order-item-description {
  clear: both;
  margin: 4px 0 0;
  font-size: 0.875rem;
  color: var(--ac-muted);
}

.ac-card .store-order-item-child {
  clear: both;
  padding: 6px 0 0 16px;
  font-size: 0.9375rem;
}

.ac-card .store-order-item-offers {
  margin-top: 4px;
  font-size: 0.8125rem;
  color: var(--ac-success);
}

.ac-card .store-order-item-offer {
  display: block;
}

/* Legacy behaviour: customers must not remove items from the cart. */
.ac-card .store-order-item-group .store-order-item-action-delete {
  display: none !important;
}

/* Totals: label / value on one line, right aligned */
.ac-card .store-order-pricing {
  margin-top: 8px;
}

.ac-card .store-order-price {
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 16px;
  clear: both;
  padding: 5px 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ac-card .store-order-price-label {
  float: none;
  width: auto;
  font-weight: 500;
  color: var(--ac-muted);
}

.ac-card .store-order-price-value {
  margin: 0;
  min-width: 7em;
  font-weight: 500;
  color: var(--ac-ink);
}

.ac-card .store-order-price-total {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--ac-border);
}

.ac-card .store-order-price-total .store-order-price-label,
.ac-card .store-order-price-total .store-order-price-value {
  color: var(--ac-ink);
  font-size: 1.125rem;
  font-weight: 700;
}

/* Legacy behaviour: the "more" action inside a section body is hidden. */
.ac-card .core-section-body .store-order-action-more {
  display: none;
}

/* ---------------------------------------------------------------------------
   9. VAT ID (DIČ) on the confirm page
   FastSpring renders it as one more price line: the label is a link that
   submits the form, next to a tooltip button, and the value is a 6-character
   input. Business customers kept missing it, so it becomes a highlighted box
   with the tooltip text shown inline and a full-width input.
   --------------------------------------------------------------------------- */
.ac-card .store-section-vat-exemption {
  display: block;
  margin: 12px 0;
  padding: 14px 16px;
  border: 1px solid var(--ac-blue-soft);
  border-radius: var(--ac-radius);
  background: #f5f8ff;
  text-align: left;
  clear: both;
}

.ac-card .store-section-vat-exemption .store-order-price-label {
  display: block;
  width: auto;
  margin: 0 0 8px;
  float: none;
  font-weight: 600;
  color: var(--ac-ink);
}

.ac-card .store-section-vat-exemption .store-action-line {
  padding-left: 0;
  background: none;      /* decorate.css adds a flag icon; the flag is enough on the country selector */
}

.ac-card .store-section-vat-exemption .store-action-command-line {
  color: var(--ac-ink);
  font-size: 1rem;
  text-decoration: none;
  cursor: default;
}

.ac-card .store-section-vat-exemption .store-action-command-line:after {
  content: " – for VAT-registered businesses only";
  font-weight: 500;
  color: var(--ac-muted);
}

.lang-cs .ac-card .store-section-vat-exemption .store-action-command-line:after {
  content: " – pouze pro firmy, plátce DPH";
}

/* The tooltip button goes away; its text is shown as a note instead. */
.ac-card .store-section-vat-exemption .store-vat-help .store-action-command {
  display: none;
}

.ac-card .store-section-vat-exemption .store-tooltip-content {
  display: block;
  margin: 0 0 10px;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--ac-muted);
}

.ac-card .store-section-vat-exemption .store-order-price-value {
  display: block;
  margin: 0;
  min-width: 0;
  text-align: left;
}

.ac-card .store-section-vat-exemption .store-action-input-line {
  display: block;
  width: 100%;
  max-width: 20em;
  text-align: left;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ---------------------------------------------------------------------------
   10. Payment methods
   Markup: ul.store-payment-method-list > li.store-payment-method >
             span.store-payment-method-list-selection (radio) +
             span.store-payment-method-list-description (label, icons)
   --------------------------------------------------------------------------- */
.ac-card .store-payment-method-list {
  margin: 8px 0 0;
}

.ac-card .store-payment-method-list > li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius);
  background: #fff;
  min-height: 56px;
}

.ac-card .store-payment-method-list > li + li {
  margin-top: 10px;
}

.ac-card .store-payment-method-list-selection {
  padding: 0;
  line-height: 0;
}

.ac-card .store-payment-method-list-selection input {
  margin: 0;
}

.ac-card .store-payment-method-list-description {
  flex: 1 1 auto;
}

.ac-card .store-payment-method-list-description label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  cursor: pointer;
  font-weight: 500;
  font-size: 0.9375rem;
}

.ac-card .store-payment-method-title {
  display: inline;
  order: -1;            /* title first, card icons after it */
  padding: 0;
}

.ac-card .store-payment-types {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  vertical-align: middle;
}

.ac-card .store-payment-method-content {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--ac-border);
}

.ac-card .store-payment-method-cc-li {
  height: auto !important;   /* base.css decorate rules set a fixed height */
}

.ac-card .store-payment-method-po-reference {
  margin: 8px 0 0;
  font-size: 0.875rem;
  color: var(--ac-muted);
}

.ac-card .store-payment-method-list-later:empty {
  display: none;
}

/* Legacy behaviour: FastSpring's card security-code help pop-up is hidden. */
.ac-card .store-field-cc-security-code-help {
  display: none !important;
}

/* ---------------------------------------------------------------------------
   11. Store footer notices, subscriptions, misc
   --------------------------------------------------------------------------- */
.ac-card .store-footer {
  margin-top: 24px;
  padding: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--ac-muted);
  text-align: left;
}

.ac-card .store-footer > div + div {
  margin-top: 6px;
}

.ac-card .store-notice-security {
  display: inline;
}

.ac-card .store-notice-reseller {
  padding: 0;
}

.ac-card .store-notice-bill-descriptor {
  display: inline-block;
  padding: 2px 8px;
  border: 1px solid var(--ac-border);
  border-radius: 4px;
  background: var(--ac-bg);
  font-weight: 600;
  color: var(--ac-ink);
}

.ac-card .store-subscription-entry {
  clear: both;
  padding: 12px 0;
  border-bottom: 1px solid var(--ac-border);
}

.ac-card .store-subscription-entry + .store-subscription-entry {
  margin: 0;
  padding-top: 12px;
  border-top: 0;
}

.ac-card .store-subscription-entry:after {
  content: "";
  display: table;
  clear: both;
}

.ac-card .store-subscription-entry-date,
.ac-card .store-subscription-entry-status {
  float: left;
  margin-right: 24px;
}

.ac-card .store-subscription-entry-amount {
  float: right;
  font-variant-numeric: tabular-nums;
}

.ac-card .store-subscription-entry-next {
  font-style: normal;
  color: var(--ac-muted);
}

.ac-card .store-subscription-action-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
}

.ac-card .store-subscription-action-list li {
  display: block;
  margin: 0;
}

.store-tooltip {
  padding: 8px 12px;
  border: 1px solid var(--ac-border);
  border-radius: var(--ac-radius);
  background: #fff;
  box-shadow: var(--ac-shadow);
  font-size: 0.875rem;
}

/* ---------------------------------------------------------------------------
   12. Print
   --------------------------------------------------------------------------- */
@media print {
  body {
    background: #fff;
  }

  .ac-header,
  .ac-footer,
  .store-page-navigation,
  .store-tools {
    display: none;
  }

  .ac-card {
    border: 0;
    box-shadow: none;
    padding: 0;
  }
}
