﻿/*
 * GREEN BADGER — mobile home art direction.
 *
 * One layer, loaded last, holding the phone composition for the composed
 * front page. Everything is inside `@media (max-width: 782px)`: the 1440
 * design is locked and nothing here may reach it.
 *
 * Sections whose earlier mobile CSS was explicitly filed as provisional are
 * REPLACED from here rather than patched:
 *   - CONTROL THE HUNGER  (sections.css "graceful degradation only" block)
 *   - 目的から選ぶ index-plate (sections.css BUILDER-B handoff block)
 * The rest is composition on top of rules that are already correct.
 */

@media (max-width: 782px) {

	body.dm-pack-green-badger {
		--gb-m-gutter: 20px;
		--gb-m-cream: #f4f1e8;
		--gb-m-gold: #b89a5b;
		--gb-m-black: #0b0b0a;
	}

	/* hero-lion.webp is a fully composed poster (baked-in "GREEN BADGER /
	   NATURAL. LEGAL. POWERFUL." wordmark on its left third). A centered
	   object-position crops that wordmark into illegible fragments at
	   phone aspect ratios, doubling up on the live overlay title. Shift
	   the crop right so only the lion + product art (no baked text) shows. */
	body.dm-pack-green-badger .dm-native-slider__image {
		--dm-slider-image-position: var(--dm-slider-image-position-mobile, 78% 50%);
	}

	/* ==========================================================
	 * 02 — CHOOSE YOUR INSTINCT
	 *
	 * The "empty void" between the intro copy and the card was not
	 * spacing: `.dm-coverflow__card` centres itself with top:50% plus
	 * margin-top:-h/2, and the site-side `body.home article {margin:0
	 * !important}` reset (already documented at the width/margin-left
	 * repair in coverflow-showcase.css:330) also wipes that margin-top.
	 * The card therefore hung a full half-height (146px) below the stage
	 * centre, leaving dead space above it and pushing its bottom through
	 * the arrows and the title below. This restores the one property that
	 * repair missed. Scoped away from stage-fixed mode, where margin-top:0
	 * is the intended bottom anchor.
	 * ========================================================== */
	body.dm-pack-green-badger .dm-coverflow:not([data-stage-fixed="true"]) .dm-coverflow__viewport .dm-coverflow__card {
		margin-top: calc(var(--cfs-card-h) / -2) !important;
	}

	/* The stage sits close to the copy that introduces it. */
	body.dm-pack-green-badger .dm-coverflow__intro {
		margin-bottom: 8px;
		padding-inline: 0;
	}

	/* Was a 120x14 filled ellipse — a blob, not a rule. A gold hairline is
	   the accent vocabulary the rest of the page uses. */
	body.dm-pack-green-badger .dm-coverflow__intro-rule {
		display: block;
		width: 44px;
		height: 1px;
		margin: 20px auto 0;
		border-radius: 0;
		background: var(--gb-m-gold);
	}

	/* --------------------------------------------------------------
	 * CHOOSE mobile composition (2026-08-23). The stage keeps the 1440
	 * recession language (falloffs and angle come from the instance
	 * config; the phone geometry lives in THEATER_RESPONSIVE,
	 * coverflow-showcase.js) — this block is the meta column and the
	 * controls: hairline → eyebrow + counter → serif name → price/CTA
	 * → gold progress hairline. Swipe + side-card tap are the
	 * navigation; the stamped arrow buttons go.
	 * -------------------------------------------------------------- */

	/* The generic 56px rotate/scale headroom reads as a void between the
	   art and its caption at this card size. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__viewport {
		height: calc(var(--cfs-card-h) + 24px);
	}

	/* Same chrome removal the 1440 stage already made: the artwork IS the
	   card. Hairline outline marks the active one. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__card {
		background: transparent;
		border: 0;
		box-shadow: none;
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__card[aria-hidden="false"] {
		outline: 1px solid rgba(244, 241, 232, .14);
		outline-offset: -1px;
	}

	/* The gold radial "pool of light" is retired on desktop; same here. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"]::before {
		display: none;
	}

	/* Anchor for the absolutely-placed counter below. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__stage-group {
		position: relative;
	}

	/* Meta column: docked under the card, exactly the card's width, every
	   line registered on the card's own left edge. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content {
		width: var(--cfs-card-w);
		/* vw, not %: the stage-group's own inline padding would shrink a
		   %-based cap below the card's width and break the shared left edge */
		max-width: calc(100vw - 2 * var(--gb-m-gutter));
		margin: 14px auto 0;
		padding: 14px 0 22px;
		border-top: 1px solid rgba(244, 241, 232, .16);
		text-align: left;
		position: relative;
	}

	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-item {
		display: block;
		width: 100%;
		text-align: left;
		/* the pattern's own <=860 rule centres via justify-items, which
		   Chrome now honours on BLOCK containers too — normal restores
		   full-width block children */
		justify-items: normal;
		transition: opacity .18s ease, transform .18s ease;
	}
	/* display:block above outweighs the pattern's own `[hidden]` rule —
	   restate it at this block's specificity or every card's meta renders. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-item[hidden] {
		display: none;
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-item.is-leaving {
		opacity: 0;
		transform: translateY(-6px);
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-item.is-entering {
		animation: gb-m-choose-caption-enter .32s ease-out;
	}

	/* Eyebrow row: gold potency label left; the counter (positioned onto
	   this same line below) right. Counter clearance via padding. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-eyebrow {
		margin: 0;
		padding-right: 76px;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: .18em;
		line-height: 1.6;
		color: var(--gb-m-gold);
	}

	/* The name is the instinct: promoted serif, roman, no shouting caps. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-item h3 {
		margin: 8px 0 0;
		font-family: var(--dm-font-display, inherit);
		font-size: var(--cfs-active-title-size, 28px);
		font-weight: 500;
		letter-spacing: normal;
		line-height: 1.1;
		text-transform: none;
		color: var(--gb-m-cream);
	}

	/* Price left, CTA right, one row. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-foot {
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
		gap: 16px;
		margin-top: 6px;
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-meta {
		padding-bottom: 8px; /* optically level with the CTA's underline */
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-price {
		font-size: 17px;
		font-weight: 500;
		letter-spacing: .04em;
		color: var(--gb-m-cream);
	}

	/* CTA: the same flat text-link family the HERO CTA uses on the phone
	   (see the .dm-native-slider__cta--solid block below) — scoped to this
	   section's own selector; the shared paper-button base is untouched. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-cta {
		display: inline-flex;
		align-items: flex-end;
		justify-content: flex-start;
		min-width: 0;
		min-height: 44px;
		padding: 0 0 8px;
		border: 0;
		border-bottom: 1px solid rgba(244, 241, 232, .5);
		border-radius: 0;
		background: transparent;
		color: var(--gb-m-cream);
		clip-path: none;
		box-shadow: none;
		font-size: 14px;
		font-weight: 600;
		letter-spacing: .16em;
		transition: color .22s ease, border-color .22s ease;
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-cta::before,
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-cta::after {
		display: none;
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-cta:hover,
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-cta:focus-visible,
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-cta:active {
		transform: none !important;
		filter: none;
		border-bottom-color: var(--gb-m-cream);
	}

	/* Progress hairline: faint track + gold fill. --cfs-progress is written
	   by the engine every frame, so the fill tracks the swipe itself; the
	   width transition smooths the release settle only (killed while
	   dragging, so the drag stays 1:1). */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 1px;
		background: rgba(244, 241, 232, .14);
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		height: 1px;
		width: calc(var(--cfs-progress, 0) * 100%);
		background: var(--gb-m-gold);
		transition: width .42s cubic-bezier(.22, 1, .36, 1);
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"]:has(.is-dragging) .dm-coverflow__active-content::after {
		transition: none;
	}

	/* Controls: the arrow buttons stamped over the artwork go — the
	   progress hairline + swipe (and tapping a side card) are the
	   affordance. The counter stays, docked to the eyebrow row's right. */
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__arrow {
		display: none !important;
	}
	body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__arrows {
		position: absolute;
		top: calc(var(--cfs-card-h) + 24px + 14px + 7px);
		left: 50%;
		width: var(--cfs-card-w);
		max-width: calc(100vw - 2 * var(--gb-m-gutter));
		margin: 0;
		transform: translateX(-50%);
		display: flex;
		align-items: flex-start;
		justify-content: flex-end;
		pointer-events: none;
		z-index: 5;
	}

	body.dm-pack-green-badger .dm-coverflow__position--stage {
		font-family: var(--dm-font-body, inherit);
		font-size: 11px;
		font-weight: 500;
		color: rgba(244, 241, 232, .55);
		letter-spacing: .22em;
		line-height: 1.6;
	}

	@keyframes gb-m-choose-caption-enter {
		from { opacity: 0; transform: translateY(6px); }
		to { opacity: 1; transform: translateY(0); }
	}

	/* Reduced motion: no drag-linked recession theatre — the neighbours
	   drop out entirely and card changes read as a plain swap (the engine
	   already collapses its transition to 1ms and its inertia to 0). */
	@media (prefers-reduced-motion: reduce) {
		body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__card[aria-hidden="true"] {
			opacity: 0 !important;
		}
		body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content-item,
		body.dm-pack-green-badger .dm-coverflow[data-content-layout="theater"] .dm-coverflow__active-content::after {
			transition: none;
			animation: none;
		}
	}

	/* ==========================================================
	 * 03 — NEW DROP (2026-08-23 mobile pass)
	 *
	 * Swipe/snap mechanics untouched (sections.css owns the rail).
	 * Compact header row: serif title left, flat VIEW ALL text-link
	 * right — the same flat CTA family as HERO/CHOOSE. The torn-paper
	 * button below the rail is that same .dm-section__action element,
	 * re-seated into the header row via flex order, so no shared
	 * legacy button base is modified.
	 * ========================================================== */
	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__items--card-classic {
		padding-bottom: 4px;
	}

	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__header {
		margin-bottom: 20px;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] {
		padding-top: 60px !important;
		padding-bottom: 64px !important;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__inner {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		justify-content: space-between;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__header {
		order: 1;
		margin-bottom: 28px;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__title {
		font-size: 48px;
		line-height: 1;
		color: var(--gb-m-cream);
	}

	/* VIEW ALL: flat text-link, same family as the HERO/CHOOSE mobile
	   CTAs; the invisible 44px touch target hangs below the baseline. */
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__actions {
		order: 2;
		margin: 0 var(--gb-m-gutter) 28px 0;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__action {
		display: inline-flex;
		align-items: flex-end;
		justify-content: flex-start;
		min-width: 0;
		min-height: 44px;
		margin: 0;
		padding: 0 0 6px;
		border: 0;
		border-bottom: 1px solid rgba(244, 241, 232, .5);
		border-radius: 0;
		background: transparent;
		color: var(--gb-m-cream);
		clip-path: none;
		box-shadow: none;
		font-size: 13px;
		font-weight: 600;
		letter-spacing: .16em;
		transition: color .22s ease, border-color .22s ease;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__action::before,
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__action::after {
		display: none;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__action:hover,
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__action:focus-visible,
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__action:active {
		transform: none !important;
		filter: none;
		box-shadow: none;
		border-bottom-color: var(--gb-m-cream);
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__body {
		order: 3;
		width: 100%;
		padding-bottom: 22px;
	}

	/* The mobile price arm paints every .woocommerce-Price-amount with
	   --gb-price-color !important; this rail uses the cream treatment. */
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__item-price .woocommerce-Price-amount {
		color: var(--gb-m-cream) !important;
	}

	/* Drag vs tap: no text selection, callout, or ghost-image drag
	   while swiping the rail. */
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__items,
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__item,
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__item * {
		-webkit-user-select: none;
		user-select: none;
		-webkit-touch-callout: none;
		-webkit-tap-highlight-color: transparent;
	}

	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.new_drop"] .dm-section__item img {
		-webkit-user-drag: none;
		user-drag: none;
	}

	/* SHOP PREVIEW: hide the "view all products" CTA on mobile only. */
	body.dm-pack-green-badger .dm-section[data-dm-section="section.gb.shop_preview"] .dm-section__actions {
		display: none;
	}

	/* ==========================================================
	 * 04 — CONTROL THE HUNGER  (REPLACES the <=1024px fallback)
	 *
	 * One compact editorial poster: headline and JP copy registered on
	 * the left gutter (the parent CTA band centres inline-blocks —
	 * text-align:left on the field is what defeats that), then the
	 * badger as an oversized crop anchored lower-right and running off
	 * the right edge, sliced at the bottom by the gold caption rule.
	 * The torn-paper button is gone; its anchor is restyled into the
	 * flat text-link family HERO/CHOOSE use and pulled up onto the
	 * caption row: CBX · 80 left, CBX COLLECTION → right.
	 *
	 * `display:contents` on __body is what lets the CTA move past the
	 * artwork without touching the renderer: title / subtitle / actions
	 * become direct children of __field alongside __art, so `order`
	 * can sequence all four. Each then carries the gutter itself.
	 * ========================================================== */
	body.dm-pack-green-badger .dm-section--image-banner:has(.dm-cbx-plate) {
		overflow-x: hidden;
	}

	/* The generic mobile media band re-applies `padding: 0 24px` +
	   flex-centering to every .dm-section__media; this plate composes
	   its own gutters, so both go. */
	body.dm-pack-green-badger .dm-section--image-banner .dm-cbx-plate {
		overflow-x: hidden;
		display: block;
		padding: 0;
	}

	body.dm-pack-green-badger .dm-cbx-plate__eyebrow {
		left: var(--gb-m-gutter);
		height: 56px;
	}

	/* The plate paints its own 56px black band + gold hairline at each end
	   as a background gradient, so the field's padding has to clear 56px
	   before any content of its own begins. */
	body.dm-pack-green-badger .dm-cbx-plate__field {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 88px 0 84px;
		text-align: left;
	}

	body.dm-pack-green-badger .dm-cbx-plate__body {
		display: contents;
		/* the entrance fade belongs to a box; there is no box here now */
		animation: none;
	}

	body.dm-pack-green-badger .dm-cbx-plate__title {
		order: 1;
		margin-inline: var(--gb-m-gutter);
		font-size: clamp(46px, 13.5vw, 62px);
		line-height: .9;
	}

	body.dm-pack-green-badger .dm-cbx-plate__subtitle {
		order: 2;
		margin: 14px var(--gb-m-gutter) 0;
		max-width: 30ch;
		font-size: 15px;
		line-height: 1.75;
	}

	/* The portrait: an oversized crop. Wider than the plate, anchored so
	   the head mass sits lower-right, fur running off the right edge; a
	   fixed height + cover crops the long mane so the caption rule
	   slices straight through the artwork instead of trailing it. */
	body.dm-pack-green-badger .dm-cbx-plate__art {
		order: 3;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		width: 100%;
		height: auto;
		padding: 20px 0 0;
	}

	body.dm-pack-green-badger .dm-cbx-plate__art img {
		width: calc(100% + 110px);
		max-width: none;
		height: 420px;
		max-height: none;
		margin: 0 -80px 0 -30px;
		object-fit: cover;
		object-position: 50% 0;
	}

	body.dm-pack-green-badger .dm-cbx-plate__mark {
		position: static;
		display: block;
		width: calc(100% - 2 * var(--gb-m-gutter));
		margin: 0 var(--gb-m-gutter);
		padding: 12px 0 0;
		border-top: 1px solid rgba(184, 154, 91, .55);
		text-align: left;
		white-space: nowrap;
	}

	/* Flat CTA, same family as the HERO / CHOOSE text links: no paper,
	   no clip, no shadow; ink on cream here. Lifted onto the caption
	   row — the 44px box is the invisible touch target, bottom-anchored
	   so its underline sits level with the CBX · 80 line. */
	body.dm-pack-green-badger .dm-cbx-plate__body .dm-section__actions {
		order: 4;
		align-self: flex-end;
		margin: -44px var(--gb-m-gutter) 0 0;
		text-align: right;
	}

	body.dm-pack-green-badger .dm-cbx-plate__body .dm-section__actions .dm-section__action {
		display: inline-flex;
		align-items: flex-end;
		min-width: 0;
		min-height: 44px;
		padding: 0 0 6px;
		border: 0;
		border-bottom: 1px solid rgba(11, 11, 10, .45);
		border-radius: 0;
		background: transparent;
		color: var(--gb-m-black);
		clip-path: none;
		box-shadow: none;
		font-size: 13px;
		font-weight: 600;
		letter-spacing: .16em;
		transition: border-color .22s ease;
	}

	body.dm-pack-green-badger .dm-cbx-plate__body .dm-section__actions .dm-section__action::before {
		display: none;
	}

	body.dm-pack-green-badger .dm-cbx-plate__body .dm-section__actions .dm-section__action::after {
		content: "\2192";
		display: inline;
		position: static;
		width: auto;
		height: auto;
		margin-left: 8px;
		background: none;
		clip-path: none;
	}

	body.dm-pack-green-badger .dm-cbx-plate__body .dm-section__actions .dm-section__action:hover,
	body.dm-pack-green-badger .dm-cbx-plate__body .dm-section__actions .dm-section__action:focus-visible,
	body.dm-pack-green-badger .dm-cbx-plate__body .dm-section__actions .dm-section__action:active {
		transform: none !important;
		filter: none;
		box-shadow: none;
		background: transparent;
		color: var(--gb-m-black);
		border-bottom-color: var(--gb-m-black);
	}

	/* Entrance: the badger alone — opacity + 10px lift, once, driven by
	   the section reveal sections.js already runs (is-dm-revealed, with
	   its reduced-motion guard and fail-open timeout). */
	@media (prefers-reduced-motion: no-preference) {
		html.dm-motion-ready body.dm-pack-green-badger .dm-section--image-banner .dm-cbx-plate__art img {
			transition: opacity .6s ease-out, translate .6s ease-out;
		}
		html.dm-motion-ready body.dm-pack-green-badger .dm-section--image-banner:not(.is-dm-revealed) .dm-cbx-plate__art img {
			opacity: 0;
			translate: 0 10px;
		}
	}

	/* ==========================================================
	 * 05 — 目的から選ぶ  (REPLACES the <=1024px index-plate block's
	 *      reserved-space model)
	 *
	 * The stage and the selector were two components sharing a
	 * background: an absolutely positioned plate over a padding-top
	 * the JS measured, which left a permanent 32px seam between them.
	 * On mobile the plate becomes an ordinary first child of the active
	 * row, so the two dock with no gap and one gold frame encloses both
	 * — one component, read top to bottom.
	 * ========================================================== */
	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] {
		padding-inline: var(--gb-m-gutter);
		/* real clearance from the bottom nav for the last selector row */
		padding-bottom: calc(72px + var(--dm-safe-bottom, 0px));
	}

	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] .dm-native-cats__grid {
		/* the measured reservation is what created the seam */
		padding-top: 0 !important;
		border: 1px solid var(--gb-m-gold);
	}

	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] .dm-native-cats__card[data-active="true"] {
		display: flex !important;
		flex-direction: column;
	}

	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] .dm-native-cats__card[data-active="true"] .dm-native-cats__plate {
		position: static !important;
		order: -1;
	}

	/* The frame is now the grid's; the plate contributes only the seam
	   that separates the stage from the rows docked under it. */
	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] .dm-native-cats__plate-frame {
		border: 0 !important;
		border-bottom: 1px solid var(--gb-m-gold) !important;
	}

	/* The poster art is square and carries its own baked-in typography;
	   4/3 cropped straight through the wordmark. */
	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] .dm-native-cats__plate-media {
		aspect-ratio: 1 / 1;
	}

	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] .dm-native-cats__body {
		padding-inline: 18px;
	}

	body.dm-pack-green-badger .dm-native-cats[data-layout="index-plate"] .dm-native-cats__card:last-child .dm-native-cats__body {
		border-bottom: 0;
	}

	/* ==========================================================
	 * 06 — BEST SELLERS
	 *
	 * It ranks things; nothing on screen said so. A gold index slug on
	 * each frame gives the row its reason to exist, and the feature item
	 * carries a heavier title than the two under it.
	 * ========================================================== */
	body.dm-pack-green-badger .dm-section__items--card-ranked-feature {
		counter-reset: gb-rank;
	}

	body.dm-pack-green-badger .dm-section__items--card-ranked-feature .dm-section__item {
		position: relative;
		counter-increment: gb-rank;
	}

	body.dm-pack-green-badger .dm-section__items--card-ranked-feature .dm-section__item::before {
		content: counter(gb-rank, decimal-leading-zero);
		position: absolute;
		top: 0;
		left: 0;
		z-index: 3;
		padding: 5px 9px;
		background: var(--gb-m-black);
		color: var(--gb-m-gold);
		font-family: var(--dm-editorial-serif-font, 'Cormorant Garamond', Georgia, serif);
		font-size: 13px;
		font-weight: 600;
		letter-spacing: .18em;
		line-height: 1;
		pointer-events: none;
	}

	body.dm-pack-green-badger .dm-section__items--card-ranked-feature .dm-section__item:first-child::before {
		padding: 8px 13px;
		font-size: 17px;
	}

	body.dm-pack-green-badger .dm-section__items--card-ranked-feature .dm-section__item:first-child .dm-section__item-title {
		font-size: 26px;
		line-height: 1.1;
	}

	/* The title and the detail link inherit whatever the theme last said
	   about anchors; state them so no link colour can reach them. */
	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__item-title,
	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__item-detail,
	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__item-link:hover .dm-section__item-title,
	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__item-link:hover .dm-section__item-detail {
		color: var(--gb-m-cream);
	}

	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__item-price,
	body.dm-pack-green-badger .dm-section--best-sellers-row .dm-section__item-price .amount {
		color: var(--gb-m-cream);
	}

	/* ==========================================================
	 * 09 — JOIN (2026-08-23 lower-page pass)
	 *
	 * Compact editorial membership close: eyebrow → serif title →
	 * JP copy → one hairline → benefits as a 2-column ledger list →
	 * flat JOIN text CTA (same flat family as HERO/CHOOSE/CONTROL).
	 * The torn-paper button is retired on the phone.
	 * ========================================================== */
	body.dm-pack-green-badger .dm-three-forces-ledger {
		padding-bottom: 44px;
	}

	body.dm-pack-green-badger .dm-three-forces-ledger__join-copy {
		margin-top: 12px;
	}

	body.dm-pack-green-badger .dm-three-forces-ledger__join-side {
		margin-top: 22px;
	}

	body.dm-pack-green-badger .dm-three-forces-ledger__benefits {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 20px;
		margin-bottom: 0;
		padding-top: 14px;
		border-top: 1px solid rgba(184, 154, 91, .35);
	}

	body.dm-pack-green-badger .dm-three-forces-ledger__benefits li,
	body.dm-pack-green-badger .dm-three-forces-ledger__benefits li:first-child {
		padding: 6px 0;
		border-bottom: 0;
		font-size: 12px;
		letter-spacing: .04em;
		color: rgba(244, 241, 232, .88);
	}

	/* Flat text CTA — invisible 44px touch target, underline on the
	   text baseline; matches .dm-native-slider__cta--solid below. */
	body.dm-pack-green-badger .dm-three-forces-ledger__member-link {
		display: inline-flex;
		align-items: flex-end;
		justify-content: flex-start;
		gap: 8px;
		width: auto;
		min-height: 44px;
		margin-top: 16px;
		padding: 0 0 8px;
		background: transparent;
		color: #f4f1e8;
		border: 0;
		border-bottom: 1px solid rgba(244, 241, 232, .5);
		border-radius: 0;
		clip-path: none;
		box-shadow: none;
		font-size: 14px;
		font-weight: 600;
		letter-spacing: .16em;
		text-decoration: none;
		transition: color .22s ease, border-color .22s ease;
	}

	/* ==========================================================
	 * 10 — FOOTER
	 *
	 * All content kept; only vertical rhythm is tightened and the
	 * accordion trades its display:none flash for a glide.
	 * ========================================================== */
	body.dm-pack-green-badger .site-footer .dm-footer__brand,
	body.dm-pack-green-badger .dm-footer__brand {
		padding-block: 28px;
	}

	body.dm-pack-green-badger .dm-footer__mark img,
	body.dm-pack-green-badger .dm-footer__brand img {
		max-height: 44px;
		width: auto;
	}

	/* --- brand + social ------------------------------------- */
	body.dm-pack-green-badger .dm-site-footer {
		padding-top: 52px;
		padding-bottom: 44px;
	}

	body.dm-pack-green-badger .dm-site-footer__brand {
		margin-bottom: 26px;
	}

	body.dm-pack-green-badger .dm-site-footer__brand::before {
		margin-bottom: 14px;
	}

	body.dm-pack-green-badger .dm-site-footer__tagline {
		margin-top: 8px;
	}

	body.dm-pack-green-badger .dm-site-footer__text {
		margin-top: 12px;
		margin-bottom: 0;
	}

	body.dm-pack-green-badger .dm-site-footer__social {
		margin-top: 18px;
	}

	body.dm-pack-green-badger .dm-footer-social-link {
		min-height: 44px;
		border-radius: 0;
		border: 1px solid rgba(184, 154, 91, .4);
		background: transparent;
		box-shadow: none;
	}

	body.dm-pack-green-badger .dm-footer-social-link:hover {
		background: transparent;
		color: var(--dm-primary, #b89a5b) !important;
		box-shadow: none;
		transform: none;
	}

	/* --- accordion ------------------------------------------- */
	body.dm-pack-green-badger .dm-footer-column {
		padding-block: 16px;
	}

	body.dm-pack-green-badger .dm-footer-column h2 {
		margin-bottom: 0;
	}

	body.dm-pack-green-badger .dm-site-footer__nav {
		gap: 0;
	}

	/* Glide, not pop: the plugin toggles display none/block, which
	   flashes. Grid-rows 0fr→1fr keeps it in flow and animates. */
	body.dm-pack-green-badger.dm-footer-mobile-accordion .dm-footer-column__body[data-dm-footer-panel] {
		display: grid;
		grid-template-rows: 0fr;
		opacity: 0;
		padding-top: 0;
		transition:
			grid-template-rows .5s cubic-bezier(.37, 0, .63, 1),
			opacity .5s cubic-bezier(.37, 0, .63, 1),
			padding-top .5s cubic-bezier(.37, 0, .63, 1);
	}

	body.dm-pack-green-badger.dm-footer-mobile-accordion .dm-footer-column__body[data-dm-footer-panel] > * {
		min-height: 0;
		overflow: hidden;
	}

	body.dm-pack-green-badger.dm-footer-mobile-accordion .dm-footer-column.is-open .dm-footer-column__body[data-dm-footer-panel] {
		grid-template-rows: 1fr;
		opacity: 1;
		padding-top: 14px;
	}

	body.dm-pack-green-badger .dm-footer-column__toggle > span {
		transition: transform .45s cubic-bezier(.37, 0, .63, 1);
	}

	/* --- legal ------------------------------------------------ */
	body.dm-pack-green-badger .dm-site-footer__bottom {
		margin-top: 24px;
		padding-top: 16px;
		gap: 10px;
	}
}


/* ==========================================================
 * 01 - HERO (2026-08-23 mobile pass)
 *
 * The phone hero inherited the UNSCOPED sections.css base: -.045em
 * headline tracking, default JP copy leading/tracking, and the
 * deprecated torn-paper CTA that desktop already flattened at
 * >=1025px. These rules adopt the approved desktop values on the
 * phone. Scoped to the hero's own selectors only - CHOOSE's
 * .dm-coverflow__active-content-cta and every other paper-button
 * consumer are deliberately untouched.
 * ========================================================== */
@media (max-width: 782px) {

	body.dm-pack-green-badger .dm-native-slider__title {
		letter-spacing: -.022em;
	}

	body.dm-pack-green-badger .dm-native-slider__copy {
		letter-spacing: .08em;
		line-height: 2;
		color: rgba(231, 220, 199, .80);
	}

	/* Flat text-link, identical rendered pixels to desktop's; the
	   44px min-height is an invisible touch target - align-items:
	   flex-end keeps the underline on the text baseline, and no
	   padding-top so the hairline does not float off the label. */
	body.dm-pack-green-badger .dm-native-slider__cta--solid {
		display: inline-flex;
		align-items: flex-end;
		justify-content: flex-start;
		min-width: 0;
		min-height: 44px;
		padding: 0 0 8px;
		border: 0;
		border-bottom: 1px solid rgba(244, 241, 232, .5);
		border-radius: 0;
		background: transparent;
		color: #f4f1e8;
		clip-path: none;
		box-shadow: none;
		font-size: 14px;
		font-weight: 600;
		letter-spacing: .16em;
		transition: color .22s ease, border-color .22s ease;
	}

	body.dm-pack-green-badger .dm-native-slider__cta--solid::before,
	body.dm-pack-green-badger .dm-native-slider__cta--solid::after {
		display: none;
	}

	/* The paper-button lift is !important in the component; stillness
	   has to match its weight. */
	body.dm-pack-green-badger .dm-native-slider__cta--solid:hover,
	body.dm-pack-green-badger .dm-native-slider__cta--solid:focus-visible,
	body.dm-pack-green-badger .dm-native-slider__cta--solid:active {
		transform: none !important;
		filter: none;
	}
}

/* ==========================================================
 * 06 — BEST SELLERS fixed-slot swap (2026-08-23 mobile pass)
 *
 * Three fixed vertical slots: slot 1 large (artwork + name + price +
 * 詳細を見る), slots 2/3 small rows (thumb + compact name). Products move
 * between slots via data-dm-slot (patterns.js swaps the tapped item with
 * the slot-1 occupant; the third item stays put). Slot geometry is
 * constant — the section never changes height — and the two affected
 * products travel vertically between their slots: top/height and the
 * artwork box transition at 550ms cubic-bezier(.22,1,.36,1). Text is
 * never transform-scaled; the destination slot switches its size.
 * ========================================================== */
@media (max-width: 782px) {

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__items--card-ranked-feature {
		--gb-bs-media: calc(100vw - var(--gb-m-gutter, 20px) * 2);
		--gb-bs-s1: calc(var(--gb-bs-media) + 128px);
		display: block;
		position: relative;
		height: calc(var(--gb-bs-s1) + 206px);
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] {
		position: absolute;
		left: 0;
		right: 0;
		margin: 0;
		overflow: hidden;
		transition: top 550ms cubic-bezier(.22, 1, .36, 1), height 550ms cubic-bezier(.22, 1, .36, 1);
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] {
		top: 0;
		height: var(--gb-bs-s1);
		z-index: 2;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="2"] {
		top: calc(var(--gb-bs-s1) + 24px);
		height: 84px;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="3"] {
		top: calc(var(--gb-bs-s1) + 122px);
		height: 84px;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-link {
		display: flex;
		height: 100%;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-link {
		flex-direction: column;
		gap: 12px;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="2"] .dm-section__item-link,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="3"] .dm-section__item-link {
		flex-direction: row;
		align-items: center;
		gap: 14px;
	}

	/* The destination slot sets the artwork box, and the box itself travels:
	   width/height ride the same 550ms curve as the slot swap. Both widths
	   are px-valued (calc vs 84px) so the width actually interpolates —
	   100% to 84px would snap. Cover keeps the image undistorted. */
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-media {
		display: block;
		flex: none;
		min-height: 0;
		aspect-ratio: auto;
		overflow: hidden;
		transition: width 550ms cubic-bezier(.22, 1, .36, 1), height 550ms cubic-bezier(.22, 1, .36, 1);
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-media {
		width: var(--gb-bs-media);
		height: var(--gb-bs-media);
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="2"] .dm-section__item-media,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="3"] .dm-section__item-media {
		width: 84px;
		height: 84px;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* Type follows the slot, never the DOM position — overrides the
	   :first-child sizing above so a demoted 01 reads compact. Family and
	   weight adopt the mobile pack's established tokens: product names use
	   the promoted display serif (same voice as CHOOSE's active title),
	   never shouting weight. */
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-title {
		font-family: var(--dm-font-display, inherit);
		font-weight: 500;
		letter-spacing: normal;
		color: var(--gb-m-cream);
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-title {
		font-size: 22px;
		line-height: 1.15;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="2"] .dm-section__item-title,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="3"] .dm-section__item-title {
		font-size: 15px;
		line-height: 1.3;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-price {
		font-family: var(--dm-font-body, inherit);
		font-size: 14px;
		font-weight: 400;
	}

	/* Active meta (price + CTA): out fast (~.2s) on demotion, in slower
	   (~.36s) and slightly late (.06s) on promotion, riding inside the
	   item-level crossfade. `display` rides the same transition via
	   allow-discrete so it never snaps mid-fade; browsers without support
	   fall back to an instant switch. */
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-price,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-detail {
		transition: opacity .2s cubic-bezier(.37, 0, .63, 1), display .2s allow-discrete;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="2"] .dm-section__item-price,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="3"] .dm-section__item-price,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="2"] .dm-section__item-detail,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="3"] .dm-section__item-detail {
		display: none;
		opacity: 0;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-price,
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-detail {
		opacity: 1;
		transition: opacity .36s cubic-bezier(.37, 0, .63, 1) .06s, display .36s allow-discrete .06s;
	}

	@starting-style {
		body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-price,
		body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-detail {
			opacity: 0;
		}
	}

	/* CTA speaks the same flat text-link language as the hero's mobile CTA
	   (14px / 600 / .16em over a hairline). */
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"] .dm-section__item-detail {
		align-self: flex-start;
		width: fit-content;
		padding-bottom: 2px;
		border-bottom: 1px solid rgba(244, 241, 232, .5);
		font-size: 14px;
		font-weight: 600;
		letter-spacing: .16em;
	}

	/* No VIEW ALL on the phone — the section ends on the products. */
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__actions {
		display: none;
	}

	/* Rank slug size follows the slot too. */
	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot]::before {
		padding: 5px 9px;
		font-size: 13px;
	}

	body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot="1"]::before {
		padding: 8px 13px;
		font-size: 17px;
	}

	@media (prefers-reduced-motion: reduce) {
		body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot],
		body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-media,
		body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-price,
		body.dm-pack-green-badger .dm-section[data-dm-preset="ranked-best-sellers"] .dm-section__item[data-dm-slot] .dm-section__item-detail {
			transition: none;
		}
	}
}

	/* ==========================================================
	 * 11 — FOOTER v2: "COLOPHON" (2026-08-24 mobile pass)
	 *
	 * Replaces the centered/card-like mobile footer with a left-aligned
	 * editorial ledger. Every rule here is scoped to
	 * body.dm-pack-green-badger and lives at the footer plugin's own
	 * mobile_breakpoint (960) so it always outranks the plugin's inline
	 * <head> CSS by specificity, no !important needed. Desktop and every
	 * other pack are untouched — duck-mark-footer-control.php is not
	 * edited. Scale contract: 13px menu links / 11px column labels / 10px
	 * everything else. Hairlines: gold rgba(184,154,91,.45) once (top
	 * edge only), #2a2c27 for every ledger rule.
	 * ========================================================== */
	@media (max-width: 960px) {

		body.dm-pack-green-badger .dm-site-footer {
			border-top: 1px solid rgba(184, 154, 91, .45);
			padding-top: 36px;
			padding-bottom: calc(28px + env(safe-area-inset-bottom) + 64px);
		}

		/* --- masthead: left-aligned, nothing centered --------------- */
		body.dm-pack-green-badger .dm-site-footer__brand {
			text-align: left;
			margin-bottom: 34px;
		}
		body.dm-pack-green-badger .dm-site-footer__brand::before {
			margin-inline: 0;
		}
		body.dm-pack-green-badger .dm-site-footer__logo {
			max-width: 108px;
			width: auto;
		}
		body.dm-pack-green-badger .dm-site-footer__brand-title {
			font-size: 22px;
		}
		body.dm-pack-green-badger .dm-site-footer__tagline {
			margin-top: 14px;
			font-family: var(--dm-font-body, inherit);
			font-size: 10px;
			font-weight: 600;
			text-transform: uppercase;
			letter-spacing: .22em;
			color: var(--gb-m-gold);
		}
		body.dm-pack-green-badger .dm-site-footer__text {
			margin-top: 6px;
			margin-bottom: 0;
			max-width: none;
			font-family: var(--dm-font-body, inherit);
			font-size: 10px;
			letter-spacing: .18em;
			text-transform: uppercase;
			color: rgba(244, 241, 232, .45);
		}

		/* --- social: text links, no chips ---------------------------- */
		body.dm-pack-green-badger .dm-site-footer__social {
			margin-top: 28px;
			display: flex;
			flex-wrap: wrap;
			justify-content: flex-start;
			align-items: center;
			gap: 22px;
		}
		body.dm-pack-green-badger .dm-footer-social-link {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			min-height: 44px;
			padding: 0;
			border: 0;
			border-radius: 0;
			background: transparent;
			box-shadow: none;
			color: rgba(244, 241, 232, .7);
			font-family: var(--dm-font-body, inherit);
			font-size: 10px;
			font-weight: 600;
			text-transform: uppercase;
			letter-spacing: .18em;
			transition: color .22s ease;
		}
		body.dm-pack-green-badger .dm-footer-social-link:active,
		body.dm-pack-green-badger .dm-footer-social-link:focus-visible {
			background: transparent;
			color: var(--gb-m-gold) !important;
		}
		body.dm-pack-green-badger .dm-footer-social-link__icon svg {
			width: 12px;
			height: 12px;
			fill: none;
			stroke: currentColor;
			stroke-width: 1.6;
		}
		/* When the footer renders text-only (social_display:label), the icon
		   span never prints — draw the same 12px stroke mark with a CSS
		   mask so the row still reads "icon + word" without touching the
		   plugin's PHP. */
		body.dm-pack-green-badger .dm-footer-social-link--instagram:not(:has(.dm-footer-social-link__icon))::before,
		body.dm-pack-green-badger .dm-footer-social-link--x:not(:has(.dm-footer-social-link__icon))::before {
			content: "";
			display: inline-block;
			width: 12px;
			height: 12px;
			background-color: currentColor;
			-webkit-mask-repeat: no-repeat;
			mask-repeat: no-repeat;
			-webkit-mask-size: contain;
			mask-size: contain;
			-webkit-mask-position: center;
			mask-position: center;
		}
		body.dm-pack-green-badger .dm-footer-social-link--instagram:not(:has(.dm-footer-social-link__icon))::before {
			-webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1"/></svg>');
			mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1"/></svg>');
		}
		body.dm-pack-green-badger .dm-footer-social-link--x:not(:has(.dm-footer-social-link__icon))::before {
			-webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8"><path d="M5 4l14 16M19 4 5 20"/></svg>');
			mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8"><path d="M5 4l14 16M19 4 5 20"/></svg>');
		}

		/* --- the ledger ------------------------------------------------ */
		body.dm-pack-green-badger .dm-site-footer__nav {
			margin-top: 0;
			gap: 0;
		}
		body.dm-pack-green-badger .dm-footer-column {
			padding: 18px 0;
			border-top: 1px solid #2a2c27;
		}
		body.dm-pack-green-badger .dm-footer-column:last-child {
			border-bottom: 1px solid #2a2c27;
		}
		body.dm-pack-green-badger .dm-footer-column h2 {
			margin: 0;
		}
		body.dm-pack-green-badger .dm-footer-column__toggle {
			display: flex;
			width: 100%;
			align-items: center;
			justify-content: space-between;
			font-family: var(--dm-font-body, inherit);
			font-size: 11px;
			font-weight: 600;
			text-transform: uppercase;
			letter-spacing: .18em;
			color: var(--gb-m-cream);
		}
		body.dm-pack-green-badger .dm-footer-column__toggle > span {
			position: relative;
			display: inline-block;
			width: 13px;
			height: 13px;
			color: var(--gb-m-gold);
			font-size: 13px;
			line-height: 1;
			transform: none;
		}
		body.dm-pack-green-badger .dm-footer-column__toggle > span::before {
			content: "+";
			position: absolute;
			top: 0;
			right: 0;
		}
		body.dm-pack-green-badger .dm-footer-column.is-open .dm-footer-column__toggle > span::before {
			content: "\2212";
		}
		body.dm-pack-green-badger .dm-footer-column__body {
			padding-bottom: 4px;
		}
		body.dm-pack-green-badger .dm-footer-menu {
			display: flex;
			flex-direction: column;
			gap: 14px;
			margin: 0;
			padding: 0;
			list-style: none;
		}
		body.dm-pack-green-badger .dm-footer-menu li {
			margin: 0;
			padding: 0;
		}
		body.dm-pack-green-badger .dm-footer-menu a {
			font-family: var(--dm-font-body, inherit);
			font-size: 13px;
			color: rgba(244, 241, 232, .8);
			text-decoration: none;
		}
		body.dm-pack-green-badger .dm-footer-menu a:hover,
		body.dm-pack-green-badger .dm-footer-menu a:focus-visible {
			color: var(--gb-m-gold);
		}

		/* --- bottom block: legal row, then copyright ------------------- */
		body.dm-pack-green-badger .dm-site-footer__bottom {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 12px;
			margin-top: 0;
			padding-top: 30px;
			border-top: 0;
			text-align: left;
		}
		body.dm-pack-green-badger .dm-site-footer__bottom-nav {
			order: 1;
		}
		body.dm-pack-green-badger .dm-site-footer__bottom-copy {
			order: 2;
			display: flex;
			flex-direction: column;
		}
		body.dm-pack-green-badger .dm-footer-bottom-menu {
			display: flex;
			flex-wrap: wrap;
			justify-content: flex-start;
			gap: 8px 18px;
			margin: 0;
			padding: 0;
			list-style: none;
		}
		body.dm-pack-green-badger .dm-footer-bottom-menu a {
			font-family: var(--dm-font-body, inherit);
			font-size: 10px;
			text-transform: uppercase;
			letter-spacing: .14em;
			color: rgba(244, 241, 232, .45);
			text-decoration: none;
		}
		body.dm-pack-green-badger .dm-footer-bottom-menu a:hover,
		body.dm-pack-green-badger .dm-footer-bottom-menu a:focus-visible {
			color: var(--gb-m-gold);
		}
		body.dm-pack-green-badger .dm-site-footer__bottom-copy p {
			margin: 0;
			font-family: var(--dm-font-body, inherit);
			font-size: 10px;
			letter-spacing: .1em;
			color: rgba(244, 241, 232, .3);
		}
		body.dm-pack-green-badger .dm-site-footer__bottom-copy small {
			margin-top: 6px;
			font-family: var(--dm-font-body, inherit);
			font-size: 10px;
			letter-spacing: .1em;
			color: rgba(244, 241, 232, .3);
		}
	}
