/*
Theme Name: Flatsome Child
Description: Child theme for Flatsome. Carries the Modern Heritage design direction.
Author: UX Themes
Template: flatsome
Version: 3.3
*/

/* ==========================================================================
   Design tokens - Modern Heritage (Forest & Bone)
   ========================================================================== */

:root {
	--cc-bg: #F2F1EC;
	--cc-surface: #FFFFFF;
	--cc-ink: #1A2420;
	--cc-muted: #5F6B64;
	--cc-line: #DCDAD1;
	--cc-accent: #1F4D3A;
	--cc-accent-dark: #143528;
	--cc-accent-soft: #E8EDE9;
	--cc-highlight: #B57A22;
	--cc-radius-sm: 2px;
	--cc-radius-md: 4px;
	--cc-shadow: 0 2px 14px rgba(31, 77, 58, .10);
}

/* ==========================================================================
   Base
   ========================================================================== */

body {
	background-color: var(--cc-bg);
	color: var(--cc-ink);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .heading-font {
	color: var(--cc-ink);
	letter-spacing: -0.02em;
	line-height: 1.08;
}

p { line-height: 1.6; }

a { color: var(--cc-accent); }
a:hover { color: var(--cc-accent-dark); }

/* Comfortable measure for running text inside prose pages */
.cc-prose p,
.cc-prose li { max-width: 65ch; }

/* ==========================================================================
   Buttons - one scale, 2px radius, no shadow
   ========================================================================== */

.cc-btn,
.button,
button,
input[type="submit"],
.woocommerce .button {
	border-radius: var(--cc-radius-sm) !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 600;
}

.cc-btn {
	display: inline-block;
	padding: 14px 26px;
	font-size: 15px;
	line-height: 1.2;
	border-radius: var(--cc-radius-sm);
	text-decoration: none;
	transition: background-color .18s ease, color .18s ease, transform .06s ease;
}

.cc-btn + .cc-btn { margin-left: 12px; }
.cc-btn:active { transform: translateY(1px); }

.cc-btn-primary {
	background: var(--cc-accent);
	color: var(--cc-bg);
	border: 1px solid var(--cc-accent);
}
.cc-btn-primary:hover { background: var(--cc-accent-dark); border-color: var(--cc-accent-dark); color: #fff; }

.cc-btn-ghost {
	background: transparent;
	color: var(--cc-ink);
	border: 1px solid var(--cc-ink);
}
.cc-btn-ghost:hover { background: var(--cc-ink); color: var(--cc-bg); }

.cc-btn-light {
	background: var(--cc-bg);
	color: var(--cc-ink);
	border: 1px solid var(--cc-bg);
}
.cc-btn-light:hover { background: #fff; color: var(--cc-accent); }

/* ==========================================================================
   Top bar
   ========================================================================== */

#top-bar,
.header-top {
	font-size: 13px;
	letter-spacing: .02em;
}

.cc-topbar-line { display: block; }
.cc-topbar-short { display: none; }

/* ==========================================================================
   Header
   ========================================================================== */

.header-main { border-bottom: 1px solid var(--cc-line); }
.header-bottom { border-bottom: 1px solid var(--cc-line); background-color: var(--cc-bg); }

.stuck .header-main,
.stuck #masthead {
	box-shadow: var(--cc-shadow);
	backdrop-filter: saturate(140%) blur(6px);
}

.header-nav a.nav-top-link {
	font-size: 14px;
	letter-spacing: .01em;
}

/* Trust strip in the nav row */
.cc-trust-strip {
	display: inline-flex;
	align-items: center;
	gap: 0;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-muted);
}

.cc-trust-strip > span { padding: 0 16px; border-left: 1px solid var(--cc-line); }
.cc-trust-strip > span:first-child { border-left: 0; padding-left: 0; }
.cc-trust-strip > span:last-child { padding-right: 0; }

/* ==========================================================================
   Hero
   ========================================================================== */

.cc-hero .cc-hero-copy { max-width: 640px; }

.cc-eyebrow {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-muted);
	margin-bottom: 18px;
}

.cc-hero-title {
	font-size: clamp(2.4rem, 4.2vw, 3.9rem);
	line-height: 1.04;
	letter-spacing: -0.03em;
	margin-bottom: 20px;
}

.cc-hero-sub {
	font-size: 1.075rem;
	color: var(--cc-muted);
	max-width: 46ch;
	margin-bottom: 30px;
}

.cc-hero-actions { margin: 0; }

/* Placeholder artwork - swap for real photography */
.cc-art {
	position: relative;
	width: 100%;
	overflow: hidden;
	border-radius: 0;
}

.cc-art svg { display: block; width: 100%; height: 100%; }

.cc-art-hero { min-height: 560px; }
.cc-art-hero svg { position: absolute; inset: 0; }
.cc-art-editorial { min-height: 480px; }
.cc-art-editorial svg { position: absolute; inset: 0; }

/* ==========================================================================
   Promises rule - a hairline-divided band, not a row of cards
   ========================================================================== */

.cc-usp-section { border-top: 1px solid var(--cc-line); border-bottom: 1px solid var(--cc-line); }

.cc-usp {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-usp li {
	margin: 0;
	padding: 22px 18px;
	text-align: center;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-ink);
	border-left: 1px solid var(--cc-line);
}

.cc-usp li:first-child { border-left: 0; }

/* ==========================================================================
   Sections
   ========================================================================== */

.cc-section-title {
	font-size: clamp(1.7rem, 2.6vw, 2.35rem);
	line-height: 1.1;
	margin-bottom: 12px;
}

.cc-section-sub {
	color: var(--cc-muted);
	max-width: 56ch;
	margin-bottom: 0;
}

.cc-editorial-copy p { color: var(--cc-ink); max-width: 58ch; }
.cc-editorial-copy .cc-hero-actions { margin-top: 26px; }

/* Facts list */
.cc-facts { margin: 0; }

.cc-facts dt {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-accent);
	padding-top: 20px;
	border-top: 1px solid var(--cc-line);
	margin-bottom: 6px;
}

.cc-facts dt:first-child { padding-top: 0; border-top: 0; }

.cc-facts dd {
	margin: 0 0 22px;
	color: var(--cc-muted);
	max-width: 62ch;
}

/* Closing band */
.cc-closing { color: var(--cc-bg); }
.cc-closing .cc-closing-title {
	color: var(--cc-bg);
	font-size: clamp(1.7rem, 3vw, 2.6rem);
	max-width: 20ch;
	margin: 0 auto 26px;
}

/* ==========================================================================
   Product tiles - hairline, no shadow
   ========================================================================== */

.product-small.box,
.col-inner .box-vertical,
.product-small .box-image { border-radius: 0; }

.product-small .box-image img { border-radius: var(--cc-radius-md); }

.product-small .box-text {
	padding-top: 14px;
	text-align: left;
}

.product-small .name a,
.product-title a {
	font-weight: 600;
	color: var(--cc-ink);
	letter-spacing: 0;
}

.price ins, .price .amount { color: var(--cc-ink); font-weight: 600; }
.price del .amount { color: var(--cc-muted); }
.price ins .amount { color: var(--cc-highlight); }

.badge-container .badge-inner {
	background: var(--cc-surface) !important;
	color: var(--cc-highlight) !important;
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-sm);
	font-weight: 600;
	letter-spacing: .04em;
}

.category-page-title,
.shop-container .page-title { letter-spacing: -0.02em; }

/* Category tiles */
.category-title { font-weight: 600; letter-spacing: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */

input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], textarea, select {
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-sm);
	background: var(--cc-surface);
	box-shadow: none;
	color: var(--cc-ink);
}

input:focus, textarea:focus, select:focus {
	border-color: var(--cc-accent);
	box-shadow: 0 0 0 2px rgba(31, 77, 58, .22);
	outline: none;
}

::placeholder { color: var(--cc-muted); opacity: 1; }

/* Contact form layout */
.cc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.cc-field label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.cc-req, .cc-opt { font-weight: 400; color: var(--cc-muted); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea, .wpcf7 select { width: 100%; }

.wpcf7 input[type="submit"] {
	background: var(--cc-accent);
	color: var(--cc-bg);
	padding: 14px 28px;
	border: 0;
	font-weight: 600;
}
.wpcf7 input[type="submit"]:hover { background: var(--cc-accent-dark); }

/* Contact meta block */
.cc-contact-meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	padding: 24px 0;
	border-top: 1px solid var(--cc-line);
	border-bottom: 1px solid var(--cc-line);
	margin-bottom: 40px;
}
.cc-contact-meta p { margin: 0; }
.cc-contact-meta strong {
	display: block;
	font-size: 12.5px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-muted);
	margin-bottom: 4px;
}

/* ==========================================================================
   Policy pages
   ========================================================================== */

.page .entry-content > h2 {
	font-size: 1.32rem;
	margin-top: 2.2em;
	margin-bottom: .5em;
	padding-top: 1.1em;
	border-top: 1px solid var(--cc-line);
}

.page .entry-content > h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 1.4em; }

.page .entry-content p,
.page .entry-content li { max-width: 68ch; }

.page .entry-content .lead {
	font-size: 1.14rem;
	color: var(--cc-ink);
	max-width: 60ch;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.footer-widgets { border-top: 0; }

.footer .widget-title,
.footer-widgets .widget-title {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 12.5px;
	font-weight: 600;
	color: #F2F1EC;
	opacity: .72;
}

.footer-widgets a { color: #F2F1EC; opacity: .82; }
.footer-widgets a:hover { opacity: 1; color: #fff; }

.cc-foot-name {
	font-family: Archivo, sans-serif;
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: -0.02em;
	color: #F2F1EC;
	margin-bottom: 8px;
}

.cc-foot-promise { color: #F2F1EC; opacity: .72; max-width: 34ch; margin-bottom: 16px; }
.cc-foot-social a { margin-right: 16px; font-size: 14px; }

/* Trust and payment band */
.cc-trust-band { text-align: center; padding: 6px 0 2px; }

.cc-trust-head {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #F2F1EC;
	opacity: .8;
	margin-bottom: 18px;
}

.cc-lock { width: 15px; height: 15px; flex: 0 0 auto; }

.cc-pay-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-bottom: 18px;
}

.cc-pay { display: inline-flex; width: 46px; }
.cc-pay svg {
	width: 46px;
	height: auto;
	filter: grayscale(100%);
	opacity: .68;
	transition: filter .2s ease, opacity .2s ease;
}
.cc-pay:hover svg { filter: grayscale(0%); opacity: 1; }

.cc-trust-note { font-size: 13.5px; color: #F2F1EC; opacity: .62; margin: 0; }
.cc-trust-note a { color: #F2F1EC; text-decoration: underline; }

/* Absolute footer */
.absolute-footer { font-size: 13px; }
.absolute-footer a { margin-right: 14px; }
.absolute-footer a:last-child { margin-right: 0; }

/* ==========================================================================
   Accessibility
   ========================================================================== */

a:focus-visible,
button:focus-visible,
.cc-btn:focus-visible {
	outline: 2px solid var(--cc-accent);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	* { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ==========================================================================
   Responsive - declared collapses
   ========================================================================== */

@media only screen and (max-width: 849px) {
	.cc-usp { grid-template-columns: repeat(2, 1fr); }
	.cc-usp li:nth-child(3) { border-left: 0; }
	.cc-usp li:nth-child(n+3) { border-top: 1px solid var(--cc-line); }
	.cc-contact-meta { grid-template-columns: 1fr 1fr; }
	.cc-trust-strip { display: none; }
	.cc-art-hero { min-height: 420px; }
	.cc-art-editorial { min-height: 340px; }
}

@media only screen and (max-width: 549px) {
	.cc-topbar-line .cc-topbar-full { display: none; }
	.cc-topbar-short { display: inline; }
	#top-bar, .header-top { font-size: 11.5px; }
	.cc-usp { grid-template-columns: 1fr 1fr; }
	.cc-hero-title { font-size: 2.15rem; }
	.cc-hero-actions .cc-btn { display: block; text-align: center; }
	.cc-hero-actions .cc-btn + .cc-btn { margin-left: 0; margin-top: 10px; }
	.cc-form-grid { grid-template-columns: 1fr; }
	.cc-contact-meta { grid-template-columns: 1fr; }
	.cc-art-hero { min-height: 320px; }
	.cc-pay { width: 40px; }
	.cc-pay svg { width: 40px; }
}

/* ==========================================================================
   SHOP: product card
   No flex on the card. Flatsome's own equalize handles matching heights;
   a flex height chain here collapses .box-image to zero.
   ========================================================================== */

.product-small > .col-inner {
	background: var(--cc-surface);
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.product-small > .col-inner:hover {
	border-color: var(--cc-accent);
	box-shadow: 0 2px 14px rgba(31, 77, 58, .10);
}

.product-small .box { margin-bottom: 0; }

.product-small .box-image {
	border-radius: 0;
	background: var(--cc-bg);
	border-bottom: 1px solid var(--cc-line);
}

.product-small .box-image img {
	border-radius: 0;
	width: 100%;
	height: auto;
	display: block;
}

.product-small .box-text {
	padding: 16px 16px 18px;
	text-align: left;
}

.product-small .name a {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--cc-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}

.product-small .name a:hover { color: var(--cc-accent); }

.product-small .price-wrapper { padding-top: 6px; }
.product-small .price { font-size: 15px; }

.cc-from {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-muted);
	margin-right: 3px;
}

.product-small .star-rating { margin-bottom: 6px; opacity: .85; }
.product-small .star-rating span:before { color: var(--cc-highlight); }

.product-small .add-to-cart-button { margin-top: 12px; }

.product-small .add-to-cart-button a {
	display: block;
	width: 100%;
	text-align: center;
	background: transparent;
	color: var(--cc-accent);
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-sm);
	font-size: 13.5px;
	font-weight: 600;
	padding: 10px 12px;
	margin: 0;
	min-height: 0;
	line-height: 1.3;
}

.product-small .add-to-cart-button a:hover {
	background: var(--cc-accent);
	border-color: var(--cc-accent);
	color: var(--cc-bg);
}

/* Sale badge */
.badge-container { margin: 12px 0 0 12px; }
.badge-container .badge { height: auto; width: auto; }

.badge-container .badge-inner {
	background: var(--cc-surface) !important;
	color: var(--cc-highlight) !important;
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-sm);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 5px 10px;
	line-height: 1;
	min-height: 0;
}

/* Swatches on the card */
.ux-swatches { margin-top: 10px; }
.ux-swatch { border-radius: var(--cc-radius-sm) !important; border-color: var(--cc-line) !important; }
.ux-swatch.selected, .ux-swatch:hover { border-color: var(--cc-accent) !important; }

/* Wishlist / hover tools */
.image-tools .button { border-radius: var(--cc-radius-sm) !important; border-color: var(--cc-line) !important; background: var(--cc-surface) !important; }
.image-tools .button i { color: var(--cc-ink); }

/* Category tiles */
.product-category .box-category.box-badge .box-text,
.product-category .box.hover-dark .box-text {
	background: transparent;
	position: static;
	color: var(--cc-ink);
}

.product-category .box-category .box-text .header-title,
.product-category .box-category .box-text h5 {
	color: var(--cc-ink);
	text-transform: none;
	font-family: Archivo, sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 2px;
}

.product-category .box-category .count {
	color: var(--cc-muted);
	text-transform: none;
	letter-spacing: .02em;
	font-size: 12.5px;
	margin: 0;
	opacity: 1;
}

.product-category .box-image {
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
	background: var(--cc-bg);
}

.product-category .box:hover .box-image { border-color: var(--cc-accent); }
.product-category .box.hover-dark:hover .box-image img { opacity: 1; }
.product-category .box-category .overlay,
.product-category .box-category .bg-fill { display: none; }

/* ==========================================================================
   SHOP: archive chrome
   ========================================================================== */

.shop-page-title.featured-title { display: none; }

.archive .shop-container { padding-top: 34px; }

.woocommerce-breadcrumb,
.breadcrumbs {
	font-size: 12.5px;
	letter-spacing: .04em;
	color: var(--cc-muted);
	text-transform: none;
}

.woocommerce-breadcrumb a, .breadcrumbs a { color: var(--cc-muted); }
.woocommerce-breadcrumb a:hover, .breadcrumbs a:hover { color: var(--cc-accent); }

.shop-container .page-title,
.archive .page-title {
	font-size: clamp(1.9rem, 3vw, 2.6rem);
	letter-spacing: -0.02em;
	margin-bottom: 8px;
}

.category-filtering, .shop-page-title { margin-bottom: 0; }

.woocommerce-ordering select,
.shop-container select {
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-sm);
	background-color: var(--cc-surface);
	font-size: 14px;
	padding: 9px 34px 9px 12px;
	height: auto;
	box-shadow: none;
}

.shop-container .row-divided > .col + .col { border-left: 0; }

/* Pagination */
.page-numbers > li > a, .page-numbers > li > span {
	border-radius: var(--cc-radius-sm);
	border-color: var(--cc-line);
	color: var(--cc-ink);
}
.page-numbers > li > span.current { background: var(--cc-accent); border-color: var(--cc-accent); color: var(--cc-bg); }

/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */

.product-page-sections, .product-footer { background: var(--cc-bg); }

.product-main { padding-top: 34px; padding-bottom: 52px; }

.product-gallery, .product-images { border-radius: var(--cc-radius-md); }

.product-images .woocommerce-product-gallery__image,
.product-gallery-slider .slide {
	background: var(--cc-bg);
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
}

.product-thumbnails a {
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-sm);
	overflow: hidden;
}
.product-thumbnails .is-nav-selected a { border-color: var(--cc-accent); }

.product-title {
	font-size: clamp(1.6rem, 2.4vw, 2.15rem);
	line-height: 1.12;
	letter-spacing: -0.02em;
	margin-bottom: 12px;
}

.product-info .price,
.product-info .price .amount {
	font-size: 1.45rem;
	font-weight: 700;
	color: var(--cc-ink);
	font-family: Archivo, sans-serif;
	letter-spacing: -0.01em;
}

.product-info .price del .amount { color: var(--cc-muted); font-weight: 400; font-size: 1.05rem; }
.product-info .price ins .amount { color: var(--cc-highlight); }

.product-info .woocommerce-product-rating { margin-bottom: 14px; }
.product-info .star-rating span:before { color: var(--cc-highlight); }

/* Variation selectors */
.variations { border-top: 1px solid var(--cc-line); margin-top: 22px; padding-top: 22px; }
.variations td, .variations th { padding: 0 0 14px; border: 0; }

.variations .label label,
.variations th.label {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-muted);
}

.reset_variations {
	font-size: 12.5px;
	color: var(--cc-muted);
	text-decoration: underline;
}

/* Quantity + add to cart */
.quantity input[type="number"],
.quantity .qty {
	border: 1px solid var(--cc-line);
	border-radius: var(--cc-radius-sm);
	background: var(--cc-surface);
	height: 52px;
	box-shadow: none;
}

.quantity .minus, .quantity .plus {
	background: var(--cc-surface);
	border: 1px solid var(--cc-line);
	color: var(--cc-ink);
	border-radius: var(--cc-radius-sm);
	height: 52px;
	width: 44px;
	box-shadow: none;
}
.quantity .minus:hover, .quantity .plus:hover { background: var(--cc-accent-soft); border-color: var(--cc-accent); }

.single_add_to_cart_button {
	background: var(--cc-accent) !important;
	color: var(--cc-bg) !important;
	border: 1px solid var(--cc-accent) !important;
	border-radius: var(--cc-radius-sm) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	height: 52px;
	line-height: 50px;
	padding: 0 34px !important;
	min-width: 220px;
	box-shadow: none !important;
}
.single_add_to_cart_button:hover { background: var(--cc-accent-dark) !important; border-color: var(--cc-accent-dark) !important; }

/* Reassurance strip under the button */
.cc-reassure {
	list-style: none;
	margin: 24px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--cc-line);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 20px;
}

.cc-reassure li {
	margin: 0;
	padding-left: 20px;
	position: relative;
	font-size: 13.5px;
	color: var(--cc-muted);
	line-height: 1.45;
}

.cc-reassure li:before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cc-accent);
	opacity: .55;
}

/* Product meta */
.product-info .product_meta {
	border-top: 1px solid var(--cc-line);
	margin-top: 24px;
	padding-top: 18px;
	font-size: 13px;
	color: var(--cc-muted);
}
.product-info .product_meta a { color: var(--cc-muted); text-decoration: underline; }
.product-info .product_meta a:hover { color: var(--cc-accent); }

/* Social share removed at the template level; belt and braces here */
.product-info .social-icons,
.product-footer .social-icons,
.product-info .share-icons { display: none !important; }

/* ==========================================================================
   SINGLE PRODUCT: accordion panels
   ========================================================================== */

.product-footer .woocommerce-tabs { border-top: 1px solid var(--cc-line); }

.accordion .accordion-item { border-bottom: 1px solid var(--cc-line); }

.accordion-title {
	font-family: Archivo, sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--cc-ink);
	padding: 22px 44px 22px 0;
	border: 0;
	background: transparent;
	transition: color .18s ease;
}

.accordion-title:hover { color: var(--cc-accent); background: transparent; }
.accordion-title.active { color: var(--cc-accent); }

.accordion-title .toggle {
	left: auto;
	right: 0;
	margin: 0;
	top: 50%;
	transform: translateY(-50%);
	color: var(--cc-muted);
	opacity: 1;
}
.accordion-title.active .toggle { color: var(--cc-accent); }

.accordion-inner { padding: 0 0 30px; }

/* Panel content */
.cc-tab-panel { max-width: 68ch; }

.cc-panel-facts { margin: 0; }

.cc-panel-facts dt {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-accent);
	margin-bottom: 5px;
}

.cc-panel-facts dd {
	margin: 0 0 18px;
	color: var(--cc-ink);
	line-height: 1.6;
}

.cc-panel-more {
	margin: 0;
	padding-top: 16px;
	border-top: 1px solid var(--cc-line);
	font-size: 14px;
	color: var(--cc-muted);
}

/* Imported description copy, normalised */
.woocommerce-Tabs-panel--description,
.accordion-inner .woocommerce-Tabs-panel {
	max-width: 78ch;
}

.woocommerce-Tabs-panel--description h2,
.woocommerce-Tabs-panel--description h3 {
	font-size: 1.15rem;
	line-height: 1.25;
	margin: 2em 0 .6em;
	text-align: left;
}

.woocommerce-Tabs-panel--description h3:first-child { margin-top: 0; }

.woocommerce-Tabs-panel--description p {
	text-align: left;
	margin: 0 0 1em;
	color: var(--cc-ink);
}

.woocommerce-Tabs-panel--description img {
	max-width: 100%;
	height: auto;
	border-radius: var(--cc-radius-md);
	margin: 1.4em 0;
	display: block;
}

.woocommerce-Tabs-panel--description strong { color: var(--cc-ink); }

/* Specifications table */
.shop_attributes {
	border: 0;
	max-width: 68ch;
}

.shop_attributes tr { border-bottom: 1px solid var(--cc-line); }
.shop_attributes tr:last-child { border-bottom: 0; }

.shop_attributes th {
	background: transparent;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-muted);
	padding: 15px 20px 15px 0;
	width: 34%;
	border: 0;
}

.shop_attributes td {
	background: transparent;
	padding: 15px 0;
	color: var(--cc-ink);
	font-style: normal;
	border: 0;
}

.shop_attributes td p { margin: 0; }

/* Reviews */
.woocommerce-Reviews .comment-text { border: 1px solid var(--cc-line); border-radius: var(--cc-radius-md); }
.woocommerce-Reviews .star-rating span:before { color: var(--cc-highlight); }

/* Related products heading */
.related h3, .related h5, .product-section-title {
	font-family: Archivo, sans-serif;
	font-size: 1.35rem;
	letter-spacing: -0.02em;
	text-transform: none;
	color: var(--cc-ink);
	margin-bottom: 22px;
}

.product-section-title:after { display: none; }

/* Sticky add to cart bar */
.sticky-add-to-cart {
	background: rgba(242, 241, 236, .96);
	border-top: 1px solid var(--cc-line);
	backdrop-filter: saturate(140%) blur(8px);
}
.sticky-add-to-cart .cart-price { color: var(--cc-ink); }

/* ==========================================================================
   Responsive
   ========================================================================== */

@media only screen and (max-width: 849px) {
	.cc-reassure { grid-template-columns: 1fr; }
	.product-main { padding-top: 20px; }
}

@media only screen and (max-width: 549px) {
	.product-small .box-text { padding: 14px 12px 16px; }
	.product-small .name a { font-size: 14px; }
	.single_add_to_cart_button { min-width: 0; width: 100%; }
	.accordion-title { font-size: 15px; padding: 18px 40px 18px 0; }
	.shop_attributes th { width: 42%; padding-right: 14px; }
}