/*
 * Equity Crafts NP — main stylesheet (homepage + components).
 * Scoped with .ec- prefixes. Gold palette via CSS variables (style.css / Customizer).
 * No inline styles; minimal !important; mobile-first responsive.
 */

/* layout */
.ec-wrap { max-width: var(--ec-maxw); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ec-home-body { margin: 0; background: var(--ec-bg); color: var(--ec-bone); font-family: var(--ec-font-body); line-height: 1.65; -webkit-font-smoothing: antialiased; }
.ec-home-body * { box-sizing: border-box; }
.ec-home-body h1, .ec-home-body h2, .ec-home-body h3, .ec-home-body h4 { font-family: var(--ec-font-head); font-weight: 600; line-height: 1.1; letter-spacing: -0.01em; }
.ec-home-body a { color: inherit; text-decoration: none; }
.ec-home-body img { max-width: 100%; display: block; }
.ec-kicker { font-size: 12px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ec-gold); display: inline-block; }

/* header */
.ec-header { position: absolute; top: 0; left: 0; right: 0; z-index: 60; }
.ec-nav { display: flex; align-items: center; justify-content: space-between; height: 80px; }
.ec-brand { font-family: var(--ec-font-head); font-weight: 700; font-size: 21px; display: flex; align-items: center; gap: 10px; color: var(--ec-bone); }
.ec-mark { width: 30px; height: 30px; border-radius: 50%; background: conic-gradient(from 210deg, var(--ec-ember), var(--ec-gold), var(--ec-ember)); box-shadow: 0 0 18px rgba(199,91,43,.5); display: inline-block; }
.ec-menu > ul { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; font-size: 14px; font-weight: 500; }
.ec-menu > ul > li { position: relative; }
.ec-menu > ul > li > a { color: var(--ec-bone); display: inline-flex; align-items: center; gap: 4px; padding: 6px 0; }
.ec-menu a:hover { color: var(--ec-gold-soft); }
.ec-caret { font-size: 10px; opacity: .8; }
.ec-submenu { position: absolute; top: 100%; left: 0; min-width: 210px; list-style: none; margin: 8px 0 0; padding: 8px; background: rgba(14,11,8,.98); border: 1px solid rgba(201,162,75,.25); border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.5); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; z-index: 100; }
.ec-has-sub:hover > .ec-submenu, .ec-has-sub:focus-within > .ec-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.ec-submenu li a { display: block; padding: 8px 12px; color: var(--ec-sand); font-size: 13px; border-radius: 6px; }
.ec-submenu li a:hover { background: rgba(201,162,75,.12); color: var(--ec-bone); }
.ec-actions { display: flex; align-items: center; gap: 16px; }
.ec-actions .pill { border: 1px solid rgba(201,162,75,.45); color: var(--ec-gold-soft); padding: 7px 15px; border-radius: 40px; font-weight: 600; font-size: 13px; }
.ec-carticon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(201,162,75,.35); color: var(--ec-bone); transition: background .2s, color .2s; }
.ec-carticon:hover { background: rgba(201,162,75,.18); color: var(--ec-gold-soft); }
.ec-cart-count { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--ec-ember); color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; line-height: 1; box-shadow: 0 2px 6px rgba(199,91,43,.5); }
.ec-cart-count.is-empty { display: none; }

/* ===== Blog (homepage feed + archive + single) ===== */
.ec-blog { background: var(--ec-bg-2); padding: 84px 0; }
.ec-blog__head { display: flex; justify-content: space-between; align-items: flex-end; max-width: 100%; margin-bottom: 40px; gap: 20px; flex-wrap: wrap; }
.ec-blog__head h2 { color: var(--ec-bone); margin: 12px 0 8px; }
.ec-blog__head p { color: var(--ec-sand); }
.ec-blog__all { color: var(--ec-gold-soft); font-weight: 600; font-size: 14px; white-space: nowrap; }
.ec-blog__all:hover { color: var(--ec-ember-2); }
.ec-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ec-blog__card { background: var(--ec-charcoal); border: 1px solid rgba(201,162,75,.16); border-radius: var(--ec-radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s, border-color .25s; }
.ec-blog__card:hover { transform: translateY(-6px); border-color: rgba(201,162,75,.5); }
.ec-blog__img { aspect-ratio: 16/10; background-size: cover; background-position: center; background-color: #0e0b08; }
.ec-blog__body { padding: 20px 22px 24px; }
.ec-blog__date { color: var(--ec-gold-soft); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.ec-blog__body h3 { color: var(--ec-bone); font-size: 19px; margin: 8px 0 10px; }
.ec-blog__body p { color: var(--ec-muted); font-size: 14.5px; }
.ec-blog__more { display: inline-block; margin-top: 12px; color: var(--ec-gold-soft); font-weight: 600; font-size: 14px; }
.ec-blog__card:hover .ec-blog__more { color: var(--ec-ember-2); }

/* single post + blog archive (readable on dark) */
.ec-page.single-post .entry-header { text-align: left; }
.ec-page.single-post .entry-title, .ec-page.blog .entry-title, .ec-page.blog .page-title { color: var(--ec-bone); font-family: var(--ec-font-head); }
.ec-page.single-post .entry-meta, .ec-page.blog .entry-meta { color: var(--ec-muted); }
.ec-page.single-post .wp-post-image { border-radius: var(--ec-radius); margin-bottom: 20px; }
.ec-page.blog .entry-header .entry-title a { color: var(--ec-bone); }
.ec-page.blog .entry-summary, .ec-page.blog .entry-content { color: var(--ec-sand); }
@media (max-width: 900px) { .ec-blog__grid { grid-template-columns: 1fr; } }

/* ===== Collections: LIGHT theme (matches homepage product list) ===== */
.ec-page.woocommerce, .ec-page.woocommerce-page { background: var(--ec-surface); color: var(--ec-ink-soft); }
.ec-page.woocommerce .site, .ec-page.woocommerce .site-content, .ec-page.woocommerce #primary, .ec-page.woocommerce #content, .ec-page.woocommerce .inside-article, .ec-page.woocommerce .entry-content { background: transparent; }
.ec-page.woocommerce .woocommerce-result-count { color: var(--ec-ink-soft); }
.ec-page.woocommerce .woocommerce-ordering select { background:#fff; color:var(--ec-ink); border:1px solid rgba(20,16,10,.15); }
.ec-page.woocommerce nav.woocommerce-pagination ul li a, .ec-page.woocommerce nav.woocommerce-pagination ul li span { background:#fff; color:var(--ec-ink); border:1px solid rgba(20,16,10,.12); margin:0 3px; border-radius:8px; }
.ec-page.woocommerce nav.woocommerce-pagination ul li a:hover, .ec-page.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ec-gold); color:#241a06; border-color:transparent; }
.ec-page.woocommerce .woocommerce-info, .ec-page.woocommerce .woocommerce-message { background:#fff; color:var(--ec-ink-soft); border-top-color:var(--ec-gold); }

.ec-page.woocommerce ul.products li.product { position: relative; }
/* stock badge */
.ec-stock { position:absolute; top:10px; left:10px; z-index:3; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:4px 9px; border-radius:20px; }
.ec-stock.in { background:rgba(62,92,74,.16); color:#3e5c33; }
.ec-stock.out { background:rgba(199,91,43,.16); color:#a8421a; }

/* sub-category quick nav */
.ec-subnav { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 22px; }
.ec-subnav a { padding:8px 16px; border-radius:30px; background:#fff; border:1px solid rgba(20,16,10,.12); color:var(--ec-ink); font-size:13px; font-weight:600; }
.ec-subnav a:hover { border-color:var(--ec-gold); }
.ec-subnav a.is-active { background:linear-gradient(180deg,var(--ec-gold-soft),var(--ec-gold)); color:#241a06; border-color:transparent; }

/* filter bar */
.ec-shop-grid { display: grid; grid-template-columns: 260px 1fr; gap: 32px; align-items: start; }
.ec-shop-filter { background:#fff; border:1px solid rgba(20,16,10,.08); border-radius:14px; padding:22px 20px; box-shadow:var(--ec-shadow); position:sticky; top:90px; }
.ec-shop-filter__title { font-size:14px; color:var(--ec-ink); margin:0 0 16px; text-transform:uppercase; letter-spacing:.12em; }
.ec-filter-group { margin-bottom:22px; }
.ec-filter-group h4 { font-size:13px; color:var(--ec-ink); margin:0 0 10px; }
.ec-toggle { display:flex; align-items:center; gap:10px; cursor:pointer; font-size:13px; color:var(--ec-ink-soft); user-select:none; }
.ec-toggle input { position:absolute; opacity:0; width:0; height:0; }
.ec-toggle__track { width:40px; height:22px; border-radius:12px; background:#d8d0c2; position:relative; transition:background .2s; flex-shrink:0; }
.ec-toggle__thumb { position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .2s; }
.ec-toggle input:checked + .ec-toggle__track { background:linear-gradient(180deg,var(--ec-gold-soft),var(--ec-gold)); }
.ec-toggle input:checked + .ec-toggle__track .ec-toggle__thumb { transform:translateX(18px); }
.ec-filter__price { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ec-filter__price input { width:72px; padding:7px 9px; border:1px solid rgba(20,16,10,.15); border-radius:8px; font-size:13px; font-family:inherit; }
.ec-filter__price button { background:linear-gradient(180deg,var(--ec-gold-soft),var(--ec-gold)); color:#241a06; border:0; border-radius:8px; padding:8px 14px; font-weight:700; font-size:13px; cursor:pointer; font-family:inherit; }
.ec-filter__reset { display:inline-block; color:var(--ec-ember); font-size:13px; font-weight:600; text-decoration:underline; }
@media (max-width: 900px) { .ec-shop-grid { grid-template-columns:1fr; } .ec-shop-filter { position:static; } }

/* text visibility on light collection pages */
.ec-shop-main, .ec-shop-filter { color: var(--ec-ink-soft); }
.ec-page.woocommerce .woocommerce-result-count, .ec-page.woocommerce-page .woocommerce-result-count { color: var(--ec-ink); font-weight: 600; }
.ec-page.woocommerce .woocommerce-ordering select option { color: var(--ec-ink); }

/* breadcrumb on hero */
.ec-colhero .woocommerce-breadcrumb { color: rgba(244,238,227,.9); font-size: 13px; margin: 0 0 14px; display: block; }
.ec-colhero .woocommerce-breadcrumb a { color: var(--ec-gold-soft); font-weight: 600; }
.ec-colhero .woocommerce-breadcrumb a:hover { color: var(--ec-bone); }

/* No underline on inner-page nav / header / footer links (override GP default) */
.ec-page .ec-header a, .ec-page .ec-footer a, .ec-page .ec-menu a, .ec-page .ec-submenu a, .ec-page .ec-subnav a, .ec-page .ec-actions a, .ec-page .ec-carticon, .ec-page .ec-foot a { text-decoration: none; }
.ec-page .ec-foot a:hover, .ec-page .ec-menu a:hover { text-decoration: none; }

/* sidebar featured product (fills empty space) */
.ec-shop-featured { margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(20,16,10,.1); text-align: center; }
.ec-shop-featured__label { display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ec-gold); margin-bottom:10px; font-weight:700; }
.ec-shop-featured img { width:100%; max-width:150px; height:auto; margin:0 auto 10px; border-radius:10px; }
.ec-shop-featured h4 { font-size:15px; margin:0 0 4px; color:var(--ec-ink); }
.ec-shop-featured h4 a { color:var(--ec-ink); }
.ec-shop-featured__price { color:var(--ec-ink); font-weight:700; margin-bottom:12px; }
.ec-shop-featured__btn { display:inline-block; background:linear-gradient(180deg,var(--ec-gold-soft),var(--ec-gold)); color:#241a06; padding:8px 18px; border-radius:30px; font-weight:700; font-size:13px; }

/* hero */
.ec-hero { position: relative; min-height: 92vh; overflow: hidden; }
.ec-slides { position: absolute; inset: 0; }
.ec-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s ease; z-index: 1; pointer-events: none; }
.ec-slide.active { opacity: 1; z-index: 2; pointer-events: auto; }
.ec-slide__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-image: var(--img); transform: scale(1.08); }
.ec-slide.active .ec-slide__bg { animation: eckenburns 18s ease-in-out infinite alternate; }
@keyframes eckenburns { from { transform: scale(1.08); } to { transform: scale(1.18); } }
.ec-slide__scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,6,5,.95) 0%, rgba(8,6,5,.8) 32%, rgba(8,6,5,.3) 64%, transparent 82%), linear-gradient(0deg, rgba(8,6,5,.9), transparent 45%); }
.ec-slide__host { position: relative; z-index: 3; min-height: 92vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 120px 24px 90px; }
.ec-slide__inner { max-width: 660px; }
.ec-slide .ec-slide__inner { opacity: 0; transform: translateY(22px); transition: opacity .8s ease .25s, transform .8s ease .25s; }
.ec-slide.active .ec-slide__inner { opacity: 1; transform: none; }
.ec-hero h1 { font-size: clamp(44px, 7vw, 80px); margin: 22px 0; }
.ec-hero h1 em { font-style: italic; color: var(--ec-gold-soft); font-weight: 500; }
.ec-lead { font-size: 19px; color: var(--ec-sand); max-width: 540px; margin: 0 0 34px; }
.ec-ctarow { display: flex; gap: 16px; flex-wrap: wrap; }
.ec-btn { display: inline-flex; align-items: center; gap: 10px; padding: 15px 28px; border-radius: 40px; font-weight: 600; font-size: 15px; border: 1px solid transparent; transition: transform .15s, box-shadow .2s, filter .2s; cursor: pointer; font-family: inherit; }
.ec-btn--primary { background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)); color: #241a06; box-shadow: 0 14px 38px rgba(201,162,75,.42); }
.ec-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 18px 46px rgba(201,162,75,.55); }
.ec-btn--heat { background: linear-gradient(180deg, var(--ec-ember-2), var(--ec-ember)); color: #1a0f06; box-shadow: 0 14px 38px rgba(199,91,43,.42); }
.ec-btn--ghost { background: transparent; border-color: rgba(244,238,227,.4); color: var(--ec-bone); }
.ec-btn--ghost:hover { border-color: var(--ec-bone); }
.ec-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 25; width: 48px; height: 48px; border-radius: 50%; background: rgba(10,8,6,.4); border: 1px solid rgba(201,162,75,.3); color: var(--ec-bone); font-size: 22px; cursor: pointer; line-height: 1; }
.ec-arrow:hover { background: rgba(201,162,75,.25); }
.ec-arrow--prev { left: 22px; }
.ec-arrow--next { right: 22px; }
.ec-dots { position: absolute; left: 0; right: 0; bottom: 28px; z-index: 25; display: flex; gap: 10px; justify-content: center; }
.ec-dots button { width: 34px; height: 4px; border-radius: 4px; border: 0; background: rgba(244,238,227,.28); cursor: pointer; transition: background .3s, width .3s; }
.ec-dots button.active { background: var(--ec-gold); width: 56px; }

/* marquee */
.ec-marquee { overflow: hidden; background: var(--ec-bg-2); border-top: 1px solid rgba(201,162,75,.14); border-bottom: 1px solid rgba(201,162,75,.14); padding: 15px 0; }
.ec-track { display: flex; gap: 50px; white-space: nowrap; width: max-content; animation: ecscroll 26s linear infinite; }
@keyframes ecscroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.ec-track span { font-size: 13px; color: var(--ec-muted); }

/* stats */
.ec-stats { background: var(--ec-bg); }
.ec-stats .ec-wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding: 50px 24px; text-align: center; }
.ec-stat b { font-family: var(--ec-font-head); font-size: 46px; color: var(--ec-gold-soft); display: block; line-height: 1; }
.ec-stat span { font-size: 13px; color: var(--ec-muted); letter-spacing: .04em; }

/* shop sections (light) */
.ec-shop { background: var(--ec-surface); padding: 84px 0; }
.ec-shop:nth-of-type(even) { background: #EFE8DC; }
.ec-sechead { max-width: 680px; margin: 0 auto 40px; text-align: center; }
.ec-sechead .ec-kicker { color: #9a7b2e; }
.ec-sechead h2 { color: var(--ec-ink); font-size: clamp(26px, 3.6vw, 38px); margin: 14px 0 12px; }
.ec-sechead p { color: var(--ec-ink-soft); }
.ec-pgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.ec-pcard { background: var(--ec-card); border-radius: 16px; overflow: hidden; border: 1px solid rgba(20,16,10,.07); box-shadow: var(--ec-shadow); display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.ec-pcard:hover { transform: translateY(-6px); box-shadow: var(--ec-shadow-hover); }
.ec-pcard__img { aspect-ratio: 1; background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ec-pcard__img img { width: 82%; height: 82%; object-fit: contain; transition: transform .5s; filter: drop-shadow(0 10px 14px rgba(0,0,0,.12)); }
.ec-pcard:hover .ec-pcard__img img { transform: scale(1.06); }
.ec-pcard__body { padding: 12px 16px 18px; text-align: center; }
.ec-pcat { display: block; font-size: 10.5px; letter-spacing: .13em; text-transform: uppercase; color: #9a7b2e; font-weight: 600; margin-bottom: 3px; }
.ec-pcard__title { color: var(--ec-ink); font-size: 16px; margin: 0 0 5px; }
.ec-pcard__title a { color: inherit; }
.ec-price { color: var(--ec-ink); font-weight: 700; font-size: 15px; margin-bottom: 12px; }
.ec-pgrid .ec-add.button { display: block; width: 100%; background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)); color: #241a06; border: 0; padding: 10px; border-radius: 30px; font-weight: 700; cursor: pointer; font-size: 13px; text-align: center; font-family: inherit; line-height: 1.4; }
.ec-pgrid .ec-add.button:hover { filter: brightness(1.06); }
.ec-pgrid .ec-add.ec-disabled { background: #cfc6b8; color: #6b6258; cursor: not-allowed; }

/* craft */
.ec-craft { background: var(--ec-bg-2); padding: 84px 0; }
.ec-split { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; align-items: center; }
.ec-craft__stage { position: relative; aspect-ratio: 5/4; border-radius: var(--ec-radius); overflow: hidden; border: 1px solid rgba(201,162,75,.18); background-size: cover; background-position: center; }
.ec-craft__stage::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,6,5,.15), rgba(8,6,5,.7)); }
.ec-craft__cap { position: absolute; left: 18px; bottom: 16px; z-index: 2; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: rgba(244,238,227,.85); }
.ec-craft h2 { font-size: clamp(28px,4vw,42px); margin: 16px 0; color: var(--ec-bone); }
.ec-craft__lead { color: var(--ec-sand); max-width: 480px; }
.ec-craft__list { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 16px; }
.ec-craft__list li { color: var(--ec-sand); font-size: 15px; }
.ec-craft__list b { color: var(--ec-gold-soft); display: block; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 2px; }

/* why */
.ec-why { padding: 84px 0; }
.ec-why .ec-sechead h2 { color: var(--ec-bone); }
.ec-why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ec-card { background: var(--ec-charcoal); border: 1px solid rgba(201,162,75,.16); border-radius: var(--ec-radius); padding: 28px; transition: transform .25s, border-color .25s; }
.ec-card:hover { transform: translateY(-6px); border-color: rgba(201,162,75,.5); }
.ec-ico { width: 44px; height: 44px; border-radius: 10px; background: linear-gradient(135deg, rgba(201,162,75,.25), rgba(199,91,43,.2)); display: flex; align-items: center; justify-content: center; color: var(--ec-gold); margin-bottom: 16px; font-size: 20px; }
.ec-card h3 { color: var(--ec-bone); font-size: 19px; margin-bottom: 8px; }
.ec-card p { color: var(--ec-muted); font-size: 14.5px; }

/* trade CTA */
.ec-trade { padding: 0 0 84px; }
.ec-cta { border-radius: var(--ec-radius-lg); padding: 54px; border: 1px solid rgba(201,162,75,.22); background: radial-gradient(80% 140% at 12% 50%, rgba(199,91,43,.3), transparent 60%), linear-gradient(100deg, #1d150d, #100c08); }
.ec-cta h2 { font-size: clamp(24px, 3.2vw, 36px); color: var(--ec-bone); margin: 12px 0; }
.ec-cta p { color: var(--ec-sand); max-width: 540px; margin: 0 0 20px; }

/* footer */
.ec-footer { background: #0d0a07; border-top: 1px solid rgba(201,162,75,.14); padding: 60px 0 30px; }
.ec-foot { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 34px; }
.ec-foot p { color: var(--ec-muted); font-size: 14px; max-width: 300px; margin-top: 14px; }
.ec-foot h4 { font-family: var(--ec-font-body); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--ec-gold); margin-bottom: 16px; }
.ec-foot a { display: block; color: var(--ec-muted); font-size: 14px; padding: 5px 0; }
.ec-foot a:hover { color: var(--ec-gold-soft); }
.ec-legal { border-top: 1px solid rgba(201,162,75,.1); margin-top: 40px; padding-top: 22px; color: var(--ec-muted); font-size: 12.5px; }

/* best-seller badge */
.ec-bsflag { display: inline-block; background: linear-gradient(180deg, var(--ec-ember-2), var(--ec-ember)); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 20px; margin-bottom: 6px; }

/* contact */
.ec-contact { background: var(--ec-bg-2); padding: 84px 0; }
.ec-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; align-items: start; }
.ec-contact h2 { color: var(--ec-bone); font-size: clamp(26px,3.6vw,40px); margin: 12px 0; }
.ec-contact__lead { color: var(--ec-sand); max-width: 420px; }
.ec-contact__list { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 14px; }
.ec-contact__list li { color: var(--ec-sand); }
.ec-contact__list b { display: block; color: var(--ec-gold-soft); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.ec-contact__list a { color: var(--ec-bone); }
.ec-contact__form { background: var(--ec-charcoal); border: 1px solid rgba(201,162,75,.18); border-radius: var(--ec-radius-lg); padding: 28px; display: grid; gap: 14px; }
.ec-contact__form label { display: grid; gap: 6px; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--ec-muted); }
.ec-contact__form input, .ec-contact__form select, .ec-contact__form textarea { width: 100%; padding: 11px 13px; border-radius: 8px; border: 1px solid rgba(201,162,75,.2); background: rgba(255,255,255,.04); color: var(--ec-bone); font-family: inherit; font-size: 14px; }
.ec-contact__form input:focus, .ec-contact__form select:focus, .ec-contact__form textarea:focus { outline: none; border-color: var(--ec-gold); }
.ec-contact__form .ec-btn { justify-self: start; margin-top: 4px; }
.ec-sent { background: rgba(126,138,110,.22); border: 1px solid rgba(126,138,110,.5); color: var(--ec-bone); padding: 10px 14px; border-radius: 8px; font-size: 14px; margin: 0; }

/* FAQ accordion */
.ec-faq { background: var(--ec-bg); padding: 84px 0; }
.ec-faq .ec-sechead { text-align: center; }
.ec-faq .ec-sechead h2 { color: var(--ec-bone); }
.ec-faq__list { max-width: 820px; margin: 0 auto; }
.ec-faq__item { border: 1px solid rgba(201,162,75,.18); border-radius: 12px; margin-bottom: 12px; overflow: hidden; background: var(--ec-charcoal); }
.ec-faq__item summary { list-style: none; cursor: pointer; padding: 18px 22px; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-family: var(--ec-font-head); font-weight: 600; color: var(--ec-bone); font-size: 17px; }
.ec-faq__item summary::-webkit-details-marker { display: none; }
.ec-faq__item summary:hover { color: var(--ec-gold-soft); }
.ec-faq__icon { color: var(--ec-gold); font-size: 22px; line-height: 1; transition: transform .2s; }
.ec-faq__item[open] .ec-faq__icon { transform: rotate(45deg); }
.ec-faq__item[open] summary { color: var(--ec-gold-soft); }
.ec-faq__answer { padding: 0 22px 20px; color: var(--ec-sand); }

/* ===== Inner pages: solid header + dark readable base (header/footer consistency site-wide) ===== */
.ec-header--solid { position: sticky; top: 0; background: var(--ec-bg); border-bottom: 1px solid rgba(201,162,75,.18); z-index: 60; }
.ec-page { background: var(--ec-bg-2); color: var(--ec-sand); }
.ec-page .site, .ec-page .site-content, .ec-page #primary, .ec-page #content, .ec-page .inside-article, .ec-page .entry-content, .ec-page .entry-summary { background: transparent; }
.ec-page h1, .ec-page h2, .ec-page h3, .ec-page h4, .ec-page .entry-title { color: var(--ec-bone); font-family: var(--ec-font-head); }
.ec-page .entry-content p, .ec-page .entry-content li, .ec-page .entry-summary { color: var(--ec-sand); }
.ec-page a { color: var(--ec-gold-soft); }
.ec-page a:hover { color: var(--ec-ember-2); }
.ec-page .widget-title, .ec-page .widget h2 { color: var(--ec-bone); }
/* WooCommerce shop/archive readability */
.ec-page.woocommerce .woocommerce-products-header h1, .ec-page.woocommerce .page-title { color: var(--ec-bone); }
.ec-page.woocommerce .woocommerce-breadcrumb, .ec-page.woocommerce .woocommerce-result-count { color: var(--ec-muted); }
.ec-page.woocommerce .woocommerce-ordering select { background: var(--ec-charcoal); color: var(--ec-bone); border-color: rgba(201,162,75,.25); }
.ec-page.woocommerce ul.products li.product .price { color: var(--ec-gold-soft); }
.ec-page.woocommerce ul.products li.product .button { background: linear-gradient(180deg,var(--ec-gold-soft),var(--ec-gold)); color: #241a06; }
.ec-page.woocommerce span.onsale { background: var(--ec-ember); }
/* link the nav/header/footer on inner pages to homepage spacing */
.ec-page .ec-footer { margin-top: 0; }

/* ===== Collections / category pages ===== */
.ec-colhero { position: relative; background-size: cover; background-position: center; background-color: var(--ec-bg); padding: 72px 0 58px; margin: 0 0 34px; }
.ec-colhero__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,6,5,.74), rgba(8,6,5,.9)); }
.ec-colhero__inner { position: relative; z-index: 2; }
.ec-page .ec-colhero .woocommerce-breadcrumb { color: var(--ec-muted); margin: 0 0 14px; font-size: 13px; }
.ec-page .ec-colhero .woocommerce-breadcrumb a { color: var(--ec-gold-soft); }
.ec-colhero .ec-kicker { color: var(--ec-gold); }
.ec-colhero__title { color: var(--ec-bone); font-size: clamp(32px, 5vw, 52px); margin: 8px 0 12px; }
.ec-colhero__desc { color: var(--ec-sand); max-width: 640px; margin: 0; }
.ec-colhero__count { display: inline-block; margin-top: 14px; color: var(--ec-gold-soft); font-size: 13px; letter-spacing: .06em; }

/* premium product grid */
.ec-page.woocommerce ul.products, .ec-page.woocommerce-page ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-auto-flow: row dense !important; gap: 24px; margin: 0 0 44px; padding: 0; list-style: none; column-gap: 24px; }
/* WooCommerce's float-era clearfix (::before/::after with display:table) becomes a
   grid item in a CSS grid and steals the first cell, leaving a hole. Remove them. */
.ec-page.woocommerce ul.products::before, .ec-page.woocommerce-page ul.products::before,
.ec-page.woocommerce ul.products::after, .ec-page.woocommerce-page ul.products::after { content: none !important; display: none !important; }
.ec-page.woocommerce ul.products li.product { float: none !important; clear: none !important; width: auto !important; max-width: 100% !important; margin: 0 !important; background: #fff; border-radius: 16px; overflow: hidden; border: 1px solid rgba(20,16,10,.07); box-shadow: var(--ec-shadow); text-align: center; display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.ec-page.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--ec-shadow-hover); }
.ec-page.woocommerce ul.products li.product a img { width: 76%; margin: 14px auto 0; height: auto; }
.ec-page.woocommerce ul.products li.product .woocommerce-loop-product__title { color: #1c140d; font-size: 16px; padding: 8px 16px 0; font-family: var(--ec-font-head); }
.ec-page.woocommerce ul.products li.product .price { color: #1c140d; font-weight: 700; padding: 4px 16px; }
.ec-page.woocommerce ul.products li.product .price del { color: #9a8f82; font-weight: 500; }
.ec-page.woocommerce ul.products li.product .button { background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)); color: #241a06; margin: 6px 16px 16px; border-radius: 30px; font-weight: 700; padding: 10px; }
.ec-page.woocommerce ul.products li.product .button:hover { filter: brightness(1.06); }
.ec-page.woocommerce ul.products li.product .onsale { background: var(--ec-ember); border-radius: 6px; min-height: auto; min-width: auto; padding: 3px 9px; line-height: 1.4; }

/* sub-category tiles (e.g. Animals → Elephant/Dog/Octopus/Bee) */
.ec-page.woocommerce ul.products li.product-category { background: var(--ec-charcoal); border: 1px solid rgba(201,162,75,.2); color: var(--ec-bone); }
.ec-page.woocommerce ul.products li.product-category a { color: var(--ec-bone); }
.ec-page.woocommerce ul.products li.product-category img { width: 70%; margin: 14px auto 0; }
.ec-page.woocommerce ul.products li.product-category .woocommerce-loop-category__title { color: var(--ec-bone); font-family: var(--ec-font-head); padding: 8px 16px 0; font-size: 17px; }
.ec-page.woocommerce ul.products li.product-category mark.count { background: none; color: var(--ec-gold-soft); }

/* sort + result count + pagination + notices */
.ec-page.woocommerce .woocommerce-result-count, .ec-page.woocommerce-page .woocommerce-result-count { color: var(--ec-ink) !important; font-weight: 700; }
.ec-page.woocommerce .woocommerce-ordering select, .ec-page.woocommerce-page .woocommerce-ordering select { background: var(--ec-card); color: var(--ec-ink); border: 1px solid rgba(201,162,75,.5); padding: 9px 14px; border-radius: 10px; font: 600 13px/1.4 var(--ec-font-body); cursor: pointer; box-shadow: var(--ec-shadow); }
.ec-page.woocommerce .woocommerce-ordering select option { background: #fff; color: var(--ec-ink); }
.ec-page.woocommerce .woocommerce-info, .ec-page.woocommerce .woocommerce-message { background: var(--ec-charcoal); color: var(--ec-sand); border-top-color: var(--ec-gold); }
.ec-page.woocommerce nav.woocommerce-pagination ul { border: 0; }
.ec-page.woocommerce nav.woocommerce-pagination ul li a, .ec-page.woocommerce nav.woocommerce-pagination ul li span { background: var(--ec-charcoal); color: var(--ec-bone); border: 1px solid rgba(201,162,75,.2); margin: 0 3px; border-radius: 8px; }
.ec-page.woocommerce nav.woocommerce-pagination ul li a:hover, .ec-page.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ec-gold); color: #241a06; }
/* Catalog grid: always 3 columns per row on every device (per client request). Mobile fallback removed intentionally. */

/* responsive */
@media (max-width: 1000px) { .ec-pgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 920px) {
	.ec-menu { display: none; }
	.ec-stats .ec-wrap { grid-template-columns: repeat(2, 1fr); }
	.ec-split, .ec-foot, .ec-why__grid { grid-template-columns: 1fr; }
	.ec-hero { min-height: auto; }
	.ec-slide__host { min-height: 70vh; }
}

/* =========================================================================
   Text-visibility fixes — every WooCommerce page must be readable
   ========================================================================= */
/* Filter sidebar: force dark labels on the white card (stops global heading color bleed). */
.ec-shop-filter__title,
.ec-filter-group h4 { color: var(--ec-ink) !important; }
.ec-filter__price input { color: var(--ec-ink); }
.ec-filter__price input::placeholder { color: var(--ec-ink-soft); opacity: 1; }

/* Cart / Checkout / Account use WooCommerce BLOCKS (classic theme CSS doesn't reach them)
   -> force light bg + dark text so nothing is invisible. */
.ec-page.woocommerce-cart,
.ec-page.woocommerce-checkout,
.ec-page.woocommerce-account { background: var(--ec-surface) !important; color: var(--ec-ink) !important; }
.ec-page.woocommerce-cart .wp-block-woocommerce-cart,
.ec-page.woocommerce-checkout .wp-block-woocommerce-checkout,
.ec-page.woocommerce-account .woocommerce,
.ec-page.woocommerce-cart .wc-block-cart,
.ec-page.woocommerce-checkout .wc-block-checkout { color: var(--ec-ink) !important; }
.ec-page.woocommerce-cart h1, .ec-page.woocommerce-cart h2, .ec-page.woocommerce-cart h3, .ec-page.woocommerce-cart h4,
.ec-page.woocommerce-checkout h1, .ec-page.woocommerce-checkout h2, .ec-page.woocommerce-checkout h3,
.ec-page.woocommerce-account h1, .ec-page.woocommerce-account h2 { color: var(--ec-ink) !important; }
.ec-page.woocommerce-cart .wc-block-components-product-price,
.ec-page.woocommerce-cart .wc-block-cart-item__price,
.ec-page.woocommerce-checkout .wc-block-components-product-price,
.ec-page.woocommerce-cart table.shop_table, .ec-page.woocommerce-checkout table.shop_table,
.ec-page.woocommerce-cart td, .ec-page.woocommerce-checkout td,
.ec-page.woocommerce-cart th, .ec-page.woocommerce-checkout th { color: var(--ec-ink) !important; }

/* =========================================================================
   Collection (category + Shop) pages: content + FAQ section below the grid
   ========================================================================= */
.ec-colcontent { background: var(--ec-surface); padding: 64px 0 76px; margin-top: 24px; border-top: 1px solid rgba(20,16,10,.06); }
.ec-colcontent .ec-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: start; }
.ec-colcontent__copy .ec-sechead { text-align: left; margin: 0 0 16px; }
.ec-colcontent__copy .ec-sechead h2 { color: var(--ec-ink); }
.ec-colcontent__copy p { color: var(--ec-ink-soft); line-height: 1.75; font-size: 16px; margin: 0 0 12px; }
.ec-colcontent .ec-kicker { color: var(--ec-gold); }
/* Light-bg FAQ variant for collection pages (homepage FAQ is dark). */
.ec-faq--col { background: transparent; padding: 0; }
.ec-faq--col .ec-sechead { text-align: left; margin: 0 0 16px; }
.ec-faq--col .ec-sechead h2 { color: var(--ec-ink); }
.ec-faq--col .ec-faq__item { background: var(--ec-card); border-color: rgba(20,16,10,.1); }
.ec-faq--col .ec-faq__item summary { color: var(--ec-ink); }
.ec-faq--col .ec-faq__item summary:hover,
.ec-faq--col .ec-faq__item[open] summary { color: var(--ec-ember); }
.ec-faq--col .ec-faq__answer { color: var(--ec-ink-soft); }
@media (max-width: 900px) { .ec-colcontent .ec-wrap { grid-template-columns: 1fr; gap: 36px; } }

/* =========================================================================
   Single Product + Cart/Checkout/Account readability — ALL text visible
   (these pages are light; many WC/GP defaults render light-on-light)
   ========================================================================= */
.ec-page.single-product,
.ec-page.woocommerce-cart,
.ec-page.woocommerce-checkout,
.ec-page.woocommerce-account { background: var(--ec-surface) !important; color: var(--ec-ink) !important; }

/* Headings → dark */
.ec-page.single-product .product_title,
.ec-page.single-product h1, .ec-page.single-product h2, .ec-page.single-product h3, .ec-page.single-product h4,
.ec-page.woocommerce-cart h1, .ec-page.woocommerce-cart h2, .ec-page.woocommerce-cart h3,
.ec-page.woocommerce-checkout h1, .ec-page.woocommerce-checkout h2, .ec-page.woocommerce-checkout h3,
.ec-page.woocommerce-account h1, .ec-page.woocommerce-account h2,
.ec-page.woocommerce-cart .wc-block-components-panel__title { color: var(--ec-ink) !important; }

/* Prices + currency → dark, bold */
.ec-page.single-product .price, .ec-page.single-product .price *,
.ec-page.single-product .woocommerce-Price-amount, .ec-page.single-product .woocommerce-Price-currencySymbol,
.ec-page.woocommerce-cart .woocommerce-Price-amount, .ec-page.woocommerce-cart .woocommerce-Price-currencySymbol,
.ec-page.woocommerce-cart .wc-block-components-product-price, .ec-page.woocommerce-cart .wc-block-cart-item__price,
.ec-page.woocommerce-cart .wc-block-grid__product-price,
.ec-page.woocommerce-checkout .woocommerce-Price-amount { color: var(--ec-ink) !important; font-weight: 700; }

/* Product / cross-sell / related titles → dark */
.ec-page.woocommerce-cart .wc-block-grid__product-title,
.ec-page.woocommerce-cart .wc-block-components-product-name,
.ec-page.woocommerce-cart .wc-block-cart-item__name,
.ec-page.single-product .related.products .woocommerce-loop-product__title,
.ec-page.single-product .upsells .woocommerce-loop-product__title,
.ec-page.single-product .related.products h2, .ec-page.single-product .upsells h2 { color: var(--ec-ink) !important; }

/* Breadcrumb, meta, reviews, stock, totals → readable dark grey */
.ec-page.single-product .woocommerce-breadcrumb, .ec-page.single-product .woocommerce-breadcrumb a,
.ec-page.single-product .product_meta, .ec-page.single-product .product_meta a,
.ec-page.single-product .woocommerce-noreviews, .ec-page.single-product .woocommerce-product-rating,
.ec-page.single-product .stock, .ec-page.single-product .woocommerce-review__author,
.ec-page.woocommerce-cart .wc-block-components-totals-item,
.ec-page.woocommerce-checkout .wc-block-components-totals-item { color: var(--ec-ink-soft) !important; }
.ec-page.single-product .woocommerce-breadcrumb a:hover,
.ec-page.single-product .product_meta a:hover { color: var(--ec-ember); }

/* Tabs → readable */
.ec-page.single-product .woocommerce-tabs ul.tabs li a { color: var(--ec-ink-soft); }
.ec-page.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--ec-ember); border-bottom-color: var(--ec-gold) !important; }
.ec-page.single-product .woocommerce-tabs .panel, .ec-page.single-product .woocommerce-Tabs-panel { color: var(--ec-ink-soft); }
.ec-page.single-product .woocommerce-tabs .panel h2, .ec-page.single-product .woocommerce-Tabs-panel h2 { color: var(--ec-ink); }

/* Buttons → gold (override WC default purple #7f54b3 / grey #555) */
.ec-page.single-product .single_add_to_cart_button,
.ec-page.single-product button.button.alt,
.ec-page.woocommerce-cart .wp-block-button__link,
.ec-page.woocommerce-cart .wc-block-cart__submit-button,
.ec-page.woocommerce-cart .wc-block-components-checkout-button,
.ec-page.woocommerce-checkout .wc-block-components-checkout-button,
.ec-page.woocommerce-cart .added_to_cart,
.ec-page.woocommerce-cart .add_to_cart_button,
.ec-page.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link { background: linear-gradient(180deg,var(--ec-gold-soft),var(--ec-gold)) !important; color: #241a06 !important; border: 0 !important; font-weight: 700 !important; border-radius: 30px !important; }

/* Stock badge: stronger contrast */
.ec-stock.in { background: #e6efe2 !important; color: #2f4a26 !important; }
.ec-stock.out { background: #f6e4da !important; color: #a8421a !important; }

/* Footer headings: keep light on the dark footer */
.ec-footer h1, .ec-footer h2, .ec-footer h3, .ec-footer h4, .ec-footer h5 { color: var(--ec-bone) !important; }

/* =========================================================================
   Single Product: "Product Details" + "Technical Specifications" section
   ========================================================================= */
.ec-pdp-details { background: var(--ec-surface); padding: 56px 0 76px; margin-top: 40px; border-top: 1px solid rgba(20,16,10,.06); }
.ec-pdp-details .ec-wrap { display: block; }
.ec-pdp-details .ec-pdp-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start; }
.ec-pdp-details .ec-sechead { margin: 0 0 16px; }
.ec-pdp-details .ec-sechead h2 { color: var(--ec-ink); }
.ec-pdp-details .ec-kicker { color: var(--ec-gold); }
.ec-pdp-details p { color: var(--ec-ink-soft) !important; line-height: 1.75; font-size: 16px; }
.ec-pdp-feat-title { color: var(--ec-ink) !important; font-size: 18px; margin: 20px 0 8px !important; }
.ec-pdp-feat { list-style: none; padding: 0; margin: 0; }
.ec-pdp-feat li { color: var(--ec-ink-soft) !important; padding: 6px 0 6px 22px; position: relative; line-height: 1.6; }
.ec-pdp-feat li::before { content: ""; position: absolute; left: 0; top: 13px; width: 8px; height: 8px; border-radius: 50%; background: var(--ec-gold); }
.ec-spec-table { width: 100%; border-collapse: collapse; background: var(--ec-card); border-radius: 12px; overflow: hidden; box-shadow: var(--ec-shadow); }
.ec-spec-table th, .ec-spec-table td { padding: 13px 16px; text-align: left; border-bottom: 1px solid rgba(20,16,10,.06); font-size: 14px; }
.ec-spec-table th { color: var(--ec-ink-soft); font-weight: 600; width: 42%; background: rgba(20,16,10,.025); }
.ec-spec-table td { color: var(--ec-ink); font-weight: 600; }
.ec-spec-table tr:last-child th, .ec-spec-table tr:last-child td { border-bottom: 0; }
@media (max-width: 900px) { .ec-pdp-details .ec-pdp-grid { grid-template-columns: 1fr; } }

/* Final readability tweaks (accent / required / footer headings on light pages) */
.ec-page.single-product .required { color: var(--ec-ember) !important; }
.ec-page.single-product .star-rating,
.ec-page.single-product .stars a,
.ec-page.single-product .comment-form-rating { color: var(--ec-ember) !important; }
/* Force the whole product summary (short description, meta, SKU, etc.) to readable dark. */
.ec-page.single-product .summary,
.ec-page.single-product .entry-summary,
.ec-page.single-product .woocommerce-product-details__short-description,
.ec-page.single-product .woocommerce-product-details__short-description *,
.ec-page.single-product .product_meta,
.ec-page.single-product .product_meta *,
.ec-page.single-product .product-widget * { color: var(--ec-ink-soft) !important; }
.ec-page.single-product .summary .product_title,
.ec-page.single-product .entry-summary .product_title,
.ec-page.single-product .summary .price, .ec-page.single-product .summary .price * { color: var(--ec-ink) !important; }
.ec-pdp-details .ec-kicker,
.ec-colcontent .ec-kicker,
.ec-faq--col .ec-kicker { color: #8a6f2e !important; }
.ec-footer h4, .ec-foot h4, footer h4 { color: var(--ec-bone) !important; }
.ec-footer a, .ec-foot a { color: var(--ec-sand); }
.ec-footer a:hover, .ec-foot a:hover { color: var(--ec-gold-soft); }

/* =========================================================================
   Single Product summary: rating, quantity stepper, large button, trust badges
   ========================================================================= */

/* Star rating + verified-review count (under the title, above the price) */
.ec-page.single-product .ec-pdp-rating { display: flex; align-items: center; gap: 10px; margin: 4px 0 14px; }
.ec-page.single-product .ec-pdp-rating__count { color: var(--ec-ink-soft); font-size: 14px; }
.ec-stars { display: inline-flex; gap: 1px; font-family: Arial, "Helvetica Neue", sans-serif; font-size: 17px; line-height: 1; letter-spacing: 1px; white-space: nowrap; }
.ec-star { color: #d8d2c4; }
.ec-star--full { color: var(--ec-gold); }

/* Cart row: quantity stepper + large Add-to-Order button */
.ec-page.single-product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin: 20px 0 8px !important; }
.ec-page.single-product .quantity.ec-qty { display: flex; align-items: stretch; border: 1px solid rgba(28,20,13,.18); border-radius: 30px; overflow: hidden; background: #fff; flex: 0 0 auto; }
.ec-page.single-product .quantity input.qty { width: 54px; border: 0; text-align: center; background: transparent; color: var(--ec-ink); font-size: 16px; font-weight: 700; padding: 0; box-shadow: none !important; -moz-appearance: textfield; }
.ec-page.single-product .quantity input.qty::-webkit-outer-spin-button,
.ec-page.single-product .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ec-qty-btn { width: 44px; border: 0; background: #fff; color: var(--ec-ink); font-size: 22px; font-weight: 700; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s, color .15s; }
.ec-qty-btn:hover { background: rgba(201,162,75,.16); color: var(--ec-gold); }
.ec-qty-btn:active { background: rgba(201,162,75,.28); }
.ec-page.single-product .single_add_to_cart_button { flex: 1 1 200px; min-height: 56px; font-size: 17px !important; letter-spacing: .3px; padding: 14px 28px !important; box-shadow: 0 10px 22px -10px rgba(201,162,75,.65); transition: transform .15s, filter .15s; }
.ec-page.single-product .single_add_to_cart_button:hover { filter: brightness(1.05); transform: translateY(-1px); }

/* Trust badges row (under the button) */
.ec-pdp-trust { margin: 20px 0 4px; }
.ec-pdp-trust ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.ec-pdp-trust li { display: flex; gap: 10px; align-items: flex-start; background: #fff; border: 1px solid rgba(28,20,13,.07); border-radius: 10px; padding: 10px 12px; }
.ec-pdp-trust svg { width: 22px; height: 22px; flex: 0 0 auto; color: var(--ec-gold); margin-top: 1px; }
.ec-pdp-trust__txt { display: flex; flex-direction: column; }
.ec-pdp-trust__t { font-weight: 700; color: var(--ec-ink); font-size: 13px; }
.ec-pdp-trust__s { color: var(--ec-ink-soft); font-size: 12px; }

/* Details section: shipping / care / wholesale extras row */
.ec-pdp-extras { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 40px; padding-top: 32px; border-top: 1px solid rgba(20,16,10,.07); }
.ec-pdp-extra svg { width: 28px; height: 28px; color: var(--ec-gold); }
.ec-pdp-extra h4 { margin: 12px 0 6px; color: var(--ec-ink); font-size: 16px; }
.ec-pdp-extra p { color: var(--ec-ink-soft) !important; font-size: 14px; line-height: 1.65; margin: 0; }

@media (max-width: 768px) {
	.ec-pdp-extras { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 560px) {
	.ec-pdp-trust ul { grid-template-columns: 1fr; }
	.ec-page.single-product .single_add_to_cart_button { flex: 1 1 100%; }
}

/* =========================================================================
   Single Product: page width + organization
   The product was spanning the full viewport edge-to-edge. Center it in the
   site column (1240px) with side spacing, drop the redundant GP header image
   (it duplicates the WooCommerce gallery), keep the gallery + summary as a
   tidy two-column row, and tidy the summary's vertical rhythm.
   ========================================================================= */
.ec-page.single-product .inside-article {
	max-width: var(--ec-maxw);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}
/* GP shows the featured image as a page header — redundant with the WC gallery. */
.ec-page.single-product .featured-image.page-header-image-single { display: none; }
/* The article already adds side padding, so cancel the .ec-wrap padding here. */
.ec-page.single-product .ec-pdp-details .ec-wrap { padding-left: 0; padding-right: 0; }

/* Gallery left / summary right as a clean two-column row on desktop. */
@media (min-width: 769px) {
	.ec-page.single-product div.product .woocommerce-product-gallery { width: 48%; float: left; }
	.ec-page.single-product div.product .summary { width: 48%; float: right; }
}

/* FIX: the gallery + summary are floated. The old Description/Reviews tabs used
   to clear those floats; we removed the tabs, so .product collapsed and the
   Details/Reviews sections floated up and overlapped the summary. Restore a
   clearfix on .product and force the sections below onto a fresh row. */
.ec-page.single-product div.product::after { content: ""; display: table; clear: both; }
.ec-page.single-product .ec-pdp-details,
.ec-page.single-product .ec-reviews { clear: both; }

/* Summary vertical rhythm */
.ec-page.single-product .product_title { margin: 0 0 6px; line-height: 1.15; }
.ec-page.single-product .summary > .price { font-size: 26px; margin: 0 0 16px; }
.ec-page.single-product .woocommerce-product-details__short-description { margin: 0 0 6px; line-height: 1.7; }
.ec-page.single-product .product_meta { margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(20,16,10,.08); font-size: 13px; }
.ec-page.single-product .woocommerce-tabs { margin-top: 44px; }
.ec-page.single-product .related.products,
.ec-page.single-product .upsells { margin-top: 48px; }

/* Breadcrumb on single product pages (Home / Shop / Category / Product) */
.ec-page.single-product .ec-pdp-crumb { margin: 0 0 22px; }
.ec-page.single-product .ec-pdp-crumb .woocommerce-breadcrumb,
.ec-page.single-product .ec-pdp-crumb .woocommerce-breadcrumb a { color: var(--ec-ink-soft); font-size: 13px; }
.ec-page.single-product .ec-pdp-crumb .woocommerce-breadcrumb a:hover { color: var(--ec-ember); }

/* =========================================================================
   Related / Upsell product cards (single-product page)
   - hide the loop star rating (clutter); display:none leaves no empty space
   - force dark text so the white cards never inherit the cream section color
   - gold Add-to-Order button with dark text
   (Card background / shadow / rounded corners are kept as-is.)
   ========================================================================= */
.ec-page.single-product .related.products li.product,
.ec-page.single-product .related.products .woocommerce-loop-product__link,
.ec-page.single-product .upsells li.product,
.ec-page.single-product .upsells .woocommerce-loop-product__link { color: #1F1F1F; }

.ec-page.single-product .related.products .star-rating,
.ec-page.single-product .upsells .star-rating { display: none !important; }

.ec-page.single-product .related.products .woocommerce-loop-product__title,
.ec-page.single-product .upsells .woocommerce-loop-product__title { color: #1F1F1F !important; }

.ec-page.single-product .related.products .price,
.ec-page.single-product .related.products .price *,
.ec-page.single-product .upsells .price,
.ec-page.single-product .upsells .price * { color: #1F1F1F !important; font-weight: 700; }

.ec-page.single-product .related.products .button,
.ec-page.single-product .related.products .added_to_cart,
.ec-page.single-product .upsells .button,
.ec-page.single-product .upsells .added_to_cart {
	background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)) !important;
	color: #1F1F1F !important; border: 0 !important; font-weight: 700 !important; border-radius: 30px !important;
}

/* =========================================================================
   GLOBAL product-loop cards (Shop, Category, Related, Upsells — everywhere
   ul.products is used): force dark text on the white cards so they never
   inherit the cream section color. Card bg / shadow / radius are kept as-is.
   ========================================================================= */
.ec-page ul.products li.product,
.ec-page ul.products li.product .woocommerce-loop-product__link { color: #1F1F1F; }

.ec-page ul.products li.product .woocommerce-loop-product__title,
.ec-page ul.products li.product .woocommerce-loop-product__title a { color: #1F1F1F !important; }

.ec-page ul.products li.product .price,
.ec-page ul.products li.product .price * { color: #1F1F1F !important; font-weight: 700; }

.ec-page ul.products li.product .stock { color: #2f4a26 !important; }

.ec-page ul.products li.product .button,
.ec-page ul.products li.product .added_to_cart {
	background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)) !important;
	color: #1F1F1F !important; border: 0 !important; font-weight: 700 !important; border-radius: 30px !important;
}

/* =========================================================================
   Single Product: Customer Reviews carousel + "Leave a Review" form
   ========================================================================= */
.ec-reviews { padding: 56px 0 64px; }
.ec-reviews .ec-sechead { margin-bottom: 14px; }
.ec-reviews .ec-sechead .ec-kicker { color: var(--ec-gold); }
.ec-reviews .ec-sechead h2 { color: var(--ec-ink); }

.ec-reviews__summary { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.ec-reviews__summary .ec-stars { font-size: 19px; }
.ec-reviews__avg { color: var(--ec-ink); font-weight: 700; font-size: 15px; }
.ec-reviews__cnt { color: var(--ec-ink-soft); font-size: 14px; }
.ec-reviews__empty { color: var(--ec-ink-soft); font-size: 15px; margin: 0 0 8px; }

/* Carousel */
.ec-reviews__carousel { display: flex; align-items: center; gap: 10px; }
.ec-reviews__viewport { overflow: hidden; flex: 1 1 auto; }
.ec-reviews__track { display: flex; gap: 18px; list-style: none; margin: 0; padding: 4px 2px 6px; transition: transform .35s ease; }
.ec-rev-card {
	flex: 0 0 calc((100% - 36px) / 3);
	background: var(--ec-card); border: 1px solid rgba(28,20,13,.07); border-top: 3px solid var(--ec-gold);
	border-radius: 14px; padding: 18px 18px 16px; box-shadow: var(--ec-shadow);
	display: flex; flex-direction: column;
}
.ec-rev-card__head { display: flex; gap: 12px; align-items: center; margin-bottom: 10px; }
.ec-rev-avatar {
	width: 42px; height: 42px; flex: 0 0 auto; border-radius: 50%;
	background: linear-gradient(135deg, var(--ec-gold-soft), var(--ec-gold));
	color: #241a06; font-weight: 700; font-size: 18px;
	display: flex; align-items: center; justify-content: center;
}
.ec-rev-meta { display: flex; flex-direction: column; min-width: 0; }
.ec-rev-name { color: var(--ec-ink); font-weight: 700; font-size: 14px; line-height: 1.2; }
.ec-rev-sub { display: flex; flex-wrap: wrap; gap: 6px; color: var(--ec-ink-soft); font-size: 12px; align-items: center; }
.ec-rev-sub span:not(:last-child)::after { content: "·"; margin-left: 6px; color: rgba(28,20,13,.3); }
.ec-rev-verified { color: #2f7a3f; font-weight: 600; }
.ec-rev-stars { margin-bottom: 8px; }
.ec-rev-topic { color: var(--ec-ink); font-size: 15px; margin: 0 0 6px; }
.ec-rev-text { color: var(--ec-ink-soft); font-size: 14px; line-height: 1.6; margin: 0 0 12px; flex: 1 1 auto; }
.ec-rev-prod { font-size: 12px; color: var(--ec-ink-soft); border-top: 1px dashed rgba(28,20,13,.12); padding-top: 10px; }

/* Arrows */
.ec-rev-arrow {
	flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%;
	border: 1px solid rgba(28,20,13,.15); background: #fff; color: var(--ec-ink);
	cursor: pointer; display: flex; align-items: center; justify-content: center;
	transition: background .15s, color .15s, border-color .15s, opacity .15s;
}
.ec-rev-arrow:hover:not(:disabled) { background: var(--ec-gold); color: #241a06; border-color: var(--ec-gold); }
.ec-rev-arrow:disabled { opacity: .35; cursor: default; }

@media (max-width: 980px) {
	.ec-rev-card { flex-basis: calc((100% - 18px) / 2); }
}
@media (max-width: 600px) {
	.ec-rev-card { flex-basis: 100%; }
	.ec-reviews__carousel { gap: 8px; }
	.ec-rev-arrow { width: 38px; height: 38px; }
}

/* "Leave a Review" form */
.ec-rev-form-wrap { margin-top: 28px; }
.ec-rev-form-toggle {
	border: 1.5px solid var(--ec-gold); background: #fff; color: var(--ec-gold);
	font-weight: 700; padding: 10px 22px; border-radius: 30px; cursor: pointer; font-size: 14px;
	transition: background .15s, color .15s;
}
.ec-rev-form-toggle:hover, .ec-rev-form-toggle.is-open { background: var(--ec-gold); color: #241a06; }
.ec-rev-form {
	background: var(--ec-card); border: 1px solid rgba(28,20,13,.08); border-radius: 14px;
	padding: 22px; margin-top: 14px; max-width: 620px; box-shadow: var(--ec-shadow);
}
.ec-rev-form__row { margin: 0 0 14px; }
.ec-rev-form__row label { display: block; color: var(--ec-ink); font-weight: 600; font-size: 13px; margin-bottom: 6px; }
.ec-rev-form__row input[type="text"], .ec-rev-form__row input[type="email"], .ec-rev-form__row textarea {
	width: 100%; border: 1px solid rgba(28,20,13,.18); border-radius: 8px; padding: 10px 12px;
	font-size: 14px; color: var(--ec-ink); background: #fff; box-sizing: border-box;
}
.ec-rev-form__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 600px) { .ec-rev-form__cols { grid-template-columns: 1fr; } }
.ec-rev-form__submit-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.ec-rev-form__submit {
	background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)); color: #241a06;
	border: 0; font-weight: 700; padding: 11px 24px; border-radius: 30px; cursor: pointer; font-size: 14px;
}
.ec-rev-form__note { color: var(--ec-ink-soft); font-size: 12px; }

/* CSS-only star rating picker (radios rendered reversed) */
.ec-rev-pick { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.ec-rev-pick input { position: absolute; opacity: 0; width: 0; height: 0; }
.ec-rev-pick label { font-size: 28px; color: #d8d2c4; cursor: pointer; line-height: 1; }
.ec-rev-pick label:hover, .ec-rev-pick label:hover ~ label,
.ec-rev-pick input:checked ~ label, .ec-rev-pick input:focus ~ label { color: var(--ec-gold); }

/* =========================================================================
   Single Product: PDP details + extras readability safety-net
   The broad rule ".ec-page .entry-content p / li" (above) forces cream
   (--ec-sand) on every paragraph/list-item inside .entry-content and beats
   the scoped .ec-pdp-* rules on specificity, so the "About the [Name]" blurb,
   the Key Features bullets and the shipping/care/wholesale paragraphs rendered
   cream-on-cream (invisible). Force the whole PDP details/extras block back to
   readable dark text. !important wins regardless of where content is added.
   ========================================================================= */
.ec-page.single-product .ec-pdp-details p,
.ec-page.single-product .ec-pdp-details li,
.ec-page.single-product .ec-pdp-extra p,
.ec-page.single-product .ec-pdp-extra li,
.ec-page.single-product .ec-pdp-feat li { color: var(--ec-ink-soft) !important; }
.ec-page.single-product .ec-pdp-details h2,
.ec-page.single-product .ec-pdp-details h3,
.ec-page.single-product .ec-pdp-details h4,
.ec-page.single-product .ec-pdp-extra h4,
.ec-page.single-product .ec-pdp-feat-title { color: var(--ec-ink) !important; }

/* =========================================================================
   Contact page (page-contact-us.php) — dark premium layout.
   Scoped under .ec-cp so it never collides with other sections. The page
   already inherits the dark .ec-page background + sand text from body.
   ========================================================================= */
.ec-cp { background: var(--ec-bg-2); color: var(--ec-sand); font-family: var(--ec-font-body); }
.ec-cp .ec-wrap { max-width: var(--ec-maxw); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ec-cp .ec-kicker { display: inline-block; color: var(--ec-gold); font-family: var(--ec-font-body); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 10px; }
.ec-cp h1, .ec-cp h2, .ec-cp h3 { font-family: var(--ec-font-head); color: var(--ec-bone); line-height: 1.12; }
.ec-cp h1 { font-size: clamp(32px, 5vw, 54px); margin: 0 0 16px; }
.ec-cp h2 { font-size: clamp(24px, 3.2vw, 34px); margin: 4px 0 12px; }
.ec-cp h3 { font-size: 19px; margin: 0 0 8px; }
.ec-cp a { text-decoration: none; }

/* ----- Hero ----- */
.ec-cp-hero { padding: 72px 0 40px; background: linear-gradient(180deg, rgba(201,162,75,.08), transparent 60%); border-bottom: 1px solid rgba(201,162,75,.14); }
.ec-cp-crumb { margin: 0 0 18px; font-size: 13px; color: var(--ec-muted); }
.ec-cp-crumb a { color: var(--ec-sand); }
.ec-cp-crumb a:hover { color: var(--ec-gold-soft); }
.ec-cp-crumb span[aria-hidden="true"] { margin: 0 8px; color: var(--ec-muted); }
.ec-cp-lead { font-size: clamp(16px, 1.6vw, 19px); color: var(--ec-sand); max-width: 620px; margin: 0; line-height: 1.6; }

/* ----- Main grid: info + form ----- */
.ec-cp-main { padding: 64px 0; }
.ec-cp-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: start; }
.ec-cp-sub { color: var(--ec-sand); max-width: 460px; margin: 0 0 22px; line-height: 1.6; }

.ec-cp-cards { display: grid; gap: 14px; }
.ec-cp-card {
	display: flex; gap: 16px; align-items: flex-start;
	background: rgba(255,255,255,.03); border: 1px solid rgba(201,162,75,.16); border-left: 3px solid var(--ec-gold);
	border-radius: 14px; padding: 18px 20px;
	transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.ec-cp-card:hover { transform: translateY(-2px); background: rgba(201,162,75,.07); border-color: rgba(201,162,75,.42); }
.ec-cp-card--plain { border-left-color: transparent; cursor: default; }
.ec-cp-card--plain:hover { transform: none; }
.ec-cp-card__icon {
	flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--ec-gold-soft), var(--ec-gold)); color: #241a06;
}
.ec-cp-card__icon svg { width: 24px; height: 24px; }
.ec-cp-card__icon--wa { background: linear-gradient(135deg, #25D366, #128C7E); color: #fff; }
.ec-cp-card__body { display: flex; flex-direction: column; min-width: 0; }
.ec-cp-card__label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ec-muted); }
.ec-cp-card__value { font-family: var(--ec-font-head); font-size: 18px; color: var(--ec-bone); word-break: break-word; margin-top: 2px; }
.ec-cp-card__hint { font-size: 13px; color: var(--ec-sand); margin-top: 2px; }

/* ----- Form column ----- */
.ec-cp-form-col { background: var(--ec-charcoal); border: 1px solid rgba(201,162,75,.18); border-radius: var(--ec-radius-lg); padding: 34px; box-shadow: 0 24px 60px -30px rgba(0,0,0,.7); }
.ec-cp-form { display: grid; gap: 14px; margin-top: 4px; }
.ec-cp-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ec-cp-form__full { grid-column: 1 / -1; }
.ec-cp-form label { display: grid; gap: 6px; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--ec-muted); }
.ec-cp-req { color: var(--ec-ember); text-transform: none; }
.ec-cp-form input, .ec-cp-form select, .ec-cp-form textarea {
	width: 100%; padding: 12px 14px; border-radius: 10px;
	border: 1px solid rgba(201,162,75,.2); background: rgba(255,255,255,.05); color: var(--ec-bone);
	font-family: inherit; font-size: 15px; box-sizing: border-box;
}
.ec-cp-form input::placeholder, .ec-cp-form textarea::placeholder { color: rgba(244,238,227,.4); }
.ec-cp-form input:focus, .ec-cp-form select:focus, .ec-cp-form textarea:focus { outline: none; border-color: var(--ec-gold); background: rgba(255,255,255,.08); }
.ec-cp-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ec-gold-soft) 50%), linear-gradient(135deg, var(--ec-gold-soft) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
.ec-cp-form select option { background: var(--ec-charcoal); color: var(--ec-bone); }
.ec-cp-submit { justify-self: start; margin-top: 4px; }
.ec-cp-disclaimer { grid-column: 1 / -1; font-size: 12px; color: var(--ec-muted); margin: 2px 0 0; text-transform: none; letter-spacing: 0; line-height: 1.5; }
.ec-cp-form .ec-sent { display: flex; align-items: center; gap: 10px; grid-column: 1 / -1; }
.ec-cp-form .ec-sent svg { width: 20px; height: 20px; color: #9bbf8e; flex: 0 0 auto; }

/* ----- Trust strip ----- */
.ec-cp-trust { padding: 60px 0; border-top: 1px solid rgba(201,162,75,.12); border-bottom: 1px solid rgba(201,162,75,.12); background: rgba(255,255,255,.015); }
.ec-cp-trust__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.ec-cp-trust__item { text-align: left; }
.ec-cp-trust__icon { display: inline-flex; width: 52px; height: 52px; border-radius: 14px; align-items: center; justify-content: center; background: rgba(201,162,75,.12); color: var(--ec-gold); margin-bottom: 14px; }
.ec-cp-trust__icon svg { width: 26px; height: 26px; }
.ec-cp-trust__item h3 { color: var(--ec-bone); }
.ec-cp-trust__item p { color: var(--ec-sand); font-size: 14px; line-height: 1.65; margin: 0; }

/* ----- FAQ ----- */
.ec-cp-faq { padding: 64px 0; }
.ec-cp-faq .ec-sechead { margin-bottom: 22px; }
.ec-cp-faq .ec-sechead h2 { color: var(--ec-bone); }
.ec-cp-faq .ec-sechead .ec-kicker { color: var(--ec-gold); }
.ec-cp-faq__list { display: grid; gap: 12px; max-width: 860px; }

/* ----- Location band ----- */
.ec-cp-loc { padding: 64px 0 88px; }
.ec-cp-loc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; background: var(--ec-charcoal); border: 1px solid rgba(201,162,75,.18); border-radius: var(--ec-radius-lg); overflow: hidden; }
.ec-cp-loc__text { padding: 44px 44px; }
.ec-cp-loc__text h2 { margin: 4px 0 12px; }
.ec-cp-loc__text p { color: var(--ec-sand); line-height: 1.7; margin: 0 0 22px; }
.ec-cp-loc__map {
	position: relative; min-height: 320px; align-self: stretch;
	background:
		radial-gradient(circle at 50% 45%, rgba(201,162,75,.22), transparent 55%),
		repeating-linear-gradient(0deg, rgba(201,162,75,.08) 0 1px, transparent 1px 44px),
		repeating-linear-gradient(90deg, rgba(201,162,75,.08) 0 1px, transparent 1px 44px),
		var(--ec-bg);
}
.ec-cp-loc__pin { position: absolute; top: 45%; left: 50%; transform: translate(-50%, -100%); color: var(--ec-gold); filter: drop-shadow(0 8px 14px rgba(0,0,0,.5)); }
.ec-cp-loc__pin svg { width: 46px; height: 46px; }
.ec-cp-loc__gridlines { position: absolute; bottom: 18px; left: 18px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ec-muted); }
.ec-cp-loc__gridlines::before { content: "27.7° N · 85.3° E"; }

/* ----- Responsive ----- */
@media (max-width: 980px) {
	.ec-cp-grid { grid-template-columns: 1fr; gap: 40px; }
	.ec-cp-trust__grid { grid-template-columns: 1fr; gap: 24px; }
	.ec-cp-loc__grid { grid-template-columns: 1fr; }
	.ec-cp-loc__map { min-height: 220px; order: -1; }
	.ec-cp-loc__text { padding: 32px; }
}
@media (max-width: 560px) {
	.ec-cp-hero { padding: 52px 0 32px; }
	.ec-cp-main { padding: 44px 0; }
	.ec-cp-form-col { padding: 24px 20px; }
	.ec-cp-form__row { grid-template-columns: 1fr; }
	.ec-cp-card { padding: 15px 16px; gap: 13px; }
	.ec-cp-card__icon { width: 42px; height: 42px; }
}

/* =========================================================================
   Cart / Checkout / Account (WooCommerce BLOCK pages)
   1. WIDTH: WC's cart block ships with max-width: calc(100% + 60px), which
      overflows its container and leaves zero side space. Override to 100% and
      widen + center the page article so the 2-column cart has breathing room.
   2. TEXT: force every block element to dark ink so nothing (empty-cart msg,
      notices, coupon field, shipping calculator) renders cream-on-cream.
   ========================================================================= */

/* Kill the overflow + widen/center the page column */
.ec-page.woocommerce-cart .inside-article,
.ec-page.woocommerce-checkout .inside-article,
.ec-page.woocommerce-account .inside-article {
	max-width: 1140px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 28px !important;
	padding-right: 28px !important;
	box-sizing: border-box !important;
}
.ec-page.woocommerce-cart .entry-content,
.ec-page.woocommerce-checkout .entry-content,
.ec-page.woocommerce-account .entry-content { max-width: 100% !important; }

.ec-page.woocommerce-cart .wp-block-woocommerce-cart,
.ec-page.woocommerce-cart .wc-block-cart,
.ec-page.woocommerce-checkout .wp-block-woocommerce-checkout,
.ec-page.woocommerce-checkout .wc-block-checkout,
.ec-page.woocommerce-account .wp-block-woocommerce-account {
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
}

/* Dark-text safety net for the whole block (labels slightly softer) */
.ec-page.woocommerce-cart .wc-block-cart *,
.ec-page.woocommerce-cart .wp-block-woocommerce-cart *,
.ec-page.woocommerce-checkout .wc-block-checkout *,
.ec-page.woocommerce-checkout .wp-block-woocommerce-checkout *,
.ec-page.woocommerce-account .woocommerce *,
.ec-page.woocommerce-account .wp-block-woocommerce-account * { color: var(--ec-ink) !important; }
.ec-page.woocommerce-cart .wc-block-components-totals-item__label,
.ec-page.woocommerce-cart .wc-block-components-totals-item__value,
.ec-page.woocommerce-checkout .wc-block-components-totals-item__label,
.ec-page.woocommerce-checkout .wc-block-components-totals-item__value { color: var(--ec-ink-soft) !important; }
.ec-page.woocommerce-cart .wc-block-components-totals-item__value,
.ec-page.woocommerce-checkout .wc-block-components-totals-item__value { font-weight: 700; }

/* Keep the WC block buttons gold (background-image, so !important color is safe) */
.ec-page.woocommerce-cart .wc-block-cart__submit-button,
.ec-page.woocommerce-cart .wp-block-button__link,
.ec-page.woocommerce-checkout .wc-block-components-checkout-button,
.ec-page.woocommerce-checkout .wp-block-button__link {
	background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)) !important;
	color: #241a06 !important; border: 0 !important; font-weight: 700 !important; border-radius: 30px !important;
}
/* Inputs get a visible border on the light bg */
.ec-page.woocommerce-cart .wc-block-components-text-input input,
.ec-page.woocommerce-cart .wc-block-components-textarea,
.ec-page.woocommerce-checkout .wc-block-components-text-input input,
.ec-page.woocommerce-checkout .wc-block-components-textarea,
.ec-page.woocommerce-cart input[type="text"], .ec-page.woocommerce-cart input[type="email"],
.ec-page.woocommerce-checkout input[type="text"], .ec-page.woocommerce-checkout input[type="email"] {
	background: #fff !important; border: 1px solid rgba(28,20,13,.2) !important; color: var(--ec-ink) !important;
}
.ec-page.woocommerce-cart input::placeholder, .ec-page.woocommerce-checkout input::placeholder { color: rgba(28,20,13,.45) !important; }

/* =========================================================================
   Social icons (.ec-social) — footer, homepage footer, contact page.
   ========================================================================= */
.ec-social { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.ec-social__link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 50%;
	background: rgba(201,162,75,.12); color: var(--ec-gold);
	border: 1px solid rgba(201,162,75,.28);
	transition: background .18s ease, color .18s ease, transform .18s ease, border-color .18s ease;
}
.ec-social__link:hover { background: linear-gradient(135deg, var(--ec-gold-soft), var(--ec-gold)); color: #241a06; transform: translateY(-2px); border-color: var(--ec-gold); }
.ec-social__link svg { display: block; width: 18px; height: 18px; margin: auto; flex-shrink: 0; fill: currentColor; transform: translateY(1px); }
.ec-social__link--whatsapp:hover, .ec-social__link--viber:hover { color: #fff; }
.ec-social__link--whatsapp:hover { background: linear-gradient(135deg, #25D366, #128C7E); border-color: #25D366; }
.ec-social__link--viber:hover { background: linear-gradient(135deg, #7360F2, #59478E); border-color: #7360F2; }
.ec-social__link--facebook:hover { background: #1877F2; color: #fff; border-color: #1877F2; }
.ec-social__link--instagram:hover { background: linear-gradient(135deg, #F58529, #DD2A7B, #8134AF); color: #fff; border-color: #DD2A7B; }
.ec-social__link--youtube:hover { background: #FF0000; color: #fff; border-color: #FF0000; }

/* Variant used on the light contact page cards */
.ec-social--cards { gap: 12px; margin-top: 4px; }
.ec-social--cards .ec-social__link { width: 46px; height: 46px; background: #fff; color: var(--ec-ink); border-color: rgba(28,20,13,.12); box-shadow: var(--ec-shadow); }
.ec-social--cards .ec-social__link svg { width: 22px; height: 22px; }
.ec-social--cards .ec-social__link:hover { color: #241a06; transform: translateY(-2px); }

/* Larger variant + label, used on the dark contact page info column */
.ec-social--lg .ec-social__link { width: 44px; height: 44px; }
.ec-social--lg .ec-social__link svg { width: 21px; height: 21px; }
.ec-cp-social { margin-top: 26px; }
.ec-cp-social__label { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ec-muted); margin-bottom: 12px; }

/* =========================================================================
   About page (page-about-us.php) — dark premium layout.
   ========================================================================= */
.ec-about { background: var(--ec-bg-2); color: var(--ec-sand); font-family: var(--ec-font-body); }
.ec-about .ec-wrap { max-width: var(--ec-maxw); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ec-about .ec-kicker { display: inline-block; color: var(--ec-gold); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 10px; }
.ec-about h1, .ec-about h2, .ec-about h3 { font-family: var(--ec-font-head); color: var(--ec-bone); line-height: 1.14; }
.ec-about h1 { font-size: clamp(30px, 4.6vw, 50px); margin: 0 0 16px; }
.ec-about h2 { font-size: clamp(24px, 3.2vw, 34px); margin: 4px 0 14px; }
.ec-about h3 { font-size: 19px; margin: 0 0 8px; color: var(--ec-bone); }
.ec-about p { color: var(--ec-sand); line-height: 1.7; }
.ec-about a { text-decoration: none; }

.ec-about-hero { padding: 72px 0 40px; background: linear-gradient(180deg, rgba(201,162,75,.08), transparent 60%); border-bottom: 1px solid rgba(201,162,75,.14); }
.ec-about-crumb { margin: 0 0 18px; font-size: 13px; color: var(--ec-muted); }
.ec-about-crumb a { color: var(--ec-sand); }
.ec-about-crumb a:hover { color: var(--ec-gold-soft); }
.ec-about-crumb span[aria-hidden="true"] { margin: 0 8px; color: var(--ec-muted); }
.ec-about-lead { font-size: clamp(16px, 1.6vw, 19px); max-width: 640px; margin: 0; line-height: 1.6; }

.ec-about-split { padding: 64px 0; }
.ec-about-split__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.ec-about-split__img { aspect-ratio: 4 / 3; border-radius: var(--ec-radius-lg); background: var(--img) center/cover no-repeat, var(--ec-charcoal); border: 1px solid rgba(201,162,75,.18); box-shadow: var(--ec-shadow); position: relative; }
.ec-about-split__badge { position: absolute; left: 18px; bottom: 18px; background: rgba(14,11,8,.78); color: var(--ec-gold-soft); border: 1px solid rgba(201,162,75,.4); padding: 8px 14px; border-radius: 30px; font-size: 13px; font-weight: 700; backdrop-filter: blur(4px); }
.ec-about-split__text h2 { margin-top: 4px; }
.ec-about-checks { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ec-about-checks li { display: flex; gap: 10px; align-items: center; color: var(--ec-sand); font-size: 14px; }
.ec-about-checks svg { width: 20px; height: 20px; color: var(--ec-gold); flex: 0 0 auto; }

.ec-about-stats { padding: 44px 0; border-top: 1px solid rgba(201,162,75,.12); border-bottom: 1px solid rgba(201,162,75,.12); background: rgba(255,255,255,.015); }
.ec-about-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.ec-about-stat { text-align: center; }
.ec-about-stat__num { display: block; font-family: var(--ec-font-head); font-size: clamp(30px, 4vw, 44px); color: var(--ec-gold); line-height: 1; }
.ec-about-stat__lbl { display: block; margin-top: 8px; color: var(--ec-sand); font-size: 14px; }

.ec-about-process { padding: 64px 0; }
.ec-about-process .ec-sechead { margin-bottom: 26px; }
.ec-about-process .ec-sechead h2 { color: var(--ec-bone); }
.ec-about-process .ec-sechead .ec-kicker { color: var(--ec-gold); }
.ec-about-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 22px; }
.ec-about-step { display: flex; flex-direction: column; gap: 12px; }
.ec-about-step__num { font-family: var(--ec-font-head); font-size: 26px; color: var(--ec-gold); }
.ec-about-step h3 { font-size: 16px; }
.ec-about-step p { font-size: 13px; line-height: 1.6; margin: 0; }

.ec-about-values { padding: 64px 0; background: rgba(255,255,255,.015); border-top: 1px solid rgba(201,162,75,.12); border-bottom: 1px solid rgba(201,162,75,.12); }
.ec-about-values .ec-sechead { margin-bottom: 26px; }
.ec-about-values .ec-sechead h2 { color: var(--ec-bone); }
.ec-about-values__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.ec-about-value { background: var(--ec-charcoal); border: 1px solid rgba(201,162,75,.16); border-top: 3px solid var(--ec-gold); border-radius: 14px; padding: 24px; }
.ec-about-value__icon { display: inline-flex; width: 48px; height: 48px; border-radius: 12px; align-items: center; justify-content: center; background: rgba(201,162,75,.12); color: var(--ec-gold); margin-bottom: 14px; }
.ec-about-value__icon svg { width: 26px; height: 26px; }
.ec-about-value p { font-size: 14px; line-height: 1.65; margin: 0; }

.ec-about-cta { padding: 64px 0 88px; }
.ec-about-cta__box { text-align: center; background: linear-gradient(135deg, rgba(201,162,75,.12), rgba(199,91,43,.08)); border: 1px solid rgba(201,162,75,.24); border-radius: var(--ec-radius-lg); padding: 56px 32px; }
.ec-about-cta__box h2 { color: var(--ec-bone); margin: 0 0 12px; }
.ec-about-cta__box p { max-width: 560px; margin: 0 auto 24px; }
.ec-about-cta__box .ec-btn { margin: 0 8px 12px; }

@media (max-width: 980px) {
	.ec-about-split__grid { grid-template-columns: 1fr; gap: 36px; }
	.ec-about-stats__grid { grid-template-columns: repeat(2, 1fr); gap: 28px; }
	.ec-about-steps { grid-template-columns: repeat(2, 1fr); }
	.ec-about-values__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.ec-about-hero { padding: 52px 0 32px; }
	.ec-about-checks { grid-template-columns: 1fr; }
	.ec-about-steps { grid-template-columns: 1fr; }
	.ec-about-values__grid { grid-template-columns: 1fr; }
	.ec-about-cta__box { padding: 40px 20px; }
	.ec-about-cta__box .ec-btn { display: inline-block; width: 100%; margin: 0 0 12px; }
}

/* =========================================================================
   Legal pages (Terms / Privacy) — readable dark layout with sticky TOC.
   ========================================================================= */
.ec-legal-page { background: var(--ec-bg-2); color: var(--ec-sand); font-family: var(--ec-font-body); }
.ec-legal-page .ec-wrap { max-width: var(--ec-maxw); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ec-legal-hero { padding: 64px 0 32px; background: linear-gradient(180deg, rgba(201,162,75,.08), transparent 60%); border-bottom: 1px solid rgba(201,162,75,.14); }
.ec-legal-crumb { margin: 0 0 16px; font-size: 13px; color: var(--ec-muted); }
.ec-legal-crumb a { color: var(--ec-sand); text-decoration: none; }
.ec-legal-crumb a:hover { color: var(--ec-gold-soft); }
.ec-legal-crumb span[aria-hidden="true"] { margin: 0 8px; color: var(--ec-muted); }
.ec-legal-hero .ec-kicker { display: inline-block; color: var(--ec-gold); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 8px; }
.ec-legal-hero h1 { font-family: var(--ec-font-head); color: var(--ec-bone); font-size: clamp(28px, 4vw, 44px); margin: 0 0 8px; }
.ec-legal-updated { color: var(--ec-muted); font-size: 14px; margin: 0; }

.ec-legal-body { padding: 48px 0 80px; }
.ec-legal-grid { display: grid; grid-template-columns: 240px 1fr; gap: 48px; align-items: start; }
.ec-legal-toc { position: sticky; top: 96px; font-size: 13px; }
.ec-legal-toc__title { display: block; color: var(--ec-gold); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.ec-legal-toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ec-legal-toc a { color: var(--ec-sand); text-decoration: none; transition: color .15s; }
.ec-legal-toc a:hover { color: var(--ec-gold-soft); }

.ec-legal-content { max-width: 720px; }
.ec-legal-content section { padding: 22px 0; border-bottom: 1px solid rgba(201,162,75,.1); }
.ec-legal-content section:last-child { border-bottom: 0; }
.ec-legal-content h2 { font-family: var(--ec-font-head); color: var(--ec-bone); font-size: 21px; margin: 0 0 10px; }
.ec-legal-content p { color: var(--ec-sand); line-height: 1.75; margin: 0 0 12px; }
.ec-legal-content a { color: var(--ec-gold-soft); }

@media (max-width: 860px) {
	.ec-legal-grid { grid-template-columns: 1fr; gap: 28px; }
	.ec-legal-toc { position: static; }
	.ec-legal-toc ul { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; padding-bottom: 8px; }
}

/* Footer column titles (Collections / Company / Contact) — pure white + bold.
   Placed last so it wins over the earlier gold/cream footer-heading rules. */
.ec-footer h4,
.ec-foot h4,
footer.ec-footer h4,
.ec-footer--page h4 {
	color: #FFFFFF !important;
	font-weight: 700 !important;
}

/* =========================================================================
   Blog archive (home.php) — premium cream layout, image-focused cards.
   Mirrors the product-section cream scheme (dark text on --ec-surface).
   ========================================================================= */
.ec-blog { background: var(--ec-surface); color: var(--ec-ink-soft); font-family: var(--ec-font-body); }
.ec-blog .ec-wrap { max-width: var(--ec-maxw); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ec-blog a { text-decoration: none; }

/* Header */
.ec-blog-hero { padding: 64px 0 36px; background: linear-gradient(180deg, rgba(201,162,75,.08), transparent 70%); border-bottom: 1px solid rgba(20,16,10,.08); }
.ec-blog-crumb { margin: 0 0 16px; font-size: 13px; color: var(--ec-ink-soft); }
.ec-blog-crumb a { color: var(--ec-ink-soft); }
.ec-blog-crumb a:hover { color: var(--ec-ember); }
.ec-blog-crumb span[aria-hidden="true"] { margin: 0 8px; color: var(--ec-muted); }
.ec-blog-kicker { display: inline-block; color: var(--ec-gold); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 8px; }
.ec-blog-hero h1 { font-family: var(--ec-font-head); color: var(--ec-ink); font-size: clamp(30px, 4.4vw, 48px); margin: 0 0 12px; line-height: 1.12; }
.ec-blog-lead { color: var(--ec-ink-soft); max-width: 620px; margin: 0; font-size: 17px; line-height: 1.6; }

/* Grid + cards */
.ec-blog-grid-wrap { padding: 56px 0 80px; }
.ec-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.ec-blog-card { background: var(--ec-card); border-radius: var(--ec-radius); overflow: hidden; box-shadow: var(--ec-shadow); display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.ec-blog-card:hover { transform: translateY(-4px); box-shadow: var(--ec-shadow-hover); }
.ec-blog-card__img { display: block; aspect-ratio: 16 / 9; background-size: cover; background-position: center; background-color: var(--ec-charcoal); }
.ec-blog-card__body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.ec-blog-card__date { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ec-gold); font-weight: 700; }
.ec-blog-card__title { font-family: var(--ec-font-head); color: var(--ec-ink) !important; font-size: 21px; line-height: 1.25; margin: 8px 0 10px; }
.ec-blog-card__title a { color: var(--ec-ink) !important; }
.ec-blog-card__title a:hover { color: var(--ec-ember) !important; }
.ec-blog-card__excerpt { color: var(--ec-ink-soft) !important; font-size: 14.5px; line-height: 1.65; margin: 0 0 16px; flex: 1; }
.ec-blog-card__more { align-self: flex-start; font-weight: 700; font-size: 14px; color: var(--ec-ember) !important; padding-bottom: 2px; border-bottom: 2px solid transparent; transition: border-color .15s, color .15s; }
.ec-blog-card__more:hover { color: var(--ec-gold); border-bottom-color: var(--ec-gold); }
.ec-blog-empty { color: var(--ec-ink-soft); font-size: 16px; }

/* Pagination */
.ec-blog-pagination { margin-top: 44px; text-align: center; }
.ec-blog-pagination .page-numbers { display: inline-block; min-width: 40px; height: 40px; line-height: 40px; margin: 0 4px; padding: 0 12px; border-radius: 30px; background: #fff; color: var(--ec-ink); border: 1px solid rgba(20,16,10,.1); font-weight: 700; font-size: 14px; transition: background .15s, color .15s; }
.ec-blog-pagination .page-numbers:hover { background: var(--ec-gold); color: #241a06; border-color: var(--ec-gold); }
.ec-blog-pagination .page-numbers.current { background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold)); color: #241a06; border-color: var(--ec-gold); }

@media (max-width: 900px) {
	.ec-blog-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
@media (max-width: 620px) {
	.ec-blog-grid { grid-template-columns: 1fr; }
	.ec-blog-hero { padding: 48px 0 28px; }
	.ec-blog-grid-wrap { padding: 40px 0 60px; }
}

/* =========================================================================
   Brand monogram logo (.ec-mark) — gold circle with "EC" initials.
   Used in the header; replaced by the uploaded Customizer logo if present.
   ========================================================================= */
.ec-mark {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--ec-font-head); font-weight: 700; font-size: 14px; letter-spacing: .02em;
	color: #241a06; line-height: 1;
}
.ec-brand img.custom-logo { max-height: 36px; width: auto; }

/* =========================================================================
   21+ Age-verification gate.
   ========================================================================= */
.ec-agegate, .ec-ageblock {
	position: fixed; inset: 0; z-index: 99999;
	display: none; align-items: center; justify-content: center; padding: 24px; box-sizing: border-box;
	background: rgba(14, 11, 8, .82); backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.ec-ageblock { display: none; }
.ec-agegate__card, .ec-ageblock__card {
	max-width: 440px; width: 100%; text-align: center;
	background: linear-gradient(180deg, var(--ec-charcoal), var(--ec-bg-2));
	border: 1px solid rgba(201,162,75,.32); border-radius: var(--ec-radius-lg);
	padding: 40px 34px 34px; box-shadow: 0 30px 70px -20px rgba(0,0,0,.8);
}
.ec-agegate__brand { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 22px; }
.ec-agegate__mark {
	width: 38px; height: 38px; border-radius: 50%;
	background: conic-gradient(from 210deg, var(--ec-ember), var(--ec-gold), var(--ec-ember));
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--ec-font-head); font-weight: 700; font-size: 16px; color: #241a06;
	box-shadow: 0 0 18px rgba(199,91,43,.5);
}
.ec-agegate__brand img.custom-logo { max-height: 44px; width: auto; }
.ec-agegate__name { font-family: var(--ec-font-head); font-weight: 700; font-size: 20px; color: var(--ec-bone); }
.ec-agegate__title { font-family: var(--ec-font-head); color: var(--ec-bone); font-size: 24px; margin: 0 0 8px; line-height: 1.2; }
.ec-agegate__sub { color: var(--ec-sand); font-size: 15px; margin: 0 0 14px; }
.ec-agegate__terms { color: var(--ec-muted); font-size: 12.5px; line-height: 1.6; margin: 0 0 24px; }
.ec-agegate__terms a { color: var(--ec-gold-soft); }
.ec-agegate__btns { display: flex; flex-direction: column; gap: 12px; }
.ec-agegate__yes {
	background: linear-gradient(180deg, var(--ec-gold-soft), var(--ec-gold));
	color: #241a06; border: 0; font-weight: 700; font-size: 16px; padding: 15px 20px; border-radius: 30px; cursor: pointer;
	transition: transform .15s, filter .15s;
}
.ec-agegate__yes:hover { transform: translateY(-1px); filter: brightness(1.05); }
.ec-agegate__no {
	background: transparent; color: var(--ec-sand); border: 1px solid rgba(244,238,227,.3);
	font-weight: 600; font-size: 15px; padding: 14px 20px; border-radius: 30px; cursor: pointer; transition: border-color .15s, color .15s;
}
.ec-agegate__no:hover { border-color: var(--ec-ember); color: var(--ec-ember); }
.ec-agegate__denied { color: #e5484d; font-family: var(--ec-font-head); font-size: 22px; font-weight: 700; line-height: 1.35; margin: 8px 0 0; text-align: center; }

/* =========================================================================
   Single blog post (single.php) — cream, TOC + author + FAQ.
   ========================================================================= */
.ec-post { background: var(--ec-surface); color: var(--ec-ink-soft); font-family: var(--ec-font-body); }
.ec-post .ec-wrap { max-width: var(--ec-maxw); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.ec-post a { text-decoration: none; }

.ec-post-hero { padding: 56px 0 28px; }
.ec-post-crumb { margin: 0 0 14px; font-size: 13px; color: var(--ec-ink-soft); }
.ec-post-crumb a { color: var(--ec-ink-soft); }
.ec-post-crumb a:hover { color: var(--ec-ember); }
.ec-post-crumb span[aria-hidden="true"] { margin: 0 8px; color: var(--ec-muted); }
.ec-post-kicker { display: inline-block; color: var(--ec-gold); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 8px; }
.ec-post-title { font-family: var(--ec-font-head); color: var(--ec-ink) !important; font-size: clamp(28px, 4vw, 44px); line-height: 1.14; margin: 0 0 12px; }
.ec-post-meta { color: var(--ec-ink-soft); font-size: 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.ec-post-meta span[aria-hidden="true"] { color: var(--ec-muted); }

.ec-post-featured-wrap { padding: 0 0 8px; }
.ec-post-featured { aspect-ratio: 21 / 8; border-radius: var(--ec-radius-lg); background-size: cover; background-position: center; background-color: var(--ec-charcoal); box-shadow: var(--ec-shadow); }

.ec-post-body { padding: 44px 0 80px; }
.ec-post-grid { display: grid; grid-template-columns: 220px 1fr; gap: 48px; align-items: start; }

.ec-post-toc { position: sticky; top: 96px; font-size: 13px; }
.ec-post-toc__title { display: block; color: var(--ec-gold); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; font-weight: 700; }
.ec-post-toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ec-post-toc a { color: var(--ec-ink-soft); line-height: 1.4; }
.ec-post-toc a:hover { color: var(--ec-ember); }

.ec-post-content { max-width: 720px; }
.ec-post-content p { color: var(--ec-ink-soft) !important; line-height: 1.8; font-size: 17px; margin: 0 0 20px; }
.ec-post-content h2 { font-family: var(--ec-font-head); color: var(--ec-ink) !important; font-size: 26px; margin: 36px 0 14px; line-height: 1.2; scroll-margin-top: 90px; }
.ec-post-content h3 { color: var(--ec-ink) !important; font-size: 20px; margin: 26px 0 10px; }
.ec-post-content ul, .ec-post-content ol { color: var(--ec-ink-soft) !important; line-height: 1.8; font-size: 17px; margin: 0 0 20px; padding-left: 22px; }
.ec-post-content li { color: var(--ec-ink-soft) !important; margin: 4px 0; }
.ec-post-content blockquote { color: var(--ec-ink-soft) !important; border-left: 4px solid var(--ec-gold); padding-left: 16px; font-style: italic; }
.ec-post-content a { color: var(--ec-ember) !important; text-decoration: underline; }
.ec-post-content img { border-radius: 10px; }

.ec-post-author { display: flex; gap: 16px; align-items: flex-start; background: #fff; border: 1px solid rgba(20,16,10,.08); border-left: 4px solid var(--ec-gold); border-radius: var(--ec-radius); padding: 22px 24px; margin: 40px 0 0; }
.ec-post-author__avatar { border-radius: 50% !important; }
.ec-post-author__label { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ec-gold); font-weight: 700; }
.ec-post-author__name { color: var(--ec-ink) !important; font-family: var(--ec-font-head); font-size: 19px; margin: 2px 0 6px; }
.ec-post-author__bio { color: var(--ec-ink-soft) !important; font-size: 14px; line-height: 1.6; margin: 0; }

.ec-post-faq { margin-top: 40px; }
.ec-post-faq > h2 { font-family: var(--ec-font-head); color: var(--ec-ink) !important; font-size: 24px; margin: 0 0 16px; }
/* FAQ items reuse .ec-faq__item but on the cream page they need dark text. */
.ec-post-faq .ec-faq__item { background: #fff; border: 1px solid rgba(20,16,10,.08); border-radius: 10px; margin-bottom: 10px; }
.ec-post-faq .ec-faq__item summary { color: var(--ec-ink) !important; font-family: var(--ec-font-body); }
.ec-post-faq .ec-faq__answer { color: var(--ec-ink-soft) !important; }

.ec-post-back { margin-top: 36px; }
.ec-post-back a { display: inline-block; font-weight: 700; color: var(--ec-ember); }

@media (max-width: 900px) {
	.ec-post-grid { grid-template-columns: 1fr; gap: 24px; }
	.ec-post-toc { position: static; }
	.ec-post-toc ul { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; padding-bottom: 8px; }
	.ec-post-featured { aspect-ratio: 16 / 9; }
}
@media (max-width: 480px) {
	.ec-agegate__card, .ec-ageblock__card { padding: 32px 24px 28px; }
	.ec-agegate__title { font-size: 21px; }
}
