/* Baseline WooCommerce styling to match the theme */

.woocommerce ul.products,
.woocommerce ul.products li.product{ list-style:none; margin:0; padding:0; }
.woocommerce ul.products{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:28px; }
.woocommerce ul.products li.product a{ text-decoration:none; color:inherit; }
.woocommerce ul.products li.product img{ border-radius:12px; margin-bottom:12px; }
.woocommerce ul.products li.product .price{ color:var(--wpt-accent); font-weight:700; }

.woocommerce div.product .price{ color:var(--wpt-accent); font-size:26px; font-weight:700; }
.woocommerce div.product .woocommerce-product-details__short-description{ color:var(--wpt-muted); }

.woocommerce table.shop_table{
	width:100%;
	border-collapse:collapse;
	margin:20px 0;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
	padding:14px;
	border-bottom:1px solid var(--wpt-border);
	text-align:left;
}

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #payment #place_order,
.woocommerce a.checkout-button{
	background:var(--wpt-accent) !important;
	color:#fff !important;
	border:none !important;
	border-radius:8px !important;
	padding:12px 22px !important;
	font-weight:600 !important;
	cursor:pointer;
	transition:transform .25s ease, box-shadow .25s ease;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #payment #place_order:hover,
.woocommerce a.checkout-button:hover{
	transform:translateY(-2px);
	box-shadow:0 10px 30px -8px var(--wpt-accent-glow);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout select{
	border:1px solid var(--wpt-border);
	border-radius:8px;
	padding:11px 14px;
	width:100%;
	font-family:inherit;
	font-size:15px;
}
.woocommerce form .form-row label{ font-weight:500; margin-bottom:6px; display:inline-block; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
	border-top-color:var(--wpt-accent) !important;
	border-radius:8px;
	padding:16px 20px 16px 52px !important;
}
.woocommerce-message::before,
.woocommerce-info::before{ color:var(--wpt-accent) !important; }

.woocommerce-billing-fields,
.woocommerce-additional-fields,
#order_review{
	background:#f5f8ff;
	border-radius:12px;
	padding:24px;
	margin-bottom:24px;
}

.select2-container .select2-selection--single{
	height:44px !important;
	border:1px solid var(--wpt-border) !important;
	border-radius:8px !important;
	padding:6px 4px;
}

.wpt-danger-zone{
	margin-top:32px;
	padding:20px 24px;
	border:1px solid #f3c9c9;
	background:#fff6f6;
	border-radius:10px;
}
.wpt-danger-zone h3{ color:#c53030; font-size:16px; margin:0 0 8px; }
.wpt-danger-zone p{ color:var(--wpt-muted); font-size:14px; margin:0 0 16px; }
.wpt-btn-danger{
	background:#e5484d;
	color:#fff;
	border:none;
}
.wpt-btn-danger:hover{
	background:#c53030;
	transform:translateY(-2px);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; padding:0; display:flex; flex-direction:column; gap:8px; }
.woocommerce-account .woocommerce-MyAccount-navigation a{
	display:block;
	padding:10px 14px;
	border-radius:8px;
	text-decoration:none;
	color:var(--wpt-ink);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
	background:var(--wpt-accent);
	color:#fff;
}
.woocommerce-account .woocommerce-MyAccount-content{ margin-top:24px; }

/* ---------- Login / Sign up toggle ---------- */
.wpt-auth-intro{
	max-width:460px;
	margin:0 auto 24px;
	text-align:center;
}
.wpt-auth-intro .wpt-logo-mark{
	width:52px;
	height:52px;
	margin:0 auto 18px;
	border-radius:14px;
	background:linear-gradient(135deg,#60a5fa,#1d4ed8);
	display:flex;
	align-items:center;
	justify-content:center;
	font-family:'Sora',Arial,sans-serif;
	font-weight:800;
	font-size:22px;
	color:#fff;
}
.wpt-auth-intro h1{ font-size:26px; margin-bottom:.3em; }
.wpt-auth-intro p{ font-size:15px; margin:0; }

/* explicit colors so this card is never at the mercy of an ambient dark page —
   this is a light card regardless of what page it sits on */
.wpt-auth,
.wpt-auth *:not(.wpt-btn):not(.wpt-btn *){ color:#1d1e26; }
.wpt-auth .wpt-btn{ color:#fff; }
.wpt-auth{
	max-width:460px;
	margin:0 auto;
	background:#fff;
	border:1px solid var(--wpt-border);
	border-radius:16px;
	padding:32px;
	box-shadow:0 25px 60px -20px rgba(37,99,235,.35), 0 0 0 1px rgba(255,255,255,.06);
}
.wpt-auth a{ color:var(--wpt-accent); }
.wpt-auth .required{ color:#e5484d; }
.wpt-auth-tabs{
	display:flex;
	background:#eaf1ff;
	border-radius:10px;
	padding:4px;
	margin-bottom:28px;
}
.wpt-auth-tab{
	flex:1;
	padding:11px;
	border:none;
	background:none;
	border-radius:8px;
	font-weight:600;
	font-size:15px;
	cursor:pointer;
	color:var(--wpt-muted);
	transition:all .3s cubic-bezier(.4,0,.2,1);
	font-family:inherit;
}
.wpt-auth-tab.is-active{
	background:#fff;
	color:var(--wpt-ink);
	box-shadow:0 4px 14px -4px rgba(18,19,26,.2);
}
.wpt-auth-viewport{
	overflow:hidden;
	position:relative;
	transition:height .5s cubic-bezier(.4,0,.2,1);
}
.wpt-auth-track{
	display:flex;
	width:200%;
	transition:transform .5s cubic-bezier(.4,0,.2,1);
	align-items:flex-start;
}
.wpt-auth-track.show-register{ transform:translateX(-50%); }
.wpt-auth-panel{
	width:50%;
	flex:none;
	min-width:0;
	padding:2px;
}
.wpt-auth-panel h2{ display:none; }
.wpt-auth .form-row{ margin-bottom:16px; }

.wpt-auth-trust{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	gap:10px 14px;
	margin-bottom:20px;
	padding-bottom:16px;
	border-bottom:1px solid var(--wpt-border);
}
.wpt-auth-trust span{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:12.5px;
	font-weight:600;
	color:var(--wpt-muted);
}
.wpt-auth-trust svg{ flex:none; color:var(--wpt-accent) !important; }

.wpt-optional{ font-weight:400; color:var(--wpt-muted); font-size:13px; }

.wpt-field-hint{
	display:block;
	margin-top:6px;
	font-size:12.5px;
	line-height:1.4;
	color:var(--wpt-muted);
}

.wpt-auth-divider{
	height:1px;
	background:var(--wpt-border);
	margin:4px 0 20px;
}

/* the privacy-policy consent line (from WooCommerce's own privacy settings)
   reads as fine print, not a form field */
.wpt-auth .woocommerce-privacy-policy-text{
	margin:-6px 0 18px;
}
.wpt-auth .woocommerce-privacy-policy-text p{
	font-size:12.5px;
	line-height:1.5;
	color:var(--wpt-muted);
	margin:0;
}

.wpt-auth-back{ text-align:center; margin:4px 0 0; }
.wpt-auth-back a{ font-size:13.5px; font-weight:600; text-decoration:none; }
.wpt-auth-back a:hover{ text-decoration:underline; }

.wpt-auth-notice p{ text-align:center; font-size:14.5px; line-height:1.6; margin:0 0 20px; }
.wpt-auth-notice .wpt-auth-back{ margin:0; }

/* ---------- Login / Sign up page shell — ambient background + benefits panel ---------- */
/* the gradient/map decoration is pinned to the viewport (position:fixed)
   rather than sized as a percentage of an ancestor box — this page nests the
   login form several wrapper divs deep (WooCommerce's own .woocommerce
   wrapper among them), and anchoring to any one of those left a visible
   hard-edged rectangle of background where that wrapper's box ended instead
   of one seamless full-page backdrop */
body.woocommerce-account:not(.logged-in) main.wpt-content-page{
	position:relative;
}
body.woocommerce-account:not(.logged-in) main.wpt-content-page::before{
	content:"";
	position:fixed;
	inset:0;
	background:
		radial-gradient(circle at 20% 20%, rgba(37,99,235,.35), transparent 45%),
		radial-gradient(circle at 80% 30%, rgba(126,91,255,.25), transparent 40%),
		radial-gradient(circle at 50% 90%, rgba(37,99,235,.2), transparent 45%);
	animation:wptDrift 16s ease-in-out infinite alternate;
	pointer-events:none;
	z-index:0;
}
body.woocommerce-account:not(.logged-in) .wpt-page{
	min-height:calc(100vh - 110px);
	display:flex;
	align-items:center;
}
.wpt-auth-map{
	position:fixed;
	inset:0;
	width:100vw;
	height:100vh;
	z-index:0;
	/* fade out before the benefits panel's text so its accent nodes never
	   land on/behind the heading and bullets — decoration stays near the card */
	-webkit-mask-image:linear-gradient(100deg, #000 0%, #000 42%, transparent 66%);
	mask-image:linear-gradient(100deg, #000 0%, #000 42%, transparent 66%);
}
@media (max-width:979px){
	.wpt-auth-map{ -webkit-mask-image:none; mask-image:none; }
}
.wpt-auth-layout{
	position:relative;
	z-index:1;
	width:100%;
	display:flex;
	align-items:flex-start;
	justify-content:center;
	flex-wrap:wrap;
	gap:64px;
	max-width:1080px;
	margin:0 auto;
	padding:48px 0;
}
.wpt-auth-main{ flex:0 1 460px; width:100%; max-width:460px; }
.wpt-auth-side{
	display:none;
	flex:1 1 380px;
	max-width:420px;
	/* line the panel's content up with the card's top edge, not the
	   intro branding above it (.wpt-auth-intro + its bottom margin) */
	margin-top:157px;
}
@media (min-width:980px){
	.wpt-auth-side{ display:block; }
}
.wpt-auth-side .wpt-eyebrow{ background:rgba(255,255,255,.12); color:#fff; }
.wpt-auth-side h2{ color:#fff; font-size:30px; line-height:1.2; margin-bottom:.5em; }
.wpt-auth-side .wpt-check-list{ margin-top:28px; }
.wpt-auth-side .wpt-check-list li{
	align-items:flex-start;
	gap:14px;
	padding:10px 0;
	color:rgba(255,255,255,.82);
	font-size:15.5px;
	line-height:1.5;
}
.wpt-auth-side .wpt-check-list svg{ color:var(--wpt-accent-light) !important; margin-top:2px; }

.wpt-input-icon{ position:relative; display:block; }
.wpt-input-icon svg{
	position:absolute;
	left:14px;
	top:50%;
	transform:translateY(-50%);
	color:var(--wpt-muted) !important;
	pointer-events:none;
	z-index:1;
}
.wpt-input-icon input{ padding-left:42px !important; }

@media (max-width:500px){
	.wpt-auth{ padding:22px; border-radius:12px; }
}

/* ---------- Logged-in My Account dashboard — dark, matches the rest of the site ---------- */
body.woocommerce-account.logged-in .wpt-dash-intro{
	max-width:640px;
	margin:0 0 32px;
}
body.woocommerce-account.logged-in .wpt-dash-intro .wpt-logo-mark{
	width:44px;
	height:44px;
	border-radius:12px;
	background:linear-gradient(135deg,#60a5fa,#1d4ed8);
	display:flex;
	align-items:center;
	justify-content:center;
	font-family:'Sora',Arial,sans-serif;
	font-weight:800;
	font-size:18px;
	color:#fff;
	margin-bottom:16px;
}
body.woocommerce-account.logged-in .wpt-dash-intro h1{ font-size:28px; margin-bottom:.25em; color:#fff; }
body.woocommerce-account.logged-in .wpt-dash-intro p{ color:rgba(255,255,255,.65); font-size:15px; margin:0; }

body.woocommerce-account.logged-in .wpt-page > .woocommerce{
	display:flex;
	align-items:flex-start;
	gap:28px;
}
/* WooCommerce core's own stylesheet floats these two columns (float:left/right
   with percentage widths) — neutralize that so flexbox actually governs layout */
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content{
	float:none;
	width:auto;
	margin:0;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation{
	flex:0 0 230px;
	background:rgba(255,255,255,.04);
	border:1px solid rgba(255,255,255,.14);
	border-radius:16px;
	padding:14px;
	position:sticky;
	top:130px;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul{ gap:2px; }
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a{
	color:rgba(255,255,255,.68);
	font-size:14.5px;
	font-weight:500;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:hover{
	background:rgba(255,255,255,.08);
	color:#fff;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a{
	background:var(--wpt-accent);
	color:#fff;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{
	margin-top:8px;
	padding-top:10px;
	border-top:1px solid rgba(255,255,255,.1);
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content{
	flex:1 1 auto;
	background:rgba(255,255,255,.04);
	border:1px solid rgba(255,255,255,.14);
	border-radius:16px;
	padding:32px;
	min-width:0;
	color:rgba(255,255,255,.8);
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content h1,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content h2,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content h3{ color:#fff; }
body.woocommerce-account.logged-in .woocommerce-MyAccount-content > h2:first-child,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content > h3:first-child{ margin-top:0; }
body.woocommerce-account.logged-in .woocommerce-MyAccount-content a:not(.button){ color:var(--wpt-accent-light); }
body.woocommerce-account.logged-in .woocommerce-MyAccount-content strong{ color:#fff; }
/* the danger zone is a deliberately light/red alert card even inside the dark
   dashboard content panel — reassert its own colors over the generic overrides above */
body.woocommerce-account.logged-in .wpt-danger-zone h3{ color:#c53030; }
body.woocommerce-account.logged-in .wpt-danger-zone p{ color:var(--wpt-muted); }

body.woocommerce-account.logged-in .woocommerce table.shop_table{
	border:1px solid rgba(255,255,255,.12);
	border-radius:10px;
	overflow:hidden;
}
body.woocommerce-account.logged-in .woocommerce table.shop_table th{
	background:rgba(255,255,255,.05);
	color:#fff;
	font-weight:600;
	font-size:12.5px;
	text-transform:uppercase;
	letter-spacing:.03em;
}
body.woocommerce-account.logged-in .woocommerce table.shop_table th,
body.woocommerce-account.logged-in .woocommerce table.shop_table td{
	border-bottom:1px solid rgba(255,255,255,.1);
	color:rgba(255,255,255,.8);
}
body.woocommerce-account.logged-in .woocommerce table.shop_table tr:last-child td{ border-bottom:none; }

body.woocommerce-account.logged-in .woocommerce form .form-row label{ color:rgba(255,255,255,.85); }
body.woocommerce-account.logged-in .woocommerce-Address-title{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}

@media (max-width:820px){
	body.woocommerce-account.logged-in .wpt-page > .woocommerce{ flex-direction:column; }
	body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation{ position:static; flex-basis:auto; width:100%; }
	body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul{ flex-direction:row; flex-wrap:wrap; }
	body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{
		margin-top:0;
		padding-top:0;
		border-top:none;
	}
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content{ padding:22px; }
}

/* LMFWC's license tables don't set the data-title attribute WooCommerce's
   responsive "stacked" mobile view needs, which leaves blank labels — so on
   narrow screens scroll these tables horizontally instead of stacking them */
@media (max-width:640px){
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive{
		display:block;
		overflow-x:auto;
		overflow-y:hidden;
		-webkit-overflow-scrolling:touch;
	}
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive thead{ display:table-header-group; }
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive tbody{ display:table-row-group; }
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive tr{ display:table-row; }
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive th,
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive td{
		display:table-cell;
		text-align:left !important;
		white-space:nowrap;
	}
	body.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive td::before{ content:none !important; }
}
