/*
Theme Name: TCN Storefront
Theme URI: https://thecomission.com
Author: THECOMISSION
Author URI: https://thecomission.com
Description: A standalone, page-builder-free WooCommerce storefront theme built in-house by THECOMISSION. No Elementor, no third-party page builder — just a lean custom theme meant to be forked across the brand family (The Notorious Collection, Don't Kiss Me Collection, and future drops).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tcn-storefront
Tags: e-commerce, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root{
	--tcn-ink:        #1a1a1a;
	--tcn-ink-soft:   #3a3a3a;
	--tcn-muted:      #888888;
	--tcn-line:       #e0e0e0;
	--tcn-bg:         #ffffff;
	--tcn-bg-alt:     #f5f5f5;
	--tcn-card:       #ffffff;
	--tcn-dark:       #1a1a1a;
	--tcn-dark-alt:   #17171799;
	--tcn-on-dark:    #f5f5f5;
	--tcn-on-dark-muted: #a3a09a;
	--tcn-accent:     #4ade80;
	--tcn-danger:     #e0455b;

	--tcn-radius-sm:  8px;
	--tcn-radius:     14px;
	--tcn-radius-lg:  20px;
	--tcn-radius-pill: 50px;

	--tcn-font:       'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--tcn-font-display: 'Anton', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--tcn-container:  1240px;
	--tcn-container-wide:   1680px;
	--tcn-container-narrow: 720px;

	/* Spacing scale — every section/gap should pull from this, not a one-off value. */
	--tcn-sp-1:  8px;
	--tcn-sp-2:  16px;
	--tcn-sp-3:  24px;
	--tcn-sp-4:  32px;
	--tcn-sp-5:  48px;
	--tcn-sp-6:  64px;
	--tcn-sp-7:  96px;
	--tcn-sp-8:  128px;

	/* Type scale — fluid via clamp() so hierarchy holds from mobile to ultrawide. */
	--tcn-fs-display: clamp(2.75rem, 3.2vw + 2rem, 6.5rem);
	--tcn-fs-h1:      clamp(2rem, 1.6vw + 1.5rem, 3.5rem);
	--tcn-fs-h2:      clamp(1.5rem, 1vw + 1.2rem, 2.5rem);
	--tcn-fs-h3:      clamp(1.05rem, .3vw + .95rem, 1.25rem);
	--tcn-fs-body:    1rem;
	--tcn-fs-support: .9375rem;
	--tcn-fs-label:   .75rem;
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*, *::before, *::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
	margin:0;
	background:var(--tcn-bg);
	color:var(--tcn-ink);
	font-family:var(--tcn-font);
	font-size:16px;
	line-height:1.55;
	-webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0 0 .5em; font-weight:800; letter-spacing:-.01em; }
p{ margin:0 0 1em; }
.tcn-container{ max-width:var(--tcn-container); margin:0 auto; padding:0 24px; }
.tcn-eyebrow{
	display:block;
	font-size:11px;
	font-weight:700;
	letter-spacing:.28em;
	text-transform:uppercase;
	color:var(--tcn-muted);
	margin-bottom:10px;
}
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.tcn-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:14px 28px;
	border-radius:var(--tcn-radius);
	font-size:13px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	border:1px solid transparent;
	cursor:pointer;
	transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
.tcn-btn:hover{ transform:translateY(-1px); }
.tcn-btn--light{ background:#fff; color:#0a0a0a; }
.tcn-btn--light:hover{ box-shadow:0 10px 24px rgba(0,0,0,.18); }
.tcn-btn--dark{ background:var(--tcn-dark); color:#fff; }
.tcn-btn--dark:hover{ box-shadow:0 10px 24px rgba(0,0,0,.22); }
.tcn-btn--outline{ background:transparent; color:var(--tcn-ink); border-color:var(--tcn-ink); }
.tcn-btn--outline:hover{ background:var(--tcn-ink); color:#fff; }
.tcn-btn--outline-on-dark{ background:transparent; color:#fff; border-color:rgba(255,255,255,.35); }
.tcn-btn--outline-on-dark:hover{ background:#fff; color:#0a0a0a; }
.tcn-btn--ghost{ background:rgba(255,255,255,.08); color:#fff; }
.tcn-btn[disabled],.tcn-btn.disabled{ opacity:.5; cursor:not-allowed; transform:none !important; box-shadow:none !important; }

/* ==========================================================================
   Header
   ========================================================================== */
.tcn-header{
	position:sticky; top:0; z-index:100;
	background:var(--tcn-dark);
	color:#fff;
}
/* When logged in, WordPress's own #wpadminbar is fixed at z-index 99999,
   above everything. Without this, the sticky header (top:0) slides under
   it on scroll and anything poking past the header's own edge — like the
   cart-count badge's -6px offset — gets visually hidden underneath it.
   Matches WP core's own admin-bar responsive breakpoints. */
body.admin-bar .tcn-header{ top:32px; }
@media screen and (max-width:782px){
	body.admin-bar .tcn-header{ top:46px; }
}
@media screen and (max-width:600px){
	body.admin-bar .tcn-header{ top:0; }
}
.tcn-header__bar{
	display:flex; align-items:center; justify-content:space-between;
	gap:24px;
	padding:16px 24px;
	max-width:var(--tcn-container);
	margin:0 auto;
}
.tcn-logo{
	display:flex; align-items:center; gap:8px;
	font-size:14px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
	color:#fff;
	white-space:nowrap;
}
.tcn-logo img, .tcn-logo .custom-logo-link img{ max-height:32px; max-width:180px; width:auto; height:auto; object-fit:contain; }
.tcn-logo__mark{
	width:18px;height:18px;border:1.5px solid #fff;border-radius:3px;flex:0 0 auto;
	display:inline-block;
}
.tcn-nav{ display:none; }
.tcn-nav ul{ display:flex; align-items:center; gap:28px; }
.tcn-nav a{
	font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
	color:#fff; opacity:.88;
	display:flex; align-items:center; gap:4px;
	padding:8px 0;
}
.tcn-nav a:hover{ opacity:1; }
.tcn-nav li{ position:relative; }
.tcn-nav .menu-item-has-children > ul{
	display:none;
	position:absolute; top:100%; left:0;
	background:#fff; color:#0a0a0a;
	min-width:200px; padding:8px; border-radius:var(--tcn-radius); margin-top:10px;
	box-shadow:0 20px 40px rgba(0,0,0,.18);
}
.tcn-nav .menu-item-has-children:hover > ul{ display:block; }
.tcn-nav .menu-item-has-children > ul a{
	color:#0a0a0a; opacity:1; text-transform:none; font-weight:600; font-size:14px;
	padding:8px 10px; border-radius:8px;
}
.tcn-nav .menu-item-has-children > ul a:hover{ background:var(--tcn-bg-alt); }

.tcn-header__actions{ display:flex; align-items:center; gap:14px; }
.tcn-icon-btn{
	display:inline-flex; align-items:center; justify-content:center;
	width:38px; height:38px; border-radius:50%;
	background:rgba(255,255,255,.08); color:#fff;
	transition:background .15s ease;
}
.tcn-icon-btn:hover{ background:rgba(255,255,255,.16); }
.tcn-cart-pill{
	display:inline-flex; align-items:center; gap:8px;
	background:#fff; color:#0a0a0a;
	border-radius:999px; padding:8px 14px 8px 16px;
	font-size:13px; font-weight:700;
	position:relative;
}
.tcn-cart-pill__count{
	background:var(--tcn-danger); color:#fff;
	font-size:10px; font-weight:800;
	width:17px; height:17px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	position:absolute; top:-6px; right:-6px;
}
.tcn-burger{
	display:inline-flex; align-items:center; justify-content:center;
	width:38px; height:38px; border-radius:8px;
	background:rgba(255,255,255,.08); color:#fff;
	border:none; cursor:pointer;
}

.tcn-mobile-nav ul{ display:flex; flex-direction:column; }
.tcn-mobile-nav a{
	display:block; padding:12px 0; color:#fff; font-weight:700;
	font-size:14px; text-transform:uppercase; letter-spacing:.04em;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.tcn-mobile-nav .sub-menu{ padding-left:16px; }
.tcn-mobile-nav .sub-menu a{ text-transform:none; font-weight:500; font-size:14px; border-bottom:none; padding:8px 0; }

@media (min-width:900px){
	.tcn-nav{ display:block; }
	.tcn-burger{ display:none; }
}

/* ==========================================================================
   Announcement ticker
   ========================================================================== */
.tcn-ticker{
	background:#fff; border-bottom:1px solid var(--tcn-line);
	padding:12px 0; overflow:hidden;
}
.tcn-ticker__track{
	display:flex; gap:64px; white-space:nowrap;
	animation:tcnTicker 22s linear infinite;
	width:max-content;
}
.tcn-ticker__track span{
	font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--tcn-ink-soft);
}
@keyframes tcnTicker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ==========================================================================
   Hero
   ========================================================================== */
.tcn-hero{
	position:relative;
	min-height:min(78vh, 680px);
	display:flex; align-items:center; justify-content:center;
	text-align:center;
	background:#111 center/cover no-repeat;
	color:#fff;
	overflow:hidden;
}
.tcn-hero::before{
	content:""; position:absolute; inset:0;
	background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.62) 70%, rgba(0,0,0,.78));
}
.tcn-hero__inner{ position:relative; z-index:1; max-width:760px; padding:0 24px; }
.tcn-hero h1{
	font-size:clamp(34px,6vw,64px);
	font-weight:900;
	line-height:1.02;
	text-transform:uppercase;
	margin:0 0 18px;
}
.tcn-hero p{
	font-size:clamp(15px,2vw,19px);
	color:rgba(255,255,255,.82);
	margin:0 0 32px;
}

/* ==========================================================================
   Section headings
   ========================================================================== */
.tcn-section{ padding:72px 0; }
.tcn-section--tight{ padding:48px 0; }
.tcn-section--dark{ background:var(--tcn-dark); color:#fff; }
.tcn-section--alt{ background:var(--tcn-bg-alt); }
.tcn-section__head{ text-align:center; margin-bottom:40px; }
.tcn-section__head h2{
	font-size:clamp(24px,3.4vw,36px);
	text-transform:uppercase;
	font-weight:900;
	margin:0;
}
.tcn-section__head p{ color:var(--tcn-muted); margin:10px 0 0; }
.tcn-section--dark .tcn-section__head p{ color:var(--tcn-on-dark-muted); }
.tcn-section__foot{ text-align:center; margin-top:36px; }

/* ==========================================================================
   Category grid
   ========================================================================== */
.tcn-cat-grid{
	display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:24px;
}
.tcn-cat-card{
	background:var(--tcn-card);
	border-radius:var(--tcn-radius-lg);
	overflow:hidden;
	box-shadow:0 1px 2px rgba(0,0,0,.04);
	transition:transform .2s ease, box-shadow .2s ease;
}
.tcn-cat-card:hover{ transform:translateY(-4px); box-shadow:0 20px 34px rgba(0,0,0,.08); }
.tcn-cat-card__img{ aspect-ratio:1/1; background:#efefef; overflow:hidden; }
.tcn-cat-card__img img{ width:100%; height:100%; object-fit:cover; }
.tcn-cat-card__label{ padding:16px 18px; font-weight:800; font-size:14px; text-transform:uppercase; letter-spacing:.02em; }

/* ==========================================================================
   Product grid (native WooCommerce loop, restyled)
   ========================================================================== */
ul.products{
	display:grid !important;
	grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
	gap:24px;
	margin:0 !important; padding:0 !important;
}
ul.products li.product{
	list-style:none; background:var(--tcn-card); border-radius:var(--tcn-radius-lg);
	padding:0 0 20px; overflow:hidden;
	box-shadow:0 1px 2px rgba(0,0,0,.04);
	transition:transform .2s ease, box-shadow .2s ease;
}
ul.products li.product:hover{ transform:translateY(-4px); box-shadow:0 20px 34px rgba(0,0,0,.08); }
ul.products li.product a.woocommerce-LoopProduct-link{ display:block; }
ul.products li.product img{ aspect-ratio:1/1; object-fit:cover; width:100%; margin-bottom:16px; }
ul.products li.product .woocommerce-loop-product__title{
	font-size:14px; font-weight:800; text-transform:uppercase; letter-spacing:.01em;
	padding:0 18px; margin:0 0 6px;
}
ul.products li.product .price{
	padding:0 18px; display:block; font-weight:800; font-size:15px; color:var(--tcn-ink); margin-bottom:14px;
}
ul.products li.product .price del{ color:var(--tcn-muted); font-weight:500; margin-right:6px; }
ul.products li.product .price ins{ text-decoration:none; }
ul.products li.product .button,
ul.products li.product a.add_to_cart_button,
ul.products li.product a.added_to_cart{
	margin:0 18px; width:calc(100% - 36px);
	background:var(--tcn-dark); color:#fff;
	border-radius:var(--tcn-radius); padding:12px;
	font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
	text-align:center; display:block;
}
ul.products li.product .button:hover{ opacity:.86; }
ul.products li.product .onsale{
	position:absolute; margin:14px; background:var(--tcn-danger); color:#fff;
	font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
	border-radius:999px; padding:5px 12px; min-height:0; min-width:0; left:0; top:0;
}
ul.products li.product{ position:relative; }
.woocommerce-loop-product__link{ position:relative; }

/* ==========================================================================
   Collections (sister brands) section
   ========================================================================== */
.tcn-collections{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:20px; }
.tcn-collection-card{
	background:#1c1c1c; border:1px solid rgba(255,255,255,.06);
	border-radius:var(--tcn-radius-lg); padding:28px 24px; text-align:center;
	transition:border-color .2s ease;
}
.tcn-collection-card:hover{ border-color:rgba(255,255,255,.2); }
.tcn-collection-card__badge{
	font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; display:block; margin-bottom:16px;
}
.tcn-collection-card__badge--active{ color:var(--tcn-accent); }
.tcn-collection-card__badge--inactive{ color:#6b6b6b; }
.tcn-collection-card__mark{
	width:88px; height:88px; border-radius:50%; margin:0 auto 18px;
	background:#fff center/60% no-repeat; overflow:hidden;
	display:flex; align-items:center; justify-content:center;
}
.tcn-collection-card__mark img{ width:100%; height:100%; object-fit:cover; }
.tcn-collection-card h3{ font-size:16px; text-transform:uppercase; color:#fff; margin:0 0 10px; }
.tcn-collection-card p{ color:var(--tcn-on-dark-muted); font-size:13px; margin:0 0 20px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.tcn-footer{ background:var(--tcn-dark); color:var(--tcn-on-dark); padding:64px 0 0; }
.tcn-footer__grid{
	display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:48px;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.tcn-footer__brand p{ color:var(--tcn-on-dark-muted); font-size:13.5px; max-width:280px; }
.tcn-footer h4{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:18px; }
.tcn-footer ul li{ margin-bottom:10px; }
.tcn-footer a{ color:var(--tcn-on-dark-muted); font-size:13.5px; }
.tcn-footer a:hover{ color:#fff; }
.tcn-footer__social{ display:flex; gap:10px; margin-top:18px; }
.tcn-newsletter{ display:flex; gap:8px; margin-top:6px; }
.tcn-newsletter input[type=email]{
	flex:1; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
	border-radius:var(--tcn-radius); padding:11px 14px; color:#fff; font-size:13px;
}
.tcn-newsletter input[type=email]::placeholder{ color:var(--tcn-on-dark-muted); }
.tcn-footer__bottom{
	display:flex; align-items:center; justify-content:space-between; gap:16px;
	padding:24px 0; font-size:12px; color:var(--tcn-on-dark-muted); flex-wrap:wrap;
}
.tcn-footer__bottom a{ color:var(--tcn-on-dark-muted); }
.tcn-footer__bottom a:hover{ color:#fff; }

@media (max-width:900px){
	.tcn-footer__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
	.tcn-footer__grid{ grid-template-columns:1fr; }
	.tcn-section{ padding:52px 0; }
}

/* ==========================================================================
   WooCommerce: shop / archive
   ========================================================================== */
.woocommerce-products-header{ text-align:center; padding:56px 0 32px; }
.woocommerce-products-header__title{ font-size:clamp(26px,4vw,40px); text-transform:uppercase; font-weight:900; }
.woocommerce-result-count, .woocommerce-ordering{ font-size:13px; color:var(--tcn-muted); }
.woocommerce-ordering select{
	border:1px solid var(--tcn-line); border-radius:var(--tcn-radius-sm); padding:8px 12px; font-family:var(--tcn-font);
}
nav.woocommerce-pagination ul{ display:flex; gap:8px; justify-content:center; margin-top:40px; }
nav.woocommerce-pagination ul li{ border:none !important; }
nav.woocommerce-pagination a, nav.woocommerce-pagination span{
	display:flex; align-items:center; justify-content:center;
	width:38px; height:38px; border-radius:var(--tcn-radius-sm);
	background:#fff; border:1px solid var(--tcn-line); font-weight:700; font-size:13px;
}
nav.woocommerce-pagination .current{ background:var(--tcn-dark); color:#fff; border-color:var(--tcn-dark); }

/* ==========================================================================
   Single product page
   ========================================================================== */
.tcn-woo-single{ padding-top:48px; padding-bottom:80px; }
.tcn-pd{
	display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;
	background:#fff; border-radius:24px; box-shadow:0 2px 20px rgba(0,0,0,.06);
	padding:40px; margin-top:24px;
}
.tcn-pd__gallery{ position:sticky; top:100px; }
.tcn-pd__gallery-main{
	position:relative; overflow:hidden; border-radius:20px;
	background:var(--tcn-bg-alt); aspect-ratio:4/5;
}
.tcn-pd__gallery-main img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:20px; }
.tcn-pd__badge{
	position:absolute; top:16px; left:16px; z-index:2;
	font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
	padding:6px 14px; border-radius:var(--tcn-radius-pill);
}
.tcn-pd__badge--sale{ background:var(--tcn-danger); color:#fff; }
.tcn-pd__badge--oos{ background:var(--tcn-ink); color:#fff; }
.tcn-pd__thumbs{ display:flex; gap:8px; margin-top:12px; overflow-x:auto; }
.tcn-pd__thumb{
	flex:0 0 72px; height:72px; border-radius:14px; overflow:hidden; cursor:pointer;
	border:2px solid var(--tcn-line); background:none; padding:0;
	transition:border-color .2s ease;
}
.tcn-pd__thumb img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:12px; }
.tcn-pd__thumb:hover, .tcn-pd__thumb--active{ border-color:var(--tcn-ink); }
.tcn-pd__summary{ padding:10px 0 10px 20px; }
.tcn-pd__title{
	font-size:30px; text-transform:uppercase; font-weight:800;
	color:var(--tcn-ink); line-height:1.2; margin:0 0 10px;
}
.tcn-pd__desc{ color:var(--tcn-ink-soft); font-size:15px; line-height:1.65; margin-bottom:20px; }
.tcn-pd__price{
	font-size:28px; font-weight:700; color:var(--tcn-ink); margin-bottom:24px; display:block;
}
.tcn-pd__price del{ color:var(--tcn-muted); font-weight:500; margin-right:8px; font-size:20px; }
.tcn-pd__price ins{ text-decoration:none; }
.tcn-pd__form-wrap{
	background:#f8f8f8; border-radius:20px; padding:24px 28px; margin:20px 0;
}
.tcn-pd__form-wrap .variations{ width:100%; margin-bottom:20px; border:none; background:transparent; padding:0; }
.tcn-pd__form-wrap .variations td{ display:block; width:100%; padding:0 0 12px; border:none; }
.tcn-pd__form-wrap .variations label{
	font-weight:700; font-size:13px; letter-spacing:1.5px;
	text-transform:uppercase; color:#555; margin-bottom:8px; display:block;
}
.tcn-pd__form-wrap .variations select{
	width:100% !important; padding:14px 20px; border-radius:14px !important;
	border:2px solid var(--tcn-line) !important; font-family:var(--tcn-font); font-size:15px;
	background-color:#fff; cursor:pointer; transition:border-color .3s ease;
	appearance:none; -webkit-appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 16px center;
}
.tcn-pd__form-wrap .variations select:focus{ border-color:var(--tcn-ink) !important; outline:none; }
.tcn-pd__form-wrap .variations .reset_variations{
	background:#f0f0f0; padding:6px 14px; border-radius:var(--tcn-radius-pill);
	font-size:12px; text-decoration:none; color:#888; margin-top:8px; display:inline-block;
}
.tcn-pd__form-wrap .variations .reset_variations:hover{ color:var(--tcn-danger); }
.tcn-pd__form-wrap .quantity{ display:inline-block; }
.tcn-pd__form-wrap .quantity .qty{
	border-radius:14px !important; border:2px solid var(--tcn-line) !important;
	padding:14px 12px !important; width:70px; text-align:center;
	font-weight:600; font-size:16px; height:auto;
}
.tcn-pd__form-wrap .quantity .qty:focus{ border-color:var(--tcn-ink) !important; outline:none; }
.tcn-pd__form-wrap .single_add_to_cart_button,
.tcn-pd__form-wrap button.single_add_to_cart_button{
	border-radius:var(--tcn-radius-pill) !important;
	padding:16px 48px !important;
	font-weight:700 !important; font-size:14px !important;
	letter-spacing:2px !important; text-transform:uppercase !important;
	background:var(--tcn-dark) !important; color:#fff !important;
	border:none !important;
	box-shadow:0 4px 15px rgba(0,0,0,.15) !important;
	transition:all .3s ease !important;
}
.tcn-pd__form-wrap .single_add_to_cart_button:hover{
	transform:translateY(-2px) !important;
	box-shadow:0 6px 25px rgba(0,0,0,.25) !important;
	background:#333 !important;
}
.tcn-pd__meta{
	margin-top:24px; padding-top:20px; border-top:1px solid #f0f0f0;
	display:flex; gap:12px; flex-wrap:wrap;
}
.tcn-pd__meta-pill{
	background:#f5f5f5; padding:8px 16px; border-radius:var(--tcn-radius-pill);
	font-size:13px; display:inline-flex; align-items:center; gap:6px;
}
.tcn-pd__meta-label{ font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#888; font-size:11px; }
.tcn-pd__meta-pill a{ color:var(--tcn-ink); font-weight:600; text-decoration:none; }
.tcn-pd__meta-pill a:hover{ text-decoration:underline; }
.tcn-pd__trust{
	display:flex; gap:24px; flex-wrap:wrap; margin-top:24px;
	padding-top:20px; border-top:1px solid #f0f0f0;
}
.tcn-pd__trust-item{
	display:flex; align-items:center; gap:6px;
	font-size:12px; font-weight:600; color:var(--tcn-muted);
}
.tcn-pd__trust-item svg{ opacity:.5; }
.tcn-pd__tabs{
	margin-top:40px; background:#f8f8f8; border-radius:20px; padding:30px;
}
.tcn-pd__tabs-nav{ display:flex; gap:8px; margin-bottom:24px; }
.tcn-pd__tab{
	background:transparent; border:none; cursor:pointer;
	font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:1px;
	color:#888; padding:10px 24px; border-radius:var(--tcn-radius-pill);
	transition:all .2s ease;
}
.tcn-pd__tab:hover{ color:var(--tcn-ink); background:#eee; }
.tcn-pd__tab--active{ background:var(--tcn-dark) !important; color:#fff !important; }
.tcn-pd__tab-panel{ display:none; }
.tcn-pd__tab-panel--active{ display:block; }
.tcn-pd__tab-panel h2, .tcn-pd__tab-panel h3{ font-size:18px; font-weight:800; text-transform:uppercase; margin:0 0 16px; }
.tcn-pd__tab-panel p{ color:var(--tcn-ink-soft); font-size:15px; line-height:1.7; }
.tcn-pd__attr-table{ width:100%; border-collapse:collapse; }
.tcn-pd__attr-table th{
	text-align:left; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
	color:var(--tcn-muted); padding:12px 16px 12px 0; border-bottom:1px solid var(--tcn-line); width:160px;
}
.tcn-pd__attr-table td{ padding:12px 0; border-bottom:1px solid var(--tcn-line); font-size:14px; color:var(--tcn-ink-soft); }
.tcn-pd__tab-panel .commentlist{ list-style:none; padding:0; margin:0; }
.tcn-pd__tab-panel .comment{ padding:20px 0; border-bottom:1px solid var(--tcn-line); }
.tcn-pd__tab-panel .comment-respond{ margin-top:32px; }
.tcn-pd__tab-panel .comment-form label{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; display:block; margin-bottom:8px; }
.tcn-pd__tab-panel .comment-form input[type=text],
.tcn-pd__tab-panel .comment-form textarea{
	width:100%; padding:12px 14px; border:2px solid var(--tcn-line); border-radius:14px;
	font-family:var(--tcn-font); font-size:14px; transition:border-color .2s ease;
}
.tcn-pd__tab-panel .comment-form input[type=text]:focus,
.tcn-pd__tab-panel .comment-form textarea:focus{ border-color:var(--tcn-ink); outline:none; }
.tcn-pd__tab-panel .comment-form .form-submit input[type=submit]{
	background:var(--tcn-dark); color:#fff; border:none; border-radius:var(--tcn-radius-pill);
	padding:14px 36px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px;
	cursor:pointer; transition:all .2s ease;
}
.tcn-pd__tab-panel .comment-form .form-submit input[type=submit]:hover{
	transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.2);
}
@media (max-width:820px){
	.tcn-pd{ grid-template-columns:1fr; gap:24px; padding:20px; }
	.tcn-pd__gallery{ position:static; }
	.tcn-pd__gallery-main{ aspect-ratio:1/1; }
	.tcn-pd__summary{ padding:0; }
	.tcn-pd__title{ font-size:24px; }
	.tcn-pd__tabs{ padding:20px; }
	.tcn-pd__tabs-nav{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
	.tcn-pd__tab{ white-space:nowrap; padding:10px 18px; }
	.tcn-pd__form-wrap{ padding:16px; }
}

/* ==========================================================================
   WooCommerce: cart & checkout
   ========================================================================== */
.woocommerce-cart .tcn-container, .woocommerce-checkout .tcn-container{ padding-top:48px; padding-bottom:80px; }
table.shop_table{ width:100%; border-collapse:collapse; }
table.shop_table th{ text-align:left; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--tcn-muted); padding:0 0 14px; border-bottom:1px solid var(--tcn-line); }
table.shop_table td{ padding:18px 0; border-bottom:1px solid var(--tcn-line); vertical-align:middle; }
table.shop_table td.product-thumbnail img{ width:72px; border-radius:var(--tcn-radius-sm); }
table.shop_table td.product-name a{ font-weight:700; }
.cart-collaterals .cart_totals{ background:var(--tcn-bg-alt); border-radius:var(--tcn-radius-lg); padding:28px; }
.cart-collaterals h2{ font-size:16px; text-transform:uppercase; }
#coupon_code{ border:1px solid var(--tcn-line); border-radius:var(--tcn-radius-sm); padding:12px; font-family:var(--tcn-font); }
.wc-proceed-to-checkout .checkout-button, .checkout-button{
	background:var(--tcn-dark) !important; color:#fff !important; border-radius:var(--tcn-radius) !important;
	font-weight:800 !important; text-transform:uppercase !important; letter-spacing:.06em !important; padding:16px !important;
}
.woocommerce-checkout input.input-text, .woocommerce-checkout select, .woocommerce-checkout textarea{
	border:1px solid var(--tcn-line); border-radius:var(--tcn-radius-sm); padding:12px 14px; font-family:var(--tcn-font); width:100%;
}
#order_review{ background:var(--tcn-bg-alt); border-radius:var(--tcn-radius-lg); padding:28px; }

/* ==========================================================================
   Misc WooCommerce notices
   ========================================================================== */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
	border-top-color:var(--tcn-dark) !important;
	border-radius:var(--tcn-radius-sm);
	background:#fff;
}
.woocommerce-message::before, .woocommerce-info::before{ color:var(--tcn-dark) !important; }

/* ==========================================================================
   Search overlay
   ========================================================================== */
.tcn-search-overlay{
	position:fixed; inset:0; z-index:200;
	background:rgba(12,12,12,.92);
	display:flex; align-items:flex-start; justify-content:center;
	padding-top:18vh;
	opacity:0; visibility:hidden;
	transition:opacity .3s ease, visibility .3s ease;
	backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.tcn-search-overlay.is-open{ opacity:1; visibility:visible; }
.tcn-search-overlay__inner{ width:100%; max-width:640px; padding:0 24px; }
.tcn-search-overlay__close{
	position:absolute; top:24px; right:24px;
	width:44px; height:44px; border-radius:50%;
	background:rgba(255,255,255,.1); border:none; color:#fff;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer; transition:background .15s ease;
}
.tcn-search-overlay__close:hover{ background:rgba(255,255,255,.2); }
.tcn-search-overlay__form{ position:relative; }
.tcn-search-overlay__input{
	width:100%; padding:20px 24px 20px 56px;
	background:rgba(255,255,255,.08);
	border:1px solid rgba(255,255,255,.15);
	border-radius:var(--tcn-radius-lg);
	color:#fff; font-size:18px; font-family:var(--tcn-font);
	outline:none;
	transition:border-color .2s ease, background .2s ease;
}
.tcn-search-overlay__input::placeholder{ color:rgba(255,255,255,.4); }
.tcn-search-overlay__input:focus{ border-color:rgba(255,255,255,.35); background:rgba(255,255,255,.12); }
.tcn-search-overlay__icon{
	position:absolute; left:20px; top:50%; transform:translateY(-50%);
	color:rgba(255,255,255,.4); pointer-events:none;
}
.tcn-search-overlay__hint{
	text-align:center; margin-top:16px;
	font-size:13px; color:rgba(255,255,255,.35);
}
.tcn-search-overlay__results{
	margin-top:24px; max-height:50vh; overflow-y:auto;
}
.tcn-search-overlay__result{
	display:flex; align-items:center; gap:16px;
	padding:12px 16px; border-radius:var(--tcn-radius);
	transition:background .15s ease; color:#fff;
}
.tcn-search-overlay__result:hover{ background:rgba(255,255,255,.08); }
.tcn-search-overlay__result-img{
	width:56px; height:56px; border-radius:var(--tcn-radius-sm);
	object-fit:cover; flex-shrink:0; background:rgba(255,255,255,.06);
}
.tcn-search-overlay__result-title{ font-weight:700; font-size:14px; }
.tcn-search-overlay__result-price{ font-size:13px; color:var(--tcn-accent); font-weight:600; margin-top:2px; }
.tcn-search-overlay__no-results{ text-align:center; padding:40px 0; color:rgba(255,255,255,.4); font-size:14px; }

/* ==========================================================================
   Mini-cart flyout
   ========================================================================== */
.tcn-mini-cart-overlay{
	position:fixed; inset:0; z-index:300;
	background:rgba(0,0,0,.5);
	opacity:0; visibility:hidden;
	transition:opacity .3s ease, visibility .3s ease;
}
.tcn-mini-cart-overlay.is-open{ opacity:1; visibility:visible; }
.tcn-mini-cart{
	position:fixed; top:0; right:0; bottom:0; z-index:301;
	width:420px; max-width:92vw;
	background:var(--tcn-card);
	box-shadow:-8px 0 40px rgba(0,0,0,.18);
	transform:translateX(100%);
	transition:transform .35s cubic-bezier(.4,0,.2,1);
	display:flex; flex-direction:column;
}
.tcn-mini-cart.is-open{ transform:translateX(0); }
.tcn-mini-cart__header{
	display:flex; align-items:center; justify-content:space-between;
	padding:20px 24px; border-bottom:1px solid var(--tcn-line);
}
.tcn-mini-cart__title{ font-size:14px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.tcn-mini-cart__close{
	width:36px; height:36px; border-radius:50%;
	background:var(--tcn-bg-alt); border:none;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer; transition:background .15s ease;
}
.tcn-mini-cart__close:hover{ background:var(--tcn-line); }
.tcn-mini-cart__items{ flex:1; overflow-y:auto; padding:16px 24px; }
.tcn-mini-cart__empty{
	text-align:center; padding:60px 24px;
	color:var(--tcn-muted); font-size:14px;
}
.tcn-mini-cart__item{
	display:flex; gap:16px; padding:16px 0;
	border-bottom:1px solid var(--tcn-line);
}
.tcn-mini-cart__item:last-child{ border-bottom:none; }
.tcn-mini-cart__item-img{
	width:80px; height:80px; border-radius:var(--tcn-radius-sm);
	object-fit:cover; flex-shrink:0; background:var(--tcn-bg-alt);
}
.tcn-mini-cart__item-info{ flex:1; min-width:0; }
.tcn-mini-cart__item-name{
	font-weight:700; font-size:13px; text-transform:uppercase;
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tcn-mini-cart__item-variant{ font-size:12px; color:var(--tcn-muted); margin-top:2px; }
.tcn-mini-cart__item-qty{
	display:flex; align-items:center; gap:8px; margin-top:8px;
}
.tcn-mini-cart__item-qty button{
	width:28px; height:28px; border-radius:var(--tcn-radius-sm);
	border:1px solid var(--tcn-line); background:#fff;
	font-size:14px; font-weight:700; cursor:pointer;
	display:flex; align-items:center; justify-content:center;
	transition:border-color .15s ease;
}
.tcn-mini-cart__item-qty button:hover{ border-color:var(--tcn-ink); }
.tcn-mini-cart__item-qty span{ font-size:13px; font-weight:700; min-width:20px; text-align:center; }
.tcn-mini-cart__item-price{ font-weight:800; font-size:14px; margin-top:8px; }
.tcn-mini-cart__item-remove{
	font-size:11px; color:var(--tcn-danger); cursor:pointer;
	background:none; border:none; padding:0; margin-top:4px;
	font-weight:600; text-transform:uppercase; letter-spacing:.04em;
}
.tcn-mini-cart__item-remove:hover{ text-decoration:underline; }
.tcn-mini-cart__footer{ padding:20px 24px; border-top:1px solid var(--tcn-line); }
.tcn-mini-cart__subtotal{
	display:flex; justify-content:space-between; align-items:center;
	margin-bottom:16px;
}
.tcn-mini-cart__subtotal-label{ font-size:13px; color:var(--tcn-muted); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.tcn-mini-cart__subtotal-value{ font-size:18px; font-weight:800; }
.tcn-mini-cart__checkout{
	display:block; width:100%; text-align:center;
	background:var(--tcn-dark); color:#fff;
	border-radius:var(--tcn-radius); padding:16px;
	font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
	text-decoration:none; border:none; cursor:pointer;
	transition:opacity .15s ease, transform .15s ease;
}
.tcn-mini-cart__checkout:hover{ opacity:.88; transform:translateY(-1px); }
.tcn-mini-cart__continue{
	display:block; text-align:center; margin-top:12px;
	font-size:12px; color:var(--tcn-muted); font-weight:600;
	text-decoration:none; text-transform:uppercase; letter-spacing:.04em;
}
.tcn-mini-cart__continue:hover{ color:var(--tcn-ink); }

/* ==========================================================================
   Product card enhancements
   ========================================================================== */
.tcn-product-card{ position:relative; }
.tcn-product-card__img-wrap{ position:relative; overflow:hidden; }
.tcn-product-card__badge{
	position:absolute; top:14px; left:14px; z-index:2;
	font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
	padding:5px 12px; border-radius:999px;
}
.tcn-product-card__badge--sale{ background:var(--tcn-danger); color:#fff; }
.tcn-product-card__badge--new{ background:var(--tcn-accent); color:#0a0a0a; }
.tcn-product-card__badge--sold-out{ background:var(--tcn-ink); color:#fff; }
.tcn-product-card__actions{
	position:absolute; bottom:0; left:0; right:0; z-index:2;
	padding:12px; display:flex; gap:8px;
	transform:translateY(100%);
	transition:transform .3s cubic-bezier(.4,0,.2,1);
}
.tcn-product-card:hover .tcn-product-card__actions{ transform:translateY(0); }
.tcn-product-card__action-btn{
	flex:1; padding:10px; border-radius:var(--tcn-radius-sm);
	font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
	text-align:center; border:none; cursor:pointer;
	transition:opacity .15s ease;
	text-decoration:none;
}
.tcn-product-card__action-btn--quick{ background:rgba(255,255,255,.95); color:#0a0a0a; }
.tcn-product-card__action-btn--cart{ background:var(--tcn-dark); color:#fff; }
.tcn-product-card__action-btn:hover{ opacity:.88; }
ul.products li.product .tcn-product-card__img-wrap img{ margin-bottom:0; }
ul.products li.product .tcn-product-card__actions .button,
ul.products li.product .tcn-product-card__actions a.add_to_cart_button{
	margin:0; width:auto; padding:10px 16px; font-size:11px;
}

/* ==========================================================================
   Scroll-reveal animations
   ========================================================================== */
.tcn-reveal{
	opacity:0;
	transform:translateY(28px);
	transition:opacity .6s cubic-bezier(.4,0,.2,1), transform .6s cubic-bezier(.4,0,.2,1);
}
.tcn-reveal.tcn-reveal--visible{
	opacity:1;
	transform:translateY(0);
}
.tcn-reveal--delay-1{ transition-delay:.1s; }
.tcn-reveal--delay-2{ transition-delay:.2s; }
.tcn-reveal--delay-3{ transition-delay:.3s; }
.tcn-reveal--delay-4{ transition-delay:.4s; }

/* ==========================================================================
   Sticky add-to-cart bar (single product)
   ========================================================================== */
.tcn-sticky-cart{
	position:fixed; bottom:0; left:0; right:0; z-index:90;
	background:var(--tcn-card);
	box-shadow:0 -4px 24px rgba(0,0,0,.1);
	transform:translateY(100%);
	transition:transform .35s cubic-bezier(.4,0,.2,1);
	padding:14px 24px;
}
.tcn-sticky-cart.is-visible{ transform:translateY(0); }
.tcn-sticky-cart__inner{
	max-width:var(--tcn-container); margin:0 auto;
	display:flex; align-items:center; gap:16px;
}
.tcn-sticky-cart__info{ flex:1; min-width:0; display:flex; align-items:center; gap:14px; }
.tcn-sticky-cart__img{
	width:48px; height:48px; border-radius:var(--tcn-radius-sm);
	object-fit:cover; flex-shrink:0; background:var(--tcn-bg-alt);
	display:none;
}
.tcn-sticky-cart__name{
	font-weight:800; font-size:13px; text-transform:uppercase;
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tcn-sticky-cart__price{ font-size:14px; font-weight:800; color:var(--tcn-ink); margin-left:auto; flex-shrink:0; }
.tcn-sticky-cart__btn{
	background:var(--tcn-dark); color:#fff;
	border:none; border-radius:var(--tcn-radius);
	padding:12px 28px; font-size:12px; font-weight:800;
	letter-spacing:.06em; text-transform:uppercase;
	cursor:pointer; white-space:nowrap;
	transition:opacity .15s ease;
}
.tcn-sticky-cart__btn:hover{ opacity:.86; }
@media (min-width:600px){
	.tcn-sticky-cart__img{ display:block; }
}

/* ==========================================================================
   Back to top
   ========================================================================== */
.tcn-back-to-top{
	position:fixed; bottom:24px; right:24px; z-index:80;
	width:44px; height:44px; border-radius:50%;
	background:var(--tcn-dark); color:#fff;
	display:flex; align-items:center; justify-content:center;
	box-shadow:0 4px 16px rgba(0,0,0,.2);
	opacity:0; visibility:hidden;
	transform:translateY(12px);
	transition:opacity .3s ease, visibility .3s ease, transform .3s ease;
	cursor:pointer; border:none;
}
.tcn-back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.tcn-back-to-top:hover{ transform:translateY(-2px); box-shadow:0 6px 24px rgba(0,0,0,.28); }
.tcn-sticky-cart.is-visible ~ .tcn-back-to-top{ bottom:80px; }

/* ==========================================================================
   Mobile nav slide-in
   ========================================================================== */
.tcn-mobile-nav{
	position:fixed; top:0; left:0; bottom:0; z-index:150;
	width:320px; max-width:85vw;
	background:var(--tcn-dark);
	transform:translateX(-100%);
	transition:transform .35s cubic-bezier(.4,0,.2,1);
	overflow-y:auto;
	padding:80px 28px 28px;
}
.tcn-mobile-nav.is-open{ transform:translateX(0); }
.tcn-mobile-nav__close{
	position:absolute; top:20px; right:20px;
	width:36px; height:36px; border-radius:50%;
	background:rgba(255,255,255,.08); border:none; color:#fff;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer; transition:background .15s ease;
}
.tcn-mobile-nav__close:hover{ background:rgba(255,255,255,.16); }
.tcn-mobile-nav-backdrop{
	position:fixed; inset:0; z-index:149;
	background:rgba(0,0,0,.5);
	opacity:0; visibility:hidden;
	transition:opacity .3s ease, visibility .3s ease;
}
.tcn-mobile-nav-backdrop.is-open{ opacity:1; visibility:visible; }

/* ==========================================================================
   Skeleton loading
   ========================================================================== */
.tcn-skeleton{
	background:linear-gradient(90deg, var(--tcn-bg-alt) 25%, var(--tcn-line) 50%, var(--tcn-bg-alt) 75%);
	background-size:200% 100%;
	animation:tcnShimmer 1.5s infinite;
	border-radius:var(--tcn-radius-sm);
}
@keyframes tcnShimmer{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }
.tcn-skeleton--text{ height:14px; margin-bottom:8px; }
.tcn-skeleton--heading{ height:24px; width:60%; margin-bottom:12px; }
.tcn-skeleton--img{ aspect-ratio:1/1; width:100%; }

/* ==========================================================================
   Micro-interactions & polish
   ========================================================================== */
.tcn-btn{ position:relative; overflow:hidden; }
.tcn-btn::after{
	content:""; position:absolute; inset:0;
	background:radial-gradient(circle at var(--x, 50%) var(--y, 50%), rgba(255,255,255,.25) 0%, transparent 60%);
	opacity:0; transition:opacity .3s ease;
}
.tcn-btn:hover::after{ opacity:1; }

:focus-visible{
	outline:2px solid var(--tcn-accent);
	outline-offset:2px;
}

::selection{
	background:var(--tcn-dark);
	color:#fff;
}

.tcn-footer a{ transition:color .15s ease; }
.tcn-icon-btn{ transition:background .15s ease, transform .15s ease; }
.tcn-icon-btn:hover{ transform:translateY(-1px); }

/* Smooth WooCommerce transitions */
.woocommerce .button,
.woocommerce-cart .button,
.woocommerce-checkout .button{
	transition:opacity .15s ease, transform .15s ease, background .15s ease;
}

/* Sale badge polish */
.onsale{
	font-size:11px !important; font-weight:800 !important;
	letter-spacing:.04em !important; text-transform:uppercase !important;
	padding:5px 12px !important; min-height:0 !important; min-width:0 !important;
	border-radius:999px !important;
}

/* Trust badges */
.tcn-trust{
	display:flex; align-items:center; justify-content:center;
	gap:32px; flex-wrap:wrap;
	padding:20px 0; margin-top:12px;
}
.tcn-trust__item{
	display:flex; align-items:center; gap:8px;
	font-size:12px; color:var(--tcn-on-dark-muted); font-weight:600;
	letter-spacing:.02em;
}
.tcn-trust__item svg{ flex-shrink:0; opacity:.6; }

/* Payment icons */
.tcn-payments{
	display:flex; align-items:center; justify-content:center;
	gap:8px; flex-wrap:wrap;
	margin-top:16px;
}
.tcn-payments__icon{
	height:24px; width:auto;
	opacity:.5;
	transition:opacity .15s ease;
	filter:grayscale(100%);
}
.tcn-payments__icon:hover{ opacity:.8; }

/* Newsletter form polish */
.tcn-newsletter input[type=email]{
	transition:border-color .2s ease, background .2s ease;
}
.tcn-newsletter input[type=email]:focus{
	border-color:var(--tcn-accent);
	background:rgba(255,255,255,.1);
	outline:none;
}

/* Quantity input stepper (override earlier single-product rule) */
.woocommerce .quantity .qty{
	width:48px !important; height:auto;
	text-align:center; font-weight:700;
}

/* Breadcrumb (WooCommerce) */
.woocommerce-breadcrumb{
	font-size:13px; color:var(--tcn-muted); margin-bottom:24px;
}
.woocommerce-breadcrumb a{ color:var(--tcn-ink-soft); text-decoration:none; }
.woocommerce-breadcrumb a:hover{ text-decoration:underline; }

/* ==========================================================================
   Enhanced product card hover states
   ========================================================================== */
ul.products li.product{
	transition:transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1);
}
ul.products li.product:hover{
	transform:translateY(-6px);
	box-shadow:0 24px 48px rgba(0,0,0,.1);
}
ul.products li.product a.woocommerce-LoopProduct-link{ transition:opacity .2s ease; }
ul.products li.product a.woocommerce-LoopProduct-link:hover{ opacity:.92; }

/* ==========================================================================
   Category card smooth transitions
   ========================================================================== */
.tcn-cat-card{
	transition:transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1);
}
.tcn-cat-card:hover{
	transform:translateY(-6px);
	box-shadow:0 24px 48px rgba(0,0,0,.1);
}
.tcn-cat-card__img img{ transition:transform .5s cubic-bezier(.4,0,.2,1); }
.tcn-cat-card:hover .tcn-cat-card__img img{ transform:scale(1.06); }

/* ==========================================================================
   Collection card hover polish
   ========================================================================== */
.tcn-collection-card{
	transition:transform .3s cubic-bezier(.4,0,.2,1), border-color .3s ease, box-shadow .3s ease;
}
.tcn-collection-card:hover{
	transform:translateY(-4px);
	box-shadow:0 16px 40px rgba(0,0,0,.3);
}

/* ==========================================================================
   Cart pill micro-interaction
   ========================================================================== */
.tcn-cart-pill{ transition:transform .2s ease, box-shadow .2s ease; }
.tcn-cart-pill:hover{ transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.15); }

/* ==========================================================================
   Footer social icons hover
   ========================================================================== */
.tcn-footer__social .tcn-icon-btn{ transition:transform .2s ease, background .2s ease; }
.tcn-footer__social .tcn-icon-btn:hover{ transform:translateY(-2px) scale(1.08); background:rgba(255,255,255,.14); }

/* ==========================================================================
   Newsletter form submit button
   ========================================================================== */
.tcn-newsletter .tcn-btn{
	transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.tcn-newsletter .tcn-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 20px rgba(255,255,255,.2); }

/* ==========================================================================
   Smooth page transitions
   ========================================================================== */
.tcn-main{ animation:tcnFadeIn .4s ease; }
@keyframes tcnFadeIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:translateY(0); } }

/* ==========================================================================
   Product image zoom on hover (single product gallery)
   ========================================================================== */
.woocommerce-product-gallery__image a{ display:block; overflow:hidden; border-radius:var(--tcn-radius-lg); }
.woocommerce-product-gallery__image img{ transition:transform .5s cubic-bezier(.4,0,.2,1); }
.woocommerce-product-gallery__image a:hover img{ transform:scale(1.04); }

/* ==========================================================================
   Form input focus states (WooCommerce)
   ========================================================================== */
.woocommerce input.input-text:focus,
.woocommerce input.input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus{
	border-color:var(--tcn-ink) !important;
	box-shadow:0 0 0 3px rgba(18,18,18,.08);
	outline:none;
}

/* ==========================================================================
   Sale badge pulse animation
   ========================================================================== */
@keyframes tcnPulse{
	0%,100%{ transform:scale(1); }
	50%{ transform:scale(1.05); }
}
.onsale{ animation:tcnPulse 2s ease-in-out infinite; }

/* ==========================================================================
   Reduced motion respect
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{
		animation-duration:.01ms !important;
		animation-iteration-count:1 !important;
		transition-duration:.01ms !important;
	}
	.tcn-reveal{ opacity:1; transform:none; }
	.tcn-ticker__track{ animation:none; }
	.tcn-hero{ animation:none; }
	.tcn-main{ animation:none; }
}

/* ==========================================================================
   Premium single-product page — extended sections
   ========================================================================== */

/* Rating row */
.tcn-pd__rating{ display:flex; align-items:center; gap:10px; margin-bottom:20px; }
.tcn-pd__stars{ color:#f5a623; font-size:16px; letter-spacing:1px; }
.tcn-pd__stars--lg{ font-size:26px; display:block; margin-bottom:8px; }
.tcn-pd__rating-count{ font-size:13px; color:var(--tcn-muted); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.tcn-pd__rating-count:hover{ color:var(--tcn-ink); }
.tcn-pd__rating-count--empty{ color:var(--tcn-ink-soft); }

/* Purchase confidence row (replaces/extends old .tcn-pd__trust) */
.tcn-pd__confidence{
	display:grid; grid-template-columns:repeat(2,1fr); gap:12px 20px;
	margin-top:24px; padding-top:20px; border-top:1px solid #f0f0f0;
}
.tcn-pd__confidence-item{
	display:flex; align-items:center; gap:8px;
	font-size:12.5px; font-weight:600; color:var(--tcn-ink-soft);
}
.tcn-pd__confidence-item svg{ flex-shrink:0; opacity:.55; }

/* Buy Now button (printed inside WC's own form via hook) */
.tcn-pd__buy-now-btn{
	width:100%; margin-top:10px;
	border-radius:var(--tcn-radius-pill) !important;
	padding:16px 48px !important;
	font-weight:700 !important; font-size:14px !important;
	letter-spacing:2px !important; text-transform:uppercase !important;
}

/* Gallery zoom affordance */
.tcn-pd__zoom{ cursor:zoom-in; }
.tcn-pd__zoom-btn{
	position:absolute; bottom:16px; right:16px; z-index:2;
	width:40px; height:40px; border-radius:50%;
	background:rgba(255,255,255,.92); border:none; color:#0a0a0a;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.15);
	transition:transform .15s ease, background .15s ease;
}
.tcn-pd__zoom-btn:hover{ transform:scale(1.06); background:#fff; }

/* Lightbox */
.tcn-pd-lightbox{
	position:fixed; inset:0; z-index:400;
	background:rgba(10,10,10,.96);
	display:flex; align-items:center; justify-content:center;
	opacity:0; visibility:hidden;
	transition:opacity .3s ease, visibility .3s ease;
}
.tcn-pd-lightbox.is-open{ opacity:1; visibility:visible; }
.tcn-pd-lightbox img{
	max-width:88vw; max-height:86vh; width:auto; height:auto;
	object-fit:contain; border-radius:8px;
}
.tcn-pd-lightbox__close{
	position:absolute; top:24px; right:24px;
	width:44px; height:44px; border-radius:50%;
	background:rgba(255,255,255,.1); border:none; color:#fff;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer; transition:background .15s ease;
}
.tcn-pd-lightbox__close:hover{ background:rgba(255,255,255,.2); }
.tcn-pd-lightbox__nav{
	position:absolute; top:50%; transform:translateY(-50%);
	width:48px; height:48px; border-radius:50%;
	background:rgba(255,255,255,.1); border:none; color:#fff;
	display:flex; align-items:center; justify-content:center;
	cursor:pointer; transition:background .15s ease;
}
.tcn-pd-lightbox__nav:hover{ background:rgba(255,255,255,.2); }
.tcn-pd-lightbox__nav--prev{ left:24px; }
.tcn-pd-lightbox__nav--next{ right:24px; }

/* 4. Description section */
.tcn-pd-about__grid{ display:grid; grid-template-columns:.9fr 1.6fr; gap:56px; align-items:start; }
.tcn-pd-about__head h2{ font-size:clamp(24px,3vw,32px); text-transform:uppercase; margin:0; }
.tcn-pd-about__body{ font-size:16px; line-height:1.8; color:var(--tcn-ink-soft); }
.tcn-pd-about__body p{ margin:0 0 1.2em; }

/* 5. Features grid */
.tcn-pd-features__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.tcn-pd-feature{ text-align:center; padding:0 12px; }
.tcn-pd-feature__icon{
	width:64px; height:64px; margin:0 auto 20px;
	border-radius:50%; background:#fff;
	display:flex; align-items:center; justify-content:center;
	color:var(--tcn-ink); box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.tcn-pd-feature h3{ font-size:15px; text-transform:uppercase; letter-spacing:.03em; margin:0 0 10px; }
.tcn-pd-feature p{ font-size:14px; color:var(--tcn-muted); line-height:1.7; margin:0; }

/* 6. Specs grid */
.tcn-pd-specs__grid{
	display:grid; grid-template-columns:repeat(2,1fr); gap:0 48px;
	border-top:1px solid var(--tcn-line);
}
.tcn-pd-spec{
	display:flex; justify-content:space-between; gap:16px;
	padding:18px 0; border-bottom:1px solid var(--tcn-line);
}
.tcn-pd-spec__label{ font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--tcn-muted); flex-shrink:0; }
.tcn-pd-spec__value{ font-size:14.5px; color:var(--tcn-ink); text-align:right; }

/* 7. Lifestyle showcase */
.tcn-pd-showcase{
	position:relative; min-height:420px;
	background:#111 center/cover no-repeat;
	display:flex; align-items:flex-end;
	border-radius:var(--tcn-radius-lg);
	overflow:hidden; margin:72px 0;
}
.tcn-pd-showcase__overlay{
	position:relative; z-index:1; width:100%;
	padding:40px; text-align:center;
	background:linear-gradient(0deg, rgba(0,0,0,.68), transparent 70%);
	color:#fff;
}
.tcn-pd-showcase__overlay h2{ font-size:clamp(26px,4vw,42px); text-transform:uppercase; margin:0; }
.tcn-pd-showcase__overlay .tcn-eyebrow{ color:rgba(255,255,255,.75); }

/* 8. Reviews section */
.tcn-pd-reviews__summary{ margin-top:8px; }
.tcn-pd-reviews__summary p{ color:var(--tcn-muted); font-size:14px; margin:0; }
.tcn-pd-reviews__body{ max-width:760px; margin:32px auto 0; }
.tcn-pd-reviews__body .commentlist{ list-style:none; padding:0; margin:0; }
.tcn-pd-reviews__body .comment{
	background:#fff; border-radius:var(--tcn-radius-lg); padding:24px;
	margin-bottom:16px; box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.tcn-pd-reviews__body .comment_container{ display:flex; gap:16px; }
.tcn-pd-reviews__body .avatar{ border-radius:50%; width:44px; height:44px; flex-shrink:0; }
.tcn-pd-reviews__body .comment-text{ flex:1; }
.tcn-pd-reviews__body .woocommerce-review__author{ font-weight:800; font-size:14px; text-transform:uppercase; letter-spacing:.02em; }
.tcn-pd-reviews__body .woocommerce-review__verified{
	display:inline-flex; align-items:center; gap:4px;
	font-size:11px; font-weight:700; color:var(--tcn-accent);
	text-decoration:none; margin-left:8px;
}
.tcn-pd-reviews__body .woocommerce-review__dash{ display:none; }
.tcn-pd-reviews__body .woocommerce-review__published-date{ font-size:12px; color:var(--tcn-muted); display:block; margin-top:2px; }
.tcn-pd-reviews__body .star-rating{ margin:8px 0; color:#f5a623; overflow:hidden; position:relative; height:16px; width:80px; font-size:14px; letter-spacing:2px; }
.tcn-pd-reviews__body .star-rating::before{ content:"★★★★★"; color:var(--tcn-line); }
.tcn-pd-reviews__body .star-rating span{ position:absolute; top:0; left:0; overflow:hidden; white-space:nowrap; }
.tcn-pd-reviews__body .star-rating span::before{ content:"★★★★★"; color:#f5a623; }
.tcn-pd-reviews__body .description p{ font-size:14.5px; color:var(--tcn-ink-soft); line-height:1.7; margin:0; }
.tcn-pd-reviews__body #review_form_wrapper{
	margin-top:32px; background:#fff; border-radius:var(--tcn-radius-lg); padding:28px;
	box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.tcn-pd-reviews__body #reply-title{ font-size:16px; text-transform:uppercase; font-weight:800; margin:0 0 18px; }
.tcn-pd-reviews__body .comment-form-rating select{
	border:2px solid var(--tcn-line); border-radius:14px; padding:12px 14px;
	font-family:var(--tcn-font); font-size:14px; margin-bottom:16px;
}
.tcn-pd-reviews__body .comment-form label{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; display:block; margin-bottom:8px; }
.tcn-pd-reviews__body .comment-form input[type=text],
.tcn-pd-reviews__body .comment-form input[type=email],
.tcn-pd-reviews__body .comment-form textarea{
	width:100%; padding:12px 14px; border:2px solid var(--tcn-line); border-radius:14px;
	font-family:var(--tcn-font); font-size:14px; margin-bottom:16px;
}
.tcn-pd-reviews__body .form-submit input[type=submit]{
	background:var(--tcn-dark); color:#fff; border:none; border-radius:var(--tcn-radius-pill);
	padding:14px 36px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px;
	cursor:pointer;
}

/* 9. FAQ accordion */
.tcn-pd-faq__list{ max-width:820px; margin:0 auto; }
.tcn-pd-faq__item{ border-bottom:1px solid var(--tcn-line); }
.tcn-pd-faq__q{
	width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
	background:none; border:none; cursor:pointer; text-align:left;
	padding:22px 4px; font-size:16px; font-weight:700; color:var(--tcn-ink);
}
.tcn-pd-faq__q svg{ flex-shrink:0; transition:transform .25s ease; color:var(--tcn-muted); }
.tcn-pd-faq__item.is-open .tcn-pd-faq__q svg{ transform:rotate(45deg); }
.tcn-pd-faq__a{
	max-height:0; overflow:hidden;
	transition:max-height .3s ease;
}
.tcn-pd-faq__a p{ padding:0 4px 22px; margin:0; color:var(--tcn-ink-soft); font-size:14.5px; line-height:1.7; }

/* 10. Final CTA */
.tcn-pd-final-cta{
	background:var(--tcn-dark); border-radius:var(--tcn-radius-lg);
	padding:48px; margin-top:24px;
}
.tcn-pd-final-cta__inner{
	display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.tcn-pd-final-cta__info h2{ color:#fff; font-size:clamp(20px,2.6vw,28px); text-transform:uppercase; margin:2px 0 10px; }
.tcn-pd-final-cta__price{ color:var(--tcn-accent); font-size:22px; font-weight:800; margin-bottom:8px; }
.tcn-pd-final-cta__info p{ color:var(--tcn-on-dark-muted); font-size:14px; margin:0; }
.tcn-pd-final-cta__btn{ flex-shrink:0; min-width:220px; }

@media (max-width:900px){
	.tcn-pd-about__grid{ grid-template-columns:1fr; gap:20px; }
	.tcn-pd-features__grid{ grid-template-columns:1fr; gap:36px; }
	.tcn-pd-specs__grid{ grid-template-columns:1fr; }
	.tcn-pd__confidence{ grid-template-columns:1fr; }
	.tcn-pd-final-cta__inner{ flex-direction:column; align-items:flex-start; text-align:left; }
	.tcn-pd-final-cta__btn{ width:100%; }
}

/* ==========================================================================
   DESIGN SYSTEM — typography, containers, and reusable components.
   Built for the Promotion page rebuild but meant for every page: hero
   sections, section headers, CTA blocks, step processes, feature cards,
   and image/text splits all live here so future pages reuse them instead
   of hand-rolling new markup.
   ========================================================================== */

/* -- Containers -----------------------------------------------------------
   .tcn-container stays the 1240px default for standard content. Use the
   wide variant for full-bleed editorial/campaign sections, narrow for
   long-form reading (FAQ answers, legal text, single-column copy). */
.tcn-container--wide{ max-width:var(--tcn-container-wide); margin:0 auto; padding:0 32px; }
.tcn-container--narrow{ max-width:var(--tcn-container-narrow); margin:0 auto; padding:0 24px; }
@media (max-width:600px){
	.tcn-container--wide{ padding:0 20px; }
}

/* -- Typography scale -------------------------------------------------------
   Use these instead of bare h1/h2/h3 whenever a heading needs to match a
   specific rung of the hierarchy regardless of its actual heading level. */
.tcn-h-display{
	font-family:var(--tcn-font-display);
	font-size:var(--tcn-fs-display);
	line-height:.94;
	text-transform:uppercase;
	letter-spacing:-.01em;
	font-weight:400;
	margin:0;
}
.tcn-h-page{
	font-family:var(--tcn-font-display);
	font-size:var(--tcn-fs-h1);
	line-height:1;
	text-transform:uppercase;
	letter-spacing:-.005em;
	font-weight:400;
	margin:0;
}
.tcn-h-section{
	font-family:var(--tcn-font-display);
	font-size:var(--tcn-fs-h2);
	line-height:1.04;
	text-transform:uppercase;
	font-weight:400;
	margin:0;
}
.tcn-h-product{
	font-size:var(--tcn-fs-h3);
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.01em;
	margin:0;
}
.tcn-body-lg{ font-size:1.125rem; line-height:1.7; }
.tcn-support{ font-size:var(--tcn-fs-support); color:var(--tcn-muted); line-height:1.6; }
.tcn-label{
	display:inline-block;
	font-size:var(--tcn-fs-label);
	font-weight:800;
	letter-spacing:.24em;
	text-transform:uppercase;
	color:var(--tcn-muted);
}

/* -- Badge / pill (status, "limited", "new", campaign tags) --------------- */
.tcn-badge{
	display:inline-flex; align-items:center; gap:6px;
	font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
	padding:6px 14px; border-radius:var(--tcn-radius-pill);
	background:var(--tcn-dark); color:#fff;
}
.tcn-badge--accent{ background:var(--tcn-accent); color:#0a0a0a; }
.tcn-badge--outline{ background:transparent; border:1px solid currentColor; }
.tcn-badge--on-dark{ background:rgba(255,255,255,.1); color:#fff; }

/* -- Header polish ----------------------------------------------------------
   Underline sweep on nav links, current-page indicator, and a condensed
   state once the page scrolls (added/removed by main.js). */
.tcn-nav a{ position:relative; }
.tcn-nav a::after{
	content:""; position:absolute; left:0; right:100%; bottom:2px;
	height:2px; background:var(--tcn-accent);
	transition:right .25s cubic-bezier(.4,0,.2,1);
}
.tcn-nav a:hover::after,
.tcn-nav .current-menu-item > a::after,
.tcn-nav .current_page_item > a::after{ right:0; }
.tcn-nav .current-menu-item > a,
.tcn-nav .current_page_item > a{ opacity:1; }
.tcn-header{ transition:box-shadow .3s ease, background .3s ease; }
.tcn-header.is-scrolled{
	background:rgba(17,17,17,.92);
	backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
	box-shadow:0 4px 24px rgba(0,0,0,.2);
}
.tcn-logo{ font-family:var(--tcn-font-display); font-size:19px; letter-spacing:.02em; }

/* -- Campaign hero ----------------------------------------------------------
   Full-bleed hero for landing/campaign pages (Promotion, Collections).
   Distinct from .tcn-hero (the homepage's own hero) so the two can evolve
   independently. */
.tcn-hero-campaign{
	position:relative; overflow:hidden;
	min-height:min(86vh, 780px);
	display:flex; align-items:flex-end;
	background:#0c0c0c center/cover no-repeat;
	color:#fff;
}
.tcn-hero-campaign::before{
	content:""; position:absolute; inset:0;
	background:linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.55) 55%, rgba(0,0,0,.92) 100%);
}
.tcn-hero-campaign__inner{
	position:relative; z-index:1; width:100%;
	padding:var(--tcn-sp-6) 32px var(--tcn-sp-6);
	max-width:var(--tcn-container-wide); margin:0 auto;
}
.tcn-hero-campaign .tcn-label{ color:var(--tcn-accent); }
.tcn-hero-campaign h1{
	font-family:var(--tcn-font-display);
	font-size:var(--tcn-fs-display);
	line-height:.92;
	text-transform:uppercase;
	margin:10px 0 20px;
	max-width:18ch;
}
.tcn-hero-campaign p{
	font-size:clamp(1rem,1vw + .8rem,1.25rem);
	color:rgba(255,255,255,.82);
	max-width:56ch;
	margin:0 0 32px;
}
.tcn-hero-campaign__ctas{ display:flex; gap:14px; flex-wrap:wrap; }
@media (max-width:600px){
	.tcn-hero-campaign{ min-height:78vh; }
	.tcn-hero-campaign__inner{ padding:var(--tcn-sp-5) 20px var(--tcn-sp-5); }
}

/* -- Section header (extends .tcn-section__head with size variants) ------- */
.tcn-section-head{ text-align:center; max-width:760px; margin:0 auto var(--tcn-sp-5); }
.tcn-section-head--left{ text-align:left; margin-left:0; }
.tcn-section-head .tcn-label{ display:block; margin-bottom:12px; }
.tcn-section-head h2{ margin:0; }
.tcn-section-head p{ margin:14px 0 0; color:var(--tcn-muted); font-size:1.0625rem; }
.tcn-section--dark .tcn-section-head p{ color:var(--tcn-on-dark-muted); }

/* -- Step process ------------------------------------------------------------
   Numbered process steps. Horizontal rail on desktop, stacked on mobile. */
.tcn-steps{
	display:grid; grid-template-columns:repeat(4,1fr); gap:0;
	position:relative;
}
.tcn-steps::before{
	content:""; position:absolute; top:34px; left:calc(12.5% + 8px); right:calc(12.5% + 8px);
	height:1px; background:var(--tcn-line);
}
.tcn-section--dark .tcn-steps::before{ background:rgba(255,255,255,.14); }
.tcn-step{ position:relative; padding:0 20px; text-align:center; }
.tcn-step__num{
	position:relative; z-index:1;
	width:68px; height:68px; margin:0 auto 24px;
	border-radius:50%; background:var(--tcn-dark); color:#fff;
	display:flex; align-items:center; justify-content:center;
	font-family:var(--tcn-font-display); font-size:22px;
	box-shadow:0 0 0 6px var(--tcn-bg);
}
.tcn-section--dark .tcn-step__num{ background:var(--tcn-accent); color:#0a0a0a; box-shadow:0 0 0 6px var(--tcn-dark); }
.tcn-step h3{
	font-family:var(--tcn-font-display); font-size:1.15rem; text-transform:uppercase;
	letter-spacing:.01em; margin:0 0 10px;
}
.tcn-step p{ font-size:.9375rem; color:var(--tcn-muted); line-height:1.6; margin:0; }
.tcn-section--dark .tcn-step p{ color:var(--tcn-on-dark-muted); }
@media (max-width:900px){
	.tcn-steps{ grid-template-columns:1fr; gap:var(--tcn-sp-5); }
	.tcn-steps::before{ display:none; }
	.tcn-step{ padding:0; }
}

/* -- Feature / benefit cards (generalized from the product-page pattern) -- */
.tcn-feature-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.tcn-feature-card{
	text-align:center; padding:var(--tcn-sp-4) var(--tcn-sp-3);
	background:var(--tcn-card); border-radius:var(--tcn-radius-lg);
	box-shadow:0 1px 2px rgba(0,0,0,.05);
	transition:transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1);
}
.tcn-feature-card:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.1); }
.tcn-feature-card__media{
	aspect-ratio:4/3; border-radius:var(--tcn-radius); overflow:hidden;
	margin:0 0 20px; background:var(--tcn-bg-alt);
}
.tcn-feature-card__media img{ width:100%; height:100%; object-fit:cover; }
.tcn-feature-card h3{ font-family:var(--tcn-font-display); font-size:1.1rem; text-transform:uppercase; margin:0 0 8px; }
.tcn-feature-card p{ font-size:.9375rem; color:var(--tcn-muted); margin:0; line-height:1.6; }
.tcn-section--dark .tcn-feature-card{ background:#1c1c1c; }
.tcn-section--dark .tcn-feature-card p{ color:var(--tcn-on-dark-muted); }
@media (max-width:820px){
	.tcn-feature-cards{ grid-template-columns:1fr; gap:20px; }
}

/* -- Image / text split ------------------------------------------------------
   50/50 editorial section: big image one side, copy the other. Add
   .tcn-split--reverse to flip which side the image sits on. */
.tcn-split{
	display:grid; grid-template-columns:1.1fr 1fr; gap:var(--tcn-sp-6);
	align-items:center;
}
.tcn-split--reverse{ direction:rtl; }
.tcn-split--reverse > *{ direction:ltr; }
.tcn-split__media{ border-radius:var(--tcn-radius-lg); overflow:hidden; aspect-ratio:4/5; background:var(--tcn-bg-alt); }
.tcn-split__media img{ width:100%; height:100%; object-fit:cover; }
.tcn-split__body h2{ margin:0 0 18px; }
.tcn-split__body p{ font-size:1.0625rem; color:var(--tcn-muted); line-height:1.7; margin:0 0 28px; }
@media (max-width:900px){
	.tcn-split, .tcn-split--reverse{ grid-template-columns:1fr; gap:28px; direction:ltr; }
	.tcn-split__media{ aspect-ratio:16/10; }
}

/* -- CTA block (large closing call-to-action, campaign or page-level) ----- */
.tcn-cta-block{
	position:relative; overflow:hidden;
	background:var(--tcn-dark); color:#fff;
	border-radius:var(--tcn-radius-lg);
	padding:var(--tcn-sp-7) var(--tcn-sp-4);
	text-align:center;
}
.tcn-cta-block--image{ background-size:cover; background-position:center; }
.tcn-cta-block--image::before{
	content:""; position:absolute; inset:0;
	background:linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.82));
}
.tcn-cta-block__inner{ position:relative; z-index:1; max-width:640px; margin:0 auto; }
.tcn-cta-block .tcn-label{ color:var(--tcn-accent); }
.tcn-cta-block h2{
	font-family:var(--tcn-font-display); font-size:var(--tcn-fs-h1);
	text-transform:uppercase; line-height:1; margin:14px 0 18px;
}
.tcn-cta-block p{ color:var(--tcn-on-dark-muted); font-size:1.0625rem; margin:0 0 32px; line-height:1.6; }
@media (max-width:600px){
	.tcn-cta-block{ padding:var(--tcn-sp-6) var(--tcn-sp-3); }
}

/* -- Buttons: outline-on-dark variant used inside cta/hero blocks already
   exists (.tcn-btn--outline-on-dark); add a size modifier for hero CTAs. */
.tcn-btn--lg{ padding:18px 36px; font-size:14px; letter-spacing:.1em; }

/* ==========================================================================
   Print styles
   ========================================================================== */
@media print{
	.tcn-header,.tcn-footer,.tcn-ticker,.tcn-mini-cart,.tcn-mini-cart-overlay,
	.tcn-search-overlay,.tcn-sticky-cart,.tcn-back-to-top,.tcn-mobile-nav,
	.tcn-mobile-nav-backdrop{ display:none !important; }
	body{ background:#fff; color:#000; }
	.tcn-hero{ min-height:auto; background:none !important; color:#000; }
	.tcn-hero::before{ display:none; }
}
