/* ============================================================
   WordPress integration overrides
   Bridges WP-generated markup (footer menus, block content) to
   the Cielo design system in styles.css. Loaded after styles.css.
   The header/mobile navs are rendered as flat <a> elements by
   Cielo_Anchor_Walker, so they need no bridging here.
   ============================================================ */

/* --- Footer menus rendered via wp_nav_menu (ul>li>a) --- */
.footer-col ul { list-style: none; margin: 0; padding: 0; }

/* --- Custom logo image sits where the "cielo" wordmark would --- */
.brand-logo img { display: block; height: 26px; width: auto; }

/* --- Block editor content width (align-wide / align-full) --- */
.site-content { width: 100%; }
.site-content > .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; }
.site-content > .alignwide { margin-left: auto; margin-right: auto; max-width: 1200px; }
.site-content > *:not(.alignfull):not(.alignwide) {
  max-width: 1200px; margin-left: auto; margin-right: auto;
  padding-left: 20px; padding-right: 20px;
}
@media (min-width: 768px) {
  .site-content > *:not(.alignfull):not(.alignwide) { padding-left: 32px; padding-right: 32px; }
}

/* --- Admin bar offset so the fixed banner + navbar clear it ---
   Banner sits just below the admin bar; the navbar sits below the banner
   (banner height = 40px). When scrolled the banner hides, so the navbar
   moves up to just below the admin bar. */
.admin-bar .promo-banner          { top: 32px; }
.admin-bar .nav-desktop           { top: 72px; }  /* 32 admin + 40 banner */
.admin-bar .nav-desktop.scrolled  { top: 32px; }  /* banner hidden */
.admin-bar .nav-mobile            { top: 72px; }  /* 32 admin + 40 banner */
.admin-bar .nav-mobile.scrolled   { top: 40px; }  /* 32 admin + 8 */
@media screen and (max-width: 782px) {
  .admin-bar .promo-banner         { top: 46px; }
  .admin-bar .nav-desktop          { top: 86px; }  /* 46 admin + 40 banner */
  .admin-bar .nav-desktop.scrolled { top: 46px; }
  .admin-bar .nav-mobile           { top: 86px; }  /* 46 admin + 40 banner */
  .admin-bar .nav-mobile.scrolled  { top: 54px; }  /* 46 admin + 8 */
}

/* --- Content spacing: clear the fixed banner + navbar on normal pages --- */
.site-content { padding-top: 112px; padding-bottom: 80px; min-height: 60vh; }
/* Full-width / hero-led pages opt out so the first block can sit under the glass navbar */
.site-content--flush { padding-top: 0; padding-bottom: 0; min-height: 0; }
.site-content--flush > *:not(.alignfull):not(.alignwide) { max-width: none; padding-left: 0; padding-right: 0; }

/* ============================================================
   CIELO — TEMPLATE BRIDGING
   Everything below maps WordPress- and WooCommerce-generated markup onto
   the design tokens already defined in styles.css. Nothing here changes
   styles.css itself, so that file can still be re-exported from the static
   build without losing any of this.

   Tokens in use:
     navy #335572 · sky #67a2d7 · soft #F7F8F9
     card radius 24px · control radius 999px
     hairline rgba(51,85,114,0.10) · body copy rgba(51,85,114,0.8)
   ============================================================ */


/* ------------------------------------------------------------
   1. Shared controls
   ------------------------------------------------------------ */

/* styles.css's .btn-ghost is white-on-dark (about hero, CTA bands). Light
   sections need a navy-on-white twin; the static pages faked this with inline
   styles on every instance. */
.btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 48px; padding: 0 28px; border-radius: 999px;
  border: 1.5px solid rgba(51,85,114,0.2); background: transparent;
  color: #335572; font-size: 15px; font-family: inherit; cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.btn-outline:hover { border-color: #335572; background: rgba(51,85,114,0.04); }

/* Visible keyboard focus everywhere — the design system never defined one. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #67a2d7;
  outline-offset: 2px;
  border-radius: 4px;
}


/* ------------------------------------------------------------
   2. Blog — listing, pagination, article body
   ------------------------------------------------------------ */

/* WordPress wraps featured images in <img> directly; the static markup used a
   bare SVG glyph. Centre either one. */
.blog-card .cover img { width: 100%; height: 100%; object-fit: cover; }

.blog-empty { padding: 64px 0 80px; text-align: center; }
.blog-empty p { font-size: 15px; color: rgba(51,85,114,0.8); margin-bottom: 24px; }

/* the_posts_pagination() output */
.blog-page .pagination,
.blog-page .navigation.pagination { margin-top: 56px; }
.blog-page .pagination .nav-links {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; flex-wrap: wrap;
}
.blog-page .pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 14px; border-radius: 999px;
  border: 1.5px solid rgba(51,85,114,0.12);
  font-size: 14px; color: rgba(51,85,114,0.8);
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.blog-page .pagination .page-numbers:hover { border-color: #335572; color: #335572; }
.blog-page .pagination .page-numbers.current { background: #335572; border-color: #335572; color: #fff; }
.blog-page .pagination .page-numbers.dots { border-color: transparent; }

/* Article body. styles.css styles .article-wrap and the hero image but stops
   short of the prose itself, so long-form posts had no typography at all. */
.article-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.article-content { font-size: 16px; line-height: 1.8; color: rgba(51,85,114,0.8); }
.article-content > * + * { margin-top: 20px; }
.article-content h2 {
  font-size: 22px; font-weight: 400; color: #335572;
  letter-spacing: -0.02em; line-height: 1.3;
  margin-top: 44px; margin-bottom: -4px;
}
.article-content h3 {
  font-size: 18px; font-weight: 400; color: #335572;
  line-height: 1.35; margin-top: 32px; margin-bottom: -6px;
}
.article-content a { color: #67a2d7; text-decoration: underline; transition: color 0.15s; }
.article-content a:hover { color: #335572; }
.article-content strong { font-weight: 500; color: #335572; }
.article-content ul,
.article-content ol { padding-left: 22px; }
.article-content li + li { margin-top: 8px; }
.article-content li::marker { color: rgba(51,85,114,0.35); }
.article-content img,
.article-content iframe,
.article-content video { max-width: 100%; height: auto; border-radius: 20px; display: block; }
.article-content figure { margin: 32px 0; }
.article-content figcaption { font-size: 13px; color: rgba(51,85,114,0.55); margin-top: 10px; }
.article-content blockquote {
  margin: 32px 0; padding: 4px 0 4px 22px;
  border-left: 2px solid #67a2d7;
  font-size: 17px; line-height: 1.7; color: #335572;
}
.article-content blockquote p + p { margin-top: 12px; }
.article-content code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px;
  background: rgba(51,85,114,0.06); border-radius: 6px; padding: 2px 6px; color: #335572;
}
.article-content pre {
  background: var(--bg-soft); border: 1px solid rgba(51,85,114,0.08);
  border-radius: 16px; padding: 20px 22px; overflow-x: auto;
}
.article-content pre code { background: none; padding: 0; }
.article-content hr { border: 0; border-top: 1px solid rgba(51,85,114,0.10); margin: 44px 0; }
.article-content table { width: 100%; border-collapse: collapse; font-size: 15px; }
.article-content th,
.article-content td { padding: 12px 0; border-bottom: 1px solid rgba(51,85,114,0.08); text-align: left; }
.article-content th { color: #335572; font-weight: 400; }

.article-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.article-tags .chip { text-decoration: none; }
.article-back { margin-top: 48px; }
.article-pagelinks { margin-top: 32px; font-size: 14px; color: rgba(51,85,114,0.8); }


/* ------------------------------------------------------------
   3. Shop grid
   ------------------------------------------------------------ */

.product-card.is-out-of-stock .img-inner { opacity: 0.55; }
.product-card.is-out-of-stock .select { color: rgba(51,85,114,0.45); }

/* Woo prints its own price markup inside .price */
.product-card .price del { opacity: 0.5; margin-right: 6px; }
.product-card .price ins { text-decoration: none; }
.product-card .price .woocommerce-Price-amount { color: inherit; }

/* The AJAX grid swap sets aria-busy while the request is in flight. */
#shopGrid[aria-busy="true"] { opacity: 0.45; transition: opacity 0.15s; pointer-events: none; }


/* ------------------------------------------------------------
   4. WooCommerce notices
   ------------------------------------------------------------ */

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
  list-style: none; margin: 0 0 24px; padding: 14px 20px;
  border-radius: 16px; font-size: 14px; line-height: 1.6;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.woocommerce-message { background: rgba(34,197,94,0.08); border: 1px solid rgba(34,197,94,0.20); color: #16a34a; }
.woocommerce-info { background: rgba(103,162,215,0.08); border: 1px solid rgba(103,162,215,0.18); color: #335572; }
.woocommerce-error { background: rgba(220,38,38,0.06); border: 1px solid rgba(220,38,38,0.15); color: #b91c1c; }
.woocommerce-error li { list-style: none; }
.woocommerce-error li + li { margin-top: 6px; }

.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a { color: inherit; text-decoration: underline; }

/* Woo puts a "View cart" / "Continue shopping" button inside the notice. */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  order: 2; margin-left: auto;
  display: inline-flex; align-items: center; height: 34px; padding: 0 18px;
  border-radius: 999px; border: 1.5px solid currentColor; background: transparent;
  color: inherit; font-size: 13px; font-family: inherit; text-decoration: none;
  cursor: pointer; transition: opacity 0.15s;
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover { opacity: 0.7; }


/* ------------------------------------------------------------
   5. WooCommerce form fields
   Maps Woo's .form-row / .input-text markup onto the .field tokens.
   ------------------------------------------------------------ */

.woocommerce form .form-row { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; padding: 0; }
.woocommerce form .form-row label,
.woocommerce-form-row label { font-size: 14px; font-weight: 400; color: rgba(51,85,114,0.8); }
.woocommerce form .form-row label .required,
.woocommerce form .form-row label abbr.required { color: #67a2d7; text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: rgba(51,85,114,0.45); }

.woocommerce form .form-row .woocommerce-input-wrapper { width: 100%; display: block; }

.woocommerce form .input-text,
.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="password"],
.woocommerce form input[type="number"],
.woocommerce form input[type="search"],
.woocommerce form select,
.woocommerce-page form .input-text,
.woocommerce-page form select {
  height: 44px; padding: 0 16px; border-radius: 999px; width: 100%; min-width: 0;
  border: 1.5px solid rgba(51,85,114,0.15); background: #fafafa;
  font-size: 14px; font-weight: 400; color: #335572; font-family: inherit;
  outline: none; transition: border-color 0.15s, box-shadow 0.15s;
  -webkit-appearance: none; appearance: none;
}
.woocommerce form textarea,
.woocommerce-page form textarea {
  min-height: 110px; padding: 12px 16px; border-radius: 18px; width: 100%;
  border: 1.5px solid rgba(51,85,114,0.15); background: #fafafa;
  font-size: 14px; color: #335572; font-family: inherit; resize: vertical; outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.woocommerce form .input-text:focus,
.woocommerce form select:focus,
.woocommerce form textarea:focus,
.woocommerce-page form .input-text:focus,
.woocommerce-page form textarea:focus {
  border-color: #67a2d7; box-shadow: 0 0 0 3px rgba(103,162,215,0.12);
}
.woocommerce form .input-text::placeholder,
.woocommerce form textarea::placeholder { color: rgba(51,85,114,0.40); }

/* Native <select> needs its own chevron once appearance is stripped. */
.woocommerce form select,
.woocommerce-page form select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23335572' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  padding-right: 42px;
}

/* Two-up rows (First name / Last name) */
@media (min-width: 640px) {
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last { width: calc(50% - 6px); display: inline-flex; vertical-align: top; }
  .woocommerce form .form-row-first { margin-right: 12px; }
  .woocommerce form .form-row-wide { width: 100%; clear: both; }
}

/* Validation states */
.woocommerce form .form-row.woocommerce-invalid .input-text,
.woocommerce form .form-row.woocommerce-invalid select { border-color: rgba(220,38,38,0.55); }
.woocommerce form .form-row.woocommerce-validated .input-text { border-color: rgba(34,197,94,0.45); }

/* Checkbox rows (ship to different address, terms, create account) */
.woocommerce form .form-row.woocommerce-validate-required label.checkbox,
.woocommerce-form__label-for-checkbox {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: rgba(51,85,114,0.8); cursor: pointer;
}
.woocommerce-form__input-checkbox,
.woocommerce form input[type="checkbox"] {
  width: 18px; height: 18px; flex-shrink: 0; accent-color: #335572; margin: 0; cursor: pointer;
}

/* Select2 (country / state pickers) */
.woocommerce .select2-container--default .select2-selection--single {
  height: 44px; border-radius: 999px; background: #fafafa;
  border: 1.5px solid rgba(51,85,114,0.15); outline: none;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 41px; padding-left: 16px; padding-right: 38px; color: #335572; font-size: 14px;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; right: 12px; }
.woocommerce .select2-container--default.select2-container--open .select2-selection--single { border-color: #67a2d7; }
.select2-dropdown {
  border: 1.5px solid rgba(51,85,114,0.12); border-radius: 16px; overflow: hidden;
  box-shadow: 0 12px 32px rgba(51,85,114,0.10);
}
.select2-container--default .select2-results__option { font-size: 14px; color: #335572; padding: 9px 16px; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: rgba(103,162,215,0.16); color: #335572; }
.select2-search--dropdown .select2-search__field {
  border: 1.5px solid rgba(51,85,114,0.15); border-radius: 999px; height: 38px; padding: 0 14px; font-family: inherit;
}


/* ------------------------------------------------------------
   6. Checkout
   ------------------------------------------------------------ */

.co-page { min-height: 100vh; padding: 112px 0 80px; background: #fff; }
.co-page .inner { max-width: var(--max); margin-inline: auto; padding: 0 24px; }
.co-page h1 {
  font-weight: 400; color: #335572; font-size: clamp(1.9rem,3.5vw,2.4rem);
  letter-spacing: -0.03em; line-height: 1.1; margin-bottom: 36px;
}
.co-page .eyebrow { margin-bottom: 10px; }

.co-grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
@media (min-width: 1024px) { .co-grid { grid-template-columns: minmax(0,1fr) 400px; gap: 48px; } }

.co-main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.co-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
@media (min-width: 1024px) { .co-side { position: sticky; top: 112px; } }

.co-card {
  border-radius: 24px; border: 1px solid rgba(51,85,114,0.10);
  background: #fff; padding: 26px 24px;
}
.co-card:empty { display: none; }
.col2-set { display: flex; flex-direction: column; gap: 20px; }

/* Section headings inside the checkout columns */
.co-page .co-card > h3,
.co-page .woocommerce-billing-fields > h3,
.co-page .woocommerce-shipping-fields > h3,
.co-page .woocommerce-additional-fields > h3,
.co-page #order_review_heading {
  font-size: 14px; font-weight: 400; color: rgba(51,85,114,0.8);
  text-transform: uppercase; letter-spacing: 0.09em;
  margin: 0 0 18px;
}
.co-page #order_review_heading { margin-bottom: 12px; }

/* "Ship to a different address?" is a checkbox living inside an <h3>. */
.co-page .woocommerce-shipping-fields h3#ship-to-different-address { text-transform: none; letter-spacing: 0; }
.co-page #ship-to-different-address label { font-size: 14px; color: #335572; }
.co-page .shipping_address { padding-top: 6px; }
.co-page .woocommerce-additional-fields__field-wrapper { margin-top: 4px; }

/* Login prompt above the form */
.co-page .woocommerce-form-login,
.woocommerce-form-login {
  border-radius: 24px; border: 1px solid rgba(51,85,114,0.10);
  padding: 24px; margin: 0 0 24px; background: #fff;
}

/* Coupon — a quiet utility row, not a second call to action. */
.co-coupon-toggle .woocommerce-info { margin-bottom: 12px; font-size: 13px; padding: 11px 16px; }
.co-coupon { margin-bottom: 16px; }
.co-coupon-label { font-size: 13px; color: rgba(51,85,114,0.7); margin: 0 0 8px; }
.co-coupon-row { display: flex; gap: 8px; }
.co-coupon-row .input-text { flex: 1; min-width: 0; }
.co-coupon-row .btn-submit { flex-shrink: 0; height: 44px; padding: 0 20px; font-size: 14px; }

/* Order review table restyled as a summary card. */
.woocommerce-checkout-review-order-table {
  width: 100%; border-collapse: collapse;
  border-radius: 24px; border: 1px solid rgba(51,85,114,0.10);
  background: #fff; overflow: hidden;
}
.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th { padding: 14px 22px; text-align: left; font-weight: 400; }
.woocommerce-checkout-review-order-table tbody tr:first-child td { padding-top: 22px; }
.woocommerce-checkout-review-order-table tbody tr:last-child td { padding-bottom: 22px; }
.woocommerce-checkout-review-order-table tbody .product-total,
.woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; }

.woocommerce-checkout-review-order-table tfoot tr th,
.woocommerce-checkout-review-order-table tfoot tr td {
  font-size: 14px; color: rgba(51,85,114,0.8);
  padding-top: 9px; padding-bottom: 9px;
}
.woocommerce-checkout-review-order-table tfoot tr:first-child th,
.woocommerce-checkout-review-order-table tfoot tr:first-child td {
  padding-top: 18px; border-top: 1px solid rgba(51,85,114,0.10);
}
.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
  border-top: 1px solid rgba(51,85,114,0.10);
  padding-top: 16px; padding-bottom: 22px;
  color: #335572; font-size: 16px;
}
.woocommerce-checkout-review-order-table tfoot .cart-discount td { color: #67a2d7; }
.woocommerce-checkout-review-order-table tfoot .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-checkout-review-order-table tfoot .woocommerce-shipping-methods li { margin-bottom: 6px; }
.woocommerce-checkout-review-order-table tfoot .woocommerce-shipping-methods label { font-size: 14px; color: rgba(51,85,114,0.8); cursor: pointer; }
.woocommerce-checkout-review-order-table tfoot .shipping-calculator-button { color: #67a2d7; text-decoration: underline; font-size: 13px; }
.woocommerce-checkout-review-order-table small { font-size: 12px; color: rgba(51,85,114,0.55); }

/* Line item: thumbnail with a quantity pip, then name + variation data. */
.co-line { display: flex; align-items: center; gap: 14px; }
.co-line-media { position: relative; flex-shrink: 0; }
.co-line-media img,
.co-line-thumb {
  width: 56px; height: 56px; border-radius: 14px; object-fit: cover; display: block;
  background: linear-gradient(135deg,#E8EEF1,#F2F6F8);
}
.co-line-qty {
  position: absolute; top: -7px; right: -7px;
  min-width: 21px; height: 21px; padding: 0 6px;
  border-radius: 999px; background: #335572; color: #fff;
  font-size: 12px; line-height: 21px; text-align: center;
  border: 2px solid #fff;
}
.co-line-text { min-width: 0; }
.co-line-name { display: block; font-size: 14px; color: #335572; line-height: 1.35; }
.co-line-text .variation,
.co-line-text dl.variation {
  margin: 4px 0 0; font-size: 13px; color: rgba(51,85,114,0.6); line-height: 1.5;
}
.co-line-text .variation dt,
.co-line-text .variation dd { display: inline; margin: 0; font-weight: 400; }
.co-line-text .variation dd { margin-right: 8px; }
.co-line-text .variation p { margin: 0; display: inline; }

/* Payment methods */
.woocommerce-checkout-payment {
  border-radius: 24px; border: 1px solid rgba(51,85,114,0.10);
  background: #fff; padding: 22px; margin-top: 16px;
}
.woocommerce-checkout-payment .wc_payment_methods { list-style: none; margin: 0 0 4px; padding: 0; }
.woocommerce-checkout-payment .wc_payment_method {
  border: 1.5px solid rgba(51,85,114,0.12); border-radius: 18px;
  padding: 14px 16px; margin-bottom: 10px;
  transition: border-color 0.15s, background 0.15s;
}
.woocommerce-checkout-payment .wc_payment_method:has(input:checked) {
  border-color: #67a2d7; background: rgba(103,162,215,0.05);
}
.woocommerce-checkout-payment .wc_payment_method > label {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: #335572; cursor: pointer; margin: 0;
}
.woocommerce-checkout-payment .wc_payment_method > label img { max-height: 24px; width: auto; margin-left: auto; }
.woocommerce-checkout-payment .input-radio { width: 17px; height: 17px; accent-color: #335572; margin: 0; flex-shrink: 0; }
.woocommerce-checkout-payment .payment_box {
  margin-top: 12px; padding: 14px 16px; border-radius: 14px;
  background: rgba(51,85,114,0.04);
  font-size: 13px; line-height: 1.6; color: rgba(51,85,114,0.8);
}
.woocommerce-checkout-payment .payment_box p:last-child { margin-bottom: 0; }
.woocommerce-checkout-payment .payment_box::before { display: none; }

.woocommerce-checkout-payment .place-order { margin: 18px 0 0; padding: 0; }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; }
.woocommerce-privacy-policy-text p,
.woocommerce-terms-and-conditions-wrapper .form-row { font-size: 13px; line-height: 1.6; color: rgba(51,85,114,0.65); }
.woocommerce-privacy-policy-text a,
.woocommerce-terms-and-conditions-wrapper a { color: #67a2d7; text-decoration: underline; }

#place_order {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 52px; padding: 0 24px;
  border-radius: 999px; border: none; background: #335572; color: #fff;
  font-size: 15px; font-family: inherit; cursor: pointer;
  transition: opacity 0.15s;
}
#place_order:hover { opacity: 0.88; }
#place_order:disabled { opacity: 0.55; cursor: not-allowed; }

/* Trust strip under the summary */
.co-trust { display: flex; flex-direction: column; gap: 10px; padding: 4px 4px 0; }
.co-trust-item { display: flex; align-items: center; gap: 9px; font-size: 13px; color: rgba(51,85,114,0.7); }
.co-trust-item svg { color: #67a2d7; flex-shrink: 0; }

/* Woo's processing overlay */
.woocommerce .blockUI.blockOverlay { background: rgba(255,255,255,0.7) !important; }

/* Order Received extras (bank details, customer address blocks) */
.co-thanks-details { margin-top: 40px; text-align: left; }
.co-thanks-details:empty { display: none; }
.co-thanks-details .woocommerce-order-details,
.co-thanks-details .woocommerce-customer-details { margin-top: 32px; }
.co-thanks-details h2 { font-size: 16px; font-weight: 400; color: #335572; margin-bottom: 14px; }
.co-thanks-details table { width: 100%; border-collapse: collapse; font-size: 14px; }
.co-thanks-details th,
.co-thanks-details td { padding: 10px 0; border-bottom: 1px solid rgba(51,85,114,0.08); text-align: left; font-weight: 400; color: rgba(51,85,114,0.8); }
.co-thanks-details address { font-style: normal; font-size: 14px; line-height: 1.7; color: rgba(51,85,114,0.8); }

/* The centred order-received page still needs list resets on .info-card */
.center-page ul.info-card { list-style: none; }
.center-page ul.info-card li { display: flex; justify-content: space-between; }


/* ------------------------------------------------------------
   7. Cart
   ------------------------------------------------------------ */

.cart-page .cart-grid > .woocommerce-cart-form { min-width: 0; }
.cart-item .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cart-item .nm a { color: inherit; }
.cart-item .nm a:hover { color: #67a2d7; }
.cart-item .at p,
.cart-item .at dl { margin: 0; }
.cart-item .at dt,
.cart-item .at dd { display: inline; margin: 0; font-weight: 400; }
.cart-item .at dd { margin-right: 8px; }
.cart-item .pr .woocommerce-Price-amount { color: inherit; }

/* Woo renders quantity as <div class="quantity"><input class="qty"> */
.cart-item .qty .quantity { display: flex; align-items: center; }
.cart-item .qty input.qty {
  width: 62px; height: 38px; padding: 0 8px; text-align: center;
  border-radius: 999px; border: 1.5px solid rgba(51,85,114,0.20);
  background: #fff; color: #335572; font-size: 14px; font-family: inherit; outline: none;
  transition: border-color 0.15s;
}
.cart-item .qty input.qty:focus { border-color: #67a2d7; }
.cart-item .product-remove { flex-shrink: 0; margin-left: 8px; display: flex; }
.cart-item .product-remove a {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 999px;
  color: rgba(51,85,114,0.30); transition: color 0.15s, background 0.15s;
}
.cart-item .product-remove a:hover { color: #335572; background: rgba(51,85,114,0.06); }

.cart-actions {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  margin-top: 24px; padding-top: 24px;
  border-top: 1px solid rgba(51,85,114,0.10);
}
.cart-coupon { display: flex; gap: 8px; flex: 1; min-width: 240px; }
.cart-coupon .input-text {
  flex: 1; min-width: 0; height: 44px; padding: 0 16px;
  border-radius: 999px; border: 1.5px solid rgba(51,85,114,0.15);
  background: #fafafa; color: #335572; font-size: 14px; font-family: inherit; outline: none;
  transition: border-color 0.15s;
}
.cart-coupon .input-text:focus { border-color: #67a2d7; }
.cart-actions .btn-outline { height: 44px; padding: 0 22px; font-size: 14px; }
.cart-actions button[name="update_cart"]:disabled { opacity: 0.45; cursor: not-allowed; }

/* Totals card */
.cart-summary .cielo-totals { width: 100%; border-collapse: collapse; }
.cart-summary .cielo-totals th,
.cart-summary .cielo-totals td {
  padding: 7px 0; font-size: 14px; font-weight: 400;
  color: rgba(51,85,114,0.8); text-align: left; vertical-align: top;
}
.cart-summary .cielo-totals td { text-align: right; }
.cart-summary .cielo-totals .cart-discount td { color: #67a2d7; }
.cart-summary .cielo-totals .order-total th,
.cart-summary .cielo-totals .order-total td {
  border-top: 1px solid rgba(51,85,114,0.10);
  padding-top: 16px; margin-top: 16px; color: #335572; font-size: 16px;
}
.cart-summary .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.cart-summary .woocommerce-shipping-methods label { font-size: 14px; color: rgba(51,85,114,0.8); cursor: pointer; }
.cart-summary .shipping-calculator-button { color: #67a2d7; text-decoration: underline; font-size: 13px; }
.cart-summary .shipping-calculator-form { margin-top: 12px; text-align: left; }
.cart-summary .wc-proceed-to-checkout { margin-top: 24px; }
/* cielo_checkout_button_class() adds .cart-checkout, which styles.css already
   defines as the navy pill; it just needs the arrow puck and centring. */
.cart-summary .cart-checkout { justify-content: center; padding: 0 20px; text-decoration: none; }
.cart-collaterals { min-width: 0; }
.cart-collaterals .cross-sells { margin-top: 40px; }


/* ------------------------------------------------------------
   8. My Account
   Not part of the static build; kept consistent so the checkout
   login / order history links don't drop out of the design.
   ------------------------------------------------------------ */

.cielo-wc-page .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: block; }
.cielo-wc-page .woocommerce-MyAccount-navigation li { border-bottom: 1px solid rgba(51,85,114,0.08); position: relative; margin: 0; }
.cielo-wc-page .woocommerce-MyAccount-navigation a {
  display: block; width: 100%; height: auto; padding: 14px 4px;
  border: 0; border-radius: 0; background: none;
  font-size: 15px; color: rgba(51,85,114,0.75); transition: color 0.15s;
}
.cielo-wc-page .woocommerce-MyAccount-navigation a:hover { border: 0; background: none; color: #335572; }
.cielo-wc-page .woocommerce-MyAccount-navigation .is-active a { background: none; color: #335572; font-weight: 500; }
.cielo-wc-page .woocommerce-MyAccount-navigation .is-active::after {
  content: ""; position: absolute; right: 0; top: 10px; bottom: 10px; width: 2px; background: #335572; border-radius: 2px;
}
.cielo-wc-page .woocommerce-MyAccount-content { font-size: 15px; color: rgba(51,85,114,0.8); line-height: 1.7; }

/* Account / order tables */
.cielo-wc-page .woocommerce-orders-table,
.cielo-wc-page .shop_table:not(.cielo-totals):not(.woocommerce-checkout-review-order-table) {
  width: 100%; border-collapse: collapse; font-size: 14px;
}
.cielo-wc-page .shop_table th,
.cielo-wc-page .shop_table td {
  padding: 14px 0; border-bottom: 1px solid rgba(51,85,114,0.08);
  text-align: left; font-weight: 400; color: rgba(51,85,114,0.8);
}
.cielo-wc-page .shop_table th { color: #335572; }

/* Generic Woo buttons inside account pages */
.cielo-wc-page .woocommerce-button,
.cielo-wc-page .woocommerce-Button,
.cielo-wc-page form .button:not(.btn-outline):not(.btn-submit):not(.cart-checkout) {
  display: inline-flex; align-items: center; justify-content: center;
  height: 44px; padding: 0 24px; border-radius: 999px;
  background: #335572; border: none; color: #fff;
  font-size: 14px; font-family: inherit; cursor: pointer; text-decoration: none;
  transition: opacity 0.15s;
}
.cielo-wc-page .woocommerce-button:hover,
.cielo-wc-page form .button:not(.btn-outline):not(.btn-submit):not(.cart-checkout):hover { opacity: 0.88; }


/* ------------------------------------------------------------
   9. Reduced motion
   ------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
  .product-card .img-inner img,
  .blog-card .cover img { transition: none; }
  .product-card:hover .img-inner img,
  .blog-card:hover .cover img { transform: none; }
}


/* ------------------------------------------------------------
   10. Parity fix
   page-templates/template-home-demo.php renders .hero-navspace, but the rule
   for it exists only in the static build's styles.css — it was dropped when
   the stylesheet was ported into the theme, so the hero lost its nav spacer.
   Restored here rather than in styles.css, so that file stays a clean
   re-export of the static design system.
   ------------------------------------------------------------ */

.hero-navspace { height: 72px; flex-shrink: 0; position: relative; z-index: 1; }

/* ============================================================
   Single product page (woocommerce/content-single-product.php)
   Extends the .pd-* design system from styles.css with the bits
   the live WooCommerce template needs: real gallery images, a
   quantity stepper, disabled/out-of-stock states and a long
   description block.
   ============================================================ */

.cielo-single { display: block; }
.cielo-single-product { display: block; }

/* Gallery: real images inside the placeholder frames */
.pd-main-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-img-fallback {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 24px; color: #335572; font-size: 32px; font-weight: 500; letter-spacing: -0.02em;
}
.pd-thumb { padding: 0; overflow: hidden; font-family: inherit; }
.pd-thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: block; }

/* Notices (add-to-cart confirmations / errors) */
.pd-notices:empty { display: none; }
.pd-notices .woocommerce-message,
.pd-notices .woocommerce-error,
.pd-notices .woocommerce-info {
  list-style: none; margin: 0 0 4px; padding: 12px 16px; border-radius: 12px;
  font-size: 14px; border: 1px solid rgba(51,85,114,0.12); background: rgba(103,162,215,0.08); color: #335572;
}
.pd-notices .woocommerce-error { background: rgba(220,38,38,0.06); border-color: rgba(220,38,38,0.2); color: #b91c1c; }
.pd-notices .button { display: none; }

/* Attribute label above each chip group */
.pd-attr-label {
  font-size: 13px; color: rgba(51,85,114,0.6); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px;
}
.pd-attr + .pd-attr { margin-top: 4px; }

/* Out-of-stock indicator */
.pd-stock--out { color: rgba(51,85,114,0.55); }
.pd-stock--out::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: rgba(51,85,114,0.3); display: inline-block; }

/* Sale price rendered inside .pd-price */
.pd-price del { color: rgba(51,85,114,0.45); font-size: 0.72em; margin-right: 8px; }
.pd-price ins { text-decoration: none; }
.pd-price .from,
.pd-price .woocommerce-Price-amount { color: inherit; }

/* Add-to-cart row: quantity stepper + button */
.pd-addrow { display: flex; align-items: stretch; gap: 12px; }
.pd-qty {
  display: inline-flex; align-items: center; gap: 2px; flex-shrink: 0;
  border: 1.5px solid rgba(51,85,114,0.15); border-radius: 999px; padding: 0 4px; height: 52px;
}
.pd-qty-btn {
  width: 36px; height: 100%; border: none; background: none; cursor: pointer; color: #335572;
  font-size: 18px; line-height: 1; display: flex; align-items: center; justify-content: center;
  border-radius: 999px; transition: background 0.15s;
}
.pd-qty-btn:hover { background: rgba(51,85,114,0.06); }
.pd-qty-input {
  width: 34px; text-align: center; border: none; outline: none; background: none;
  font-family: inherit; font-size: 15px; color: #335572; -moz-appearance: textfield;
}
.pd-add { flex: 1; }
.pd-add:disabled { opacity: 0.45; cursor: not-allowed; }
.pd-add:disabled:hover { opacity: 0.45; }

/* Long description */
.pd-longdesc { max-width: var(--max); margin-inline: auto; padding: 8px 20px 24px; }
@media (min-width: 768px) { .pd-longdesc { padding: 8px 32px 32px; } }
.pd-longdesc h2 { font-size: 20px; font-weight: 400; color: #335572; letter-spacing: -0.02em; margin-bottom: 12px; }
.pd-longdesc-body { font-size: 15px; line-height: 1.75; color: rgba(51,85,114,0.85); max-width: 68ch; }
.pd-longdesc-body p { margin: 0 0 14px; }
.pd-longdesc-body a { color: #67a2d7; text-decoration: underline; }
.pd-longdesc-body ul, .pd-longdesc-body ol { margin: 0 0 14px; padding-left: 20px; }
.pd-longdesc-body li { margin-bottom: 6px; }

/* ============================================================
   Cart drawer — free-shipping progress bar
   (functions.php: cielo_mini_cart_free_shipping_bar)
   ============================================================ */
.cd-ship-progress {
  padding: 14px 24px 12px; border-bottom: 1px solid rgba(51,85,114,0.08);
  background: rgba(103,162,215,0.05);
}
.cd-ship-progress .cd-ship-msg {
  font-size: 13px; color: rgba(51,85,114,0.85); text-align: center; margin-bottom: 8px;
}
.cd-ship-progress .cd-ship-msg .woocommerce-Price-amount { color: #335572; font-weight: 500; }
.cd-ship-track { height: 6px; border-radius: 999px; background: rgba(51,85,114,0.10); overflow: hidden; }
.cd-ship-fill {
  height: 100%; border-radius: 999px; background: linear-gradient(90deg,#67A2D7,#335572);
  transition: width 0.5s cubic-bezier(0.16,1,0.3,1);
}
.cd-ship-progress.is-free { background: rgba(34,197,94,0.07); border-color: rgba(34,197,94,0.18); }
.cd-ship-progress.is-free .cd-ship-msg { color: #16a34a; font-weight: 500; }
.cd-ship-progress.is-free .cd-ship-fill { background: #22c55e; }

/* ============================================================
   Single product — WooCommerce native add-to-cart form
   Styled directly (no JS dependency) so the product page works and
   looks right even if js/single-product.js doesn't run. The chips
   are progressive enhancement layered over the native <select>.
   ============================================================ */
.pd-purchase { margin: 0; }
.pd-purchase form.cart { margin: 0; }

/* --- variation selector fallback (native select), shown until chips take over --- */
.pd-purchase .variations { width: 100%; margin: 0 0 6px; border: 0; }
.pd-purchase .variations tbody,
.pd-purchase .variations tr,
.pd-purchase .variations td,
.pd-purchase .variations th { display: block; padding: 0; border: 0; background: none; }
.pd-purchase .variations .label {
  font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em;
  color: rgba(51,85,114,0.6); margin-bottom: 8px;
}
.pd-purchase .variations .value select {
  width: 100%; height: 50px; border: 1.5px solid rgba(51,85,114,0.15); border-radius: 999px;
  padding: 0 18px; font-family: inherit; font-size: 15px; color: #335572; background: #fff; cursor: pointer;
}
.pd-purchase .reset_variations { display: none !important; }

/* Chips (rendered in .pd-info) are hidden until the JS enhancement is ready;
   at that point we hide the raw select and reveal the chips. */
.pd-info .pd-attr { display: none; }
.cielo-sp-ready .pd-info .pd-attr { display: block; }
.cielo-sp-ready .pd-purchase .variations { display: none; }

/* Hide the duplicate variation price/availability (we show price in .pd-price) */
.pd-purchase .woocommerce-variation-price,
.pd-purchase .single_variation .price,
.pd-purchase .woocommerce-variation-availability { display: none !important; }
.pd-purchase .woocommerce-variation-description {
  font-size: 14px; color: rgba(51,85,114,0.8); margin: 0 0 12px;
}

/* --- add-to-cart row: quantity + button --- */
.pd-purchase .woocommerce-variation-add-to-cart,
.pd-purchase--simple form.cart {
  display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap;
}
.pd-purchase .single_variation_wrap { display: block; }

/* Quantity box styled as a pill; − / + injected by JS (native input works without) */
.pd-purchase .quantity {
  display: inline-flex; align-items: center; flex-shrink: 0;
  border: 1.5px solid rgba(51,85,114,0.15); border-radius: 999px; height: 52px; padding: 0 6px;
}
.pd-purchase .quantity .qty {
  width: 46px; height: 100%; text-align: center; border: 0; background: none; outline: none;
  font-family: inherit; font-size: 15px; color: #335572; -moz-appearance: textfield; padding: 0;
}
.pd-purchase .quantity .qty::-webkit-outer-spin-button,
.pd-purchase .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pd-purchase .quantity .pd-qty-btn {
  width: 30px; height: 40px; border: none; background: none; cursor: pointer; color: #335572;
  font-size: 17px; line-height: 1; border-radius: 999px; display: flex; align-items: center; justify-content: center;
  transition: background 0.15s;
}
.pd-purchase .quantity .pd-qty-btn:hover { background: rgba(51,85,114,0.07); }

/* Add-to-cart button — navy pill, overrides WooCommerce's default styling */
.pd-purchase .single_add_to_cart_button,
.pd-purchase button.single_add_to_cart_button {
  flex: 1; min-width: 200px; height: 52px; padding: 0 24px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: #335572; color: #fff; border: 0; border-radius: 999px;
  font-family: inherit; font-size: 15px; font-weight: 400; cursor: pointer;
  transition: opacity 0.15s; text-decoration: none;
}
.pd-purchase .single_add_to_cart_button:hover { opacity: 0.9; color: #fff; background: #335572; }
.pd-purchase .single_add_to_cart_button.disabled,
.pd-purchase .single_add_to_cart_button.wc-variation-selection-needed {
  opacity: 0.4; cursor: not-allowed;
}
.pd-purchase .single_add_to_cart_button.loading { opacity: 0.7; }
.pd-purchase .single_add_to_cart_button.loading::after {
  content: ""; width: 15px; height: 15px; margin-left: 8px; border-radius: 999px;
  border: 2px solid rgba(255,255,255,0.5); border-top-color: #fff; display: inline-block;
  animation: cieloSpin 0.7s linear infinite;
}
@keyframes cieloSpin { to { transform: rotate(360deg); } }

/* --- Override plugin/WooCommerce default (purple) button + tidy tier UI --- */
.pd-purchase .single_add_to_cart_button,
.pd-purchase button.single_add_to_cart_button,
.pd-purchase .button.single_add_to_cart_button {
  background: #335572 !important;
  color: #fff !important;
  border-color: #335572 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.pd-purchase .single_add_to_cart_button:hover { background: #2b485f !important; }
.pd-purchase .single_add_to_cart_button.disabled,
.pd-purchase .single_add_to_cart_button.wc-variation-selection-needed { opacity: 0.4 !important; }

/* Tiered-pricing plugin table + line preview inside the purchase area */
.pd-purchase table:not(.variations) {
  width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 14px; color: #335572;
}
.pd-purchase table:not(.variations) td,
.pd-purchase table:not(.variations) th {
  border: 1px solid rgba(51,85,114,0.12); padding: 10px 12px; text-align: left;
}

/* ============================================================
   Cart page — trust / ship / payments / disclaimer in the summary
   (mirrors the cart drawer; shares the same Customizer toggles)
   ============================================================ */
.cart-summary .cart-trust { display: grid; gap: 8px; margin-top: 16px; }
.cart-summary .cart-trust-i {
  font-size: 11px; letter-spacing: 0.02em; text-align: center; color: rgba(51,85,114,0.75);
  padding: 10px 6px; border: 1px solid rgba(51,85,114,0.10); border-radius: 12px; background: rgba(51,85,114,0.02);
}
.cart-summary .cart-ship-today {
  display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 12px;
  font-size: 12.5px; color: rgba(51,85,114,0.75);
  background: rgba(103,162,215,0.08); border: 1px solid rgba(103,162,215,0.16); border-radius: 10px; padding: 9px 12px;
}
.cart-summary .cart-ship-today svg { color: #67A2D7; flex-shrink: 0; }
.cart-summary .cart-payments { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 7px; margin-top: 16px; }
.cart-summary .cart-payments svg { display: block; }
.cart-summary .cart-disclaimer { font-size: 11px; line-height: 1.5; color: rgba(51,85,114,0.55); text-align: center; margin: 12px 0 0; }

/* ============================================================
   Age gate — scroll lock fix
   Base rule (styles.css) locks scroll for everyone until
   html.age-verified exists, which strands the page when the gate
   is disabled/home-only/already-dismissed. Scope the lock so it
   only applies while the gate is actually on screen.
   ============================================================ */
html:not(.age-verified) body { overflow: visible; }
body.age-gate-open { overflow: hidden !important; }

/* ============================================================
   My Account — Sign In / Register card (woocommerce/myaccount/form-login.php)
   CSS-only tab toggle (works without JS).
   ============================================================ */
.cielo-account {
  display: flex; flex-direction: column; align-items: center;
  padding: 140px 20px 90px; min-height: 60vh;
}
.acct-notices { width: 100%; max-width: 440px; }
.acct-notices:empty { display: none; }
.acct-notices .woocommerce-error,
.acct-notices .woocommerce-message,
.acct-notices .woocommerce-info {
  list-style: none; margin: 0 0 14px; padding: 12px 16px; border-radius: 12px; font-size: 14px;
  border: 1px solid rgba(51,85,114,0.12); background: rgba(103,162,215,0.08); color: #335572;
}
.acct-notices .woocommerce-error { background: rgba(220,38,38,0.06); border-color: rgba(220,38,38,0.2); color: #b91c1c; }
.acct-notices .button { display: none; }

.acct-card {
  width: 100%; max-width: 440px; background: #fff; border: 1px solid rgba(51,85,114,0.10);
  border-radius: 22px; padding: 26px; box-shadow: 0 20px 50px -30px rgba(51,85,114,0.35);
}

/* radios drive the tabs; keep them out of view */
.acct-radio { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }

.acct-tabs {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px;
  background: rgba(51,85,114,0.06); border-radius: 999px; padding: 5px; margin-bottom: 24px;
}
.acct-tab {
  text-align: center; padding: 11px 12px; border-radius: 999px; cursor: pointer;
  font-size: 14.5px; color: rgba(51,85,114,0.7); transition: all 0.15s; user-select: none;
}
.acct-tab:hover { color: #335572; }
#acct-signin:checked ~ .acct-tabs .acct-tab-signin,
#acct-register:checked ~ .acct-tabs .acct-tab-register {
  background: #335572; color: #fff; box-shadow: 0 6px 14px -6px rgba(51,85,114,0.6);
}

/* panels: show only the checked one */
.acct-panel { display: none; }
#acct-signin:checked ~ .acct-panel-login { display: block; }
#acct-register:checked ~ .acct-panel-register { display: block; }
/* when registration is disabled there are no radios — show the login panel */
.acct-card > .acct-panel-login:first-child { display: block; }

.acct-field { display: flex; flex-direction: column; gap: 7px; margin: 0 0 16px; }
.acct-field label {
  font-size: 13.5px; color: #335572; font-weight: 400;
}
.acct-field .input-text,
.cielo-account input[type="text"],
.cielo-account input[type="email"],
.cielo-account input[type="password"] {
  width: 100%; height: 48px; border: 1.5px solid rgba(51,85,114,0.14); border-radius: 999px;
  padding: 0 18px; font-family: inherit; font-size: 15px; color: #335572; background: #F7FAFC; outline: none;
  transition: border-color 0.15s, background 0.15s;
}
.cielo-account input:focus { border-color: #67A2D7; background: #fff; }
.cielo-account input::placeholder { color: rgba(51,85,114,0.4); }

.acct-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 420px) { .acct-row { grid-template-columns: 1fr; } }

.acct-remember {
  display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: rgba(51,85,114,0.75);
  margin: 2px 0 18px; cursor: pointer;
}
.acct-remember input { width: 16px; height: 16px; accent-color: #335572; }

.acct-btn {
  width: 100%; height: 50px; border: 0; border-radius: 999px; background: #335572 !important;
  color: #fff !important; font-family: inherit; font-size: 15px; cursor: pointer; transition: opacity 0.15s;
  display: flex; align-items: center; justify-content: center;
}
.acct-btn:hover { opacity: 0.92; background: #335572 !important; color: #fff !important; }

.acct-lost { text-align: center; margin: 16px 0 0; }
.acct-lost a { color: rgba(51,85,114,0.7); font-size: 13.5px; text-decoration: underline; }
.acct-lost a:hover { color: #335572; }
.acct-note { font-size: 13px; color: rgba(51,85,114,0.6); margin: 0 0 16px; }

/* ============================================================
   My Account — logged-in dashboard (woocommerce/myaccount/*)
   ============================================================ */
.cielo-account-page { max-width: 1180px; margin: 0 auto; padding: 118px 32px 70px; }
@media (max-width: 700px) { .cielo-account-page { padding: 100px 20px 50px; } }

.acct-head { border-bottom: 1px solid rgba(51,85,114,0.10); padding-bottom: 26px; margin-bottom: 34px; }
.acct-eyebrow { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--sky, #67A2D7); font-weight: 600; margin-bottom: 8px; }
.acct-heading { font-size: clamp(30px, 5vw, 46px); font-weight: 400; letter-spacing: -0.02em; color: #335572; margin: 0; }

.acct-shell { display: grid; grid-template-columns: 250px 1fr; gap: 44px; align-items: start; }
@media (max-width: 860px) { .acct-shell { grid-template-columns: 1fr; gap: 28px; } }

/* sidebar */
.acct-sidebar { position: relative; }
.acct-user { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.acct-avatar img { width: 52px; height: 52px; border-radius: 999px; display: block; background: #E8EEF1; }
.acct-user-meta { display: flex; flex-direction: column; line-height: 1.3; }
.acct-user-name { font-size: 15px; font-weight: 500; color: #335572; text-transform: uppercase; letter-spacing: 0.02em; }
.acct-user-id { font-size: 13px; color: rgba(51,85,114,0.5); }

.acct-nav ul { list-style: none; margin: 0; padding: 0; }
.acct-nav li { border-bottom: 1px solid rgba(51,85,114,0.08); position: relative; }
.acct-nav li a {
  display: block; padding: 14px 4px; color: rgba(51,85,114,0.75); text-decoration: none; font-size: 15px;
  transition: color 0.15s;
}
.acct-nav li a:hover { color: #335572; }
.acct-nav li.is-active a { color: #335572; font-weight: 500; }
.acct-nav li.is-active::after {
  content: ""; position: absolute; right: 0; top: 10px; bottom: 10px; width: 2px; background: #335572; border-radius: 2px;
}
.acct-watermark {
  display: block; margin-top: 26px; font-size: 34px; font-weight: 800; letter-spacing: -0.03em;
  color: rgba(51,85,114,0.06); user-select: none;
}

/* content: greeting + cards */
.acct-greeting { font-size: 16px; line-height: 1.7; color: rgba(51,85,114,0.85); margin: 0 0 26px; max-width: 70ch; }
.acct-greeting strong { color: #335572; font-weight: 600; }

.acct-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 1000px) { .acct-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .acct-cards { grid-template-columns: 1fr; } }

.acct-card {
  display: flex; flex-direction: column; gap: 8px; text-decoration: none;
  background: #fff; border: 1px solid rgba(51,85,114,0.10); border-radius: 18px; padding: 22px;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.acct-card:hover { border-color: rgba(103,162,215,0.5); box-shadow: 0 16px 40px -26px rgba(51,85,114,0.5); transform: translateY(-2px); }
.acct-card-icon {
  width: 46px; height: 46px; border-radius: 12px; background: rgba(103,162,215,0.10);
  display: flex; align-items: center; justify-content: center; margin-bottom: 6px;
}
.acct-card-icon svg { width: 22px; height: 22px; }
.acct-card-title { font-size: 17px; color: #335572; letter-spacing: -0.01em; }
.acct-card-desc { font-size: 13.5px; color: rgba(51,85,114,0.6); line-height: 1.5; }
.acct-card-link { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: #67A2D7; margin-top: 6px; }
.acct-card:hover .acct-card-link { gap: 9px; }

/* WooCommerce endpoint content (orders table, forms, addresses) inside .acct-content */
.acct-content .woocommerce-MyAccount-content,
.acct-content { min-width: 0; }
.acct-content .woocommerce-message,
.acct-content .woocommerce-info,
.acct-content .woocommerce-error {
  border-radius: 12px; border: 1px solid rgba(51,85,114,0.12); background: rgba(103,162,215,0.08);
  color: #335572; padding: 12px 16px; list-style: none;
}

/* ============================================================
   My Account dashboard — layout corrections (higher specificity so
   they win over the generic .woocommerce wrappers)
   ============================================================ */
.cielo-wc-page .cielo-account-page { max-width: 1200px; margin: 0 auto; width: 100%; }
.cielo-wc-page .acct-shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 48px; align-items: start; }
.cielo-wc-page .acct-content { min-width: 0; width: 100%; }
.cielo-wc-page .acct-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; width: 100%; }
.cielo-wc-page .acct-card { min-width: 0; }
@media (max-width: 1000px) { .cielo-wc-page .acct-cards { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 860px) { .cielo-wc-page .acct-shell { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 560px) { .cielo-wc-page .acct-cards { grid-template-columns: 1fr; } }

/* Give each card a bit more breathing room to match the reference */
.cielo-wc-page .acct-card { padding: 24px; }
.cielo-wc-page .acct-card-title { font-size: 18px; }
.cielo-wc-page .acct-card-desc { font-size: 14px; }

/* ============================================================
   USP mobile — pinned "step-scroll" (one card at a time)
   Fallback (no JS / .uspm-ready absent): vial + cards stacked.
   With .uspm-ready (added by chrome.js on mobile): the section
   pins while you scroll and the cards advance one at a time.
   ============================================================ */
.usp-mobile { position: relative; display: block; overflow: visible;
  background: radial-gradient(ellipse at 50% 55%, rgba(103,162,215,0.22) 0%, transparent 65%), #0B2D47; }
@media (min-width: 768px) { .usp-mobile { display: none; } }

.usp-mobile .grid-tex { position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 60px 60px; }

/* ---- fallback (stacked) ---- */
.uspm-sticky { position: relative; }
.uspm-stage { position: relative; z-index: 1; padding: 56px 20px 64px; }
.uspm-vial { width: 230px; margin: 0 auto 6px; transform: rotate(7deg); filter: drop-shadow(-14px 0 32px rgba(103,162,215,0.5)); }
.uspm-vial video, .uspm-vial img { width: 100%; height: auto; display: block; background: transparent; }
.uspm-podium { width: 168px; margin: -14px auto 30px; opacity: 0.85; }
.uspm-podium img { width: 100%; height: auto; display: block; }
.uspm-cards { position: relative; max-width: 360px; margin: 0 auto; }
.uspm-card { margin-bottom: 14px; }
.uspm-card .stat { font-weight: 400; color: #fff; line-height: 1; letter-spacing: -0.03em; margin-bottom: 6px; font-size: 30px; }
.uspm-card .label { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; margin-bottom: 8px; color: #67a2d7; }
.uspm-card .sub { font-size: 14px; color: rgba(255,255,255,0.6); line-height: 1.45; }
.uspm-dots { display: none; }

/* ---- pinned step-scroll (JS active on mobile) ---- */
.uspm-ready .uspm-scroll { height: calc(100vh + var(--uspm-steps, 4) * 58vh); position: relative; }
.uspm-ready .uspm-sticky {
  position: sticky; position: -webkit-sticky; top: 0; height: 100vh; height: 100svh;
  overflow: hidden; display: flex; align-items: center;
}
.uspm-ready .uspm-stage { width: 100%; height: 100%; padding: 0; }

.uspm-ready .uspm-vial {
  position: absolute; left: -7vw; top: 50%; width: min(66vw, 340px); margin: 0;
  transform: translateY(-52%) rotate(7deg); z-index: 2;
}
.uspm-ready .uspm-podium {
  position: absolute; left: 3vw; bottom: 12%; width: min(52vw, 240px); margin: 0; opacity: 0.85; z-index: 1;
}
.uspm-ready .uspm-cards {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  width: 48%; max-width: 220px; min-height: 190px; margin: 0; z-index: 3;
}
.uspm-ready .uspm-card {
  position: absolute; top: 0; left: 0; right: 0; margin: 0; opacity: 0; pointer-events: none;
  transform: translateY(16px) scale(0.98);
  transition: opacity 0.55s cubic-bezier(0.16,1,0.3,1), transform 0.55s cubic-bezier(0.16,1,0.3,1);
}
.uspm-ready .uspm-card.active { opacity: 1; transform: none; pointer-events: auto; }
/* connector dot + dashed line pointing to the vial */
.uspm-ready .uspm-card::before {
  content: ""; position: absolute; left: -10px; top: 26px; width: 9px; height: 9px; border-radius: 50%;
  background: #67A2D7; box-shadow: 0 0 0 4px rgba(103,162,215,0.18);
}
.uspm-ready .uspm-card::after {
  content: ""; position: absolute; left: -34px; top: 30px; width: 26px; height: 0;
  border-top: 1px dashed rgba(103,162,215,0.55);
}
.uspm-ready .uspm-dots {
  display: flex; position: absolute; bottom: 6%; left: 50%; transform: translateX(-50%);
  gap: 8px; z-index: 4;
}
.uspm-ready .uspm-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,0.28); transition: all 0.3s; }
.uspm-ready .uspm-dot.active { background: #67A2D7; width: 22px; border-radius: 4px; }
