/* ==========================================================================
   AD Course Vault 1.5 – storefront skin (account, courses, player, login, checkout, cart)
   Brand colour: WooCommerce > Course Vault.  Fonts: Epilogue (headings) + Inter (text), self-hosted.
   ========================================================================== */
@font-face { font-family: 'ADCV Epilogue'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('fonts/epilogue-latin-wght-normal.woff2') format('woff2'); }
@font-face { font-family: 'ADCV Inter';    font-style: normal; font-weight: 100 900; font-display: swap; src: url('fonts/inter-latin-wght-normal.woff2') format('woff2'); }

:root {
  --adcv-accent: #ff1a7a;
  --adcv-accent-dark: color-mix(in srgb, var(--adcv-accent) 70%, #000);
  --adcv-accent-soft: color-mix(in srgb, var(--adcv-accent) 8%, #fff);
  --adcv-accent-line: color-mix(in srgb, var(--adcv-accent) 22%, #fff);
  --adcv-ink: #14121b;
  --adcv-text: #3c3a48;
  --adcv-muted: #6c6a78;
  --adcv-line: #ebe8f0;
  --adcv-bg: #f8f6fa;
  --adcv-card: #fff;
  --adcv-radius: 22px;
  --adcv-shadow: 0 1px 2px rgba(20, 18, 27, .04), 0 18px 40px -24px rgba(20, 18, 27, .22);
  --adcv-grad: linear-gradient(135deg, var(--adcv-accent), var(--adcv-accent-dark));
  --adcv-head: 'Epilogue', 'ADCV Epilogue', system-ui, sans-serif;
  --adcv-body: 'Inter', 'ADCV Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- typography on every storefront page ---------- */
body.adcv-page { font-family: var(--adcv-body); -webkit-font-smoothing: antialiased; }
body.adcv-page :is(h1, h2, h3, h4) { font-family: var(--adcv-head); letter-spacing: -.02em; }
body.adcv-own-title h1:not(.adcv-h1):not(.adcv-sr) { display: none !important; } /* we render our own heading */

/* ---------- app shell reset (protects us from theme/Elementor defaults) ---------- */
.adcv-app, .adcv-app *, .adcv-app *::before, .adcv-app *::after { box-sizing: border-box; }
.adcv-app { font-family: var(--adcv-body); font-size: 16px; line-height: 1.65; color: var(--adcv-text); width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 20px 72px; }
.adcv-app :is(ul, ol) { list-style: none; margin: 0; padding: 0; }
.adcv-app :is(h1, h2, h3, h4) { margin: 0; color: var(--adcv-ink); font-family: var(--adcv-head); }
.adcv-app p { margin: 0; }
.adcv-app a { text-decoration: none; }
.adcv-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.adcv-ico { flex: none; }

/* ---------- inner-page banner (same look as the theme's banners) ---------- */
.adcv-banner {
  position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 300px; padding: 70px 24px; margin: 0 0 56px; color: #fff;
  border-radius: 0 0 76px 76px;
  background:
    radial-gradient(560px 320px at 100% 0%, color-mix(in srgb, var(--adcv-accent) 52%, transparent), transparent 70%),
    radial-gradient(520px 300px at 0% 100%, color-mix(in srgb, var(--adcv-accent) 50%, transparent), transparent 70%),
    linear-gradient(180deg, #232323, #1b1b1b);
}
.adcv-banner::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 46px 46px; }
.adcv-banner .adcv-h1 { position: relative; z-index: 1; margin: 0 !important; max-width: 980px; color: #fff !important;
  font-family: var(--adcv-head); font-size: clamp(30px, 4.2vw, 50px); font-weight: 800; line-height: 1.12; letter-spacing: .02em; text-transform: uppercase; }
/* fallback if the banner could not be moved under the header: full-bleed on its own */
.adcv-banner:not(.is-moved) { width: 100vw; margin-left: calc(50% - 50vw); }
body.adcv-page { overflow-x: clip; }
.adcv-account.is-theatre, .adcv-checkout { padding-top: 0; }
body.adcv-own-title :is(.page-header, .entry-header, .entry-title, .woocommerce-products-header) { display: none !important; }

/* ---------- account layout ---------- */
.adcv-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 32px; align-items: start; }
.adcv-account.is-theatre .adcv-layout { grid-template-columns: minmax(0, 1fr); }
.adcv-aside { position: sticky; top: 100px; }
.adcv-content { min-width: 0; container-type: inline-size; container-name: adcvc; }

.adcv-nav { background: var(--adcv-card); border: 1px solid var(--adcv-line); border-radius: var(--adcv-radius); box-shadow: var(--adcv-shadow); overflow: hidden; }
.adcv-user { display: flex; align-items: center; gap: 14px; padding: 22px 22px 18px; border-bottom: 1px solid var(--adcv-line); background: linear-gradient(180deg, var(--adcv-accent-soft), #fff); }
.adcv-avatar { flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--adcv-grad); color: #fff; font: 700 18px var(--adcv-head); box-shadow: 0 10px 20px -10px var(--adcv-accent); }
.adcv-user-meta { display: flex; flex-direction: column; min-width: 0; }
.adcv-user-meta strong { color: var(--adcv-ink); font: 700 15px/1.3 var(--adcv-head); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adcv-user-meta small { color: var(--adcv-muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adcv-nav ul { padding: 10px; display: grid; gap: 2px; }
.adcv-nav-item a { position: relative; display: flex; align-items: center; gap: 13px; padding: 12px 14px; border-radius: 14px; color: var(--adcv-text) !important; font-size: 15px; font-weight: 500; transition: background .15s, color .15s; }
.adcv-nav-item a:hover { background: var(--adcv-bg); color: var(--adcv-ink) !important; }
.adcv-nav-item .adcv-ico { color: var(--adcv-muted); transition: color .15s; }
.adcv-nav-item.is-active a { background: var(--adcv-accent-soft); color: var(--adcv-accent-dark) !important; font-weight: 600; }
.adcv-nav-item.is-active a::before { content: ""; position: absolute; left: -10px; top: 50%; width: 4px; height: 22px; transform: translateY(-50%); border-radius: 0 4px 4px 0; background: var(--adcv-accent); }
.adcv-nav-item.is-active .adcv-ico { color: var(--adcv-accent); }
.adcv-nav-item.is-logout { margin-top: 6px; padding-top: 8px; border-top: 1px solid var(--adcv-line); }
.adcv-nav-item.is-logout a { color: var(--adcv-muted) !important; }

/* ---------- buttons ---------- */
.adcv-app :is(.adcv-btn, a.button, button.button, .woocommerce-Button, #place_order, .checkout-button),
.adcv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 14px 26px; border: 0 !important; border-radius: 999px !important;
  background: var(--adcv-grad) !important; color: #fff !important; font: 600 15px/1.2 var(--adcv-body); letter-spacing: .005em; cursor: pointer;
  box-shadow: 0 14px 26px -14px var(--adcv-accent); transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.adcv-btn:hover, .adcv-app :is(a.button, button.button, .woocommerce-Button, #place_order):hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 18px 30px -14px var(--adcv-accent); }
.adcv-btn:active { transform: translateY(0); }
.adcv-btn-block { width: 100%; }
.adcv-btn-dark { background: var(--adcv-ink) !important; box-shadow: 0 14px 26px -16px rgba(0,0,0,.7); }
.adcv-btn .adcv-ico { width: 17px; height: 17px; }
.adcv-btn .adcv-ico-play { fill: currentColor; stroke: none; }

/* ---------- forms ---------- */
.adcv-app label { display: block; margin: 0 0 7px; color: var(--adcv-ink); font-size: 14px; font-weight: 600; }
.adcv-app .required { color: var(--adcv-accent); text-decoration: none; }
.adcv-app :is(input.input-text, input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number], textarea, select),
.adcv-app .select2-container--default .select2-selection--single {
  width: 100%; min-height: 52px; padding: 13px 16px; border: 1.5px solid var(--adcv-line) !important; border-radius: 14px !important; background: #fff;
  color: var(--adcv-ink); font: 400 15px/1.4 var(--adcv-body); box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
.adcv-app textarea { min-height: 120px; }
.adcv-app :is(input, textarea, select):focus { outline: 0; border-color: var(--adcv-accent) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--adcv-accent) 16%, transparent); }
.adcv-app .select2-container--default .select2-selection--single { display: flex; align-items: center; }
.adcv-app .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--adcv-ink); }
.adcv-app .select2-container--default .select2-selection--single .select2-selection__arrow { height: 50px; right: 10px; }
.adcv-app input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--adcv-accent); vertical-align: middle; margin: 0 8px 0 0; }
.adcv-app .form-row, .adcv-field { margin: 0 0 18px; padding: 0; }
.adcv-app :is(.form-row-first, .form-row-last, .form-row-wide) { float: none !important; width: 100% !important; }
.adcv-app .password-input { display: block; position: relative; }
.adcv-app .show-password-input { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); border: 0; background: none; cursor: pointer; opacity: .6; }
.adcv-app :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-EditAccountForm) { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.adcv-app :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) .form-row-wide,
.adcv-app .woocommerce-EditAccountForm :is(.form-row-wide, fieldset, .clear, p:last-child) { grid-column: 1 / -1; }
.adcv-app .woocommerce-EditAccountForm .clear { display: none; }
.adcv-app fieldset { border: 1.5px solid var(--adcv-line); border-radius: 18px; padding: 20px 22px 6px; margin: 8px 0 22px; }
.adcv-app legend { padding: 0 8px; font: 700 15px var(--adcv-head); color: var(--adcv-ink); }
.adcv-link { color: var(--adcv-accent) !important; font-size: 14px; font-weight: 600; }
.adcv-link:hover { text-decoration: underline !important; }
.adcv-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 22px; }
.adcv-check { display: inline-flex !important; align-items: center; margin: 0 !important; font-weight: 500 !important; color: var(--adcv-text) !important; cursor: pointer; }

/* WooCommerce notices */
.adcv-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  list-style: none; background: var(--adcv-card) !important; color: var(--adcv-ink) !important; border: 1px solid var(--adcv-line) !important; border-left: 5px solid var(--adcv-accent) !important;
  border-radius: 16px !important; padding: 16px 22px !important; margin: 0 0 22px !important; box-shadow: var(--adcv-shadow); font-size: 15px;
}
.adcv-page .woocommerce-error { border-left-color: #d63638 !important; }
.adcv-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { display: none !important; }

/* ---------- login / register ---------- */
.adcv-authwrap { max-width: 1020px; padding-top: 24px; }
.adcv-auth { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); border-radius: 32px; overflow: hidden; background: var(--adcv-card); border: 1px solid var(--adcv-line); box-shadow: 0 40px 80px -40px rgba(20, 18, 27, .35); }
.adcv-auth-brand { position: relative; padding: 52px 44px; color: #fff; display: flex; flex-direction: column; gap: 22px; justify-content: center;
  background: radial-gradient(520px 320px at 100% 0%, color-mix(in srgb, var(--adcv-accent) 65%, transparent), transparent 70%), linear-gradient(145deg, #1a1522, #0d0b13); }
.adcv-auth-brand h2 { color: #fff !important; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; font-weight: 800; letter-spacing: -.03em; }
.adcv-ticks { display: grid; gap: 14px; }
.adcv-ticks li { display: flex; gap: 12px; align-items: flex-start; color: rgba(255,255,255,.86); font-size: 15px; }
.adcv-ticks .adcv-ico { margin-top: 2px; padding: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--adcv-accent); color: #fff; }
.adcv-auth-foot { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.65); font-size: 13.5px; }
.adcv-auth-form { padding: 52px 48px; display: flex; flex-direction: column; justify-content: center; }
.adcv-auth-title { font-size: 28px; font-weight: 800; letter-spacing: -.03em; }
.adcv-auth-sub { margin: 6px 0 26px; color: var(--adcv-muted); font-size: 15px; }
.adcv-tabs { display: inline-grid; grid-auto-flow: column; gap: 4px; padding: 5px; margin-bottom: 26px; border-radius: 999px; background: var(--adcv-bg); align-self: flex-start; }
.adcv-tab { padding: 9px 20px; border: 0; border-radius: 999px; background: transparent; color: var(--adcv-muted); font: 600 14px var(--adcv-body); cursor: pointer; transition: all .15s; }
.adcv-tab.is-on { background: #fff; color: var(--adcv-ink); box-shadow: 0 4px 12px -4px rgba(20,18,27,.2); }
.adcv-panel[hidden] { display: none; }
.adcv-authwrap form { margin: 0; padding: 0; border: 0; }

/* lost / reset password use the same card as login */
.adcv-auth-back { margin: 18px 0 0; text-align: center; }
.adcv-eyebrow { display: inline-block; align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font: 600 12px/1 var(--adcv-body); letter-spacing: .1em; text-transform: uppercase; }

/* bot honeypot: invisible to people */
.adcv-hp { position: absolute !important; left: -9999px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0; pointer-events: none; }

/* ---------- My Courses ---------- */
.adcv-wrap { max-width: none; }
.adcv-welcome { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 26px; }
.adcv-wtitle { margin: 0 0 4px !important; font-size: 28px; font-weight: 800; letter-spacing: -.03em; }
.adcv-welcome p { color: var(--adcv-muted); font-size: 15.5px; }
.adcv-pill { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--adcv-accent-soft); border: 1px solid var(--adcv-accent-line); color: var(--adcv-accent-dark); font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.adcv-pill .adcv-ico { width: 16px; height: 16px; }

.adcv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@container adcvc (max-width: 719px) { .adcv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container adcvc (max-width: 479px) { .adcv-grid { grid-template-columns: minmax(0, 1fr); } }
@supports not (container-type: inline-size) {
  @media (max-width: 1000px) { .adcv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 640px) { .adcv-grid { grid-template-columns: minmax(0, 1fr); } }
}

.adcv-card { display: flex; flex-direction: column; background: var(--adcv-card); border: 1px solid var(--adcv-line); border-radius: 22px; overflow: hidden; box-shadow: var(--adcv-shadow); transition: transform .25s ease, box-shadow .25s ease, border-color .25s; }
.adcv-card:hover { transform: translateY(-5px); border-color: var(--adcv-accent-line); box-shadow: 0 34px 56px -30px rgba(20, 18, 27, .42); }
.adcv-thumb { position: relative; display: block; overflow: hidden; background: var(--adcv-accent-soft); }
.adcv-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .5s ease, filter .3s; }
.adcv-card:hover .adcv-thumb img { transform: scale(1.04); }

.adcv-statebadge { position: absolute; z-index: 3; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 9px; border-radius: 999px; font: 600 12px/1 var(--adcv-body); letter-spacing: .02em; color: #fff; backdrop-filter: blur(6px); }
.adcv-statebadge .adcv-ico { width: 14px; height: 14px; }
.adcv-statebadge.is-ok { background: rgba(22, 163, 74, .92); }
.adcv-statebadge.is-lock { background: rgba(14, 12, 20, .78); }

/* locked: dimmed thumbnail + centred padlock so it is obvious at a glance */
.adcv-card.is-locked .adcv-thumb img { filter: grayscale(.55) brightness(.78); }
.adcv-card.is-locked .adcv-thumb::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,12,20,.08), rgba(14,12,20,.5)); }
.adcv-lockcenter { position: absolute; z-index: 2; left: 50%; top: 50%; width: 58px; height: 58px; margin: -29px 0 0 -29px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.4); color: #fff; backdrop-filter: blur(8px); box-shadow: 0 16px 30px -12px rgba(0,0,0,.6); }
.adcv-lockcenter .adcv-ico { width: 24px; height: 24px; }
.adcv-playbadge { position: absolute; z-index: 2; right: 14px; bottom: 14px; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--adcv-grad); color: #fff; box-shadow: 0 14px 26px -8px var(--adcv-accent); opacity: 0; transform: translateY(8px) scale(.9); transition: all .25s ease; }
.adcv-playbadge .adcv-ico { fill: currentColor; stroke: none; width: 17px; height: 17px; margin-left: 2px; }
.adcv-card:hover .adcv-playbadge { opacity: 1; transform: none; }

.adcv-body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 20px 20px 22px; }
.adcv-kicker { color: var(--adcv-accent-dark); font: 700 11.5px/1 var(--adcv-body); letter-spacing: .12em; text-transform: uppercase; }
.adcv-title { margin: 0 !important; font: 700 19px/1.28 var(--adcv-head); letter-spacing: -.02em; color: var(--adcv-ink);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.56em; }
.adcv-excerpt { color: var(--adcv-muted); font-size: 14px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.adcv-foot { display: flex; flex-direction: column; gap: 14px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--adcv-line); }
.adcv-pricebox { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.adcv-price, .adcv-price * { color: var(--adcv-ink); font: 800 28px/1 var(--adcv-head) !important; letter-spacing: -.03em; }
.adcv-price .woocommerce-Price-currencySymbol { font-size: .72em !important; margin-right: 1px; vertical-align: .08em; }
.adcv-pricenote { color: var(--adcv-muted); font-size: 12.5px; }
.adcv-progress { display: flex; align-items: center; gap: 12px; }
.adcv-bar { flex: 1; height: 8px; border-radius: 99px; background: var(--adcv-line); overflow: hidden; }
.adcv-bar span { display: block; height: 100%; border-radius: 99px; background: var(--adcv-grad); }
.adcv-pct { color: var(--adcv-ink); font-size: 13px; font-weight: 700; }
.adcv-foot .adcv-btn { width: 100%; padding: 13px 20px; }

/* ---------- player (theatre) ---------- */
.adcv-theatre .adcv-backwrap { margin: 0 0 18px; }
.adcv-back { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: var(--adcv-card); border: 1px solid var(--adcv-line); color: var(--adcv-ink) !important; font-size: 14px; font-weight: 600; transition: all .15s; }
.adcv-back:hover { background: var(--adcv-accent-soft); border-color: var(--adcv-accent-line); color: var(--adcv-accent-dark) !important; }
.adcv-player { --plyr-color-main: var(--adcv-accent); --plyr-font-family: var(--adcv-body);
  position: relative; width: 100%; overflow: hidden; border-radius: 26px; background: #0b0910; border: 1px solid #221d2c;
  box-shadow: 0 50px 90px -40px rgba(10, 8, 20, .75), 0 0 0 8px var(--adcv-bg); }
.adcv-player video { display: block; width: 100%; }
.adcv-player .plyr { border-radius: 26px; }
.adcv-player .plyr--video .plyr__control--overlaid { padding: 26px; background: var(--adcv-grad); box-shadow: 0 0 0 12px rgba(255,255,255,.16), 0 24px 40px -10px var(--adcv-accent); }
.adcv-player .plyr__controls { padding: 18px 22px 16px; }
.adcv-desc { margin-top: 30px; padding: 28px 32px; border-radius: var(--adcv-radius); background: var(--adcv-card); border: 1px solid var(--adcv-line); box-shadow: var(--adcv-shadow); color: var(--adcv-text); font-size: 16px; line-height: 1.75; }
.adcv-desc p + p { margin-top: 12px; }
.adcv-msg { margin-top: 18px; padding: 14px 18px; border-radius: 14px; background: #fdecea; color: #8a1c14; font-size: 14px; }
.adcv-msg[hidden] { display: none; }
.adcv-note { margin-top: 18px; display: flex; align-items: center; gap: 8px; color: var(--adcv-muted); font-size: 13.5px; }

.adcv-wm { position: absolute; z-index: 2; pointer-events: none; user-select: none; white-space: nowrap; color: rgba(255,255,255,.4); font: 600 13px var(--adcv-body); letter-spacing: .3px; text-shadow: 0 0 3px rgba(0,0,0,.7); transition: top 1.6s ease, left 1.6s ease; }
.plyr:fullscreen .adcv-wm, .plyr--fullscreen-fallback .adcv-wm { font-size: 17px; }

/* ---------- account tables (orders etc.) ---------- */
.adcv-content :is(table.shop_table, .woocommerce-orders-table) { width: 100%; border: 1px solid var(--adcv-line) !important; border-radius: 18px; border-collapse: separate; border-spacing: 0; overflow: hidden; background: #fff; box-shadow: var(--adcv-shadow); }
.adcv-content table.shop_table :is(th, td) { padding: 15px 18px; border: 0; border-top: 1px solid var(--adcv-line); text-align: left; }
.adcv-content table.shop_table thead th { background: var(--adcv-bg); border-top: 0; color: var(--adcv-ink); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.adcv-content .woocommerce-MyAccount-orders a.button, .adcv-content a.button { padding: 9px 18px !important; font-size: 13.5px; }
.adcv-content :is(h2, h3) { margin: 0 0 18px; font-size: 24px; font-weight: 800; letter-spacing: -.03em; }
.adcv-content .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; }
.adcv-content .woocommerce-Addresses .col-1, .adcv-content .woocommerce-Addresses .col-2 { float: none; width: auto; padding: 24px; background: #fff; border: 1px solid var(--adcv-line); border-radius: 20px; box-shadow: var(--adcv-shadow); }
.adcv-content address { font-style: normal; line-height: 1.8; }

/* ---------- checkout ---------- */
.adcv-co { display: block; position: relative; margin: 0; }
.adcv-co > .woocommerce-NoticeGroup { margin: 0 0 24px; }
.adcv-co .woocommerce-NoticeGroup :is(.woocommerce-error, .woocommerce-message) { margin: 0 !important; }
.adcv-co .woocommerce-error li { margin: 0 0 6px; list-style: none; }
.adcv-co .woocommerce-error li:last-child { margin-bottom: 0; }
.adcv-co-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); gap: 32px; align-items: start; }
.adcv-co-main { display: grid; gap: 22px; min-width: 0; }
.adcv-panelcard { padding: 34px 34px 18px; background: var(--adcv-card); border: 1px solid var(--adcv-line); border-radius: var(--adcv-radius); box-shadow: var(--adcv-shadow); }
.adcv-co-col { float: none !important; width: 100% !important; }
.adcv-co-col h3 { margin: 0 0 22px; font-size: 23px; font-weight: 800; letter-spacing: -.03em; }
.adcv-co-col .woocommerce-additional-fields { margin-top: 12px; }
.adcv-co-side { position: sticky; top: 100px; display: grid; gap: 16px; padding: 28px; background: var(--adcv-card); border: 1px solid var(--adcv-line); border-radius: var(--adcv-radius); box-shadow: 0 30px 60px -34px rgba(20, 18, 27, .35); }
.adcv-co-side #order_review_heading { margin: 0; font-size: 23px; font-weight: 800; letter-spacing: -.03em; }
.adcv-co-side table.shop_table { width: 100%; margin: 0; border: 0 !important; border-collapse: collapse; background: transparent; }
.adcv-co-side table.shop_table :is(th, td) { padding: 13px 0; border: 0; border-top: 1px solid var(--adcv-line); background: transparent; text-align: left; font-size: 15px; vertical-align: top; }
.adcv-co-side table.shop_table thead th { border-top: 0; color: var(--adcv-muted); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.adcv-co-side table.shop_table :is(td.product-total, tfoot td) { text-align: right; }
.adcv-co-side table.shop_table tfoot tr.order-total :is(th, td) { color: var(--adcv-ink); font: 800 20px var(--adcv-head); }
.adcv-co-side #payment { background: transparent !important; border: 0 !important; border-radius: 0; }
.adcv-co-side #payment ul.payment_methods { margin: 0 0 16px !important; padding: 0 !important; border: 0 !important; }
.adcv-co-side #payment ul.payment_methods > li { margin: 0 0 10px; padding: 16px 18px; border: 1.5px solid var(--adcv-line); border-radius: 16px; background: #fcfbfd; list-style: none; }
.adcv-co-side #payment ul.payment_methods > li:has(input:checked) { border-color: var(--adcv-accent); background: var(--adcv-accent-soft); }
.adcv-co-side #payment ul.payment_methods > li label { display: inline; margin: 0; font-weight: 600; }
.adcv-co-side #payment div.payment_box { margin: 14px 0 0 !important; padding: 0 !important; background: transparent !important; color: var(--adcv-muted); font-size: 14px; }
.adcv-co-side #payment div.payment_box::before { display: none !important; }
.adcv-co-side #place_order { width: 100%; float: none !important; padding: 18px 28px !important; font-size: 17px; }
.adcv-co-side .woocommerce-privacy-policy-text, .adcv-co-side .woocommerce-terms-and-conditions-wrapper { color: var(--adcv-muted); font-size: 13px; line-height: 1.6; }
.adcv-co-side .form-row.place-order { margin: 0; padding: 0; }
.adcv-co-side #adcv_waiver_field { margin: 0 0 16px; padding: 14px 16px; border-radius: 14px; background: var(--adcv-accent-soft); border: 1px solid var(--adcv-accent-line); }
.adcv-co-side #adcv_waiver_field .adcv-waiver-label { display: flex !important; align-items: flex-start; gap: 12px; margin: 0; font-size: 13.5px; font-weight: 500; line-height: 1.55; color: var(--adcv-ink); cursor: pointer; }
.adcv-co-side #adcv_waiver_field input[type=checkbox] { flex: none; margin: 3px 0 0; }
.adcv-co-side #adcv_waiver_field .adcv-waiver-text { display: block; flex: 1; min-width: 0; }
.adcv-co-side #adcv_waiver_field .adcv-waiver-text a { color: var(--adcv-accent) !important; font-weight: 600; text-decoration: underline; white-space: normal; }
.adcv-co-side #adcv_waiver_field abbr.required { color: var(--adcv-accent); text-decoration: none; border: 0; }

/* Apple Pay / Google Pay / Link: below the order box, not above the form */
.adcv-express { margin: 0; }
.adcv-express:has(iframe, button) { padding-top: 18px; border-top: 1px solid var(--adcv-line); }
.adcv-express:has(iframe, button)::before { content: "Or pay faster with"; display: block; margin: 0 0 12px; color: var(--adcv-muted); font: 600 12px/1 var(--adcv-body); letter-spacing: .08em; text-transform: uppercase; text-align: center; }
.adcv-express :is([id*="button-separator"], [id*="express-checkout-separator"]) { display: none !important; }
.adcv-express > * { margin-left: 0 !important; margin-right: 0 !important; max-width: 100%; }
.adcv-trust { display: grid; gap: 12px; margin-top: 4px; padding-top: 20px; border-top: 1px solid var(--adcv-line); }
.adcv-trust li { display: flex; gap: 12px; align-items: flex-start; color: var(--adcv-muted); font-size: 13.5px; line-height: 1.55; }
.adcv-trust .adcv-ico { margin-top: 1px; color: var(--adcv-accent); }

/* "already have an account / already purchased" box under checkout */
.adcv-haveaccount { display: flex; align-items: center; gap: 20px; margin-top: 32px; padding: 24px 28px; border-radius: var(--adcv-radius); background: var(--adcv-accent-soft); border: 1px solid var(--adcv-accent-line); }
.adcv-ha-icon { flex: none; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--adcv-accent); box-shadow: 0 10px 22px -12px var(--adcv-accent); }
.adcv-ha-icon .adcv-ico { width: 24px; height: 24px; }
.adcv-ha-text { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.adcv-ha-text strong { color: var(--adcv-ink); font: 700 17px/1.3 var(--adcv-head); letter-spacing: -.01em; }
.adcv-ha-text span { color: var(--adcv-muted); font-size: 14.5px; }
.adcv-haveaccount .adcv-btn { flex: none; }
.adcv-checkout :is(.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle) { margin: 0 0 22px; }
.adcv-checkout form.woocommerce-form-login, .adcv-checkout form.checkout_coupon { margin: 0 0 24px; padding: 24px; border: 1px solid var(--adcv-line); border-radius: 18px; background: #fff; box-shadow: var(--adcv-shadow); }

/* thank-you page + cart (theme page title stays, we only style the content) */
body.adcv-page .woocommerce-order { max-width: 860px; margin: 0 auto; padding: 8px 0 48px; }
body.adcv-page .woocommerce-thankyou-order-received { padding: 18px 22px; border-radius: 16px; background: var(--adcv-accent-soft); border: 1px solid var(--adcv-accent-line); color: var(--adcv-ink); font-weight: 600; }
body.adcv-page .woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin: 22px 0; padding: 0; list-style: none; }
body.adcv-page .woocommerce-order-overview li { padding: 16px 18px; border: 1px solid var(--adcv-line); border-radius: 16px; background: #fff; font-size: 13px; color: var(--adcv-muted); }
body.adcv-page .woocommerce-order-overview li strong { display: block; margin-top: 4px; color: var(--adcv-ink); font-size: 16px; }
.adcv-thanks { margin: 24px 0; }
.adcv-thanks .button { display: inline-flex; align-items: center; padding: 15px 30px; border-radius: 999px; background: var(--adcv-grad) !important; color: #fff !important; font-weight: 600; text-decoration: none; box-shadow: 0 14px 26px -14px var(--adcv-accent); }

body.woocommerce-cart.adcv-page .woocommerce { max-width: 1160px; margin: 0 auto; padding: 8px 0 60px; font-family: var(--adcv-body); }
body.woocommerce-cart.adcv-page :is(.woocommerce-cart-form table.shop_table, .cart_totals table.shop_table) { border: 1px solid var(--adcv-line) !important; border-radius: 18px; border-collapse: separate; border-spacing: 0; overflow: hidden; background: #fff; box-shadow: var(--adcv-shadow); }
body.woocommerce-cart.adcv-page .shop_table :is(th, td) { padding: 16px 18px; border: 0; border-top: 1px solid var(--adcv-line); }
body.woocommerce-cart.adcv-page .shop_table thead th { background: var(--adcv-bg); border-top: 0; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
body.woocommerce-cart.adcv-page .cart_totals { padding: 26px; border: 1px solid var(--adcv-line); border-radius: var(--adcv-radius); background: #fff; box-shadow: var(--adcv-shadow); }
body.woocommerce-cart.adcv-page :is(a.button, button.button, a.checkout-button) { display: inline-flex; justify-content: center; padding: 14px 26px; border: 0; border-radius: 999px !important; background: var(--adcv-grad) !important; color: #fff !important; font-weight: 600; box-shadow: 0 14px 26px -14px var(--adcv-accent); }
body.woocommerce-cart.adcv-page .wc-proceed-to-checkout a.checkout-button { width: 100%; font-size: 16px; }

/* Block-based Cart / Checkout (only if those pages use blocks) */
body.adcv-page .wc-block-components-button:not(.is-link) { border-radius: 999px !important; background: var(--adcv-grad) !important; color: #fff !important; border: 0 !important; font-weight: 600; padding: 15px 28px; box-shadow: 0 14px 26px -14px var(--adcv-accent); }
body.adcv-page .wc-block-components-text-input input, body.adcv-page .wc-block-components-select .wc-block-components-select__select, body.adcv-page .wc-blocks-components-select .wc-blocks-components-select__select { border: 1.5px solid var(--adcv-line) !important; border-radius: 14px !important; min-height: 54px; }
body.adcv-page .wc-block-components-sidebar-layout .wc-block-components-main, body.adcv-page .wp-block-woocommerce-checkout-order-summary-block { background: #fff; border: 1px solid var(--adcv-line); border-radius: var(--adcv-radius); padding: 28px; box-shadow: var(--adcv-shadow); }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
  .adcv-layout { grid-template-columns: 1fr; gap: 22px; }
  .adcv-aside { position: static; }
  .adcv-nav ul { display: flex; gap: 6px; overflow-x: auto; padding: 10px; scrollbar-width: none; }
  .adcv-nav ul::-webkit-scrollbar { display: none; }
  .adcv-nav-item a { white-space: nowrap; padding: 10px 16px; }
  .adcv-nav-item.is-active a::before { display: none; }
  .adcv-nav-item.is-logout { margin: 0; padding: 0; border: 0; }
  .adcv-co-grid { grid-template-columns: 1fr; }
  .adcv-co-side { position: static; }
  .adcv-auth { grid-template-columns: 1fr; }
  .adcv-auth-brand { padding: 34px 28px; }
  .adcv-auth-foot { display: none; }
}
@media (max-width: 640px) {
  .adcv-banner { min-height: 210px; padding: 48px 20px; margin-bottom: 36px; border-radius: 0 0 40px 40px; }
  .adcv-haveaccount { flex-direction: column; align-items: flex-start; }
  .adcv-haveaccount .adcv-btn { width: 100%; }
  .adcv-auth-form { padding: 32px 22px; }
  .adcv-panelcard { padding: 24px 20px 8px; }
  .adcv-app :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-EditAccountForm) { grid-template-columns: 1fr; }
  .adcv-player, .adcv-player .plyr { border-radius: 16px; }
  .adcv-player { box-shadow: 0 30px 60px -34px rgba(10, 8, 20, .75); }
  .adcv-desc { padding: 22px; }
}

/* login-card password eye (our own button; WooCommerce's is hidden here) */
.adcv-authwrap .password-input .show-password-input { display: none !important; }
.adcv-authwrap .password-input input { padding-right: 48px; }
.adcv-eye { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 0; background: none; color: var(--adcv-muted, #666); cursor: pointer; border-radius: 8px; }
.adcv-eye:hover { color: var(--adcv-accent, #ff0f7b); }

/* logout is a form button now (prefetchers cannot trigger it) */
.adcv-logout-form { margin: 0; }
.adcv-nav-item button.adcv-nav-btn { position: relative; display: flex; align-items: center; gap: 13px; width: 100%; padding: 12px 14px; border: 0; border-radius: 14px; background: none; color: var(--adcv-muted); font: inherit; font-size: 15px; font-weight: 500; text-align: left; cursor: pointer; transition: background .15s, color .15s; }
.adcv-nav-item button.adcv-nav-btn:hover { background: var(--adcv-bg); color: var(--adcv-ink); }
@media (max-width: 1000px) { .adcv-nav-item button.adcv-nav-btn { white-space: nowrap; padding: 10px 16px; width: auto; } }

/* login row: Remember me / Lost password never break on phones */
.adcv-row .adcv-link { white-space: nowrap; }
.adcv-check span { white-space: nowrap; }
@media (max-width: 520px) {
  .adcv-row { flex-direction: column; align-items: flex-start; gap: 14px; }
  .adcv-row .adcv-link { margin-left: 0; }
}
