/**
 * cc-shop-extras — front-end styles, in the theme's handoff tokens.
 * Every value is a theme custom property; fallbacks keep it legible if the
 * theme is ever swapped.
 */

/* ---- Announcement strip above the header (free delivery) ---------------- */

.cc-announce {
	width: 100%;
	max-width: var(--cc-container-max, 89.375rem);
	margin-inline: auto;
	padding: 7px var(--cc-container-pad, 16px);
	background-color: var(--cc-color-action, #3e302c); /* the button colour (owner, 2026-09-25) */
	color: var(--cc-color-on-action, #f4f2ee);
	text-align: center;
}

.cc-announce__text {
	margin: 0;
	font-size: var(--cc-text-footnote, 13px);
	line-height: 1.45;
	letter-spacing: 0.02em;
}

/* ---- Size chart (under the size select) --------------------------------- */

.cc-size-chart {
	margin-block-start: var(--cc-space-3, 12px);
	font-size: var(--cc-text-small, 14px);
}

.cc-size-chart > summary {
	cursor: pointer;
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--cc-color-action-hover, #2a201d);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.cc-size-chart > summary::-webkit-details-marker {
	display: none;
}

.cc-size-chart > summary::after {
	content: "+";
}

.cc-size-chart[open] > summary::after {
	content: "\2212";
}

.cc-size-chart__body {
	margin-block-start: var(--cc-space-3, 12px);
	padding: var(--cc-space-4, 16px);
	background-color: var(--cc-color-sand, #f2efea);
	border-radius: var(--cc-radius, 8px);
}

.cc-size-chart__table {
	width: 100%;
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
}

.cc-size-chart__table th,
.cc-size-chart__table td {
	padding: 6px 8px;
	text-align: start;
	border-bottom: 1px solid var(--cc-color-hairline, #e5ddd8);
	font-weight: var(--cc-weight-regular, 400);
}

.cc-size-chart__table thead th {
	font-size: var(--cc-text-caption, 12px);
	color: var(--cc-color-muted, #5a5550);
}

.cc-size-chart__table tbody th {
	font-weight: var(--cc-weight-medium, 500);
}

/* A value never breaks mid-measure ("160–170 cm" stays on one line). */
.cc-size-chart__table td {
	white-space: nowrap;
}

/* The measuring drawing sits under the table, centred, never wider than a
 * phone column. Outline in Ink at low weight, the A/B measures in the action colour. */
.cc-size-chart__diagram {
	display: block;
	width: 100%;
	max-width: 15rem;
	height: auto;
	margin: var(--cc-space-4, 16px) auto 0;
}

.cc-size-chart__tee,
.cc-size-chart__tee-neck {
	fill: var(--cc-color-ground, #faf9f6);
	stroke: var(--cc-color-ink, #302020);
	stroke-width: 1.5;
	stroke-linejoin: round;
	stroke-linecap: round;
}

.cc-size-chart__tee-neck {
	fill: none;
}

.cc-size-chart__measure path {
	fill: none;
	stroke: var(--cc-color-action, #3e302c);
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cc-size-chart__measure .cc-size-chart__guide {
	stroke: var(--cc-color-hairline, #e5ddd8);
	stroke-dasharray: 3 3;
}

.cc-size-chart__letter {
	fill: var(--cc-color-action, #3e302c);
	font-family: var(--cc-font-body, sans-serif);
	font-size: 13px;
	font-weight: var(--cc-weight-medium, 500);
}

.cc-size-chart__note {
	margin-block-start: var(--cc-space-3, 12px);
	font-size: var(--cc-text-footnote, 13px);
	color: var(--cc-color-muted, #5a5550);
}

/* ---- Free-shipping progress -------------------------------------------- */

.cc-freeship {
	margin-block-end: var(--cc-space-5, 20px);
	padding: var(--cc-space-4, 16px);
	background-color: var(--cc-color-mist, #ede6df);
	border-radius: var(--cc-radius, 8px);
}

.cc-freeship-row td {
	padding: 0 0 var(--cc-space-3, 12px);
	border: 0;
}

.cc-freeship-row .cc-freeship {
	margin: 0;
}

.cc-freeship__text {
	font-size: var(--cc-text-small, 14px);
	margin: 0 0 var(--cc-space-2, 8px);
}

.cc-freeship__track {
	height: 6px;
	border-radius: 999px;
	background-color: var(--cc-color-ground, #faf9f6);
	overflow: hidden;
}

.cc-freeship__fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background-color: var(--cc-color-action, #3e302c);
}

/* ---- Checkout: gift wrap and follow-up opt-out ------------------------- */

.cc-gift-wrap,
.cc-followup-optout {
	margin-block-start: var(--cc-space-4, 16px);
}

.cc-gift-wrap__label,
.cc-followup-optout label {
	display: flex !important;
	align-items: flex-start;
	gap: var(--cc-space-2, 8px);
	font-weight: var(--cc-weight-medium, 500) !important;
}

.cc-followup-optout label {
	font-weight: var(--cc-weight-regular, 400) !important;
	color: var(--cc-color-muted, #5a5550);
}

.cc-gift-wrap__hint {
	display: block;
	margin-block-start: 4px;
	margin-inline-start: 1.6rem;
	font-size: var(--cc-text-footnote, 13px);
	color: var(--cc-color-muted, #5a5550);
}

/* ---- Reviews ----------------------------------------------------------- */

.cc-reviews {
	margin-block-start: var(--cc-space-16, 64px);
	max-width: 48rem;
}

.cc-reviews .cc-section-head--split {
	align-items: flex-end;
}

.cc-reviews__summary {
	font-size: var(--cc-text-small, 14px);
	color: var(--cc-color-muted, #5a5550);
}

.cc-reviews__stars {
	color: var(--cc-color-ink, #302020);
	letter-spacing: 2px;
}

.cc-reviews__summary .cc-reviews__stars {
	margin-inline-end: var(--cc-space-2, 8px);
}

.cc-reviews__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-block-start: 1px solid var(--cc-color-hairline, #e5ddd8);
}

.cc-reviews__item {
	padding-block: var(--cc-space-5, 20px);
	border-block-end: 1px solid var(--cc-color-hairline, #e5ddd8);
}

.cc-reviews__text {
	margin-block-start: var(--cc-space-2, 8px);
	font-size: var(--cc-text-body, 15px);
	line-height: var(--cc-leading-body, 1.7);
}

.cc-reviews__meta {
	margin-block-start: var(--cc-space-2, 8px);
	font-size: var(--cc-text-footnote, 13px);
	color: var(--cc-color-muted, #5a5550);
}

.cc-reviews__verified {
	margin-inline-start: var(--cc-space-2, 8px);
	padding: 2px 8px;
	border-radius: 999px;
	background-color: var(--cc-color-mist, #ede6df);
	color: var(--cc-color-ink, #302020);
	font-size: var(--cc-text-caption, 12px);
}

.cc-reviews__empty {
	color: var(--cc-color-muted, #5a5550);
}

.cc-reviews__form-wrap {
	margin-block-start: var(--cc-space-6, 24px);
}

.cc-reviews__form-wrap > summary {
	list-style: none;
	cursor: pointer;
}

.cc-reviews__form-wrap > summary::-webkit-details-marker {
	display: none;
}

.cc-reviews__form-wrap[open] > summary {
	display: none;
}

.cc-reviews__sent {
	padding: var(--cc-space-4, 16px);
	background-color: var(--cc-color-mist, #ede6df);
	border-radius: var(--cc-radius, 8px);
}

.cc-reviews__form {
	display: grid;
	gap: var(--cc-space-4, 16px);
	margin-block-start: var(--cc-space-4, 16px);
	padding: var(--cc-space-6, 24px);
	background-color: var(--cc-color-sand, #f2efea);
	border-radius: var(--cc-radius, 8px);
}

.cc-reviews__rating {
	border: 0;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--cc-space-2, 8px) var(--cc-space-4, 16px);
}

.cc-reviews__rating legend,
.cc-reviews__field label,
.cc-stock-alert__title,
.cc-giftcard-fields__field label {
	display: block;
	margin-block-end: 4px;
	font-size: var(--cc-text-footnote, 13px);
	font-weight: var(--cc-weight-medium, 500);
}

.cc-reviews__rating label {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	cursor: pointer;
}

.cc-reviews__row {
	display: grid;
	gap: var(--cc-space-4, 16px);
}

@media (min-width: 48rem) {
	.cc-reviews__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.cc-reviews__field input,
.cc-reviews__field select,
.cc-reviews__field textarea,
.cc-stock-alert input[type="email"],
.cc-stock-alert select,
.cc-giftcard-fields input,
.cc-giftcard-fields textarea {
	width: 100%;
	min-height: 2.75rem;
	padding: var(--cc-space-2, 8px) var(--cc-space-4, 16px);
	border: 1px solid var(--cc-color-hairline, #e5ddd8);
	border-radius: var(--cc-radius, 8px);
	background-color: var(--cc-color-ground, #faf9f6);
	color: var(--cc-color-ink, #302020);
	font: inherit;
	font-size: var(--cc-text-small, 14px);
}

.cc-reviews__privacy,
.cc-stock-alert__privacy {
	font-size: var(--cc-text-caption, 12px);
	color: var(--cc-color-muted, #5a5550);
}

.cc-reviews__hp,
.cc-stock-alert__hp,
.cc-footer__news-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---- Back-in-stock form ------------------------------------------------ */

.cc-stock-alert {
	margin-block-start: var(--cc-space-5, 20px);
	padding: var(--cc-space-4, 16px);
	background-color: var(--cc-color-mist, #ede6df);
	border-radius: var(--cc-radius, 8px);
}

.cc-stock-alert__row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cc-space-2, 8px);
	margin-block: var(--cc-space-2, 8px);
}

.cc-stock-alert__row > select {
	flex: 0 1 8rem;
}

.cc-stock-alert__row > input[type="email"] {
	flex: 1 1 12rem;
}

.cc-stock-alert__status {
	font-size: var(--cc-text-small, 14px);
}

.cc-stock-alert__status--error {
	color: var(--cc-color-error-text, #9e2f26);
}

/* ---- Instagram row ----------------------------------------------------- */

.cc-home-instagram {
	padding-block-start: var(--cc-space-10, 40px);
}

.cc-home-instagram .cc-section-head--split {
	align-items: flex-end;
	margin-block-end: var(--cc-space-5, 20px);
}

/* Heading: the Instagram glyph before the words, as in the agency mock; the
 * glyph is the link to the profile (owner, 2026-09-27). */
.cc-instagram__heading {
	display: flex;
	align-items: center;
	gap: var(--cc-space-3, 12px);
}

.cc-instagram__icon {
	display: inline-flex;
	color: var(--cc-color-ink, #302020);
	border-radius: var(--cc-radius, 8px);
}

.cc-instagram__icon svg {
	display: block;
}

a.cc-instagram__icon:hover,
a.cc-instagram__icon:focus-visible {
	color: var(--cc-color-action, #3e302c);
}

.cc-instagram__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cc-grid-gap, 14px);
}

@media (min-width: 56.25rem) {
	.cc-instagram__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.cc-instagram__tile {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--cc-radius, 8px);
	background-color: var(--cc-color-sand, #f2efea);
}

.cc-instagram__tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--cc-duration-fast, 0.15s) ease-out;
}

a.cc-instagram__tile:hover img {
	transform: scale(1.02);
}

/* ---- Footer social ----------------------------------------------------- */

.cc-footer__social {
	margin-block-start: var(--cc-space-3, 12px);
}

.cc-footer__social a {
	display: inline-flex;
	align-items: center;
	gap: var(--cc-space-2, 8px);
	min-height: 44px;
	font-size: var(--cc-text-small, 0.875rem);
	color: var(--cc-color-on-action, #f4f2ee);
	text-decoration: none;
}

.cc-footer__social a:hover .cc-footer__social-label,
.cc-footer__social a:focus-visible .cc-footer__social-label {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---- Newsletter confirm / unsubscribe page ----------------------------- */

/* The one button under the line: a GET of an email link only asks, the
 * POST from this button acts (newsletter.php, cc_extras_news_ask()). */
.cc-news-landing__form {
	margin-block: var(--cc-space-5, 20px) 0;
}
