/*!
Theme Name:        Ariade Child – Anandodhara
Theme URI:         https://ananyoo.com/accessible-theme/
Template:          ariade
Version:           1.9.256
Requires at least: 6.6
Requires PHP:      7.4
Tested up to:      7.0

Author:            Shivaji Mitra
Author URI:        https://ananyoo.com
Company:           M/S. Anblik
Description:       Anandodhara.com child theme for the Ariade parent theme — a WooCommerce-enabled cultural-hub site celebrating Bengali heritage (books, magazines, events, forum, donations). Implements the Anandodhara Figma design (Archivo + Manrope, cream/charcoal/amber palette) on top of Ariade's WCAG 2.2 AA accessible foundation, with the Ananyoo Accessible Events plugin skinned to match. Fully responsive and screen-reader tested. Built for Anandodhara by Shivaji Mitra, M/S. Anblik.

License:           GPL-3.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-3.0-standalone.html

Text Domain:       ariade-child-anandodhara
Tags:              accessibility-ready, block-patterns, custom-colors, custom-logo, e-commerce, full-site-editing, responsive-layout, threaded-comments, translation-ready

Ariade Child – Anandodhara, (C) 2026 Shivaji Mitra / M/S. Anblik.
Distributed under the terms of the GNU GPL v3 or later.
*/

/* ==========================================================================
   ANANDODHARA DESIGN TOKENS  (measured from the Figma "Ui Design" canvas)
   --------------------------------------------------------------------------
   Verified WCAG 2.2 AA colour pairs:
     #352107 on #F49C26 ......... 7.02:1  (button text on amber — designer to finalise)
     #B3540A on #FFFFFF ......... 5.01:1  (amber links/years on light)
     #F49C26 on #272322 ......... 7.13:1  (amber headings on footer/dark)
     #FFFFFF on #272322 ........ 15.56:1  (footer body text)
     #B91C1C on #FBF6EC ......... 6.01:1  (price red on cream)
     #1F1F1F on #F7E8CD ........ 13.64:1  (body text on cream cards)
     #514949 on #FFFFFF ......... 7.43:1  (white pill button text)
     #A60641 on #FFFFFF ......... 7.71:1  (guest years — designer's ruby)
     #FFFFFF on #3960C4 ......... 5.76:1  (Magazine badge)
     #352107 on #EE861E ......... 5.88:1  (Book badge — white failed at 2.60)
     #FFFFFF on #D9123D ......... 5.12:1  (Event badge — Figma #EE1E4B was 4.27)
     #FFFFFF on #1A222F ........ 15.98:1  (navy secondary buttons)
   NOTE: the Figma mockups show white text on amber (2.18:1 — AA failure)
   and amber #F49C26 as text on white (also a failure). The theme keeps the
   identical look but uses deep-brown #352107 on amber and #B3540A for
   amber-as-text on light. Deliberate — do not "fix" back.
   ========================================================================== */
:root {
	--ad-amber:        #F49C26;
	--ad-amber-deep:   #B3540A;
	--ad-amber-hover:  #E08A0F;
	--ad-btn-bg:       #F49C26;  /* v1.4.2 — reverted to brand amber per designer; text stays brown for AA */
	--ad-btn-hover:    #E08A0F;
	--ad-brown:        #352107;
	--ad-ink:          #1A222F;
	--ad-body:         #1F1F1F;
	--ad-body-soft:    #172735;
	--ad-grey-text:    #6B6C6E;  /* large-text grey (Figma #797a7b, darkened) */
	--ad-cream:        #F7E8CD;
	--ad-cream-soft:   #FBF4E4;
	--ad-paper:        #FFFEFB;
	--ad-line:         #EADFCB;
	--ad-red:          #B91C1C;
	--ad-ruby:         #A60641;  /* v1.5.0 — designer's WCAG guest-year crimson, 7.71:1 on white */
	--ad-wine:         #861840;  /* v1.9.61 — gallery / events / forum accent (strong), 10.1:1 on white */
	--ad-wine-light:   #AD1A50;  /* v1.9.61 — gallery accent (light), 6.9:1 on white */
	--ad-footer:       #272322;
	--ad-footer-soft:  #3D3D3D;
	--ad-hero-bg:      #32383B;  /* hero fallback before montage loads */
	--ad-gold:         #D9A521;
	--ad-radius:       16px;
	--ad-radius-pill:  30px;
	--ariade-child-focus: #B3540A;
	--ad-font-display: "Archivo", "Barlow Semi Condensed", sans-serif;
	--ad-font-body:    "Manrope", "Geist", sans-serif;
}

/* --------------------------------------------------------------------------
   1. FOCUS VISIBILITY (WCAG 2.4.7 / 2.4.13)
   -------------------------------------------------------------------------- */
*:focus-visible {
	outline: 3px solid var(--ariade-child-focus);
	outline-offset: 3px;
	border-radius: 2px;
}
.site-header *:focus-visible,
.site-footer *:focus-visible,
.ad-hero *:focus-visible,
.ad-banner *:focus-visible,
.on-dark *:focus-visible {
	outline-color: #FFD79B;
}

/* --------------------------------------------------------------------------
   2. BASE TYPE & PAGE
   -------------------------------------------------------------------------- */
body {
	background: var(--ad-paper);
	color: var(--ad-body);
	font-family: var(--ad-font-body);
	font-size: clamp(0.8rem, 0.8333vw, 1rem);   /* v1.5.1 — fluid: Figma 16px @1920, proportional below */
}
h1, h2, h3, h4, h5, h6,
.wp-block-heading, .wp-block-post-title {
	font-family: var(--ad-font-display);
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--ad-ink);
}
a { color: var(--ad-amber-deep); }
a:hover { color: var(--ad-brown); }

/* Section headings — Figma: Archivo Medium 60/70, tracking -1.2px */
.ad-section-title {
	font-size: clamp(1.9rem, 3.125vw, 3.75rem);  /* v1.5.1 — Figma 60px @1920 */
	line-height: 1.17;
	letter-spacing: -0.02em;
}
.ad-section-kicker { color: var(--ad-body-soft); letter-spacing: 0.02em; font-size: clamp(0.7rem, 0.7292vw, 0.875rem); }

/* --------------------------------------------------------------------------
   3. HEADER — charcoal band, uppercase Manrope nav, amber Donate pill
   -------------------------------------------------------------------------- */
.site-header {
	background: var(--ad-footer);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.site-header .wp-block-site-title a,
.site-header .primary-nav a,
.site-header .header-actions a,
.site-header button { color: #FFFFFF; }
.site-header .primary-nav a {
	font-family: var(--ad-font-body);
	font-weight: 700;
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.site-header .primary-nav a:hover,
.site-header .primary-nav a[aria-current="page"] { color: var(--ad-amber); }
.site-header .header-cta,
.site-header .header-actions .wp-block-button__link {
	background: var(--ad-btn-bg);
	color: var(--ad-brown);
	border-radius: var(--ad-radius-pill);
	font-weight: 800;
	font-size: 0.8125rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.7em 1.6em;
}
.site-header .header-cta:hover,
.site-header .header-actions .wp-block-button__link:hover {
	background: var(--ad-btn-hover);
	color: var(--ad-brown);
}
/* v1.2.3 — the parent renders the CTA as .btn.btn-primary and the menu as
   .nav-desktop (verified live on staging); recolour those real classes. */
.site-header .btn.btn-primary {
	background: var(--ad-btn-bg) !important;
	color: var(--ad-brown) !important;
	border: none;
	border-radius: var(--ad-radius-pill) !important;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.site-header .btn.btn-primary:hover,
.site-header .btn.btn-primary:focus {
	background: var(--ad-btn-hover) !important;
	color: var(--ad-brown) !important;
}
/* v1.9.3 — the parent renders the mobile-drawer footer CTA as .menu-cta with
   the parent brand gradient + white text ("Get the theme"). On Anandodhara that
   button is the Donate CTA, so recolour it to match the site's amber Donate Now
   button (brown text on amber, AA 7.02:1). The label/link are switched to
   "Donate Now" -> /donate/ via the parent's ariade_drawer_cta filter in
   functions.php. */
.menu-overlay .menu-foot .menu-cta,
a.menu-cta {
	background: var(--ad-btn-bg) !important;
	color: var(--ad-brown) !important;
	border-radius: var(--ad-radius-pill) !important;
	box-shadow: 0 14px 30px -16px rgba(179, 84, 10, 0.55) !important;
}
.menu-overlay .menu-foot .menu-cta:hover,
.menu-overlay .menu-foot .menu-cta:focus,
a.menu-cta:hover,
a.menu-cta:focus {
	background: var(--ad-btn-hover) !important;
	color: var(--ad-brown) !important;
	filter: none !important;
}

/* v1.9.4 — MOBILE HAMBURGER DRAWER, fully de-Ariade'd.
   The parent drawer ships in its own blue palette: panel #0B1A3D (--teal-deep),
   numbers/active item in #7FB0FF (--teal-bright), a blue→purple→pink gradient on
   the close X and the open Store "+" expander, and cool blue-grey submenu links.
   None of that is Anandodhara. Repaint the whole drawer in the site palette:
   panel = charcoal #272322 (matches the footer, per Shivaji's pick), all accents
   = amber #F49C26, submenu links = warm cream, close X = amber pill with brown
   glyph. White labels are unchanged. Contrasts on #272322: white 14.6:1, amber
   7.13:1, cream #E7DCCB ~12:1 — all AA/AAA. */
.menu-overlay {
	background: var(--ad-footer) !important; /* #272322 charcoal */
}
/* numbers + active item + hover -> amber */
.menu-overlay .menu-nav a .idx { color: var(--ad-amber) !important; }
.menu-overlay .menu-nav a[aria-current="page"],
.menu-overlay .menu-nav a[aria-current="true"],
.menu-overlay .menu-nav a:hover,
.menu-overlay .menu-nav a:focus,
.menu-overlay .menu-nav .msub-toggle:hover,
.menu-overlay .menu-nav .msub-toggle:focus { color: var(--ad-amber) !important; }
/* Store "+/–" expander -> amber pill with brown bars (both rest + expanded) */
.menu-overlay .menu-nav .msub-pm,
.menu-overlay .menu-nav .msub-toggle[aria-expanded="true"] .msub-pm {
	background: var(--ad-amber) !important;
	background-image: none !important;
	border-color: transparent !important;
}
.menu-overlay .menu-nav .msub-pm::before,
.menu-overlay .menu-nav .msub-pm::after { background: var(--ad-brown) !important; }
/* submenu links (Books / Magazines) -> warm cream, amber on hover */
.menu-overlay .menu-nav .msub a { color: #E7DCCB !important; }
.menu-overlay .menu-nav .msub a:hover,
.menu-overlay .menu-nav .msub a:focus { color: var(--ad-amber) !important; }
/* the parent draws a small bullet dot before each submenu link in its blue
   #7FB0FF (a::before). Recolour that dot to amber so no Ariade blue remains. */
.menu-overlay .menu-nav .msub a::before {
	background: var(--ad-amber) !important;
	border-color: var(--ad-amber) !important;
}
/* close X -> amber pill, brown glyph (was the parent's brand gradient) */
.menu-overlay .menu-close {
	background: var(--ad-amber) !important;
	background-image: none !important;
	border-color: transparent !important;
	color: var(--ad-brown) !important;
}
.menu-overlay .menu-close:hover,
.menu-overlay .menu-close:focus {
	background: var(--ad-btn-hover) !important;
	border-color: transparent !important;
	color: var(--ad-brown) !important;
}

.site-header .nav-desktop a,
.site-header .nav-desktop .nav-dd-toggle {
	color: #FFFFFF !important;
	white-space: nowrap;
}
.site-header .nav-desktop a:hover,
.site-header .nav-desktop a[aria-current="page"],
.site-header .nav-desktop .current-menu-item > a,
.site-header .nav-desktop .current_page_item > a {
	color: var(--ad-amber) !important;
}
/* v1.5.0 — designer's redesign underlines the current menu item in amber */
.site-header .nav-desktop a[aria-current="page"],
.site-header .nav-desktop .current-menu-item > a,
.site-header .nav-desktop .current_page_item > a {
	border-bottom: 2px solid var(--ad-amber);
	padding-bottom: 3px;
}

/* v1.6.0 — menu + header cluster per Shivaji, approved live on staging:
   1) top-level hover mirrors the design: amber text + STRAIGHT amber
      underline, no white pill (the parent's hover surface is removed and
      its pill radius squared so underlines are straight bars);
   2) dropdown = the Figma white panel: uppercase ink items, square
      edge-to-edge amber hover bar with deep-brown text (5.88:1);
   3) caret button is chromeless — white, amber on hover/open;
   4) icons and Donate Now slimmed to a 38px row (WCAG 2.5.8 target size
      still comfortably met) and centred on the same axis as the menu. */
.site-header .nav-desktop a { border-radius: 0 !important; }
.site-header .nav-desktop a:hover {
	border-bottom: 2px solid var(--ad-amber);
	padding-bottom: 3px;
}
.site-header .nav-desktop a:hover,
.site-header .nav-desktop a:focus,
.site-header .nav-desktop a:focus-visible,
.site-header .nav-desktop li:hover > a {
	background: transparent !important;
	box-shadow: none !important;
}
.site-header .nav-dd-toggle,
.site-header .nav-dd-toggle:hover,
.site-header .nav-dd-toggle:focus,
.site-header .nav-dd-toggle:focus-visible,
.site-header .nav-dd-toggle[aria-expanded="true"] {
	background: transparent !important;
	box-shadow: none !important;
	border: none !important;
	color: #FFFFFF !important;
}
.site-header .nav-dd-toggle:hover,
.site-header .nav-dd-toggle[aria-expanded="true"] { color: var(--ad-amber) !important; }
.site-header .nav-dropdown {
	background: #FFFFFF !important;
	border: none !important;
	border-radius: 8px !important;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35) !important;
	padding: 0 !important;
	min-width: 170px !important;
	overflow: hidden;
}
.site-header .nav-dropdown li { margin: 0 !important; }
.site-header .nav-dropdown a {
	display: block !important;
	color: var(--ad-ink) !important;
	background: transparent !important;
	text-transform: uppercase;
	font-weight: 700;
	font-size: 0.8125rem;
	letter-spacing: 0.05em;
	padding: 0.9em 1.4em !important;
	border-radius: 0 !important;   /* square hover bar */
	border-bottom: none !important;
}
/* v1.6.1 — higher specificity than the li:hover transparent rule above,
   which was silently beating this and hiding the amber bar (found by
   real-hover testing on staging). */
.site-header .nav-desktop .nav-dropdown li:hover > a,
.site-header .nav-desktop .nav-dropdown a:hover,
.site-header .nav-desktop .nav-dropdown a:focus,
.site-header .nav-dropdown a:hover,
.site-header .nav-dropdown a:focus {
	background: var(--ad-amber) !important;
	color: var(--ad-brown) !important;
	box-shadow: none !important;
	border-bottom: none !important;
}
.site-header .icon-btn {
	width: 38px !important; height: 38px !important;
	min-width: 38px !important; min-height: 38px !important;
}
.site-header .icon-btn svg { width: 17px !important; height: 17px !important; }
.site-header .btn.btn-primary {
	min-height: 38px !important; height: 38px !important;
	display: inline-flex !important; align-items: center !important;
	padding: 0.55em 1.35em !important;
	font-size: 0.75rem !important;
}
.site-header .header-actions { margin-top: 15px !important; }
/* v1.3.1 — Figma-exact header (verified live on staging):
   the header floats transparently over the hero/banner artwork (the
   montage's dark gradient cap is its backdrop, as in Figma 176:632),
   the logo is large like the design, and the search/account/cart icon
   buttons — absent in the Figma, kept deliberately — are styled in the
   Anandodhara language: round, subtle glass, amber on hover. */
.home .site-header,
body:has(.ad-banner) .site-header {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 60;
	background: transparent !important;
	border-bottom: none !important;
}
body.admin-bar.home .site-header,
body.admin-bar:has(.ad-banner) .site-header { top: 32px; }
.site-header .wrap.header-inner {
	max-width: 1760px;
	margin-inline: auto;
	padding-inline: 24px;
	box-sizing: border-box;
	gap: 1.1rem;
	/* v1.3.3 — Figma: menu row rides the TOP line beside the tall logo */
	align-items: flex-start !important;
	padding-top: 12px !important;
	padding-bottom: 14px !important;
}
.site-header .header-inner > .nav-desktop { margin-top: 12px !important; }
/* v1.3.2 — logo at Figma scale; menu/icons/CTA cluster right-aligned */
.site-header .wp-block-site-logo img,
.site-header .brand img {
	width: 230px !important;   /* v1.3.4 — exact size per Shivaji */
	height: auto !important;
}
@media (max-width: 781px) {
	.site-header .wp-block-site-logo img,
	.site-header .brand img { width: 170px !important; }
}
.site-header .header-inner > .nav-desktop,
.site-header .header-inner > nav,
.site-header .header-inner > .wp-block-ariade-primary-nav {
	margin-left: auto !important;
}
.site-header .nav-desktop a { font-size: 0.8rem; }
.site-header .icon-btn {
	width: 46px;
	height: 46px;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, 0.07) !important;
	border: 1px solid rgba(255, 255, 255, 0.4) !important;
	color: #FFFFFF !important;
	transition: background 0.15s ease, color 0.15s ease;
}
.site-header .icon-btn:hover,
.site-header .icon-btn:focus {
	background: var(--ad-btn-bg) !important;
	color: var(--ad-brown) !important;
	border-color: var(--ad-btn-bg) !important;
}
/* clear the floating header inside the hero / inner banners */
.ad-hero .wp-block-cover__inner-container { padding-top: 170px; }
/* Inner-page banner (v1.9.67) — SAFE-CENTRED. The banner content (pill,
   title, sub-line) is vertically centred in the band, with the padding
   floor coming from the sitewide hero controls (--ariade-hero-pad-top /
   --ariade-hero-pad-bottom, defined once at the end of this file): the
   80px top floor guarantees the content always clears the floating
   transparent header, and centring does the rest. Replaces the old
   top-aligned 82px + 55px pushdown stack — no per-page values left. */
.ad-banner-inner { align-items: center; }
.ad-banner {
	padding-top: var(--ariade-hero-pad-top, 80px);
	padding-bottom: var(--ariade-hero-pad-bottom, 20px);
}
/* Optical nudge: with the content centred, a small 10px shift down (DevTools-
   tested) sits the pill/title visually centred under the header overlay —
   replaces the old 55px offset. */
.ad-banner-inner .wp-block-cover__inner-container { margin-top: 10px !important; }
/* v1.9.40 — The single-event cover uses a constrained layout that was capping
   its dim overlay to the content column, so the banner edges showed the bright
   image with no dim (unlike every other inner page). Force the overlay full-
   bleed so the whole banner is evenly dimmed. */
.ad-banner-event > .wp-block-cover__background {
	position: absolute !important;
	inset: 0 !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
}

/* --------------------------------------------------------------------------
   4. HOME HERO — montage photo, glass panel (Figma 176:632)
   Panel: 747×401, blur 15, white 5% fill, white 20% border, radius 20.
   H1: Archivo Black 50/50 uppercase, tracking -1.5px.
   -------------------------------------------------------------------------- */
.ad-hero {
	position: relative;
	background: var(--ad-hero-bg);
	color: #FFFFFF;
}
.ad-hero .wp-block-cover__background { opacity: 0.25; }
/* top darkening like Figma's #141315 gradient cap */
.ad-hero::before {
	content: "";
	position: absolute; inset: 0 0 auto 0; height: 340px;
	background: linear-gradient(to bottom, rgba(20, 19, 21, 0.9) 0%, rgba(20, 19, 21, 0) 100%);
	pointer-events: none;
	z-index: 1;
}
.ad-hero .wp-block-cover__inner-container { position: relative; z-index: 2; }
.ad-hero-panel {
	/* v1.5.1 — fluid: the Figma panel is 747px on the 1920 canvas (38.91vw),
	   so it scales with the screen instead of staying fixed */
	max-width: clamp(360px, 38.91vw, 747px);
	margin-inline: auto;
	/* v1.9.14 — lighter frosted glass. A DARK tint (not the original 5% white)
	   is what fixed the contrast; with the heavy 15px blur we can drop the tint
	   right down so the montage shows through like the Figma, and it still holds
	   0 WAVE contrast errors (verified live by Shivaji at 0.12). Kept at 0.15 for
	   a whisker of real-contrast margin on the brightest part of the image. */
	background: rgba(18, 23, 32, 0.15);
	-webkit-backdrop-filter: blur(15px);
	backdrop-filter: blur(15px);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 20px;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.55);
	padding: clamp(1.5rem, 2.917vw, 3.5rem) clamp(1.2rem, 3.333vw, 4rem);
	text-align: center;
}
@media (max-width: 781px) { .ad-hero-panel { max-width: 92%; } }
.ad-hero h1 {
	color: #FFFFFF;
	font-weight: 900;             /* Archivo Black */
	font-size: clamp(1.7rem, 2.6042vw, 3.125rem);  /* v1.5.1 — Figma 50px @1920 */
	line-height: 1.02;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	text-wrap: balance;
	max-width: 660px;
	margin-inline: auto;
}
.ad-hero p {
	color: #FFFFFF;
	font-size: clamp(0.9rem, 0.9375vw, 1.125rem);  /* Figma 18px */
	line-height: 1.66;
	max-width: 620px;
	margin-inline: auto;
}
/* White secondary pill (Join Us) — #514949 text = 7.43:1 */
.ad-btn-white .wp-block-button__link {
	background: #FFFFFF !important;
	color: #514949 !important;
}
.ad-btn-white .wp-block-button__link:hover { background: #EDEAE4 !important; }

/* Inner-page banner (skyline, 344px) */
.ad-banner {
	position: relative;
	background: var(--ad-footer);
	color: #FFFFFF;
}
.ad-banner .wp-block-cover__background { opacity: 0.45; }
.ad-banner h1, .ad-banner .wp-block-post-title {
	color: #FFFFFF;
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: 0.01em;
	font-size: clamp(1.8rem, 2.9167vw, 3.5rem);  /* Figma 56px */
	text-wrap: balance;
}
.ad-banner p { color: #F3EDE3; }
/* v1.9.198 — keep the inner-page banner sub-line (post-excerpt) to a tidy two
   lines. When a page has no hand-written excerpt, WordPress auto-pulls up to
   `excerptLength` words of body copy; a long auto-excerpt grew the cover and
   pushed the vertically-centred H1 up under the floating transparent header, so
   the title was clipped and the sub-line sprawled with a trailing "…". Clamping
   to two lines with a readable max-width holds the title in place and stops the
   excerpt from ever overflowing the band. */
.ad-banner .wp-block-post-excerpt {
	max-width: 46rem;
	margin-inline: auto;
}
.ad-banner .wp-block-post-excerpt p {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}
.ad-banner-inner { min-height: 372px !important; }

/* --------------------------------------------------------------------------
   5. BUTTONS — amber pill system (Figma: px 35 / py 20, radius 30,
   Manrope Bold 14, tracking .7px, uppercase; text corrected to brown)
   -------------------------------------------------------------------------- */
.wp-block-button__link,
.wc-block-components-button,
.woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .woocommerce #respond input#submit,
.bbp-submit-wrapper button,
.ae-btn, .ae-card__btn, .ae-details__cta,
.single_add_to_cart_button {
	background: var(--ad-btn-bg) !important;
	color: var(--ad-brown) !important;
	border: none;
	border-radius: var(--ad-radius-pill) !important;
	font-family: var(--ad-font-body);
	font-weight: 700;
	font-size: clamp(0.72rem, 0.7292vw, 0.875rem);  /* v1.5.1 — fluid Figma 14px */
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 1.1em 2.3em;
	transition: background-color 0.15s ease;
}
.wp-block-button__link:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover,
.single_add_to_cart_button:hover,
.ae-btn:hover, .ae-card__btn:hover, .ae-details__cta:hover,
.bbp-submit-wrapper button:hover {
	background: var(--ad-btn-hover) !important;
	color: var(--ad-brown) !important;
}
.is-style-outline .wp-block-button__link,
.ad-btn-secondary .wp-block-button__link,
.ae-btn--ghost {
	/* v1.5.0 — designer's WCAG redesign: secondary buttons on light bands
	   are navy with white text (15.98:1), not grey */
	background: var(--ad-ink) !important;
	color: #FFFFFF !important;
	border: none;
}
.is-style-outline .wp-block-button__link:hover,
.ad-btn-secondary .wp-block-button__link:hover,
.ae-btn--ghost:hover { background: #2C3852 !important; color: #FFFFFF !important; }

/* --------------------------------------------------------------------------
   6. DISCOVER CARDS (Figma 176:661 — cream #F7E8CD, border #F8F1EE,
   radius 16, title Archivo Medium 30/36, body Manrope 14/24)
   -------------------------------------------------------------------------- */
.ad-card {
	background: var(--ad-cream);
	border: 1.5px solid #F8F1EE;
	border-radius: var(--ad-radius);
	padding: 2rem 2.2rem;
	height: 100%;
}
.ad-card h3 {
	font-size: clamp(1.2rem, 1.5625vw, 1.875rem);  /* Figma 30px */
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--ad-body);
}
.ad-card p { color: var(--ad-body-soft); font-size: clamp(0.7rem, 0.7292vw, 0.875rem); line-height: 1.7; }
.ad-card img { max-height: 111px; width: auto; }

/* --------------------------------------------------------------------------
   7. PODCASTS (Figma 176:834) — feature tile radius 40 with bottom
   gradient + amber display type; side tiles 450×270.
   -------------------------------------------------------------------------- */
.ad-pod-head { align-items: flex-end; flex-wrap: nowrap !important; }
.ad-pod-head > .wp-block-group { flex: 1; }
@media (max-width: 781px) { .ad-pod-head { flex-wrap: wrap !important; } }
.ad-pod-intro {
	font-size: clamp(1rem, 1.5625vw, 1.875rem);  /* v1.5.1 — Figma 30px @1920 */
	line-height: 1.45;
	max-width: 930px;
}
/* v1.4.3 — feature tile rebuilt to the exact Figma 176:835 geometry
   (930×573 tile). All sizes are in cqw so every element keeps the exact
   design proportion at any width: 1cqw = tile-width/100. */
.ad-pod-feature {
	position: relative;
	display: block;
	border-radius: 40px;
	overflow: hidden;
	container-type: inline-size;
	aspect-ratio: 930 / 573;               /* Figma tile ratio */
	min-height: 0;
	background: var(--ad-footer);
}
.ad-pod-feature img.ad-pod-bg {
	position: absolute; inset: 0;
	width: 100%; height: 100%; object-fit: cover;
}
/* Figma has no heavy gradient band — only a soft vignette at the very
   bottom (Rectangle 969); legibility comes from the text outlines. */
.ad-pod-feature::after {
	content: "";
	position: absolute; inset: auto 0 0 0; height: 45%;
	background: linear-gradient(to top, rgba(13, 11, 10, 0.5) 0%, rgba(13, 11, 10, 0) 100%);
}
/* Central red YouTube play button — Figma 176:847 (153px, centre-x, centre-y 43.8%) */
.ad-pod-play {
	position: absolute; z-index: 2;
	left: 50%; top: 43.8%;
	transform: translate(-50%, -50%);
	width: 120px; width: 16.4cqw; /* px fallback first */
	line-height: 0;
	filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.35));
	transition: transform 0.2s ease;
}
.ad-pod-play svg { width: 100%; height: auto; }
.ad-pod-feature:hover .ad-pod-play,
.ad-pod-feature:focus-visible .ad-pod-play { transform: translate(-50%, -50%) scale(1.06); }
.ad-pod-caption {
	/* Figma 176:846 — caption block centred on x=22.9% (left 45.8% of the
	   tile), sitting 3.4cqw off the bottom */
	position: absolute; z-index: 2; left: 0; width: 45.8%; bottom: 24px; bottom: 3.4cqw;
	text-align: center; color: #FFFFFF;
}
.ad-pod-caption .ad-pod-big {
	display: block;
	font-family: var(--ad-font-display);
	font-weight: 800;
	font-size: clamp(2rem, 3.65vw, 4.375rem); font-size: 7.5cqw; /* Figma 70px @ 930 */
	line-height: 1.1;                       /* Figma 77px */
	letter-spacing: -0.02em;
	color: var(--ad-amber);
	/* Figma's thick white keyline around the amber letters, drawn as an
	   em-scaled text-shadow ring (screen-reader safe, unlike a duplicated
	   pseudo-element), plus a dark outer glow so the white edge itself
	   always has contrast on the photo */
	text-shadow:
		0.1em 0 0 #FFF, -0.1em 0 0 #FFF, 0 0.1em 0 #FFF, 0 -0.1em 0 #FFF,
		0.087em 0.05em 0 #FFF, 0.05em 0.087em 0 #FFF,
		-0.087em 0.05em 0 #FFF, -0.05em 0.087em 0 #FFF,
		0.087em -0.05em 0 #FFF, 0.05em -0.087em 0 #FFF,
		-0.087em -0.05em 0 #FFF, -0.05em -0.087em 0 #FFF,
		0.071em 0.071em 0 #FFF, -0.071em 0.071em 0 #FFF,
		0.071em -0.071em 0 #FFF, -0.071em -0.071em 0 #FFF,
		0 0.16em 0.35em rgba(13, 11, 10, 0.55);
}
.ad-pod-caption .ad-pod-small {
	display: block;
	margin-top: 4px; margin-top: 0.5cqw;
	font-family: var(--ad-font-display);
	font-weight: 600;
	font-size: clamp(1rem, 1.72vw, 2.0625rem); font-size: 3.55cqw; /* Figma 33px @ 930 */
	line-height: 1.4;
	letter-spacing: -0.02em;
	text-shadow: 0 2px 10px rgba(13, 11, 10, 0.7), 0 0 3px rgba(13, 11, 10, 0.55);
}
/* Podcast Video chip — Figma 176:841: 136×162 rounded glass square at the
   BOTTOM-right (right 5.7cqw, bottom 3.4cqw), podcast icon above the label */
.ad-pod-chip {
	position: absolute; z-index: 2;
	right: 40px; right: 5.7cqw; bottom: 24px; bottom: 3.4cqw; top: auto;
	width: 108px; width: 14.7cqw;
	display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	gap: 10px; gap: 1.4cqw;
	padding: 18px 8px; padding: 2.4cqw 1cqw;
	background: rgba(47, 40, 40, 0.6);
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);
	border-radius: 24px; border-radius: 3.2cqw;
	color: #FFC46B;
	font-family: var(--ad-font-display);
	font-weight: 600;
	text-align: center;
	font-size: 13px; font-size: 1.8cqw;
	line-height: 1.2;
}
.ad-pod-chip .ad-pod-chip-ico { width: 40px; height: 40px; width: 5.5cqw; height: 5.5cqw; }
.ad-video-tile { border-radius: 20px; overflow: hidden; }
/* v1.7.0 — YouTube facade: at rest only the red play button shows over the
   video thumbnail. YouTube's title bar / "Watch on YouTube" / share button
   live inside its iframe and cannot be hidden with CSS, so the real player
   is loaded only on click (assets/js/yt-facade.js). */
.ad-yt-facade {
	position: relative;
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #000;
}
.ad-yt-facade .ad-yt-play {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	margin: 0; padding: 0; border: 0;
	background: transparent;
	cursor: pointer;
	display: block;
}
.ad-yt-facade .ad-yt-thumb {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.ad-yt-facade .ad-yt-btn {
	position: absolute; left: 50%; top: 50%;
	transform: translate(-50%, -50%);
	width: 68px;
	line-height: 0;
	filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.35));
	transition: transform 0.2s ease;
}
.ad-yt-facade .ad-yt-btn svg { width: 100%; height: auto; display: block; }
.ad-yt-facade .ad-yt-play:hover .ad-yt-btn,
.ad-yt-facade .ad-yt-play:focus-visible .ad-yt-btn { transform: translate(-50%, -50%) scale(1.08); }
.ad-yt-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* Figma shows the episode tiles without visible captions — keep the titles
   for screen readers only (WCAG 2.4.6) so the column heights match */
.ad-video-tile figcaption {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
/* Right column: pin one episode to the top and one to the bottom so the
   column fills the same height as the feature tile (Figma 270+33+270=573) */
.ad-pod-side {
	display: flex; flex-direction: column;
	justify-content: space-between;
	gap: 1.5rem;
}
.ad-pod-side .wp-block-embed { margin: 0; }

/* --------------------------------------------------------------------------
   8. DISTINGUISHED GUESTS (Figma 195:1301) — arch-top portraits
   (450×503), name Archivo Medium 30, year bold 26 in accessible amber.
   -------------------------------------------------------------------------- */
.ad-guest { text-align: center; }
.ad-guest figure img {
	width: 100%;
	aspect-ratio: 450 / 503;
	object-fit: cover;
	border-radius: 16px; /* v1.5.0 — designer's WCAG redesign replaces the arch with a rounded rectangle */
}
.ad-guest .ad-guest-name {
	font-family: var(--ad-font-display);
	font-weight: 500;
	font-size: clamp(1.05rem, 1.5625vw, 1.875rem);  /* Figma 30px */
	letter-spacing: -0.02em;
	color: var(--ad-body);
	margin: 1.2rem 0 0.2rem;
}
.ad-guest .ad-guest-year {
	color: var(--ad-ruby); /* v1.5.0 — designer's ruby #A60641, 7.71:1 on white */
	font-weight: 800;
	font-size: clamp(0.95rem, 1.3542vw, 1.625rem);  /* Figma 26px */
	letter-spacing: 0.02em;
}

/* --------------------------------------------------------------------------
   9. FEATURED PUBLICATIONS — full-bleed photo band + badge captions
   v1.3.0: strip is edge-to-edge with no gaps and the badge sits on the
   photo's bottom-right corner, matching Figma 176:697.
   -------------------------------------------------------------------------- */
.ad-band-cream { background: var(--ad-cream-soft); }
.ad-band-white { background: #FFFFFF; }
.ad-pub-strip { gap: 0 !important; }
.ad-pub-card { text-align: center; }
.ad-pub-card .wp-block-image { margin: 0; }
.ad-pub-card img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
}
.ad-pub-badge-row {
	position: relative;
	z-index: 2;
	/* v1.6.3 — pill sits at the image's BOTTOM-RIGHT, lifted clear of the
	   base edge (Figma), per Shivaji. v1.6.4: !important on text-align so it
	   beats WordPress's has-text-align-center (which ships !important). */
	margin: -3.6rem 1.4rem 0 auto !important;
	text-align: right !important;
	padding-right: 0;
}
.ad-pub-badge {
	display: inline-block;
	background: var(--ad-amber-deep);
	color: #FFFFFF;                  /* 5.01:1 */
	border-radius: 8px;              /* v1.6.3 — rectangular rounded corners, per Figma */
	font-size: 0.85rem;              /* v1.6.3 — larger */
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.5em 1.3em;            /* v1.6.3 — more padding around the label */
}
/* v1.5.0 — designer's colour-coded badges. Book keeps its orange but with
   deep-brown text (white failed at 2.60:1); Event is nudged from the Figma
   #EE1E4B (4.27:1) to #D9123D so white text passes AA. */
.ad-pub-badge--magazine { background: #3960C4; color: #FFFFFF; }          /* 5.76:1 */
.ad-pub-badge--book     { background: #EE861E; color: var(--ad-brown); }  /* 5.88:1 */
.ad-pub-badge--event    { background: #D9123D; color: #FFFFFF; }          /* 5.12:1 */
.ad-pub-title {
	font-weight: 700;
	/* v1.6.3 — larger caption heading with more space above (clear of the
	   photo) and the sub-line kept close beneath it, per Shivaji */
	font-size: clamp(1.05rem, 1.35vw, 1.6rem);
	margin: 2.6rem 0 0.35rem;
	color: var(--ad-body);
}
.ad-pub-title a { color: var(--ad-body); text-decoration: none; font-weight: 700; font-size: inherit; }
.ad-pub-title a:hover, .ad-pub-title a:focus { color: var(--ad-amber-deep); text-decoration: underline; }
.ad-pub-sub { color: var(--ad-grey-text); font-size: clamp(0.65rem, 0.6771vw, 0.8125rem); margin-top: 0; }

/* Bridging split (Figma 186:905) — kicker 30 + heading 60 semibold;
   v1.3.0: photo is a rounded panel (24px), not a circle */
.ad-bridge-photo { position: relative; }
.ad-bridge-photo img {
	border-radius: 24px;
	aspect-ratio: 662 / 639;
	object-fit: cover;
	width: 100%;
	position: relative;
}
/* v1.6.3 — Figma collage: a second reading portrait overlaps the main
   photo at the bottom-right (white frame + shadow) over a soft mint glow,
   and the two columns get a wide gap so the text clears the collage. */
.ad-bridge .wp-block-columns { gap: clamp(2.5rem, 6vw, 7rem); }
.ad-bridge-photo::before {
	content: "";
	position: absolute;
	left: 6%; bottom: -12%;
	width: 60%; height: 48%;
	background: radial-gradient(closest-side, rgba(102, 212, 200, 0.5), rgba(102, 212, 200, 0));
	filter: blur(8px);
	z-index: 1;
}
.ad-bridge-photo img.ad-bridge-overlay {
	position: absolute;
	right: -4.5%; bottom: -8%; left: auto; top: auto;
	width: 44%;
	aspect-ratio: 225 / 240;
	object-fit: cover;
	border-radius: 24px;
	border: 6px solid #FFFFFF;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
	z-index: 2;
	display: block;
}
@media (max-width: 781px) {
	.ad-bridge-photo img.ad-bridge-overlay { width: 42%; right: 0; bottom: -6%; }
}

.ad-bridge-kicker {
	font-family: var(--ad-font-display);
	font-weight: 500;
	font-size: clamp(1.05rem, 1.5625vw, 1.875rem);  /* Figma 30px */
	letter-spacing: -0.02em;
	color: var(--ad-ink);
	margin-bottom: 0;
}
.ad-bridge h2 { font-weight: 600; }
.ad-bridge .ad-bridge-copy {
	color: var(--ad-grey-text);
	font-size: clamp(1rem, 1.5625vw, 1.875rem);  /* Figma 30px */
	line-height: 1.45;
}

/* Join Our Community (Figma 176:729) — brown 60px heading, with the
   floating member portraits scattered around the CTA (v1.6.3). */
.ad-join {
	text-align: center;
	position: relative;
	overflow: hidden;   /* keep edge avatars inside — nothing spills into the footer */
	/* generous top/bottom padding so the band breathes and the avatars fit */
	padding-top: clamp(3.5rem, 7vw, 8rem) !important;
	padding-bottom: clamp(3.5rem, 7vw, 8rem) !important;
}
.ad-join .ad-join-logo img { max-height: 210px; width: auto; }
.ad-join h2 {
	color: var(--ad-brown);
	font-size: clamp(1.9rem, 3.125vw, 3.75rem);  /* Figma 60px */
}
.ad-join p { font-size: clamp(1rem, 1.5625vw, 1.875rem); line-height: 1.45; }
/* subtitle wraps to two neat lines like the Figma instead of one wide line */
.ad-join-sub { max-width: 46ch; margin-left: auto !important; margin-right: auto !important; }
/* decorative member portraits — each positioned by its centre point */
.ad-join-avatar {
	position: absolute;
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 1;
	height: auto;
}
/* v1.9.0 — on tablet/phone the floating positions would overflow, so instead
   of hiding the member portraits, show them as a neat centred cluster of small
   circular faces (keeping their glows) right below the CTA buttons. */
@media (max-width: 900px) {
	.ad-join { overflow: visible; }
	/* v1.9.1 — faces cluster sits between the sub-line and the buttons */
	.ad-join-faces { margin: 0.5rem 0 1.6rem; line-height: 0; }
	.ad-join-avatar {
		position: static;
		display: inline-block;
		transform: none;
		width: 56px;
		height: auto;
		margin: 6px;
		vertical-align: middle;
	}
}
/* on desktop the wrapper is inert — its avatars float by absolute position */
.ad-join-faces { display: contents; }
@media (max-width: 900px) { .ad-join-faces { display: block; } }

/* Dark band utility */
.ad-band-dark { background: var(--ad-footer); color: #FFFFFF; }
.ad-band-dark h2, .ad-band-dark h3 { color: #FFFFFF; }
.ad-band-dark p { color: #EDE8E2; }

/* --------------------------------------------------------------------------
   10. WOOCOMMERCE — shop, single product, cart, checkout
   -------------------------------------------------------------------------- */
.woocommerce ul.products li.product,
.wc-block-grid__product { text-align: center; background: transparent; }
.woocommerce ul.products li.product img,
.wc-block-grid__product img {
	border-radius: 8px;
	box-shadow: 0 18px 30px -18px rgba(26, 26, 26, 0.45);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title {
	font-family: var(--ad-font-body);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ad-body);
	padding-top: 1rem;
}
.woocommerce ul.products li.product .price,
.wc-block-grid__product-price {
	color: var(--ad-red) !important;
	font-weight: 800;
	font-size: 1rem;
}
.ariade-shop-filters, .ad-shop-filters {
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: var(--ad-radius);
	box-shadow: 0 20px 45px -30px rgba(26, 34, 47, 0.4);
	padding: 1.2rem 1.5rem;
}
.ad-shop-filters label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ad-body-soft);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--ad-red);
	font-weight: 800;
	font-size: 1.5rem;
}
.woocommerce div.product .product_meta,
.ad-product-meta { font-size: 0.9rem; color: var(--ad-body-soft); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-bottom-color: var(--ad-amber);
}
.woocommerce .quantity .qty {
	border: 1px solid var(--ad-line);
	border-radius: 8px;
	min-height: 44px;
}
.woocommerce table.shop_table {
	border: none;
	border-collapse: separate;
	border-spacing: 0 0.8rem;
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-top: none; }
.woocommerce table.shop_table tbody tr,
.woocommerce-cart-form__cart-item { background: #FAF7F0; border-radius: 12px; }
.cart_totals, .ad-panel,
.woocommerce-cart .cart-collaterals .cart_totals {
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: var(--ad-radius);
	padding: 1.5rem;
}
.woocommerce form .form-row label,
.wc-block-components-text-input label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--ad-body);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.wc-block-components-text-input input {
	background: #FDFBF7;
	border: 1px solid #C9BFAE;
	border-radius: 8px;
	min-height: 44px;
	padding: 0.6em 0.9em;
	color: var(--ad-body);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--ad-amber-deep); }
.woocommerce form .form-row .required { color: var(--ad-red); }
#payment, .woocommerce-checkout #payment {
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: var(--ad-radius);
}
#payment div.payment_box, .woocommerce-checkout #payment div.payment_box {
	background: var(--ad-cream-soft);
	color: var(--ad-body);
}
#payment div.payment_box::before { border-bottom-color: var(--ad-cream-soft); }
.woocommerce-message { border-top-color: var(--ad-amber-deep); }
.woocommerce-error   { border-top-color: var(--ad-red); }

/* --------------------------------------------------------------------------
   11. ANANYOO ACCESSIBLE EVENTS — Anandodhara skin (plugin ships navy;
   retinted here, every pair still ≥ 4.5:1)
   -------------------------------------------------------------------------- */
.ae-item__ico, .ae-ax__ico, .ae-notes__ico {
	background: var(--ad-cream) !important;
	color: var(--ad-amber-deep) !important;
}
.ae-card, .ae-details {
	border-color: var(--ad-line) !important;
	border-radius: var(--ad-radius) !important;
}
.ae-date-tile {
	background: var(--ad-cream) !important;
	color: var(--ad-brown) !important;
}
.ae-card--past .ae-card__btn { background: var(--ad-footer) !important; color: #FFFFFF !important; }
.ae-view-btn[aria-pressed="true"],
.ae-pagination .page-numbers.current {
	background: var(--ad-footer) !important;
	color: #FFFFFF !important;
}
.ae-badge--upcoming { background: var(--ad-cream); color: var(--ad-brown); }

/* v1.9.30 — Rows list layout (Community Events Figma): cream rows, ruby date
   badge, ruby hover fill, amber "Know more" button; source tag stays a light
   neutral capsule. Every pair keeps ≥ 4.5:1; ruby #A60641 is 7.71:1 on white. */
.ae-row {
	background: #faf9f6 !important;
	border-color: #f7f5f1 !important;
	border-radius: var(--ad-radius) !important;
}
.ae-row:hover,
.ae-row:focus-within { background: var(--ad-ruby) !important; color: #FFFFFF !important; }
.ae-row__badge { background: var(--ad-ruby) !important; color: #FFFFFF !important; border-radius: 14px !important; }
.ae-row:hover .ae-row__badge,
.ae-row:focus-within .ae-row__badge { background: #7C0430 !important; }  /* deep ruby, 9.4:1 */
.ae-row__title { font-family: "Archivo", "Noto Serif Bengali", "Barlow Semi Condensed", sans-serif; }
.ae-row__div { background: rgba(53, 33, 7, 0.16) !important; }
.ae-row:hover .ae-row__div,
.ae-row:focus-within .ae-row__div { background: rgba(255, 255, 255, 0.32) !important; }
.ae-row__tab { background: #eaeaea !important; }
.ae-row__tab span { color: #2c2c2c !important; }   /* #2c2c2c on #eaeaea ≈ 11.3:1 */
.ae-row__btn {
	background: var(--ad-amber) !important;        /* #F49C26 */
	color: var(--ad-brown) !important;             /* #352107 on amber ≈ 5.3:1 */
	border-radius: var(--ad-radius-pill) !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ae-row__btn:hover { background: var(--ad-amber-hover) !important; color: var(--ad-brown) !important; }  /* #E08A0F */
.ae-row__btn:focus-visible { outline: 3px solid var(--ad-amber-deep) !important; }
.ae-row__title a:focus-visible { outline-color: var(--ad-amber-deep) !important; }
.ae-row:hover .ae-row__title a:focus-visible,
.ae-row:focus-within .ae-row__title a:focus-visible,
.ae-row:hover .ae-row__btn:focus-visible,
.ae-row:focus-within .ae-row__btn:focus-visible { outline-color: #FFFFFF !important; }

/* Single event — header band, section headings, what-to-expect */
/* ===== Event details band — "Option B" labelled columns =====
   Ruby date column on the left, then When / Where / Organiser / Email / Price
   as tidy columns each with a small ruby label above the value, split by hair
   dividers. Uses the plugin's .ae-ehead__lab (screen-reader label) exposed. */
.ae-ehead {
  background: var(--ad-cream-soft) !important;
  border-color: var(--ad-line) !important;
  border-radius: var(--ad-radius) !important;
  align-items: stretch !important;
  gap: 0 !important;
  padding: 8px !important;
}
.ae-ehead__badge {
  background: linear-gradient(155deg, var(--ad-ruby), #7C0430) !important;
  color: #FFFFFF !important;
  width: 104px !important;
  height: auto !important;
  align-self: stretch !important;
  border-radius: 14px !important;
  flex: 0 0 auto !important;
}
.ae-ehead__main { display: flex !important; align-items: center !important; flex: 1 1 auto; }
.ae-ehead__meta { gap: 0 !important; align-items: stretch !important; }
.ae-ehead__chip {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 3px !important;
  padding: 8px 22px !important;
  position: relative;
  font-size: inherit !important;
  /* v1.9.70 — the events plugin 1.4.x sets flex: 1 1 100% on each chip,
     forcing every field onto its own full-width row. The approved Option B
     design has the fields SIDE BY SIDE as labelled columns with hairline
     dividers — restore that by letting each chip size to its content. */
  flex: 0 1 auto !important;
  border-bottom: 0 !important;   /* plugin's dashed row divider — ours is the vertical hairline */
}
/* v1.9.70 — Option B shows the visitor's local time as a small second line
   under the date (not inline beside it), keeping the WHEN column narrow. */
.ae-ehead__val .ae-localtime { display: block !important; margin: 4px 0 0 !important; }
/* v1.9.71 — match Option B's proportions exactly:
   (1) the local-time line is quiet small warm-grey TEXT in the sample, not
       the plugin's blue pill chip (#5b5346 on cream ≈ 7:1, AA-safe);
   (2) values are narrow two-line columns (e.g. "Anandodhara Cultural /
       Committee"), so the five fields sit in one slim row with dividers;
   (3) the date badge is compact — smaller digits, tighter padding — so the
       whole band is one slim strip like the sample, not a tall tower. */
.ae-ehead__val .ae-localtime {
  background: none !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important; color: #5b5346 !important;
  font-size: 0.82rem !important; font-weight: 500 !important;
}
.ae-ehead__val { white-space: normal !important; max-width: 26ch; }
.ae-ehead__badge { padding: 14px 8px !important; gap: 2px !important; }
.ae-ehead__badge b { font-size: 1.4rem !important; }
.ae-ehead__badge small { font-size: 0.8rem !important; }
.ae-ehead__chip { padding: 10px 20px !important; }
.ae-ehead__chip + .ae-ehead__chip::before {
  content: "";
  position: absolute; left: 0; top: 14px; bottom: 14px;
  width: 1px; background: rgba(166, 6, 65, 0.16);
}
.ae-ehead__ico { display: none !important; }   /* labels replace the icons here */
.ae-ehead__lab {                                /* expose the plugin's SR-only label */
  position: static !important; width: auto !important; height: auto !important;
  margin: 0 !important; overflow: visible !important; clip: auto !important;
  /* v1.9.69 — the events plugin's 1.4.x "ticket" layout sets flex: 0 0 82px
     on this label (its label-COLUMN width in the plugin's row chips). Our
     chips are rotated to columns, where that 82px basis becomes HEIGHT and
     stretched every chip ~4x tall (the big empty gaps in the meta card).
     Neutralise the basis so the label sizes to its one line of text. */
  flex: 0 0 auto !important;
  white-space: nowrap;
  font-size: 0.66rem; letter-spacing: 0.13em; text-transform: uppercase;
  font-weight: 700; color: var(--ad-ruby);
}
.ae-ehead__val { flex: 0 1 auto !important; /* v1.9.69 — plugin sets flex:1 1 0 (row layout); neutralised for our column chips */
  font-size: 0.92rem; color: #2f2a24; font-weight: 600; line-height: 1.35; }
.ae-ehead__val a { color: #14448a !important; }
/* "Free entry" (the Price field) → amber pill */
.ae-ehead__chip--price .ae-ehead__val {
  display: inline-flex; align-items: center;
  background: var(--ad-amber); color: var(--ad-brown);
  font-weight: 700; padding: 3px 13px; border-radius: 999px; font-size: 0.82rem;
}
/* v1.9.70 — the events plugin 1.4.x draws the Price/Capacity chip itself as a
   navy OUTLINE pill (1.6px border, 999px radius, top margin) with its label
   hidden. Here the label is exposed and the value is already the amber pill,
   so that outline circled "PRICE + Free entry" in a strange oval. Remove the
   outline treatment so the price row matches the other labelled rows. */
.ae-ehead__chip--price,
.ae-ehead__chip--capacity {
  border: 0 !important;
  border-radius: 0 !important;
  margin-top: 0 !important;
  background: none !important;
}
.ae-ehead__sub { color: var(--ad-brown) !important; }
@media (max-width: 760px) {
  .ae-ehead__meta { flex-direction: column; }
  .ae-ehead__chip { padding: 7px 14px !important; }
  .ae-ehead__chip + .ae-ehead__chip::before { display: none; }
}
.ae-sec { color: var(--ad-brown) !important; font-family: var(--ad-font-display); }
.ae-expect li::before { background: var(--ad-amber) !important; }
.ae-row__title a:hover { color: inherit; }
/* v1.9.39 — On row hover/focus the whole card turns ruby, so every text part
   (including the title link) must go white for contrast (white on #A60641 ≈
   7.71:1). Applies in both List and Grid. */
.ae-row:hover .ae-row__title a,
.ae-row:focus-within .ae-row__title a,
.ae-row:hover .ae-row__sub,
.ae-row:focus-within .ae-row__sub,
.ae-row:hover .ae-row__meta,
.ae-row:focus-within .ae-row__meta,
.ae-row:hover .ae-row__desc,
.ae-row:focus-within .ae-row__desc { color: #FFFFFF !important; }

/* v1.9.38 — Grid view = the List rows reflowed into a 2-up card grid. Same
   markup and skin as the List (cream card, ruby badge, amber button), so the
   Grid inherits the Figma "List" style automatically; only the layout changes.
   List (full-width rows) stays the default; the Grid/List switch toggles the
   .ae-embed layout class (plugin v1.3.3+). */
.ae-embed.ae-layout-grid .ae-rows {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.15rem;
}
.ae-embed.ae-layout-grid .ae-row {
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas:
		"badge body"
		"desc  desc"
		"cta   cta";
	align-items: start;
	gap: 0.9rem 1.2rem;
	padding: 1.3rem 1.4rem 1.3rem 2.3rem;
}
.ae-embed.ae-layout-grid .ae-row__badge    { grid-area: badge; align-self: start; }
.ae-embed.ae-layout-grid .ae-row__body     { grid-area: body; align-self: center; }
.ae-embed.ae-layout-grid .ae-row__div      { display: none; }
.ae-embed.ae-layout-grid .ae-row__descwrap { grid-area: desc; }
.ae-embed.ae-layout-grid .ae-row__cta      { grid-area: cta; justify-content: flex-start; margin-top: 0.1rem; }
@media (max-width: 900px) {
	.ae-embed.ae-layout-grid .ae-rows { grid-template-columns: 1fr; }
}

/* Filter "Apply" button → amber/brown like the site buttons (plugin ships a
   neutral blue). Brown #352107 on amber #F49C26 ≈ 5.3:1. */
.ae-filter__btn {
	background: var(--ad-amber) !important;
	color: var(--ad-brown) !important;
	border: none !important;
	border-radius: var(--ad-radius-pill) !important;
}
.ae-filter__btn:hover { background: var(--ad-amber-hover) !important; }
.ae-filter__btn:focus-visible { outline: 3px solid var(--ad-amber-deep) !important; outline-offset: 2px; }

/* "Accessibility at this event" panel — retint the plugin's blue header band to
   the ruby brand so it matches the rest of the page (white 7.71:1 on ruby;
   cream sub-line ~6.4:1). */
.ae-access__head { background: linear-gradient(120deg, var(--ad-ruby), #7C0430) !important; }
.ae-access__sub  { color: #F6E7D6 !important; }
.ae-access__head-ico { background: rgba(255, 255, 255, 0.18) !important; }

/* Single-event banner ([ananevt_event_banner] inside the night-skyline cover).
   The .ad-banner cover already sets white text + the overlay; here we style
   the pill, the bilingual title and the sub-line / excerpt. */
.ad-banner-event .ae-ebanner { text-align: center; max-width: 780px; margin-inline: auto; }
.ae-ebanner__pill {
	display: inline-block;
	background: var(--ad-amber);
	color: var(--ad-brown);          /* #352107 on amber ≈ 5.3:1 */
	font-family: var(--ad-font-body);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 7px 15px;
	border-radius: var(--ad-radius-pill);
	margin-bottom: 1rem;
}
.ad-banner-event h1.ae-ebanner__title {
	font-family: var(--ad-font-display);
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.16;
	margin: 0;
}
.ae-ebanner__sub {
	margin: 0.5rem 0 0;
	font-weight: 700;
	font-size: clamp(1rem, 1.2vw, 1.2rem);
	color: #FFFFFF !important;
}
/* Excerpt stays on a single line (ellipsis if longer), keeping the band tidy. */
.ae-ebanner__exc {
	margin: 0.8rem auto 0;
	max-width: 720px;
	font-size: 0.98rem;
	line-height: 1.6;
	color: #F3EDE3 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* Event banner shares the inner-banner height/padding (top-aligned globally);
   only the gap down to the meta band is event-specific. */
.ad-banner-event + .wp-block-post-content,
.ad-banner-event + .entry-content { padding-top: 1.6rem; }

/* Author + date byline, shifted to the bottom of the event article. */
.ad-event-byline {
	margin-top: var(--wp--preset--spacing--40, 2rem);
	padding-top: 1.1rem;
	border-top: 1px solid var(--ad-line);
	color: #5b5346;
	font-size: 0.9rem;
}
.ad-event-byline .wp-block-post-author__name { font-weight: 700; color: var(--ad-brown); }
.ad-event-byline .wp-block-post-date, .ad-event-byline time { color: #5b5346; }
.ad-event-byline a { color: var(--ad-amber-deep); }

/* --------------------------------------------------------------------------
   12. FORUM (bbPress)
   -------------------------------------------------------------------------- */
#bbpress-forums { font-family: var(--ad-font-body); font-size: 0.95rem; }
#bbpress-forums li.bbp-header {
	background: var(--ad-footer);
	color: #FFFFFF;
	border-radius: 10px 10px 0 0;
}
#bbpress-forums li.bbp-header a { color: #FFD79B; }
#bbpress-forums ul.bbp-forums, #bbpress-forums ul.bbp-topics,
#bbpress-forums ul.bbp-replies {
	border: 1px solid var(--ad-line);
	border-radius: 10px;
	overflow: hidden;
}
#bbpress-forums div.odd, #bbpress-forums ul.odd  { background: #FFFFFF; }
#bbpress-forums div.even, #bbpress-forums ul.even { background: var(--ad-cream-soft); }
#bbpress-forums .bbp-forum-title, #bbpress-forums .bbp-topic-permalink {
	font-weight: 700;
	color: var(--ad-amber-deep);
}

/* --------------------------------------------------------------------------
   13. FOOTER (Figma 176:778 — #272322, Manrope, amber column headings
   20px/1px tracking, links bold 16 uppercase, badge #3D3D3D radius 10)
   NOTE: selectors deliberately match the parent's `footer.site-footer`
   specificity (+ !important on surfaces) — the parent theme.css styles the
   footer band with element+class selectors and would otherwise repaint the
   Anandodhara footer with Ariade's light branding surfaces (v1.1.1 fix).
   -------------------------------------------------------------------------- */
/* v1.1.2: the parent home page rule `.home .site-footer{background:#ECF1F8
   !important}` (newsletter strip) outranks even the inline background, so we
   match/exceed its specificity with !important; child loads later and wins. */
.home .site-footer, .home footer.site-footer,
.wp-site-blocks .site-footer,
footer.site-footer, .site-footer, .site-footer .footer-body,
.site-footer .footer-cta, .site-footer .footer-cta-in {
	background: var(--ad-footer) !important;
	color: #FFFFFF;
}
/* v1.5.7 — the DESIGNER'S OWN footer pattern, exported straight from the
   Figma (footer layer "image 15", 1920×825): the ornamental frame with the
   beaded border, coloured corner flowers and gold mandalas. Level approved by Shivaji live on staging (second pass): ~8.2% effective,
   so the artwork mixes into the charcoal without competing with text.
   Stretched 100%/100% so the border frame always hugs the footer edges.
   Purely decorative — the white/amber text contrast stays ≥ 7:1. */
.home .site-footer.ad-footer,
.wp-site-blocks .site-footer.ad-footer,
.site-footer.ad-footer, .site-footer.on-dark {
	background: var(--ad-footer) url(assets/img/footer-pattern-2.webp) no-repeat center !important; /* v1.6.2 — renamed file so stale browser caches can never show an old level */
	background-size: 100% 100% !important;
}
.site-footer .footer-body, .site-footer .footer-cta, .site-footer .footer-cta-in {
	background: transparent !important;
}
footer.site-footer p, .site-footer p { color: #FFFFFF; }
footer.site-footer a, .site-footer a,
.site-footer .wp-block-navigation a,
.site-footer .wp-block-navigation-item__content {
	color: #FFFFFF !important;
	background: none !important;
}
footer.site-footer a:hover, .site-footer a:hover {
	color: var(--ad-amber) !important;
	text-decoration: underline;
}
.ad-footer-blurb { font-weight: 400; font-size: 0.75rem; letter-spacing: 1px; /* v1.5.3 per Shivaji */ line-height: 1.65; max-width: 527px; }
.ad-footer-heading {
	color: var(--ad-amber) !important;
	font-family: var(--ad-font-body);
	font-weight: 600; /* v1.4.4 per Shivaji */
	font-size: clamp(0.72rem, 0.8854vw, 1.0625rem);   /* v1.5.1 — Figma 17px @1920 */
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.ad-footer-links a {
	font-weight: 400; /* v1.4.4 per Shivaji */
	font-size: 0.75rem;  /* v1.5.3 per Shivaji */
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 2.1; /* v1.9.197 — was 2.4; tighter footer menu rows per Shivaji. 2.1 × 0.75rem ≈ 25px, still ≥ the 24px WCAG 2.2 target-size minimum */
}
/* v1.9.197 — trim the vertical gap between the stacked footer nav items.
   WordPress applies a default 10px block gap to every .is-layout-flex; the
   footer link lists are vertical, so that 10px stacked up between each menu
   item on top of the 2.4 line-height. Drop the gap to 3px so the menu reads
   as one tidy list. Each link line box stays ~25px, keeping the tap target
   above the 24px WCAG 2.2 minimum, and the ~28px item-to-item pitch keeps the
   spacing exception satisfied where the mobile line-height is smaller. */
.ad-footer-links.wp-block-navigation,
.ad-footer-links .wp-block-navigation__container {
	gap: 3px;
}
.ad-footer-contact { font-weight: 400; font-size: 0.75rem; /* v1.5.3 per Shivaji */ line-height: 2.4; }
/* v1.5.4 — proper SVG contact icons (the unicode glyphs looked tiny),
   with a clear gap before the text */
.ad-footer-contact .ad-contact-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 0.9rem;
}
.ad-footer-contact .ad-ico {
	display: inline-flex;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	color: #FFFFFF;  /* v1.5.9 per Shivaji — white icons, not amber */
}
.ad-footer-contact .ad-ico svg { width: 100%; height: 100%; }
.ad-footer-badge {
	background: var(--ad-footer-soft);
	border-radius: 10px;
	padding: 0.7rem 1.4rem;
	font-weight: 700;
	font-size: 0.95rem;   /* v1.5.3 per Shivaji */
	color: #FFFFFF;
	width: 100%;
	max-width: 400px;     /* v1.5.3 — same width as the footer photo below */
}
.ad-footer-badge .ad-badge-accent { color: var(--ad-amber); font-weight: 800; }
.ad-footer-rule {
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	margin: 2rem 0;
	/* v1.5.2 — full-width rule per Shivaji (WP separators default to a short
	   centred 100px line) */
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}
/* v1.5.3 — belt and braces: ANY separator inside the footer runs full width,
   even if a Site-Editor copy of the footer still has the old markup */
.site-footer hr.wp-block-separator,
.site-footer .wp-block-separator {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}
.ad-footer-photo img { border-radius: 12px; width: 100%; max-width: 400px; height: auto; /* v1.5.3 — ~50px wider, proportional */ }
@media (min-width: 782px) {
	/* v1.5.3 — widen the photo column itself so the image can reach 400px */
	.wp-block-column.ad-footer-photo { flex: 0 0 400px !important; max-width: 400px !important; }
}
.ad-footer-legal { font-size: clamp(0.625rem, 0.651vw, 0.78125rem); letter-spacing: 0.02em; color: #E8E4DF; text-align: center; }
/* v1.5.5 — "Design by Ananyoo" credit beside the copyright */
.ad-footer-legal .ad-legal-sep { margin: 0 0.5em; opacity: 0.6; }
.ad-footer-legal a {
	color: #FFFFFF !important;      /* 15.56:1 on #272322 */
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ad-footer-legal a:hover, .ad-footer-legal a:focus { color: var(--ad-amber) !important; }

/* --------------------------------------------------------------------------
   14. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.ad-pod-chip { display: none; }
}
@media (max-width: 781px) {
	/* v1.9.67 — the 72px mobile padding-top is gone: top/bottom clearance now
	   comes from the sitewide hero controls, same value on every screen. */
	.ad-banner-inner { min-height: 320px !important; }
	.ad-banner-event + .wp-block-post-content,
	.ad-banner-event + .entry-content { padding-top: 1.1rem; }
	.ad-hero-panel { padding: 1.6rem 1.2rem; }
	.ad-card { padding: 1.5rem; }
	.ad-join .ad-join-logo img { max-height: 140px; }
	.ad-pod-feature { border-radius: 24px; }
	.woocommerce table.shop_table_responsive tr td::before { color: var(--ad-body-soft); }

	/* v1.8.1 — HEADER overflow fix (the "right gap throughout mobile"):
	   the header row is flex-wrap:nowrap with a fixed 170px logo + the actions
	   cluster containing the desktop-only DONATE button; together they overrun
	   the screen, and that single overflow makes the WHOLE page scroll
	   sideways (the grey gap on every section). The DONATE button is classed
	   .only-desktop, so honour that on phones; a belt-and-braces overflow
	   clamp stops any other stray sideways scroll. */
	.site-header .header-actions .btn.btn-primary.only-desktop,
	.site-header .header-actions .only-desktop,
	.site-header .only-desktop { display: none !important; }
	.site-header .wrap.header-inner { flex-wrap: wrap; gap: 0.5rem 0.75rem; }
	.wp-site-blocks { overflow-x: clip; }

	/* v1.9.0 — mobile polish, audited in a true 390px viewport:

	   (1) HERO — the montage was ~85% hidden behind the text panel on phones.
	   Stack it instead: the montage becomes a real image on top, the heading,
	   copy and CTAs sit below it on the charcoal band (fixed px height, not vh,
	   so it can't inflate). This is also the natural first slide for the
	   desktop hero carousel once the designer's extra images arrive. */
	.ad-hero { display: flex !important; flex-direction: column !important; min-height: 0 !important; }
	.ad-hero .wp-block-cover__background { display: none !important; }
	.ad-hero .wp-block-cover__image-background {
		position: relative !important; inset: auto !important;
		height: 300px !important; min-height: 300px !important;
		width: 100% !important; object-fit: cover !important; opacity: 1 !important;
	}
	.ad-hero::before { display: none !important; }
	.ad-hero .wp-block-cover__inner-container {
		position: relative !important;
		padding: 1.75rem 1.25rem 2.25rem !important;
		background: var(--ad-footer) !important;
	}
	.ad-hero-panel {
		background: transparent !important;
		-webkit-backdrop-filter: none !important; backdrop-filter: none !important;
		border: none !important; max-width: 100% !important; padding: 0 !important;
	}

	/* (5) FOOTER ornament — Shivaji's own Indian alpona motif, applied ONLY on
	   mobile. The desktop frame pattern can't map onto a tall, narrow mobile
	   footer without streaking, so here we tile the alpona vertically down the
	   RIGHT edge (top→bottom, right-aligned repeat-y) on a pseudo-element, at a
	   low opacity that blends into the charcoal — matched to the faint desktop
	   ornament, "not full white". Opacity is the single knob to nudge if it
	   reads too bright/faint. Footer children sit above it via z-index. */
	.site-footer.ad-footer,
	.home .site-footer.ad-footer,
	.wp-site-blocks .site-footer.ad-footer,
	.site-footer.on-dark {
		background-image: none !important;
		background-color: var(--ad-footer) !important;
		position: relative !important;
		overflow: hidden !important;
	}
	.site-footer.ad-footer::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		pointer-events: none;
		background: url(assets/img/footer-alpona-mobile.webp) top right / 168px auto repeat-y;
		opacity: 0.10; /* ~desktop level — blend into the dark, not full white */
	}
	.site-footer.ad-footer > * { position: relative; z-index: 1; }
	.ad-footer-links a,
	.ad-footer-contact .ad-contact-row { line-height: 1.9 !important; }

	/* (2) GUESTS — tighten the name line-height and close the name→year gap */
	.ad-guest-name { line-height: 1.15 !important; margin: 0.55rem 0 0.1rem !important; }
	.ad-guest-year { margin: 0.15rem 0 0 !important; line-height: 1.2 !important; }

	/* (3) PUBLICATIONS — title and sub-line sit closer, and the sub-line gets
	   breathing room before the next stacked image */
	.ad-pub-title { line-height: 1.2 !important; margin: 2rem 0 0.2rem !important; }
	.ad-pub-sub { line-height: 1.35 !important; margin: 0 0 2rem !important; }

	/* PODCASTS head — stack the intro over the "View more" button instead of
	   squeezing them side by side. */
	.ad-pod-head {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 1rem !important;
		flex-wrap: wrap !important;
	}
	.ad-pod-head > .wp-block-group { flex: 1 1 100% !important; width: 100% !important; }
	.ad-pod-head .wp-block-buttons { justify-content: flex-start !important; }

	/* DISTINGUISHED GUESTS — a compact 2-up grid instead of one huge portrait
	   per row (the .ad-guest class sits on the column itself). */
	.wp-block-columns:has(> .ad-guest) {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 1.75rem 1rem !important;
	}
	.wp-block-columns:has(> .ad-guest) > .ad-guest {
		flex-basis: auto !important;
		width: auto !important;
		min-width: 0 !important;
		margin: 0 !important;
	}
}
@media (max-width: 600px) {
	.ad-section-title { font-size: 1.85rem; }
}

/* Respect reduced-motion users (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* =====================================================================
   Section 15 — v1.9.6 ACCESSIBILITY REMEDIATION (post-audit: axe + WAVE)
   Fixes the contrast findings from the 09-Aug automated audit.
   ===================================================================== */

/* (A) HERO — REVERTED to the Figma design (v1.9.11). The v1.9.6/1.9.7 fixes
   turned the header into a solid bar and the panel into a solid near-black box
   so axe/WAVE could "read" the text; that broke the look (header blended into
   the hero, panel went black). The Figma intends a TRANSPARENT floating header
   over the montage's soft top gradient cap, and a DARK frosted-glass panel.
   We restore that here. The real fix for the original contrast bug was that the
   base panel was tinted with 5% WHITE (lightening the backdrop under white
   text) — it is now dark-tinted glass (see .ad-hero-panel base rule), which is
   both Figma-accurate and legible by measurement.
   TRADE-OFF (accepted): text over the hero image again shows as "manual review"
   in axe/WAVE (they cannot verify contrast over an image). It passes by
   measurement and Lighthouse Accessibility stays 100.
   So: the panel uses the base hero rules. The HEADER is handled below. */

/* (A2) FRONT-PAGE HEADER — v1.9.12. A fully transparent header makes WAVE read
   the nav against the white PAGE background (it ignores the hero photo), so the
   white/amber nav failed contrast (8 "very low contrast"). We give the header a
   soft dark tint — enough for WAVE to resolve a dark background for the nav —
   then FADE it into the montage so there is no hard seam, and scatter a few
   faint star-dots along the bottom edge so it dissolves into the night sky.
   Tuned live with Shivaji. Front page only; inner pages keep the base header.
   v1.9.243 — restored EXACTLY as tuned (the brief v1.9.242 flat bar made a
   hard header/hero demarcation line Shivaji rejected). The seamless blend now
   works on every carousel slide because the three new slide images carry the
   same baked-in dark "night cap" top that the montage export always had —
   the tint and fade melt into the photo again instead of reading as a bar. */
@media (min-width: 782px) {
	body.home .site-header {
		background-color: rgba(16, 21, 30, 0.55) !important; /* WAVE reads this for the nav */
		box-shadow: none !important;
		overflow: visible !important;
	}
	/* fade the tint into the hero below — removes the hard header/hero seam */
	body.home .site-header::after {
		content: "";
		position: absolute; left: 0; right: 0; top: 100%;
		height: 300px; pointer-events: none; z-index: 0;
		background: linear-gradient(to bottom,
			rgba(16, 21, 30, 0.55) 0%,
			rgba(16, 21, 30, 0.34) 25%,
			rgba(16, 21, 30, 0.18) 50%,
			rgba(16, 21, 30, 0.07) 75%,
			rgba(16, 21, 30, 0) 100%);
	}
	/* faint decorative star-dots along the header's lower band (aria-hidden by
	   nature — pure CSS, no content) so the edge melts into the starfield */
	body.home .site-header::before {
		content: "";
		position: absolute; left: 0; bottom: 15px;
		width: 1.4px; height: 1.4px; border-radius: 50%;
		background: transparent; pointer-events: none; z-index: 2;
		box-shadow:
			120px -22px 0 0.4px rgba(255, 255, 255, 0.26),
			300px 5px 0 0.3px rgba(220, 230, 250, 0.20),
			470px -12px 1px 0.4px rgba(255, 255, 255, 0.24),
			640px -28px 0 0.3px rgba(235, 240, 255, 0.18),
			820px 8px 0 0.4px rgba(255, 255, 255, 0.22),
			1000px -18px 1px 0.5px rgba(255, 255, 255, 0.30),
			1180px -4px 0 0.3px rgba(222, 230, 248, 0.20),
			1360px -25px 0 0.4px rgba(255, 255, 255, 0.26),
			1540px 6px 1px 0.3px rgba(240, 244, 255, 0.18),
			1720px -14px 0 0.4px rgba(255, 255, 255, 0.24),
			1860px -30px 0 0.3px rgba(235, 240, 255, 0.20);
	}
}

/* (B) CARD LINK contrast — inline links inside the cream intro cards were
   amber-deep #B3540A on cream #F7E8CD = 4.14:1 (needs 4.5). Darken to
   #9A4708 (~5.3:1 on cream) and keep them underlined so colour is not the
   only signal (WCAG 1.4.1). Buttons are excluded. */
.ad-card a:not(.wp-element-button):not(.wp-block-button__link) {
	color: #9A4708 !important;
	text-decoration: underline;
}
.ad-card a:not(.wp-element-button):not(.wp-block-button__link):hover,
.ad-card a:not(.wp-element-button):not(.wp-block-button__link):focus {
	color: #6E2F02 !important;
}

/* =====================================================================
   Section 16 — v1.9.8 FOOTER "Help Us Grow" donate CTA
   Moved out of the (renamed) Information column to the bottom of the
   Contact Us column: a small amber pill with a heart icon (left) and the
   label (right). Brown on amber = 7.02:1 (AA). Icon is decorative; the
   link text carries the accessible name.
   ===================================================================== */
/* High specificity + !important: the footer's generic link rules (.site-footer a)
   otherwise strip the pill's background/colour and add an underline, leaving it
   looking like plain indented text. These win and give a real amber pill,
   left-aligned with the column (the icons/heading), with a red heart. */
.site-footer a.ad-footer-donate,
.ad-footer a.ad-footer-donate {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.4rem;            /* was a ~33px gap; tightened */
	margin-left: 0;
	padding: 0.5rem 1rem;
	background: var(--ad-btn-bg) !important;
	color: var(--ad-brown) !important;
	border-radius: var(--ad-radius-pill);
	font-family: var(--ad-font-body);
	font-weight: 800;
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	line-height: 1;
}
.site-footer a.ad-footer-donate:hover,
.site-footer a.ad-footer-donate:focus,
.ad-footer a.ad-footer-donate:hover,
.ad-footer a.ad-footer-donate:focus {
	background: var(--ad-btn-hover) !important;
	color: var(--ad-brown) !important;
	text-decoration: none !important;
}
.ad-footer-donate .ad-donate-ico { display: inline-flex; }
/* Heart: red (decorative — aria-hidden — so contrast rules don't apply; the
   link text "Help Us Grow" carries the accessible name). #D9123D is the brand
   Event-badge red, kept for palette cohesion. */
.ad-footer-donate svg { width: 18px; height: 18px; display: block; fill: #D9123D !important; }

/* =====================================================================
   Section 17 — v1.9.10 LEGAL / INFO PAGES (Terms, Privacy, FAQ, Accessibility)
   A comfortable reading measure and clear heading rhythm for the internal
   text pages linked from the footer "Information" column.
   ===================================================================== */
.ad-legal { max-width: 780px !important; margin-inline: auto; }
.ad-legal > h1:first-child { margin-bottom: 0.35em; }
.ad-legal .ad-legal-lead {
	font-size: 1.15rem;
	line-height: 1.6;
	color: var(--ad-body-soft);
	margin-bottom: 2rem;
	padding-bottom: 1.4rem;
	border-bottom: 2px solid var(--ad-line);
}
.ad-legal h2 {
	margin-top: 2.2rem;
	margin-bottom: 0.5rem;
	font-size: 1.4rem;
}
.ad-legal p,
.ad-legal li { line-height: 1.75; }
.ad-legal ul { margin: 0.5rem 0 1.2rem; padding-left: 1.3rem; }
.ad-legal li { margin: 0.35rem 0; }

/* =====================================================================
   Section 18 — v1.9.15 ABOUT US — "Our Story"
   Centred narrative section (pattern anandodhara/about-story). Banner +
   Join band come from the page template.
   ===================================================================== */
.ad-about-story { text-align: center; }
.ad-about-story .ad-section-title { margin-bottom: clamp(1.1rem, 2vw, 2rem); }
.ad-about-lead {
	max-width: 820px;
	margin-inline: auto;
	font-size: clamp(1rem, 1.15vw, 1.375rem);
	line-height: 1.75;
	color: var(--ad-body);
}

/* v1.9.16 — inner-page banner: bias the skyline crop toward the sky so the
   crescent moon stays in frame, and the eased overlay (dimRatio 45 -> 30 in
   page-banner.php) lets it read. The banner title/sub-line sit over the dark
   sky band, so contrast is unaffected. */
.ad-banner .wp-block-cover__image-background { object-position: 50% 18%; }

/* =====================================================================
   Section 19 — v1.9.17 ABOUT US — News Timeline (pattern about-timeline)
   Dated news entries with a ruby date-badge on each photo, joined by a
   vertical ruby spine. Ruby #A60641 on white = 7.71:1 (AA).
   ===================================================================== */
.ad-timeline { position: relative; max-width: 1080px; margin-inline: auto; }
.ad-timeline::before {                     /* vertical spine through the badges */
	content: ""; position: absolute; left: 160px; top: 40px; bottom: 40px;
	width: 2px; background: var(--ad-ruby); opacity: 0.45; z-index: 0;
}
.ad-tl-item {
	display: grid; grid-template-columns: 320px 1fr; gap: 1.5rem 3rem;
	align-items: start; position: relative; z-index: 1;
	margin-bottom: 3.5rem; padding-bottom: 0.5rem;
}
.ad-tl-item:last-child { margin-bottom: 0; }
.ad-tl-media { position: relative; width: 320px; }
.ad-tl-img {
	width: 320px; height: 300px; object-fit: cover;
	border-radius: 16px; display: block;
	box-shadow: 0 20px 40px -24px rgba(0,0,0,0.45);
}
.ad-tl-badge {
	position: absolute; left: 160px; bottom: -34px; transform: translateX(-50%);
	width: 92px; height: 92px; border-radius: 50%;
	background: var(--ad-ruby); color: #fff;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	font-family: var(--ad-font-body); text-align: center; line-height: 1.05;
	box-shadow: 0 10px 24px -8px rgba(166,6,65,0.6);
}
.ad-tl-badge strong { font-size: 1.2rem; font-weight: 800; }
.ad-tl-badge span { font-size: 0.7rem; letter-spacing: 0.06em; margin-top: 2px; }
.ad-tl-body { padding-top: 0.25rem; }
.ad-tl-title {
	color: var(--ad-ruby); font-family: var(--ad-font-display);
	font-size: clamp(1.2rem, 1.6vw, 1.8rem); font-weight: 700;
	line-height: 1.25; margin: 0 0 1rem;
}
.ad-tl-text { color: var(--ad-body); line-height: 1.75; margin: 0 0 1.4rem; }
.ad-tl-more {
	display: inline-block; background: var(--ad-btn-bg); color: var(--ad-brown) !important;
	text-decoration: none !important; font-family: var(--ad-font-body); font-weight: 800;
	text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.8rem;
	padding: 0.7em 1.6em; border-radius: var(--ad-radius-pill);
}
.ad-tl-more:hover, .ad-tl-more:focus { background: var(--ad-btn-hover); color: var(--ad-brown) !important; }
@media (max-width: 781px) {
	.ad-timeline::before { display: none; }
	.ad-tl-item { grid-template-columns: 1fr; gap: 2.6rem 0; margin-bottom: 3rem; text-align: center; }
	.ad-tl-media { width: 100%; margin-inline: auto; max-width: 360px; }
	.ad-tl-img { width: 100%; }
	.ad-tl-badge { left: 50%; }
	.ad-tl-body { padding-top: 1.5rem; }
}

/* =====================================================================
   Section 20 — v1.9.18 ABOUT US — Our Story collage + timeline extras
   Photo collage with the "29 Years of Quality Service" tile, and the
   Load More control + graceful placeholder for the News Timeline.
   ===================================================================== */
.ad-story-collage {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(2, minmax(170px, 1fr));
	gap: 1rem; max-width: 1080px;
	margin: clamp(1.6rem, 3vw, 2.6rem) auto 0;
}
.ad-story-collage .ad-sc { margin: 0; min-height: 0; min-width: 0; }
.ad-story-collage img {
	width: 100%; height: 100%; object-fit: cover;
	border-radius: 14px; display: block;
}
.ad-sc-a { grid-column: 1; grid-row: 1 / span 2; }
.ad-sc-tile { grid-column: 2; grid-row: 1; }
.ad-sc-b { grid-column: 2; grid-row: 2; }
.ad-sc-c { grid-column: 3; grid-row: 1; }
.ad-sc-d { grid-column: 3; grid-row: 2; }
/* Tile proportions taken directly from the Figma: darker box 132x128, the "29"
   at 70px filling it, "YEARS" beneath, caption 26px SemiBold sitting ~18px to
   the right and left-aligned; box + caption vertically centred. */
.ad-sc-tile {
	background: #f49c26;                    /* flat brand amber */
	border-radius: 14px; color: #fff;
	display: flex; align-items: center;
	gap: clamp(0.7rem, 1.5vw, 1rem);        /* tight gap, like the Figma */
	padding: clamp(0.6rem, 1.3vw, 1rem) clamp(0.8rem, 1.5vw, 1.3rem);
}
.ad-sc-badge {                             /* darker square holding 29 / YEARS */
	flex: 0 0 auto;
	width: clamp(80px, 29%, 108px);
	aspect-ratio: 132 / 128;
	background: #da7a1a;
	border-radius: 15px;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	color: #fff; line-height: 1;
}
.ad-sc-badge strong {
	font-family: var(--ad-font-display); font-weight: 800;
	font-size: clamp(2.1rem, 4.4vw, 3.15rem); letter-spacing: -0.02em;
}
.ad-sc-badge small {
	font-size: clamp(0.58rem, 1vw, 0.72rem); letter-spacing: 0.18em; font-weight: 700; margin-top: 0.2em;
}
.ad-sc-txt {
	text-align: left;
	font-family: var(--ad-font-body); font-weight: 700;
	font-size: clamp(0.92rem, 1.8vw, 1.25rem); line-height: 1.08; letter-spacing: 0;
}
@media (max-width: 781px) {
	.ad-story-collage { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.ad-sc-a, .ad-sc-tile, .ad-sc-b, .ad-sc-c, .ad-sc-d { grid-column: auto; grid-row: auto; }
	.ad-sc-a { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
	.ad-sc-tile { grid-column: 1 / -1; }
	.ad-story-collage .ad-sc:not(.ad-sc-a):not(.ad-sc-tile) { aspect-ratio: 4 / 3; }
}

/* Timeline: graceful placeholder while a photo is not yet in the Media Library */
.ad-tl-img--empty {
	width: 320px; height: 300px; border-radius: 16px;
	background: linear-gradient(135deg, #f3e7ec 0%, #e7cdd7 100%);
}
@media (max-width: 781px) { .ad-tl-img--empty { width: 100%; } }

/* Load More */
.ad-tl-loadmore-wrap { text-align: center; margin-top: 2.8rem; }
.ad-tl-loadmore {
	display: inline-block; background: var(--ad-btn-bg); color: var(--ad-brown) !important;
	text-decoration: none !important; font-family: var(--ad-font-body); font-weight: 800;
	text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.85rem;
	padding: 0.85em 2.4em; border-radius: var(--ad-radius-pill);
}
.ad-tl-loadmore:hover, .ad-tl-loadmore:focus { background: var(--ad-btn-hover); color: var(--ad-brown) !important; }

/* =====================================================================
   Section 21 — v1.9.24 CONTACT US (pattern anandodhara/contact)
   Two columns: tent photo + ruby "Contacts" card (left), and the
   "Get in Touch" card holding the Ananyoo Accessible Form (right).
   White text on ruby #A60641 = 7.71:1 (AA). Form fields are styled by
   the Ananyoo Accessible Forms plugin; we style the surrounding card.
   ===================================================================== */
.ad-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(1.25rem, 2.5vw, 2rem);
	align-items: start;
}
.ad-contact-photo { margin: 0; }
.ad-contact-photo img {
	width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
	border-radius: 16px; display: block;
	box-shadow: 0 24px 48px -30px rgba(0,0,0,0.45);
}
.ad-contact-card {
	background: var(--ad-ruby); color: #fff;
	border-radius: 16px; padding: clamp(1.4rem, 3vw, 2rem);
	margin-top: 1.25rem;
}
.ad-contact-card-title {
	color: #fff; font-family: var(--ad-font-display); font-weight: 700;
	font-size: clamp(1.35rem, 2vw, 1.75rem); margin: 0 0 1.25rem;
}
.ad-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.15rem; }
.ad-contact-list li { display: flex; gap: 0.9rem; align-items: center; }
.ad-ci {
	flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px;
	background: #fff; color: var(--ad-ruby);
	display: flex; align-items: center; justify-content: center;
}
.ad-ci-body { display: flex; flex-direction: column; line-height: 1.35; min-width: 0; }
.ad-ci-body strong { font-weight: 800; font-size: 0.95rem; }
.ad-ci-body a, .ad-ci-body span { color: #fff !important; text-decoration: none; word-break: break-word; }
.ad-ci-body a:hover, .ad-ci-body a:focus { text-decoration: underline; }

.ad-contact-formcard {
	background: #fff; border: 1px solid rgba(14,27,54,0.12);
	border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.6rem);
	box-shadow: 0 30px 60px -42px rgba(0,0,0,0.28);
}
.ad-contact-h {
	font-family: var(--ad-font-display); font-weight: 700;
	font-size: clamp(1.6rem, 2.4vw, 2.15rem); margin: 0 0 0.75rem; color: var(--ad-navy);
}
.ad-contact-intro { color: var(--ad-body); line-height: 1.7; margin: 0 0 1.6rem; }

/* Gentle, overridable fallback so the form reads well even before the
   Ananyoo plugin's own styles load. The plugin keeps visible labels. */
.ad-contact-formcard input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.ad-contact-formcard select,
.ad-contact-formcard textarea {
	width: 100%; box-sizing: border-box; font: inherit;
	padding: 0.7em 0.85em; border: 1px solid rgba(14,27,54,0.18);
	border-radius: 10px; background: #f7f7f8; color: var(--ad-body);
}
.ad-contact-formcard textarea { min-height: 130px; resize: vertical; }
@media (max-width: 781px) {
	.ad-contact-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* =====================================================================
   Section 22 — v1.9.26 TESTIMONIALS (pattern anandodhara/testimonials)
   Skins the Ananyoo Accessible Testimonials plugin ([testimonials] grid,
   .aat-* classes) to the Figma: white cards with a ruby quote mark, the
   quote, and an avatar + name + role. Amber stars. Ruby #A60641 = 7.71:1.
   ===================================================================== */
.ad-tm .ad-section-title { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.ad-tm .aat-grid { gap: clamp(1.25rem, 2.5vw, 2rem); }
.ad-tm .aat-fig {
	position: relative;
	background: #fff;
	border: 1px solid rgba(14,27,54,0.08);
	border-radius: 18px;
	padding: clamp(1.5rem, 2.6vw, 2.1rem);
	box-shadow: 0 26px 52px -38px rgba(0,0,0,0.30);
	gap: 1rem;
}
.ad-tm .aat-fig::before {                 /* decorative opening quote mark */
	content: "\201C";
	font-family: var(--ad-font-display); font-weight: 700;
	color: var(--ad-ruby); opacity: 0.85;
	font-size: 3.2rem; line-height: 0.7; height: 0.5em; display: block;
}
.ad-tm .aat-stars { color: var(--ad-btn-bg); font-size: 1.05rem; }
.ad-tm .aat-quote { color: var(--ad-body); font-size: clamp(1rem, 1.2vw, 1.12rem); line-height: 1.7; }
.ad-tm .aat-cite { gap: 0.85rem; padding-top: 0.25rem; }
.ad-tm .aat-avatar img { width: 54px; height: 54px; border: 2px solid var(--ad-ruby); }
.ad-tm .aat-name { color: var(--ad-ruby); font-family: var(--ad-font-display); font-weight: 700; font-size: 1.05rem; }
.ad-tm .aat-role { color: var(--ad-body); opacity: 0.72; font-size: 0.9rem; }

/* =====================================================================
   Section 23 — v1.9.27 GALLERY (pattern anandodhara/gallery-grid)
   Responsive, cropped photo grid built from real event photos. Uniform
   4:3 tiles, rounded corners, brand focus ring on the links/images. DOM
   order = reading order; alt text carries who/what/where. WCAG 2.2 AA.
   ===================================================================== */
.ad-gallery-section .ad-section-title { margin-bottom: clamp(0.6rem, 1.4vw, 1rem); }
.ad-gallery-lead {
	max-width: 46rem;
	margin: 0 auto clamp(1.75rem, 3.4vw, 2.75rem);
	color: var(--ad-body);
	opacity: 0.82;
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	line-height: 1.6;
}
.ad-gallery-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(0.85rem, 1.8vw, 1.5rem);
}
.ad-gallery-item { margin: 0; }
.ad-gallery-fig {
	margin: 0;
	border-radius: 16px;
	overflow: hidden;
	background: #efe7da;
	box-shadow: 0 22px 44px -34px rgba(0,0,0,0.42);
}
.ad-gallery-fig img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.4s ease;
}
@media (hover: hover) {
	.ad-gallery-item:hover .ad-gallery-fig img { transform: scale(1.04); }
}
@media (prefers-reduced-motion: reduce) {
	.ad-gallery-fig img { transition: none; }
	.ad-gallery-item:hover .ad-gallery-fig img { transform: none; }
}
.ad-gallery-empty {
	text-align: center;
	color: var(--ad-body);
	opacity: 0.7;
}
@media (max-width: 900px) {
	.ad-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.ad-gallery-grid { grid-template-columns: 1fr; }
	.ad-gallery-fig img { aspect-ratio: 3 / 2; }
}

/* =====================================================================
   Section 24 — v1.9.28 TESTIMONIALS photo wall (pattern anandodhara/
   testimonials). Figma leads the page with a staggered "wall" of member
   photos above the heading. Masonry columns give the scattered, varying-
   height look; tiles are rounded with a soft shadow. Decorative montage —
   the readable quotes are the .aat cards below (Section 22). Responsive:
   5 cols desktop → 3 tablet → 2 phone. Reduced-motion safe.
   ===================================================================== */
.ad-tm-wall {
	list-style: none;
	margin: 0 auto clamp(2rem, 5vw, 3.5rem);
	padding: 0;
	max-width: 1180px;
	column-count: 5;
	column-gap: clamp(0.7rem, 1.5vw, 1.25rem);
}
.ad-tm-wall .ad-tm-tile {
	break-inside: avoid;
	margin: 0 0 clamp(0.7rem, 1.5vw, 1.25rem);
}
.ad-tm-wall .ad-tm-tile img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
	box-shadow: 0 20px 40px -30px rgba(0,0,0,0.45);
	transition: transform 0.35s ease;
}
/* Gentle scattered offset so the wall is not a neat grid (matches Figma). */
.ad-tm-wall .ad-tm-tile:nth-child(3n+2) { margin-top: clamp(0.8rem, 2.2vw, 2rem); }
.ad-tm-wall .ad-tm-tile:nth-child(4n+1) { margin-top: clamp(0.4rem, 1.2vw, 1rem); }
@media (hover: hover) {
	.ad-tm-wall .ad-tm-tile img:hover { transform: translateY(-4px); }
}
@media (prefers-reduced-motion: reduce) {
	.ad-tm-wall .ad-tm-tile img { transition: none; }
	.ad-tm-wall .ad-tm-tile img:hover { transform: none; }
}
.ad-tm-title { margin-top: 0; }
@media (max-width: 900px) {
	.ad-tm-wall { column-count: 3; }
}
@media (max-width: 560px) {
	.ad-tm-wall { column-count: 2; }
	.ad-tm-wall .ad-tm-tile:nth-child(3n+2),
	.ad-tm-wall .ad-tm-tile:nth-child(4n+1) { margin-top: 0; }
}

/* =====================================================================
   Section 25 — v1.9.29 GALLERY filter + accessible lightbox
   (pattern anandodhara/gallery-grid, behaviour in assets/js/gallery.js)
   Builds on Section 23 (the grid). Adds the category filter bar, makes
   each tile a button that opens the lightbox, and styles the lightbox
   (dimmed backdrop, big image, prev/next, close, thumbnail strip).
   Ruby #A60641 = 7.71:1. Amber focus ring on the dark viewer.
   ===================================================================== */
.ad-gallery-filters { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:0 0 clamp(1.5rem,3vw,2rem); }
.ad-gallery-filter {
	font:inherit; font-weight:600; cursor:pointer;
	border:2px solid var(--ad-ruby); background:#fff; color:var(--ad-ruby);
	border-radius:999px; padding:8px 20px;
}
.ad-gallery-filter[aria-pressed="true"] { background:var(--ad-ruby); color:#fff; }
.ad-gallery-filter:hover { background:#f3e5eb; }
.ad-gallery-filter[aria-pressed="true"]:hover { background:#8f0537; }
.ad-gallery-filter:focus-visible { outline:3px solid var(--ad-focus,#B3540A); outline-offset:2px; }
.ad-gallery-item[hidden] { display:none; }
.ad-gallery-open { display:block; width:100%; padding:0; margin:0; border:0; background:none; cursor:pointer; border-radius:16px; }
.ad-gallery-open:focus-visible { outline:3px solid var(--ad-focus,#B3540A); outline-offset:3px; }
.ad-gallery-open .ad-gallery-fig { margin:0; }

/* Lightbox */
.ad-gallery-lb { position:fixed; inset:0; z-index:99999; display:none; }
.ad-gallery-lb.open { display:block; }
.ad-gallery-lb .ad-lb-bk { position:absolute; inset:0; background:rgba(8,10,20,.85); }
.ad-gallery-lb .ad-lb-dg { position:relative; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:20px; }
.ad-gallery-lb .ad-lb-stage { position:relative; max-width:1100px; width:100%; flex:1; display:flex; align-items:center; justify-content:center; min-height:0; }
.ad-gallery-lb .ad-lb-img { max-width:100%; max-height:72vh; border-radius:12px; box-shadow:0 30px 60px -20px rgba(0,0,0,.7); }
.ad-gallery-lb .ad-lb-nav { position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; border:0; background:rgba(255,255,255,.92); color:#0E1B36; font-size:24px; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.35); }
.ad-gallery-lb .ad-lb-prev { left:6px; } .ad-gallery-lb .ad-lb-next { right:6px; }
.ad-gallery-lb .ad-lb-nav:hover { background:#fff; }
.ad-gallery-lb .ad-lb-close { position:absolute; top:18px; right:20px; width:46px; height:46px; border-radius:50%; border:0; background:var(--ad-ruby); color:#fff; font-size:22px; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.4); }
.ad-gallery-lb .ad-lb-close:hover { background:#8f0537; }
.ad-gallery-lb .ad-lb-nav:focus-visible,
.ad-gallery-lb .ad-lb-close:focus-visible,
.ad-gallery-lb .ad-lb-thumbs button:focus-visible { outline:3px solid var(--ad-btn-bg,#F49C26); outline-offset:2px; }
.ad-gallery-lb .ad-lb-cap { color:#f2f2f2; font-size:14px; text-align:center; margin:12px 0 0; max-width:760px; min-height:1.2em; }
.ad-gallery-lb .ad-lb-thumbs { display:flex; gap:8px; overflow-x:auto; padding:12px; margin-top:12px; background:rgba(255,255,255,.14); border-radius:14px; max-width:100%; }
.ad-gallery-lb .ad-lb-thumbs button { flex:0 0 auto; width:88px; height:64px; border:2px solid transparent; border-radius:9px; overflow:hidden; padding:0; cursor:pointer; background:none; opacity:.7; }
.ad-gallery-lb .ad-lb-thumbs button[aria-current="true"] { border-color:#fff; opacity:1; }
.ad-gallery-lb .ad-lb-thumbs img { width:100%; height:100%; object-fit:cover; display:block; }
@media (prefers-reduced-motion: reduce) { .ad-gallery-lb .ad-lb-img { transition:none; } }

/* v1.9.47 — Desktop dropdown: the current-page item (aria-current /
   current-menu-item) was inheriting the top-level nav's amber text colour
   (var(--ad-amber) #F49C26). On the white dropdown panel that is ~2:1 and
   fails WCAG. Give current dropdown items ink #1A222F (readable on both the
   white panel and the amber hover bar, ~7:1). Reported by Shivaji:
   "Testimonials" under About Us showed yellow. */
.site-header .nav-desktop .nav-dropdown a[aria-current="page"],
.site-header .nav-desktop .nav-dropdown a[aria-current="page"]:hover,
.site-header .nav-desktop .nav-dropdown a[aria-current="page"]:focus,
.site-header .nav-desktop .nav-dropdown .current-menu-item > a,
.site-header .nav-desktop .nav-dropdown .current_page_item > a {
	color: #1A222F !important;
}

/* --------------------------------------------------------------------------
   v1.9.56 — Single-post Photo / Video gallery sections + single-row card
   scroller. Reuses .ad-gallery-* (photos -> lightbox) and .ad-yt-facade
   (videos -> click-to-load). The track is a native horizontal scroll-snap
   row; .ad-scroller.js adds the labelled prev/next arrows + arrow-key paging.
   -------------------------------------------------------------------------- */
.ad-post-gallery,
.ad-post-videos { max-width: 1120px; margin: 2.5rem auto 0; padding: 2.2rem 22px 0.6rem; }
.ad-post-videos { padding-bottom: 1.6rem; }
.ad-pg-head { display: flex; align-items: center; justify-content: center; gap: 0.7rem; margin-bottom: 0.3rem; }
.ad-pg-ico {
	flex: none; width: 34px; height: 34px; border-radius: 9px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--ad-ink); color: #fff; font-size: 1rem;
}
.ad-pg-title {
	font-family: "Archivo", system-ui, sans-serif;
	font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.15;
	margin: 0; text-align: center; color: var(--ad-ink);
}
.ad-pg-count {
	display: inline-block; vertical-align: middle; margin-left: 0.4rem;
	background: var(--ad-cream-soft); border: 1.5px solid #E3D4B6;
	color: var(--ad-amber-deep); font-weight: 700; font-size: 0.72rem;
	border-radius: 999px; padding: 0.15rem 0.7rem; white-space: nowrap;
}
.ad-pg-lead { text-align: center; color: #5f5140; max-width: 56ch; margin: 0.4rem auto 1.6rem; }

/* single-row card scroller */
.ad-hscroll { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.4rem; }
.ad-scroll-track {
	display: flex; gap: 1rem; list-style: none; margin: 0; padding: 0.4rem 0.2rem 1rem;
	overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; scroll-behavior: smooth;
	scrollbar-width: thin; -webkit-overflow-scrolling: touch;
}
.ad-scroll-track:focus-visible { outline: 3px solid var(--ad-amber-deep); outline-offset: 3px; border-radius: 12px; }
.ad-photo-track .ad-gallery-item { flex: 0 0 clamp(220px, 30vw, 300px); scroll-snap-align: start; }
.ad-video-track .adv-cell { flex: 0 0 clamp(280px, 42vw, 440px); scroll-snap-align: start; list-style: none; }
.ad-hscroll-btn {
	flex: none; width: 44px; height: 44px; border-radius: 50%;
	border: 1.5px solid #E3D4B6; background: var(--ad-cream-soft); color: var(--ad-ink);
	font-size: 1.5rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
	cursor: pointer; transition: background .15s ease, border-color .15s ease, opacity .15s ease;
}
.ad-hscroll-btn:hover:not(:disabled),
.ad-hscroll-btn:focus-visible:not(:disabled) { background: var(--ad-amber); border-color: var(--ad-amber); }
.ad-hscroll-btn:disabled { opacity: 0.3; cursor: default; }
.ad-hscroll.ad-hscroll-static { grid-template-columns: minmax(0, 1fr); }
.ad-hscroll.ad-hscroll-static .ad-hscroll-btn { display: none; }
.ad-hscroll.ad-hscroll-static .ad-scroll-track { justify-content: center; flex-wrap: wrap; }
@media (max-width: 640px) {
	.ad-hscroll-btn { display: none; }
	.ad-hscroll { grid-template-columns: minmax(0, 1fr); }
	.ad-photo-track .ad-gallery-item { flex-basis: 78vw; }
	.ad-video-track .adv-cell { flex-basis: 86vw; }
}

/* ============================================================
   v1.9.49 — Blog dressed in the Anandodhara style:
   (1) the same dark night-skyline banner the rest of the site
       uses, on BOTH the blog listing and single blog posts
       (replacing the light hero and the brand-gradient "aurora"
       band respectively);
   (2) the Ariade blog card grid reskinned to the warm cream
       Anandodhara palette — full-bleed featured image, amber
       category pill, ink Archivo titles, cream cards;
   (3) the Grid / List view toggle in the site's ink + amber.
   Scoped to blog-only hooks so nothing else is touched.
   ============================================================ */

/* ---- (1) Dark skyline banner — listing hero + single-post header ---- */

/* v1.9.56 — Float the header transparently over the blog banner, exactly like
   the theme does on .ad-banner pages (body:has(.ad-banner) .site-header). The
   blog listing (.ariade-page-hero) and single posts (.ariade-sp-aurora) use a
   different banner, so without this the header kept its solid dark bg + bottom
   border and showed a seam above the banner. */
body:has(.ariade-page-hero) .site-header,
body:has(.ariade-sp-aurora) .site-header {
	position: absolute !important;
	top: 0 !important; left: 0 !important; right: 0 !important;
	z-index: 60 !important;
	background: transparent !important;
	border-bottom: none !important;
	/* The default header carries a backdrop blur (from its original light
	   translucent design). Over the dark banner it smears the near-white body
	   background into a white haze at the top edge, so switch it off here. */
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}

/* v1.9.57's 8rem / 5.5rem header-clearance patches are RETIRED (v1.9.67).
   Every banner — inner pages / events (.ad-banner), single posts
   (.ariade-sp-aurora) and the blog-list hero (.ariade-page-hero) — now takes
   its clearance from the ONE pair of sitewide hero controls defined at the
   end of this file (--ariade-hero-pad-top / --ariade-hero-pad-bottom, wired
   through Ariade 1.4.68), with the content safe-centred inside the band.
   Home (.hero) keeps its own design, untouched. */

/* v1.9.58 — GLOBAL Anandodhara pagination + prev/next navigation. One palette
   everywhere: current = ink #1A222F (white text), other pills = cream #FBF4E4
   with a soft border, amber #F49C26 on hover / forward. Covers the blog query
   pagination, the events plugin pager (.ae-pagination) and the prev/next post &
   event navigation (.wp-block-post-navigation-link) — replacing the parent
   theme's navy / purple. */
.wp-block-query-pagination,
.ae-pagination { display:flex !important; flex-wrap:wrap !important; gap:.5rem !important; justify-content:center !important; align-items:center !important; margin-top:2.5rem !important; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination a,
.ae-pagination .page-numbers, .ae-pagination a {
	display:inline-flex !important; align-items:center !important; justify-content:center !important;
	min-width:2.5rem !important; height:2.5rem !important; padding:0 .8rem !important;
	border:1.5px solid #E3D4B6 !important; border-radius:10px !important;
	background:#FBF4E4 !important; color:#1A222F !important; text-decoration:none !important;
	font-weight:700 !important; box-shadow:none !important; line-height:1 !important;
}
.wp-block-query-pagination .page-numbers.current,
nav.ae-pagination .page-numbers.current, nav.ae-pagination .current {
	background:#1A222F !important; color:#fff !important; border-color:#1A222F !important;
}
.wp-block-query-pagination .page-numbers.dots,
.ae-pagination .page-numbers.dots, .ae-pagination .dots {
	border:0 !important; background:none !important; min-width:auto !important; height:auto !important; padding:0 .3rem !important; color:#5f5140 !important;
}
.wp-block-query-pagination a:hover, .wp-block-query-pagination a:focus-visible,
.ae-pagination a:hover, .ae-pagination a:focus-visible {
	background:#F49C26 !important; border-color:#F49C26 !important; color:#1A222F !important;
}
/* prev / next post & event navigation */
.wp-block-post-navigation-link {
	background:#1A222F !important; background-image:none !important;
	border:1.5px solid #1A222F !important; border-radius:12px !important;
	transition:background .15s ease, border-color .15s ease !important;
}
.wp-block-post-navigation-link, .wp-block-post-navigation-link a { color:#ffffff !important; }
.wp-block-post-navigation-link:hover, .wp-block-post-navigation-link:focus-within { background:#F49C26 !important; border-color:#F49C26 !important; }
.wp-block-post-navigation-link:hover, .wp-block-post-navigation-link:hover a, .wp-block-post-navigation-link:focus-within a { color:#1A222F !important; }

.ariade-page-hero,
.single-post .ariade-sp-aurora {
	position: relative;
	background-color: #14120f !important;
	background-image:
		linear-gradient(rgba(28, 24, 22, 0.42), rgba(28, 24, 22, 0.42)),
		url(/wp-content/uploads/2026/08/banner-skyline.jpg) !important;
	background-size: cover, cover !important;
	background-position: center, center !important;
	background-repeat: no-repeat, no-repeat !important;
	min-height: 372px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	border-radius: 0 !important;
}
/* drop the light hero's decorative wave / dot layers */
.ariade-page-hero::before,
.ariade-page-hero::after,
.ariade-sitemap-hero::before,
.ariade-sitemap-hero::after { background: none !important; content: none !important; }

/* white text on the banner */
.ariade-page-hero .wp-block-post-title,
.ariade-page-hero .wp-block-post-excerpt,
.single-post .ariade-sp-aurora .wp-block-post-title,
.single-post .ariade-sp-aurora .sp-byline,
.single-post .ariade-sp-aurora .sp-byline * {
	color: #ffffff !important;
}
.ariade-page-hero .wp-block-post-excerpt { max-width: 40rem; }

/* single post: make the wide band a full-bleed banner, drop the aurora
   overlap, restyle the category pill, un-float the cover photo */
.single-post .ariade-sp-aurora {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	width: 100vw !important;
	max-width: 100vw !important;
	/* v1.9.67 — top/bottom from the sitewide hero controls (safe-centred band,
	   same rhythm as the blog hero and the inner-page/event banners). */
	padding: var(--ariade-hero-pad-top, 80px) 1.5rem var(--ariade-hero-pad-bottom, 20px) !important;
}
.single-post .ariade-sp-aurora .sp-pill a {
	background: var(--ad-amber) !important;
	color: #1A222F !important;
	border-radius: var(--ad-radius-pill) !important;
}
.single-post main .wp-block-post-featured-image.sp-cover-aurora { margin-top: 2.25rem !important; }

/* ---- (2) Blog listing rebuilt to match the approved samples (v1.9.52) ----
   Category was moved out of the image into .card-body as .card-cat (see
   templates/page-blog.html), so both views position it freely.
   GRID = Ariade tile grid (Option A): photo fills the tile, cream panel with a
   4px accent top-edge, category as small accent-coloured uppercase TEXT above
   the title, then excerpt, date at the foot.
   LIST = editorial ledger (Option C): [category pill + date] | [accent-bar
   title + excerpt] | [offset-shadow photo].  Scoped to .ariade-posts. */

/* cycling warm accent per card (amber-deep / deep-teal / deep-rose) */
.ariade-posts .wp-block-post-template > li { --c:#B3540A; --t:#FBF4E4; }
.ariade-posts .wp-block-post-template > li:nth-child(3n+2) { --c:#146356; --t:#E9F5F1; }
.ariade-posts .wp-block-post-template > li:nth-child(3n)   { --c:#9B2C4A; --t:#FBEDF0; }

/* shared card shell */
.ariade-posts .wp-block-post-template { gap:1.5rem !important; }
.ariade-posts .ariade-post-card {
	background:var(--ad-cream) !important; border:1.5px solid #EFE1C6 !important;
	border-radius:16px !important; box-shadow:0 10px 26px rgba(14,27,54,.08) !important;
	padding:0 !important; overflow:hidden !important;
	transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
.ariade-posts .card-media { margin:0 !important; position:relative !important; }
.ariade-posts .card-media img, .ariade-posts .card-media figure {
	width:100% !important; margin:0 !important; display:block;
	border-radius:0 !important; aspect-ratio:16/10; object-fit:cover;
}
.ariade-posts .card-cat { margin:0 !important; }
.ariade-posts .card-cat a { text-decoration:none !important; }
.ariade-posts .wp-block-post-title, .ariade-posts .wp-block-post-title a { color:var(--ad-ink) !important; }
.ariade-posts .wp-block-post-excerpt p { color:#5f5140 !important; }

/* ===== GRID VIEW = tile grid (Option A) ===== */
.ariade-posts:not(.view-list) .wp-block-post-template { display:grid !important; grid-template-columns:repeat(3,1fr) !important; }
.ariade-posts:not(.view-list) .ariade-post-card { display:flex !important; flex-direction:column !important; }
.ariade-posts:not(.view-list) .ariade-post-card:hover,
.ariade-posts:not(.view-list) .ariade-post-card:focus-within { transform:translateY(-4px) !important; box-shadow:0 16px 34px rgba(14,27,54,.16) !important; }
.ariade-posts:not(.view-list) .card-body {
	background:var(--ad-cream) !important; padding:.9rem 1rem 1rem !important;
	border-top:4px solid var(--c) !important; flex:1 !important;
	display:flex !important; flex-direction:column !important; gap:.28rem !important;
}
.ariade-posts:not(.view-list) .card-cat a {
	background:none !important; border:0 !important; padding:0 !important; color:var(--c) !important;
	font-size:.62rem !important; font-weight:800 !important; letter-spacing:.08em !important; text-transform:uppercase !important;
}
.ariade-posts:not(.view-list) .wp-block-post-title { font-size:1.02rem !important; line-height:1.32 !important; margin:.1rem 0 .15rem !important; }
.ariade-posts:not(.view-list) .wp-block-post-excerpt { margin:0 !important; }
.ariade-posts:not(.view-list) .wp-block-post-excerpt p {
	display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important;
	overflow:hidden !important; font-size:.84rem !important; line-height:1.5 !important; margin:0 0 .4rem !important;
}
.ariade-posts:not(.view-list) .wp-block-post-date {
	margin-top:auto !important; padding-top:.4rem !important;
	font-size:.68rem !important; letter-spacing:.06em !important; text-transform:uppercase !important; color:#5f5140 !important;
}

/* ===== LIST VIEW = editorial ledger (Option C) ===== */
.ariade-posts.view-list .wp-block-post-template { display:block !important; }
.ariade-posts.view-list .wp-block-post-template > li { margin:0 0 1.1rem !important; }
.ariade-posts.view-list .ariade-post-card {
	display:grid !important; grid-template-columns:1fr 200px !important; gap:1.4rem !important; align-items:center !important;
	background:var(--ad-cream) !important; border:1.5px solid #EFE1C6 !important; border-radius:18px !important;
	padding:1.4rem 1.5rem !important; overflow:visible !important;
}
.ariade-posts.view-list .ariade-post-card:hover, .ariade-posts.view-list .ariade-post-card:focus-within {
	border-color:var(--c) !important; box-shadow:0 14px 30px rgba(14,27,54,.12) !important; transform:translateY(-3px) !important;
}
.ariade-posts.view-list .card-media { order:2 !important; margin:0 !important; }
.ariade-posts.view-list .card-media img {
	aspect-ratio:16/10 !important; width:100% !important; border-radius:14px !important;
	box-shadow:3px 3px 6px rgba(14,27,54,.12) !important; transition:box-shadow .18s ease !important;
}
.ariade-posts.view-list .ariade-post-card:hover .card-media img,
.ariade-posts.view-list .ariade-post-card:focus-within .card-media img { box-shadow:4px 5px 10px rgba(14,27,54,.20) !important; }
.ariade-posts.view-list .card-body {
	order:1 !important; display:grid !important; grid-template-columns:150px 1fr !important; grid-template-rows:auto auto !important;
	column-gap:1.4rem !important; row-gap:0 !important; align-items:start !important;
	padding:0 !important; background:none !important; border-top:0 !important;
}
.ariade-posts.view-list .card-cat { grid-column:1 !important; grid-row:1 !important; margin:0 0 .5rem !important; }
.ariade-posts.view-list .card-cat a {
	display:inline-block !important; color:var(--c) !important; border:1.5px solid var(--c) !important; background:#fff !important;
	font-size:.72rem !important; font-weight:700 !important; border-radius:999px !important; padding:.18rem .7rem !important;
	text-transform:none !important; letter-spacing:0 !important;
}
.ariade-posts.view-list .wp-block-post-date {
	grid-column:1 !important; grid-row:2 !important; font-size:.7rem !important; letter-spacing:.08em !important;
	text-transform:uppercase !important; color:#5f5140 !important; line-height:1.6 !important; margin:0 !important; align-self:start !important;
}
.ariade-posts.view-list .wp-block-post-title {
	grid-column:2 !important; grid-row:1 !important; font-size:clamp(1.15rem,2.6vw,1.4rem) !important; line-height:1.2 !important;
	margin:0 !important; padding:0 0 .4rem 1.3rem !important; border-left:2.5px solid var(--c) !important;
}
.ariade-posts.view-list .wp-block-post-excerpt {
	grid-column:2 !important; grid-row:2 !important; margin:0 !important; padding:0 0 0 1.3rem !important; border-left:2.5px solid var(--c) !important;
}
.ariade-posts.view-list .wp-block-post-excerpt p {
	display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important;
	overflow:hidden !important; font-size:.9rem !important; line-height:1.55 !important; margin:0 !important;
}

/* responsive */
@media (max-width:1024px){ .ariade-posts:not(.view-list) .wp-block-post-template { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:760px){
	.ariade-posts:not(.view-list) .wp-block-post-template { grid-template-columns:1fr !important; }
	.ariade-posts.view-list .ariade-post-card { grid-template-columns:1fr !important; }
	.ariade-posts.view-list .card-media { order:0 !important; max-width:340px !important; }
	.ariade-posts.view-list .card-body { grid-template-columns:1fr !important; }
	.ariade-posts.view-list .wp-block-post-title, .ariade-posts.view-list .wp-block-post-excerpt { grid-column:1 !important; padding-left:0 !important; border-left:0 !important; }
	.ariade-posts.view-list .card-cat, .ariade-posts.view-list .wp-block-post-date { grid-column:1 !important; }
	.ariade-posts.view-list .wp-block-post-title { border-top:2.5px solid var(--c) !important; padding-top:.7rem !important; }
}

/* v1.9.52 — pagination → tidy centred pill row (Anandodhara palette) */
.ariade-posts .wp-block-query-pagination { display:flex !important; flex-wrap:wrap !important; gap:.5rem !important; justify-content:center !important; align-items:center !important; margin-top:2.5rem !important; }
.ariade-posts .wp-block-query-pagination-numbers { display:flex !important; flex-wrap:wrap !important; gap:.5rem !important; align-items:center !important; }
.ariade-posts .wp-block-query-pagination .page-numbers, .ariade-posts .wp-block-query-pagination a { display:inline-flex !important; align-items:center !important; justify-content:center !important; min-width:2.5rem !important; height:2.5rem !important; padding:0 .8rem !important; border:1.5px solid #E3D4B6 !important; border-radius:10px !important; background:#FBF4E4 !important; color:#1A222F !important; text-decoration:none !important; font-weight:700 !important; box-shadow:none !important; line-height:1 !important; }
.ariade-posts .wp-block-query-pagination .page-numbers.current { background:#1A222F !important; color:#fff !important; border-color:#1A222F !important; }
.ariade-posts .wp-block-query-pagination .page-numbers.dots { border:0 !important; background:none !important; min-width:auto !important; height:auto !important; padding:0 .3rem !important; color:#5f5140 !important; }
.ariade-posts .wp-block-query-pagination a:hover, .ariade-posts .wp-block-query-pagination a:focus-visible { background:#F49C26 !important; border-color:#F49C26 !important; color:#1A222F !important; }

/* ---- (3) Grid / List view toggle → ink + amber ---- */
.ariade-view-toggle button {
	background: transparent !important;
	color: var(--ad-ink) !important;
	border: 1.5px solid #E3D4B6 !important;
	border-radius: var(--ad-radius-pill) !important;
}
.ariade-view-toggle button:hover,
.ariade-view-toggle button:focus-visible { border-color: var(--ad-amber) !important; }
.ariade-view-toggle button[aria-pressed="true"] {
	background: var(--ad-ink) !important;
	color: #ffffff !important;
	border-color: var(--ad-ink) !important;
}

/* v1.9.53 — grid tile polish: close the empty band under the photo (card-body
   block-gap margin + card flex gap) and remove the doubled outline on short
   tiles (the post-template <li> carried its own border/background; the card now
   fills the cell so every tile is one clean card of equal height). */
.ariade-posts .wp-block-post-template > li { border:0 !important; background:none !important; padding:0 !important; box-shadow:none !important; }
.ariade-posts:not(.view-list) .wp-block-post-template > li { display:flex !important; flex-direction:column !important; }
.ariade-posts:not(.view-list) .ariade-post-card { gap:0 !important; flex:1 1 auto !important; }
.ariade-posts:not(.view-list) .ariade-post-card .card-body { margin-top:0 !important; }

/* v1.9.54 — list-view polish: warm accent must beat the theme's purple in list
   view (theme sets --c:#534ab7 at .ariade-posts.view-list level); keep the right
   photo inside the card with clear right padding (grid min-width:auto let it
   overflow the 200px track); crisp uniform warm hover outline on all four sides;
   date + reading-time on one line. */
.ariade-posts.view-list .wp-block-post-template > li { --c:#B3540A !important; --t:#FBF4E4 !important; }
.ariade-posts.view-list .wp-block-post-template > li:nth-child(3n+2) { --c:#146356 !important; --t:#E9F5F1 !important; }
.ariade-posts.view-list .wp-block-post-template > li:nth-child(3n) { --c:#9B2C4A !important; --t:#FBEDF0 !important; }
.ariade-posts.view-list .card-media { min-width:0 !important; max-width:100% !important; }
.ariade-posts.view-list .card-media img { width:100% !important; max-width:100% !important; }
.ariade-posts.view-list .ariade-post-card:hover,
.ariade-posts.view-list .ariade-post-card:focus-within { border:2px solid var(--c) !important; }
.ariade-posts.view-list .wp-block-post-date { font-size:.6rem !important; white-space:nowrap !important; letter-spacing:.05em !important; }
.ariade-posts.view-list .wp-block-post-date time,
.ariade-posts.view-list .wp-block-post-date .reading-time { font-size:inherit !important; }

/* ==========================================================================
   STYLE C — Heritage-card post galleries (v1.9.61)
   Single-post Photo Gallery + Video Gallery. Wine accent (#861840 / #AD1A50),
   modern line icons, framed cards. Scoped to .ad-gallery-heritage so the
   master /gallery/ grid stays untouched.
   ========================================================================== */
.ad-gallery-heritage{
	background:
		radial-gradient(circle at 12% 0, rgba(173,26,80,.09), transparent 42%),
		radial-gradient(circle at 88% 100%, rgba(134,24,64,.09), transparent 44%),
		var(--ad-cream-soft);
	border:1px solid #ecd9c2;
	border-radius:18px;
	padding:2rem 1.1rem 2.3rem;
}
.ad-gallery-heritage .ad-pg-head{display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.2rem}
.ad-gallery-heritage .ad-pg-ico{
	width:48px;height:48px;border-radius:14px;background:var(--ad-wine);color:#fff;
	display:flex;align-items:center;justify-content:center;flex:0 0 auto;
	box-shadow:0 4px 12px rgba(134,24,64,.32);
}
.ad-gallery-heritage .ad-pg-ico svg{width:26px;height:26px}
.ad-gallery-heritage .ad-pg-title{
	font-family:var(--ad-font-display);font-size:1.6rem;font-weight:800;color:var(--ad-ink);
	margin:0;display:inline-flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:center;
}
.ad-gallery-heritage .ad-pg-count{
	background:var(--ad-wine-light);color:#fff;border-radius:999px;
	font-family:var(--ad-font-body);font-size:.72rem;font-weight:700;letter-spacing:.4px;
	text-transform:uppercase;padding:5px 12px;
}
.ad-gallery-heritage .ad-pg-lead{text-align:center;color:#8a3a52;max-width:60ch;margin:.5rem auto .2rem;font-weight:600}
.ad-gallery-heritage .ad-pg-rule{width:130px;border-top:2px dashed var(--ad-wine-light);margin:.7rem auto 1.5rem;position:relative;opacity:.85}
.ad-gallery-heritage .ad-pg-rule::before{
	content:"\2726";position:absolute;left:50%;top:-.72em;transform:translateX(-50%);
	background:var(--ad-cream-soft);color:var(--ad-wine);padding:0 .55rem;font-size:.95rem;line-height:1;
}
/* Photo wall — tilted album cards (keeps the accessible lightbox wiring) */
.ad-gallery-heritage .ad-photo-wall{list-style:none;margin:0;padding:4px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.ad-gallery-heritage .ad-photo-wall .ad-gallery-item{
	margin:0;background:#fff;padding:9px 9px 12px;border-radius:9px;width:230px;
	box-shadow:0 6px 18px rgba(20,20,20,.15);transition:transform .25s ease, box-shadow .25s ease;
}
.ad-gallery-heritage .ad-photo-wall .ad-gallery-item:nth-child(odd){transform:rotate(-1.4deg)}
.ad-gallery-heritage .ad-photo-wall .ad-gallery-item:nth-child(even){transform:rotate(1.2deg)}
.ad-gallery-heritage .ad-photo-wall .ad-gallery-item:hover,
.ad-gallery-heritage .ad-photo-wall .ad-gallery-item:focus-within{
	transform:rotate(0) translateY(-5px) scale(1.02);box-shadow:0 12px 26px rgba(134,24,64,.22);
}
.ad-gallery-heritage .ad-gallery-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer;font:inherit}
.ad-gallery-heritage .ad-gallery-open .ad-gallery-fig{margin:0;border-radius:5px;overflow:hidden}
.ad-gallery-heritage .ad-gallery-fig img{display:block;width:100%;height:158px;object-fit:cover;transition:none;transform:none}
.ad-gallery-heritage .ad-gallery-open:focus-visible{outline:3px solid var(--ad-wine-light);outline-offset:3px;border-radius:7px}
/* Video wall — framed keepsake cards (reuses yt-facade.js click-to-load) */
.ad-gallery-heritage .ad-video-wall{list-style:none;margin:0;padding:4px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.ad-gallery-heritage .ad-video-card{margin:0;background:#fff;padding:10px;border-radius:12px;box-shadow:0 8px 22px rgba(20,20,20,.16);flex:0 1 640px;max-width:100%}
.ad-gallery-heritage .ad-video-card .ad-yt-facade{margin:0;border-radius:7px;overflow:hidden;position:relative;aspect-ratio:16/9;background:var(--ad-ink)}
.ad-gallery-heritage .ad-yt-play{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;position:relative;cursor:pointer}
.ad-gallery-heritage .ad-yt-thumb{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.ad-gallery-heritage .ad-yt-btn{
	position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
	width:76px;height:76px;border-radius:50%;background:var(--ad-wine);
	display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(134,24,64,.22);
}
.ad-gallery-heritage .ad-yt-btn svg{width:30px;height:30px;fill:#fff;margin-left:4px}
.ad-gallery-heritage .ad-yt-play:focus-visible{outline:3px solid var(--ad-wine-light);outline-offset:3px;border-radius:8px}
.ad-gallery-heritage .ad-yt-facade .ad-yt-iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media (max-width:640px){
	.ad-gallery-heritage .ad-photo-wall .ad-gallery-item{width:44vw}
	.ad-gallery-heritage .ad-gallery-fig img{height:34vw}
}
@media (prefers-reduced-motion: reduce){
	.ad-gallery-heritage .ad-photo-wall .ad-gallery-item,
	.ad-gallery-heritage .ad-photo-wall .ad-gallery-item:nth-child(odd),
	.ad-gallery-heritage .ad-photo-wall .ad-gallery-item:nth-child(even){transform:none;transition:none}
}
/* --- Match: Events date badge + Forum header pick up the same wine --- */
#bbpress-forums li.bbp-header{background:var(--ad-wine);}
.ae-row__badge{background:var(--ad-wine)!important;}
.ae-row:focus-within{background:var(--ad-wine)!important;}
.ae-row:focus-within .ae-row__badge{background:#5F0F2C!important;}

/* ==========================================================================
   Master Photo Gallery — Layout B: uniform tiles + Load More (v1.9.62)
   ========================================================================== */
.ad-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.ad-gallery-grid .ad-gallery-item{position:relative;border-radius:14px;overflow:hidden;background:var(--ad-ink);aspect-ratio:4/3}
.ad-gallery-grid .ad-gallery-open{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer}
.ad-gallery-grid .ad-gallery-fig{margin:0;width:100%;height:100%;border-radius:0;box-shadow:none;background:transparent}
.ad-gallery-grid .ad-gallery-fig img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:auto;transition:transform .45s ease}
.ad-gallery-grid .ad-gallery-item:hover .ad-gallery-fig img,
.ad-gallery-grid .ad-gallery-item:focus-within .ad-gallery-fig img{transform:scale(1.06)}
.ad-gallery-grid .ad-gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(16,20,30,.44),transparent 42%);opacity:0;transition:opacity .3s;pointer-events:none}
.ad-gallery-grid .ad-gallery-item:hover::after,
.ad-gallery-grid .ad-gallery-item:focus-within::after{opacity:1}
.ad-gallery-grid .ad-gallery-open:focus-visible{outline:3px solid var(--ad-wine-light);outline-offset:-3px}
.ad-gallery-tag{position:absolute;left:10px;bottom:10px;z-index:2;background:rgba(134,24,64,.94);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.2px;padding:3px 10px;border-radius:6px;opacity:0;transform:translateY(6px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}
.ad-gallery-grid .ad-gallery-item:hover .ad-gallery-tag,
.ad-gallery-grid .ad-gallery-item:focus-within .ad-gallery-tag{opacity:1;transform:none}
/* filter chips -> wine family (matches the galleries) */
.ad-gallery-filter[aria-pressed="true"]{background:var(--ad-wine);}
.ad-gallery-filter[aria-pressed="true"]:hover{background:#5F0F2C;}
/* Load more button */
.ad-gallery-more{text-align:center;margin:1.9rem 0 .3rem}
.ad-gallery-more[hidden]{display:none}
.ad-gallery-more-btn{background:var(--ad-amber);color:#3a2607;border:0;border-radius:var(--ad-radius-pill);padding:12px 32px;font-family:var(--ad-font-body);font-weight:800;font-size:.95rem;line-height:1.15;cursor:pointer;box-shadow:0 4px 12px rgba(244,156,38,.32)}
.ad-gallery-more-btn:hover,.ad-gallery-more-btn:focus-visible{background:var(--ad-amber-deep);color:#fff}
.ad-gallery-more-count{opacity:.85;font-weight:600}
@media (max-width:560px){.ad-gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){
	.ad-gallery-grid .ad-gallery-fig img{transition:none}
	.ad-gallery-grid .ad-gallery-item:hover .ad-gallery-fig img{transform:none}
}

/* Single-post: wider content column + gap between the two galleries (v1.9.62;
   also live via global styles so it applies before this theme is re-uploaded). */
.single-post .wp-block-post-content{max-width:1240px!important}
.single-post .wp-block-post-content > *{max-width:1200px!important}
.single-post .ad-post-gallery,.single-post .ad-post-videos{max-width:1200px!important}
.single-post .ad-post-videos.ad-gallery-heritage{margin-top:2.6rem!important}

/* ==========================================================================
   Gallery page refinements (v1.9.63): 4 per row, framed light tiles (rounded
   corners + paper mat + shadow), post-category filters. Supersedes the
   v1.9.62 edge-to-edge uniform tiles.
   ========================================================================== */
.ad-gallery-grid{grid-template-columns:repeat(4,1fr);gap:16px}
.ad-gallery-grid .ad-gallery-item{background:var(--ad-paper);padding:8px;border-radius:16px;box-shadow:0 6px 16px rgba(20,20,20,.10);aspect-ratio:auto;overflow:visible;transition:box-shadow .25s ease}
.ad-gallery-grid .ad-gallery-item::after{display:none}
.ad-gallery-grid .ad-gallery-item:hover,.ad-gallery-grid .ad-gallery-item:focus-within{box-shadow:0 12px 26px rgba(134,24,64,.18)}
.ad-gallery-grid .ad-gallery-open{display:block;width:auto;height:auto}
.ad-gallery-grid .ad-gallery-fig{aspect-ratio:4/3;border-radius:11px;overflow:hidden;height:auto;background:#efe7da}
.ad-gallery-grid .ad-gallery-fig img{width:100%;height:100%;object-fit:cover}
.ad-gallery-grid .ad-gallery-tag{left:17px;bottom:17px}
@media (max-width:900px){.ad-gallery-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){.ad-gallery-grid{grid-template-columns:repeat(2,1fr)}}

/* ==========================================================================
   Single-post spacing (v1.9.64): a comfortable ~70px gap between the aurora
   banner (post title area) and the body content, and EQUAL top spacing on the
   Photo Gallery so it matches the Video Gallery. The banner-gap selectors carry
   higher specificity than the theme's 2.25rem featured-image rule so they win
   the cascade. All rules are also pushed live via global styles so they apply
   before this theme is re-uploaded.
   ========================================================================== */
body.single-post main .ariade-sp-aurora + .wp-block-post-featured-image.sp-cover-aurora{margin-top:70px!important}
body.single-post main .ariade-sp-aurora + .wp-block-post-content.entry-content{margin-top:70px!important}
.single-post .ad-post-gallery.ad-gallery-heritage{margin-top:2.6rem!important}
/* Featured image spans the full 1200px content width on every post (v1.9.66),
   instead of the 760px cover width — so blog images read large and edge-aligned. */
body.single-post main .wp-block-post-featured-image.sp-cover-aurora{max-width:1200px!important}
@media (max-width:600px){
	body.single-post main .ariade-sp-aurora + .wp-block-post-featured-image.sp-cover-aurora,
	body.single-post main .ariade-sp-aurora + .wp-block-post-content.entry-content{margin-top:44px!important}
}

/* ==========================================================================
   SITEWIDE HERO RHYTHM — the ONE place banner spacing is set (v1.9.67).
   Ariade 1.4.68 wires every hero to this pair of controls (blog-list hero,
   single-post aurora band, archives, cart title); the .ad-banner wiring for
   the inner-page / event covers lives with the banner rules above. The
   optical centre comes from the DIFFERENCE between the two floors (60px =
   Shivaji's DevTools-tested 80/20 look, kept exactly); the floors themselves
   are raised so the top floor (112px) always clears the ~104px floating
   transparent header — v1.9.67's 80px floor was BELOW the header, so a
   3-line event title filled the band, the content dropped to the floor and
   the breadcrumb slid under the navigation (v1.9.69 fix). Content is
   SAFE-CENTRED: vertically centred between the floors, so short and long
   titles both sit optically centred and can never hide under the header.
   Raising both floors by the same amount moves NOTHING on banners that
   already looked right — only the too-tall cases now stop 112px down.
   Change the difference to move every banner together; keep top ≥ 112px.
   Requires Ariade 1.4.68+. No per-page padding patches anywhere.
   ========================================================================== */
:root {
	--ariade-hero-pad-top:    112px;
	--ariade-hero-pad-bottom: 52px;
}
/* Logged-in editors: the admin bar pushes the floating header 32px lower
   (its bottom sits ~136px into the banner), so give the trail the same
   safety there too. Visitors are unaffected. */
body.admin-bar {
	--ariade-hero-pad-top: 144px;
}

/* ==========================================================================
   Forum bridge shell (v1.9.72) — bbpress.php renders bbPress inside the
   FSE header/footer. The shell centres the forum at the site's content
   width; the skip link mirrors the one the FSE canvas normally injects.
   ========================================================================== */
.ad-forum-shell {
	max-width: var(--wp--style--global--content-size, 1140px);
	margin: 0 auto;
	padding: 2.75rem 1.25rem 4.5rem;
}
.ad-forum-main:focus { outline: none; }
.ad-skip-link.screen-reader-text:focus {
	position: fixed;
	left: 12px;
	top: 12px;
	z-index: 100000;
	width: auto;
	height: auto;
	clip: auto;
	clip-path: none;
	overflow: visible;
	background: var(--ad-ink, #1A222F);
	color: #FFFFFF;
	padding: 12px 20px;
	border-radius: 10px;
	font-weight: 700;
	text-decoration: none;
	outline: 3px solid var(--ad-amber, #F49C26);
	outline-offset: 2px;
}
.ad-forum-page .ad-banner-inner h1.wp-block-post-title { color: #FFFFFF; }

/* ==========================================================================
   Community Forum — Figma "Community Forum" page (v1.9.73)
   Root (/forum/) = latest discussions as cards; ruby join band for
   visitors; banner sub-line. Cards markup: bbpress/loop-single-topic.php.
   ========================================================================== */

/* Banner sub-line under the COMMUNITY FORUM title */
.ad-banner-sub {
	color: #FFFFFF;
	font-size: 1rem;
	letter-spacing: 0.02em;
	margin: 0.6rem 0 0;
	text-align: center;
}

/* --- Ruby join band (visitors only) ------------------------------------ */
.ad-forum-shell--cta { padding-bottom: 0; }
.ad-forum-cta {
	background: linear-gradient(100deg, var(--ad-ruby) 0%, var(--ad-wine) 100%);
	border-radius: 14px;
	padding: 2.6rem 1.5rem;
	text-align: center;
	color: #FFFFFF;
}
.ad-forum-cta-text {
	margin: 0 0 1.2rem;
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}
.ad-forum-cta-btn {
	display: inline-block;
	background: var(--ad-btn-bg);
	color: var(--ad-brown);
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.7rem 1.6rem;
	border-radius: var(--ad-radius-pill);
}
.ad-forum-cta-btn:hover { background: var(--ad-btn-hover); color: var(--ad-brown); }
.ad-forum-cta-btn:focus-visible {
	outline: 3px solid #FFFFFF;
	outline-offset: 3px;
}

/* --- Topic cards -------------------------------------------------------- */
#bbpress-forums ul.bbp-topics.ad-topic-cards {
	border: 0;
	border-radius: 0;
	overflow: visible;
	background: none;
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 18px;
}
#bbpress-forums .ad-topic-cards .ad-topic-card {
	display: flex;
	align-items: center;
	gap: 20px;
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: 14px;
	padding: 16px 22px 16px 16px;
	overflow: visible;
}
.ad-topic-thumb {
	flex: 0 0 150px;
	display: block;
	border-radius: 10px;
	overflow: hidden;
}
.ad-topic-thumb img {
	display: block;
	width: 150px;
	height: 104px;
	object-fit: cover;
	border-radius: 10px;
}
.ad-topic-main { flex: 1 1 auto; min-width: 0; }
#bbpress-forums .ad-topic-title {
	margin: 0 0 0.3rem;
	font-family: var(--ad-font-display);
	font-size: 1.12rem;
	line-height: 1.35;
}
#bbpress-forums .ad-topic-title a {
	color: var(--ad-ink);
	text-decoration: none;
	font-weight: 700;
}
#bbpress-forums .ad-topic-title a:hover { color: var(--ad-wine); text-decoration: underline; }
#bbpress-forums .ad-topic-title a:focus-visible {
	outline: 3px solid var(--ad-wine);
	outline-offset: 2px;
	border-radius: 4px;
}
.ad-topic-excerpt {
	margin: 0 0 0.65rem;
	color: #5b5346;
	font-size: 0.87rem;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ad-topic-meta {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.4rem;
	font-size: 0.8rem;
	color: #5b5346;
}
/* Scoped to the topic-meta row only: the bare .ad-tm class is ALSO the
   testimonials page section (patterns/testimonials.php), and an unscoped
   inline-flex here collapsed that whole section into a row (v1.9.248 fix). */
.ad-topic-meta .ad-tm { display: inline-flex; align-items: center; gap: 6px; }
.ad-tm-ico { width: 14px; height: 14px; flex: 0 0 auto; }
a.ad-tm-link { color: #5b5346; text-decoration: none; }
a.ad-tm-link:hover { color: var(--ad-wine); text-decoration: underline; }
a.ad-tm-link:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 2px; border-radius: 4px; }

/* Participant avatar cluster */
.ad-topic-people {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	padding-left: 6px;
}
.ad-topic-people .ad-topic-avatar {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 2px solid #FFFFFF;
	margin-left: -8px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}
.ad-topic-people .ad-topic-avatar:first-of-type { margin-left: 0; }
.ad-topic-more {
	margin-left: -8px;
	min-width: 30px;
	height: 30px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--ad-ink);
	color: #FFFFFF;
	border: 2px solid #FFFFFF;
	font-size: 0.68rem;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* --- Root-page furniture ------------------------------------------------ */
/* v1.9.81 — one breadcrumb trail, rendered by the bridge above the content
   (any duplicate inside bbPress's own output stays hidden) */
#bbpress-forums .bbp-breadcrumb { display: none; }
.ad-forum-shell--crumb { padding: 1.5rem 1.25rem 0; }
.ad-forum-crumb .bbp-breadcrumb {
	display: block;
	margin: 0;
	font-size: 0.8rem;
	color: #5b5346;
}
.ad-forum-crumb .bbp-breadcrumb a {
	color: var(--ad-wine);
	font-weight: 600;
	text-decoration: none;
}
.ad-forum-crumb .bbp-breadcrumb a:hover { color: var(--ad-ruby); text-decoration: underline; }
.ad-forum-crumb .bbp-breadcrumb a:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 2px; border-radius: 4px; }
.ad-forum-crumb .bbp-breadcrumb-current { color: var(--ad-ink); font-weight: 600; }
.ad-forum-crumb .bbp-breadcrumb-sep { margin: 0 0.35rem; color: #A39B8C; }
/* The crumb shell supplies the top spacing — trim the content shell's */
.ad-forum-crumb + * .ad-forum-shell,
.ad-forum-shell--crumb ~ .ad-forum-shell { padding-top: 1.4rem; }
/* Search: quiet right-aligned row above the cards */
.ad-forum-root #bbp-search-form { display: flex; justify-content: flex-end; gap: 8px; margin: 0 0 1.2rem; }
.ad-forum-root #bbp-search-form #bbp_search {
	border: 1.6px solid var(--ad-line);
	border-radius: var(--ad-radius-pill);
	padding: 0.45rem 1.1rem;
	font-size: 0.85rem;
	background: #FFFFFF;
	color: var(--ad-body);
}
.ad-forum-root #bbp-search-form #bbp_search_submit {
	border: 0;
	border-radius: var(--ad-radius-pill);
	background: var(--ad-ink);
	color: #FFFFFF;
	font-size: 0.8rem;
	font-weight: 700;
	padding: 0.45rem 1.2rem;
	cursor: pointer;
}
.ad-forum-root #bbp-search-form #bbp_search_submit:hover { background: var(--ad-wine); }
.ad-forum-root #bbp-search-form #bbp_search_submit:focus-visible,
.ad-forum-root #bbp-search-form #bbp_search:focus-visible {
	outline: 3px solid var(--ad-wine);
	outline-offset: 2px;
}
/* bbPress notices restyled to the site's cream */
#bbpress-forums div.bbp-template-notice,
.bbp-template-notice {
	background: var(--ad-cream-soft);
	border: 1px solid var(--ad-line);
	border-radius: 10px;
	color: var(--ad-body);
}

/* --- Mobile ------------------------------------------------------------- */
@media (max-width: 680px) {
	#bbpress-forums .ad-topic-cards .ad-topic-card {
		flex-direction: column;
		align-items: stretch;
		padding: 14px;
	}
	.ad-topic-thumb { flex-basis: auto; }
	.ad-topic-thumb img { width: 100%; height: 160px; }
	.ad-topic-people { padding: 2px 0 0; }
	.ad-forum-root #bbp-search-form { justify-content: stretch; }
	.ad-forum-root #bbp-search-form #bbp_search { flex: 1 1 auto; min-width: 0; }
	.ad-forum-cta { padding: 2rem 1.2rem; }
}

/* --- Forced colors / high contrast -------------------------------------- */
@media (forced-colors: active) {
	.ad-forum-cta, #bbpress-forums .ad-topic-cards .ad-topic-card { border: 1px solid CanvasText; }
	.ad-forum-cta-btn { border: 1px solid CanvasText; }
	.ad-topic-more { border: 1px solid CanvasText; }
}

/* ==========================================================================
   Community Forum — discussion details page (v1.9.74)
   Figma "Community Forum – Details": hero image, article + sidebar grid,
   comment cards, "Join the conversation" form, visitor sign-in card.
   ========================================================================== */

/* Root-page polish: the "Viewing topic X" counts stay for screen readers
   but leave the visual layout (the Figma shows none). */
.ad-forum-root .bbp-pagination-count {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* --- Hero image ---------------------------------------------------------- */
.ad-topic-hero {
	margin: 0 0 1.8rem;
	border-radius: 14px;
	overflow: hidden;
}
.ad-topic-hero img {
	display: block;
	width: 100%;
	max-height: 430px;
	object-fit: cover;
}

/* --- Article + sidebar grid --------------------------------------------- */
.ad-topic-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 30px;
	align-items: start;
}
.ad-topic-contentcol { min-width: 0; }

.ad-aside-card {
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: 12px;
	padding: 20px 22px;
	margin-bottom: 20px;
}
.ad-aside-title {
	margin: 0 0 0.9rem;
	font-family: var(--ad-font-display);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--ad-ink);
}
.ad-aside-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 0.55rem;
	font-size: 0.85rem;
	color: #5b5346;
}
.ad-more-list { list-style: none; margin: 0; padding: 0; }
.ad-more-item {
	padding: 0.7rem 0;
	border-top: 1px solid var(--ad-line);
	display: grid;
	gap: 2px;
}
.ad-more-item:first-child { border-top: 0; padding-top: 0; }
.ad-more-date { color: var(--ad-ruby); font-size: 0.72rem; font-weight: 700; }
.ad-more-link {
	color: var(--ad-ink);
	font-weight: 700;
	font-size: 0.9rem;
	text-decoration: none;
	line-height: 1.4;
}
.ad-more-link:hover { color: var(--ad-wine); text-decoration: underline; }
.ad-more-link:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 2px; border-radius: 4px; }
.ad-more-count { color: #5b5346; font-size: 0.75rem; }

/* --- Lead article -------------------------------------------------------- */
.ad-topic-single .bbp-topic-content p { line-height: 1.75; }

/* --- Comments ------------------------------------------------------------ */
.ad-comments-title {
	margin: 2rem 0 1rem;
	font-family: var(--ad-font-display);
	font-size: 1.25rem;
	color: var(--ad-ink);
}
.ad-comments-count { color: var(--ad-wine); }
#bbpress-forums ul.ad-reply-cards {
	border: 0;
	border-radius: 0;
	background: none;
	overflow: visible;
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 14px;
}
.ad-reply-card {
	background: #F8F5EE;
	border: 1px solid var(--ad-line);
	border-radius: 12px;
	padding: 16px 18px;
}
.ad-reply-head {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin-bottom: 0.6rem;
}
.ad-reply-head .ad-reply-avatar {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 2px solid #FFFFFF;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}
.ad-reply-author { font-weight: 700; color: var(--ad-ink); font-size: 0.92rem; }
.ad-member-since { color: var(--ad-ruby); font-size: 0.75rem; font-weight: 700; }
.ad-reply-date { color: #5b5346; font-size: 0.78rem; }
.ad-reply-body { font-size: 0.92rem; line-height: 1.65; color: var(--ad-body); }
.ad-reply-body p:last-child { margin-bottom: 0; }
.ad-reply-tools { margin-top: 0.5rem; font-size: 0.75rem; }

/* --- Reply form / sign-in card ------------------------------------------ */
.ad-reply-intro { margin: 2.2rem 0 0.8rem; }
.ad-reply-title {
	margin: 0 0 0.35rem;
	font-family: var(--ad-font-display);
	font-size: 1.15rem;
	color: var(--ad-ink);
}
.ad-reply-note { margin: 0; color: #5b5346; font-size: 0.85rem; }
#bbpress-forums div.bbp-reply-form {
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: 12px;
	padding: 18px 20px;
	margin-top: 1rem;
}
#bbpress-forums .bbp-form legend { display: none; }
#bbpress-forums .bbp-the-content {
	border: 1.6px solid var(--ad-line);
	border-radius: 10px;
	min-height: 130px;
	font-family: var(--ad-font-body);
}
#bbpress-forums .bbp-the-content:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 2px; }
#bbpress-forums #bbp_reply_submit {
	background: var(--ad-btn-bg);
	color: var(--ad-brown);
	border: 0;
	border-radius: var(--ad-radius-pill);
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.7rem 1.6rem;
	cursor: pointer;
}
#bbpress-forums #bbp_reply_submit:hover { background: var(--ad-btn-hover); }
#bbpress-forums #bbp_reply_submit:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 3px; }

.ad-reply-signin {
	margin-top: 2.2rem;
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: 12px;
	padding: 22px 24px;
}
.ad-reply-signin .ad-forum-cta-btn { margin-top: 0.9rem; }
.ad-reply-signin .ad-forum-cta-btn:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 3px; }
/* Visitors already get the sign-in card; hide the bare duplicate notice. */
.ad-topic-single.ad-visitor .bbp-template-notice.info { display: none; }

/* --- Mobile ------------------------------------------------------------- */
@media (max-width: 900px) {
	.ad-topic-grid { grid-template-columns: 1fr; }
	.ad-topic-aside { order: 2; }
	.ad-topic-hero img { max-height: 280px; }
}

/* --- Forced colors ------------------------------------------------------- */
@media (forced-colors: active) {
	.ad-reply-card, .ad-aside-card, .ad-reply-signin { border: 1px solid CanvasText; }
}

/* --- v1.9.75: lead article, quiet toggles, no-comments line ------------- */
.ad-lead-article { margin-bottom: 0.5rem; }
.ad-lead-article .ad-lead-content { font-size: 0.98rem; line-height: 1.78; color: var(--ad-body); }
.ad-lead-article .ad-reply-tools { margin: 0 0 0.6rem; font-size: 0.75rem; }
.ad-no-comments {
	margin: 1rem 0 0;
	padding: 14px 18px;
	background: var(--ad-cream-soft);
	border: 1px solid var(--ad-line);
	border-radius: 10px;
	color: #5b5346;
	font-size: 0.9rem;
}
/* Favorite / Subscribe: quiet little pills, top right of the article */
#bbpress-forums #favorite-toggle, #bbpress-forums #subscription-toggle {
	float: none;
	font-size: 0.75rem;
}
.ad-topic-single .bbp-topic-favs, .ad-topic-single .bbp-topic-subscribe { font-size: 0.78rem; }
#bbpress-forums #favorite-toggle a, #bbpress-forums #subscription-toggle a {
	display: inline-block;
	border: 1.4px solid var(--ad-line);
	border-radius: 999px;
	padding: 3px 12px;
	color: #5b5346;
	text-decoration: none;
	background: #FFFFFF;
}
#bbpress-forums #favorite-toggle a:hover, #bbpress-forums #subscription-toggle a:hover {
	color: var(--ad-wine);
	border-color: var(--ad-wine);
}
#bbpress-forums #favorite-toggle a:focus-visible, #bbpress-forums #subscription-toggle a:focus-visible {
	outline: 3px solid var(--ad-wine);
	outline-offset: 2px;
}

/* --- v1.9.76: lead admin links sit on their own right-aligned row ------- */
.ad-lead-article .ad-reply-tools {
	display: block;
	text-align: right;
	margin: 0 0 0.6rem;
}
.ad-lead-article .ad-reply-tools .bbp-admin-links { float: none; }

/* --- v1.9.77: WCAG fixes from the axe pass ------------------------------ */
/* Moderator admin links: bbPress greys fail contrast on white */
#bbpress-forums .bbp-admin-links, #bbpress-forums .bbp-admin-links a {
	color: #5b5346;
}
#bbpress-forums .bbp-admin-links a:hover { color: var(--ad-wine); }
#bbpress-forums .bbp-admin-links a:focus-visible {
	outline: 3px solid var(--ad-wine);
	outline-offset: 2px;
}

/* --- v1.9.78: banner + Figma fidelity pass ------------------------------ */
/* Banner text on single discussions renders as a styled <p> (the in-content
   topic title is the h1 there) — give it the exact banner-title look. */
.ad-banner p.ad-banner-title {
	color: #FFFFFF;
	text-transform: uppercase;
	font-family: var(--ad-font-display);
	font-weight: 600;
	letter-spacing: 0.01em;
	font-size: clamp(1.8rem, 2.9167vw, 3.5rem);
	text-wrap: balance;
	line-height: 1.15;
	margin: 0;
}
/* Forum pages sit on white like the Figma (site cream stays elsewhere) */
.ad-forum-main { background: #FFFFFF; }
/* Cards: warm light grey like the Figma, soft edge */
#bbpress-forums .ad-topic-cards .ad-topic-card {
	background: #F7F5F1;
	border-color: #EFEBE3;
	box-shadow: 0 1px 2px rgba(26, 34, 47, 0.04);
}
.ad-aside-card, .ad-reply-card { background: #F7F5F1; border-color: #EFEBE3; }
/* Ruby band carries the faint community photo (inline background-image) */
.ad-forum-cta {
	background-size: cover;
	background-position: center;
}
/* Discussion title inside the page (Figma details layout) */
.ad-topic-heading {
	font-family: var(--ad-font-display);
	font-size: clamp(1.35rem, 1.85vw, 1.8rem);
	color: var(--ad-ink);
	margin: 0 0 1rem;
	line-height: 1.3;
}
/* About-this-discussion: description line + ruby icons + bold values */
.ad-aside-desc {
	margin: 0 0 1rem;
	font-size: 0.82rem;
	line-height: 1.55;
	color: #5b5346;
}
.ad-aside-row .ad-tm-ico { color: var(--ad-ruby); }
.ad-aside-row strong { color: var(--ad-ink); font-weight: 700; }
/* Reply form: placeholder tone + button bottom-right (Figma) */
#bbpress-forums .bbp-the-content::placeholder { color: #8A8172; }
#bbpress-forums .bbp-submit-wrapper { float: none; text-align: right; }

/* --- v1.9.79: details-page title case + article alignment --------------- */
/* Figma: the discussion title is sentence case, not uppercase */
.ad-topic-heading {
	text-transform: none !important;
	letter-spacing: 0;
	font-size: clamp(1.25rem, 1.7vw, 1.55rem);
}
/* bbPress reserves a 130px left margin for its author column — our lead
   article has no author column, so the text aligns with the heading */
#bbpress-forums .ad-lead-article div.bbp-topic-content {
	margin-left: 0 !important;
	padding: 0 !important;
}

/* --- v1.9.80: no white strip above the forum banner --------------------- */
/* The bridge's skip link is the first child of .wp-site-blocks, so the
   global block-gap rule gave the banner a 24px top margin (the white
   strip). The banner sits flush at the top like every other page. */
.ad-forum-page .wp-site-blocks > .ad-banner {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

/* --- v1.9.81: ruby #A60641 accents (same family as the events hover) ---- */
.ad-comments-title, .ad-aside-title, .ad-reply-title {
	position: relative;
	padding-bottom: 0.5rem;
}
.ad-comments-title::after, .ad-aside-title::after, .ad-reply-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 44px;
	height: 3px;
	border-radius: 2px;
	background: var(--ad-ruby);
}
.ad-comments-count { color: var(--ad-ruby); }
#bbpress-forums .ad-topic-title a:hover,
.ad-more-link:hover,
a.ad-tm-link:hover { color: var(--ad-ruby); }
#bbpress-forums #favorite-toggle a:hover,
#bbpress-forums #subscription-toggle a:hover {
	color: var(--ad-ruby);
	border-color: var(--ad-ruby);
}

/* --- v1.9.82: bridge breadcrumb + quiet reply counter -------------------- */
/* The bridge builds its own trail (bbp_breadcrumb is suppressed on this
   install) — show only the bridge's, and keep the "Viewing X replies"
   counter for screen readers without the visual line. */
.ad-forum-crumb .bbp-breadcrumb { display: block; }
.ad-topic-single .bbp-pagination-count {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* --- v1.9.84: identical header position on forum pages ------------------- */
/* The global block-gap gave the header group a 24px top margin on the
   bridge pages (the skip link, not the header, is the first child there),
   sitting the logo/navigation lower than on Events/Blog. The bridge
   manages its own spacing, so no direct child takes the root block-gap. */
.ad-forum-page .wp-site-blocks > * {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

/* --- v1.9.85: forum filter pills + pagination --------------------------- */
.ad-forum-shell--filter { padding: 1.1rem 1.25rem 0; }
.ad-ff-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.ad-ff-pill {
	display: inline-block;
	padding: 0.5rem 1.15rem;
	border-radius: 999px;
	border: 1.6px solid var(--ad-line);
	background: #FFFFFF;
	color: var(--ad-body-soft);
	font-size: 0.82rem;
	font-weight: 700;
	text-decoration: none;
}
.ad-ff-pill:hover { border-color: var(--ad-ruby); color: var(--ad-ruby); }
.ad-ff-pill.is-active {
	background: var(--ad-ink);
	border-color: var(--ad-ink);
	color: #FFFFFF;
}
.ad-ff-pill:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 2px; }

/* bbPress pagination (appears once discussions exceed the per-page
   setting) — centred pill links in the site's language */
#bbpress-forums .bbp-pagination {
	float: none;
	display: flex;
	justify-content: center;
	margin: 1.6rem 0 0;
}
#bbpress-forums .bbp-pagination-links {
	float: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
#bbpress-forums .bbp-pagination-links a,
#bbpress-forums .bbp-pagination-links span.current,
#bbpress-forums .bbp-pagination-links span.dots {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: 999px;
	border: 1.6px solid var(--ad-line);
	background: #FFFFFF;
	color: var(--ad-body-soft);
	font-weight: 700;
	font-size: 0.85rem;
	text-decoration: none;
}
#bbpress-forums .bbp-pagination-links a:hover { border-color: var(--ad-ruby); color: var(--ad-ruby); }
#bbpress-forums .bbp-pagination-links a:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 2px; }
#bbpress-forums .bbp-pagination-links span.current {
	background: var(--ad-wine);
	border-color: var(--ad-wine);
	color: #FFFFFF;
}
#bbpress-forums .bbp-pagination-links span.dots { border: 0; background: none; }

@media (forced-colors: active) {
	.ad-ff-pill, #bbpress-forums .bbp-pagination-links a,
	#bbpress-forums .bbp-pagination-links span.current { border: 1px solid CanvasText; }
}

/* --- v1.9.86: new-topic form matches the reply form ---------------------- */
#bbpress-forums div.bbp-topic-form {
	background: #FFFFFF;
	border: 1px solid var(--ad-line);
	border-radius: 12px;
	padding: 18px 20px;
	margin-top: 1.6rem;
}
#bbpress-forums #bbp_topic_submit {
	background: var(--ad-btn-bg);
	color: var(--ad-brown);
	border: 0;
	border-radius: var(--ad-radius-pill);
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.7rem 1.6rem;
	cursor: pointer;
}
#bbpress-forums #bbp_topic_submit:hover { background: var(--ad-btn-hover); }
#bbpress-forums #bbp_topic_submit:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 3px; }

/* --- v1.9.87: forum toolbar row + ruby filter pills ---------------------- */
/* One tidy toolbar above the cards: top pagination sits LEFT, search sits
   RIGHT on the same row — nothing overlaps or clips. Bottom pagination
   stays centred under the cards. */
.ad-forum-root #bbpress-forums {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 16px;
	align-items: center;
}
.ad-forum-root #bbpress-forums > * { grid-column: 1 / -1; }
.ad-forum-root #bbpress-forums > .bbp-pagination {
	grid-column: 1;
	grid-row: 1;
	justify-content: flex-start;
	margin: 0 0 1.3rem;
}
.ad-forum-root #bbpress-forums > #bbp-search-form {
	grid-column: 2;
	grid-row: 1;
	margin: 0 0 1.3rem;
}
.ad-forum-root #bbpress-forums > .bbp-pagination:last-of-type {
	grid-column: 1 / -1;
	grid-row: auto;
	justify-content: center;
	margin: 1.6rem 0 0;
}
/* Search field: calm site styling, generous height, no stray outlines */
.ad-forum-root #bbp-search-form #bbp_search {
	border: 1.6px solid var(--ad-line) !important;
	border-radius: var(--ad-radius-pill);
	padding: 0.5rem 1.1rem;
	background: #FFFFFF;
	box-shadow: none !important;
	outline: none;
	margin: 0;
}
.ad-forum-root #bbp-search-form #bbp_search:focus-visible {
	outline: 3px solid var(--ad-wine);
	outline-offset: 2px;
}

/* Filter pills — ruby language (per Shivaji): ruby border + ruby text at
   rest; ruby background + white text on hover and active */
.ad-ff-pill {
	border: 1.6px solid var(--ad-ruby);
	color: var(--ad-ruby);
	background: #FFFFFF;
}
.ad-ff-pill:hover {
	background: var(--ad-ruby);
	border-color: var(--ad-ruby);
	color: #FFFFFF;
}
.ad-ff-pill.is-active {
	background: var(--ad-ruby);
	border-color: var(--ad-ruby);
	color: #FFFFFF;
}
.ad-ff-pill:focus-visible { outline: 3px solid var(--ad-ink); outline-offset: 2px; }

/* --- v1.9.88: boxed community toolbar (approved Sample 2) ---------------- */
/* The v1.9.87 toolbar grid is retired — everything lives in the box now */
.ad-forum-root #bbpress-forums { display: block; }
.ad-forum-shell--filter { display: none; }

.ad-forum-toolbar {
	background: var(--ad-cream-soft);
	border: 1px solid #E3D4B6;
	border-radius: 14px;
	padding: 16px 18px;
	margin: 0 0 20px;
}
.ad-forum-toolbar .ad-ff-list { margin: 0 0 14px; }
.ad-ft-div { border-top: 1px solid #E3D4B6; margin: 0 0 14px; }
.ad-ft-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px 16px;
	flex-wrap: wrap;
}
.ad-ft-row .bbp-pagination { margin: 0 !important; justify-content: flex-start !important; }
.ad-ft-row #bbp-search-form { margin: 0 !important; }

/* Pagination — SAME language as Blog/Events everywhere (top box + bottom):
   tile with 10px corners, ink current page, amber hover */
#bbpress-forums .bbp-pagination-links a,
#bbpress-forums .bbp-pagination-links span.current,
#bbpress-forums .bbp-pagination-links span.dots {
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.8rem;
	border: 1.5px solid #E3D4B6;
	border-radius: 10px;
	background: var(--ad-cream-soft);
	color: var(--ad-ink);
	font-weight: 700;
	line-height: 1;
}
.ad-forum-toolbar .bbp-pagination-links a,
.ad-forum-toolbar .bbp-pagination-links span.dots { background: #FFFFFF; }
#bbpress-forums .bbp-pagination-links span.current {
	background: var(--ad-ink);
	border-color: var(--ad-ink);
	color: #FFFFFF;
}
#bbpress-forums .bbp-pagination-links a:hover,
#bbpress-forums .bbp-pagination-links a:focus-visible {
	background: var(--ad-amber);
	border-color: var(--ad-amber);
	color: var(--ad-ink);
}
#bbpress-forums .bbp-pagination-links span.dots { border: 0; background: none; min-width: auto; padding: 0 0.3rem; color: #5F5140; }

/* Search matched to the tile language (10px corners, same 40px height) */
.ad-forum-root #bbp-search-form { display: flex; gap: 8px; align-items: center; }
.ad-forum-root #bbp-search-form #bbp_search {
	height: 2.5rem;
	width: clamp(160px, 24vw, 240px);
	padding: 0 1rem;
	border: 1.5px solid #E3D4B6 !important;
	border-radius: 10px;
	background: #FFFFFF;
	font-size: 0.88rem;
}
.ad-forum-root #bbp-search-form #bbp_search_submit {
	height: 2.5rem;
	padding: 0 1.3rem;
	border: 0;
	border-radius: 10px;
	background: var(--ad-ink);
	color: #FFFFFF;
	font-weight: 700;
	font-size: 0.85rem;
	cursor: pointer;
}
.ad-forum-root #bbp-search-form #bbp_search_submit:hover { background: var(--ad-ruby); }

@media (max-width: 700px) {
	.ad-ft-row { flex-direction: column; align-items: stretch; }
	.ad-forum-root #bbp-search-form #bbp_search { flex: 1 1 auto; width: auto; }
}
@media (forced-colors: active) {
	.ad-forum-toolbar, #bbpress-forums .bbp-pagination-links a,
	#bbpress-forums .bbp-pagination-links span.current { border: 1px solid CanvasText; }
}

/* --- v1.9.89: toolbar row — pagination left, search right on ONE line ---- */
/* bbPress forces .bbp-pagination to width:100%, wrapping the search below */
.ad-ft-row .bbp-pagination { width: auto !important; float: none !important; }
.ad-ft-row #bbp-search-form { margin-left: auto !important; }

/* --- v1.9.90: toolbar polish per Shivaji ---------------------------------- */
/* 1. No divider line inside the toolbar box */
.ad-ft-div { display: none; }
/* 2. Pills moved inside #bbpress-forums, whose ID-scoped styles outrank the
   plain class — re-assert the ruby pill design at higher specificity */
#bbpress-forums .ad-ff-pill, .ad-ff-pill {
	border: 1.6px solid var(--ad-ruby) !important;
	background: #FFFFFF !important;
	color: var(--ad-ruby) !important;
	text-decoration: none !important;
}
#bbpress-forums .ad-ff-pill:hover, .ad-ff-pill:hover,
#bbpress-forums .ad-ff-pill.is-active, .ad-ff-pill.is-active {
	background: var(--ad-ruby) !important;
	border-color: var(--ad-ruby) !important;
	color: #FFFFFF !important;
}

/* --- v1.9.91: breathing room inside the toolbar box ---------------------- */
/* bbPress's ID-scoped `#bbpress-forums ul {margin:0}` was collapsing the
   gap under the pills row — re-assert the spacing at higher specificity */
#bbpress-forums .ad-forum-toolbar { padding: 20px 22px; }
#bbpress-forums .ad-forum-toolbar .ad-ff-list,
.ad-forum-toolbar .ad-ff-list { margin: 0 0 22px !important; }
.ad-ft-row { gap: 14px 20px; }

/* --- v1.9.92: pagination active tile = ink #1A222F, top and bottom ------- */
#bbpress-forums .bbp-pagination-links span.current {
	background: #1A222F !important;
	border-color: #1A222F !important;
	color: #FFFFFF !important;
}

/* --- v1.9.93: active pagination tile at FULL opacity ---------------------- */
/* bbPress sets opacity .8 on span.current — #1A222F was blending with the
   cream toolbar into #474C54. Full opacity shows the true ink colour. */
#bbpress-forums .bbp-pagination-links span.current { opacity: 1 !important; }

/* --- v1.9.94: mobile toolbar — dropdown filter + fitted search ----------- */
.ad-ff-mobile { display: none; }
.ad-ff-mobile-row { display: flex; gap: 8px; margin: 0 0 16px; }
.ad-ff-select {
	flex: 1 1 auto;
	min-width: 0;
	height: 2.75rem;
	padding: 0 0.8rem;
	border: 1.6px solid var(--ad-ruby);
	border-radius: 10px;
	background: #FFFFFF;
	color: var(--ad-ink);
	font-family: var(--ad-font-body);
	font-size: 0.9rem;
	font-weight: 600;
}
.ad-ff-select:focus-visible { outline: 3px solid var(--ad-wine); outline-offset: 2px; }
.ad-ff-go {
	flex: 0 0 auto;
	height: 2.75rem;
	padding: 0 1.15rem;
	border: 0;
	border-radius: 10px;
	background: var(--ad-ruby);
	color: #FFFFFF;
	font-weight: 700;
	font-size: 0.85rem;
	cursor: pointer;
}
.ad-ff-go:hover { background: var(--ad-wine); }
.ad-ff-go:focus-visible { outline: 3px solid var(--ad-ink); outline-offset: 2px; }

@media (max-width: 700px) {
	#bbpress-forums .ad-forum-toolbar { padding: 14px 16px; }
	/* JS present: dropdown replaces the tall pill stack (no JS: pills stay) */
	body.ad-js .ad-forum-toolbar .ad-forum-filter { display: none; }
	body.ad-js .ad-ff-mobile { display: block; }
	/* Search fits the screen: input shrinks, button keeps its size */
	.ad-forum-root #bbp-search-form { width: 100%; max-width: 100%; }
	.ad-forum-root #bbp-search-form #bbp_search {
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;
	}
	.ad-forum-root #bbp-search-form #bbp_search_submit { flex: 0 0 auto; }
}

/* --- v1.9.95: display the thumbnail span like the old link --------------- */
span.ad-topic-thumb { display: block; }

/* --- v1.9.96: computable contrast for the floating header ---------------- */
/* WAVE cannot see the banner image behind the transparent header, so it
   assumed a white page and flagged the white menu at 1.01:1. The header
   now carries a solid backdrop in the banner sky's own colour (#1E1C1B,
   sampled from the image's top strip) — visually seamless against the
   night sky, and every tool can now compute the real contrast:
   white menu 17.9:1, amber FORUM 8.4:1. */
/* v1.9.121 — back to the ORIGINAL blended header on banner pages.
   Chasing the photo with a solid hex can never match (the overlay tints
   the very pixels being sampled — Shivaji caught this). So the inner
   pages now use the exact front-page recipe WAVE already passes: a soft
   dark tint the tools can read, fading into the artwork below. Mobile
   keeps a solid (short header, no visible junction). */
body:has(.ad-banner) .site-header {
	background: #1E1C1B !important;
}

/* --- v1.9.97: breadcrumb separator passes contrast ----------------------- */
.ad-forum-crumb .bbp-breadcrumb-sep { color: #5B5346; }

/* ======================================================================
   v1.9.103 — Forum search page, "Sample 1" result cards
   Heading with highlighted query, cream toolbar (form + short count),
   discussion-style cards with type pills and <mark> highlights, tile
   pagination below (count hidden — it already sits in the toolbar).
   ====================================================================== */

.ad-search-h {
	font-size: 1.5rem;
	color: #1A222F;
	margin: 0 0 4px;
}
.ad-search-h mark,
.ad-sr-title mark,
.ad-sr-snip mark {
	background: #FCE9B8;
	border-radius: 4px;
	padding: 0 3px;
	color: inherit;
}

/* Toolbar: the cream box holds the search form + a short result count. */
.ad-search-toolbar {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 22px;
}
.ad-forum-search .ad-search-toolbar #bbp-search-form {
	display: flex;
	flex: 1 1 auto;
	gap: 10px;
	margin: 0 !important;
	min-width: 0;
}
.ad-forum-search .ad-search-toolbar #bbp-search-form #bbp_search {
	flex: 1 1 auto;
	min-width: 0;
}
.ad-search-count {
	color: #5B5346;
	font-size: 0.9rem;
	white-space: nowrap;
	margin-left: auto;
}

/* Result cards. */
#bbpress-forums ul.ad-search-cards {
	list-style: none;
	margin: 0;
	padding: 0;
}
#bbpress-forums ul.ad-search-cards li.ad-sr-card {
	background: #F7F5F1;
	border: 1.5px solid #EFEBE3;
	border-radius: 14px;
	padding: 18px 20px;
	display: flex;
	gap: 16px;
	margin: 0 0 14px;
	transition: border-color 0.15s ease;
}
#bbpress-forums ul.ad-search-cards li.ad-sr-card:hover,
#bbpress-forums ul.ad-search-cards li.ad-sr-card:focus-within {
	border-color: #A60641;
}
.ad-sr-avatar,
img.ad-sr-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	flex: none;
	object-fit: cover;
}
.ad-sr-avatar--img { overflow: hidden; display: block; }
.ad-sr-avatar--img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ad-sr-avatar--forum { background: #A60641; display: block; }
.ad-sr-main { min-width: 0; flex: 1 1 auto; }
#bbpress-forums .ad-sr-type { margin: 0 0 4px; line-height: 1; }
.ad-sr-pill {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-radius: 999px;
	padding: 3px 12px;
	border: 1.5px solid #A60641;
	color: #A60641;
	background: #FFFFFF;
}
.ad-sr-pill--reply { border-color: #1A222F; color: #1A222F; }
.ad-sr-pill--forum { background: #A60641; color: #FFFFFF; }
#bbpress-forums .ad-sr-title {
	font-size: 1.05rem;
	margin: 2px 0;
	line-height: 1.35;
}
#bbpress-forums .ad-sr-title a {
	color: #1A222F;
	text-decoration: none;
}
#bbpress-forums .ad-sr-title a:hover,
#bbpress-forums .ad-sr-title a:focus-visible {
	color: #A60641;
	text-decoration: underline;
}
#bbpress-forums .ad-sr-snip {
	font-size: 0.92rem;
	color: #3D3D3D;
	margin: 4px 0 8px;
}
#bbpress-forums .ad-sr-meta {
	font-size: 0.83rem;
	color: #5B5346;
	margin: 0;
}
#bbpress-forums .ad-sr-meta b { color: #232323; font-weight: 600; }
#bbpress-forums .ad-sr-meta a { color: #A60641; }
/* v1.9.105: #5B5346 — the bullet is decorative but WAVE still measures
   visible text contrast; this matches the breadcrumb separator (≈5.5:1). */
.ad-sr-dot { padding: 0 7px; color: #5B5346; }

/* Bottom pagination: tiles only — the count already sits in the toolbar. */
.ad-search-page .bbp-pagination-count { display: none; }
.ad-search-page .bbp-pagination { justify-content: center; }

/* Empty state + landing hint. */
#bbpress-forums div.bbp-template-notice.ad-search-empty {
	background: #FBF4E4;
	border: 1px solid #E3D4B6;
	border-radius: 14px;
	padding: 18px 22px;
	color: #232323;
}
#bbpress-forums div.bbp-template-notice.ad-search-empty a { color: #A60641; }
.ad-search-hint { color: #5B5346; font-size: 0.95rem; }

@media (max-width: 700px) {
	.ad-sr-avatar, img.ad-sr-avatar { width: 36px; height: 36px; }
	#bbpress-forums ul.ad-search-cards li.ad-sr-card { padding: 14px 16px; gap: 12px; }
	.ad-search-count { margin-left: 0; width: 100%; }
}

/* ======================================================================
   v1.9.107 — Search page refinements (user review)
   1. Meta row (author • date • forum) reduced.
   2. Every card avatar reads as the SAME 44px disc: white fill + hairline
      ring, so the transparent site-icon logo no longer looks smaller than
      the member photos.
   ====================================================================== */

#bbpress-forums .ad-sr-meta { font-size: 0.75rem; }

#bbpress-forums ul.ad-search-cards img.avatar,
#bbpress-forums ul.ad-search-cards .ad-sr-avatar {
	width: 44px !important;
	height: 44px !important;
	border-radius: 50%;
	object-fit: cover;
	background: #FFFFFF;
	border: 1px solid #E3D4B6;
	flex: none;
}

/* ======================================================================
   v1.9.108 — search page matches the approved Sample 1 exactly:
   ruby Search button, count brief under the heading, and clear spacing
   between breadcrumb, heading, brief, toolbar and cards.
   ====================================================================== */

.ad-forum-search .ad-search-h { margin: 12px 0 6px; }
.ad-search-countline {
	color: #5B5346;
	font-size: 0.95rem;
	margin: 0 0 18px;
}
.ad-forum-search .ad-search-toolbar { margin-bottom: 26px; }
.ad-forum-search .ad-search-toolbar #bbp-search-form #bbp_search_submit {
	background: #A60641;
	border: 2px solid #A60641;
	color: #FFFFFF;
	font-weight: 700;
	border-radius: 10px;
	padding: 0 1.4rem;
	min-height: 2.75rem;
	cursor: pointer;
}
.ad-forum-search .ad-search-toolbar #bbp-search-form #bbp_search_submit:hover {
	background: #861840;
	border-color: #861840;
}
.ad-forum-search .ad-search-toolbar #bbp-search-form #bbp_search_submit:focus-visible {
	outline: 3px solid #1A222F;
	outline-offset: 2px;
}
#bbpress-forums ul.ad-search-cards li.ad-sr-card { margin: 0 0 16px; padding: 20px 22px; }
#bbpress-forums .ad-sr-type { margin: 0 0 6px; }
#bbpress-forums .ad-sr-title { margin: 0 0 4px; }
#bbpress-forums .ad-sr-snip { margin: 0 0 10px; }
.ad-search-page .bbp-pagination { margin-top: 26px; }

/* ======================================================================
   v1.9.117 — melt the header backdrop into the banner again (Shivaji:
   "the hero image was nicely blended towards the top header… now it
   abruptly shows a partition").
   The v1.9.96 WAVE fix gave the floating header a solid #1E1C1B base so
   contrast tools can compute the nav colours — but the solid block ended
   in a hard seam against the photo on every banner page. Same cure as
   the approved front-page treatment: a soft gradient below the header
   dissolves the colour into the night sky. Purely decorative — the
   header itself stays solid, so WAVE/axe results are unchanged.
   ====================================================================== */



/* v1.9.121 — desktop banner pages: front-page tint + fade (WAVE-proven).
   The tint gives audit tools a computable dark base for the white/amber
   nav; the fade dissolves it into the photo, so there is never a seam,
   whatever the image. Fade is 150px so it completes inside the banner. */
@media (min-width: 782px) {
	body:not(.home):has(.ad-banner) .site-header {
		background: rgba(16, 21, 30, 0.55) !important;
		box-shadow: none !important;
	}
	body:not(.home):has(.ad-banner) .site-header::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		height: 150px;
		pointer-events: none;
		z-index: 0;
		background: linear-gradient(to bottom,
			rgba(16, 21, 30, 0.55) 0%,
			rgba(16, 21, 30, 0.34) 25%,
			rgba(16, 21, 30, 0.18) 50%,
			rgba(16, 21, 30, 0.07) 75%,
			rgba(16, 21, 30, 0) 100%);
	}
}

/* v1.9.123 — banner veil is now a top-weighted GRADIENT: deep night-navy
   over the artwork's pale upper sky (so the floating header and white
   titles always sit on dark), easing down so the Kolkata–Sydney skyline
   glows through. Image-independent, viewport-independent, seam-free. */
.ad-banner.wp-block-cover .wp-block-cover__background {
	background: linear-gradient(180deg,
		rgba(13, 17, 25, 0.88) 0%,
		rgba(13, 17, 25, 0.72) 35%,
		rgba(13, 17, 25, 0.5) 65%,
		rgba(13, 17, 25, 0.35) 100%) !important;
	opacity: 1 !important;
}

/* ======================================================================
   v1.9.125 — STORE: "Our Books" listing per Figma
   Banner search, white filter panel, boxless 4-col product cards with
   glow covers + hover ADD TO CART pill, crimson prices, tile pagination.
   ====================================================================== */

/* Banner search (Figma: big rounded field + amber circle button). */
.ad-store-banner .ad-banner-title { letter-spacing: 0.04em; }
.ad-store-search {
	display: flex;
	align-items: center;
	gap: 0;
	max-width: 680px;
	margin: 1.4rem auto 0;
	background: #FFFFFF;
	border-radius: 999px;
	padding: 6px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}
.ad-store-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 0.8rem 1.4rem;
	font-size: 1rem;
	color: #232323;
}
.ad-store-search input[type="search"]:focus-visible { outline: 3px solid #1A222F; outline-offset: 2px; border-radius: 999px; }
.ad-store-search-btn {
	flex: none;
	width: 52px;
	height: 52px;
	border: 0;
	border-radius: 50%;
	background: var(--ad-btn-bg, #F2A93B);
	color: #3A2A10;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.ad-store-search-btn svg { width: 22px; height: 22px; }
.ad-store-search-btn:hover { background: var(--ad-btn-hover, #E39A25); }
.ad-store-search-btn:focus-visible { outline: 3px solid #1A222F; outline-offset: 2px; }

/* Filter panel: white rounded card overlapping the banner. */
.ad-shop-filters-wrap {
	max-width: 1200px;
	margin: -56px auto 2.2rem;
	padding-inline: 24px;
	position: relative;
	z-index: 5;
}
.ad-shop-filters {
	background: #FFFFFF;
	border-radius: 16px;
	box-shadow: 0 18px 45px rgba(20, 24, 38, 0.12);
	padding: 22px 26px 24px;
}
.ad-sf-heading { font-weight: 700; margin: 0 0 10px; color: #1A222F; }
.ad-sf-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 16px 20px;
	align-items: end;
}
.ad-sf-field label,
.ad-sf-label {
	display: block;
	font-size: 0.8rem;
	color: #4A4A4A;
	margin-bottom: 6px;
}
.ad-sf-field select {
	width: 100%;
	height: 2.75rem;
	border: 1.5px solid #D9D4C8;
	border-radius: 10px;
	background: #FFFFFF;
	padding: 0 12px;
	font-size: 0.9rem;
	color: #232323;
}
.ad-sf-field select:focus-visible { outline: 3px solid #1A222F; outline-offset: 1px; }

/* Dual-range price slider (amber fill between handles). */
.ad-sf-range {
	position: relative;
	height: 2.75rem;
	--lo: 0%;
	--hi: 100%;
}
.ad-sf-range::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 50%;
	height: 6px;
	transform: translateY(-50%);
	border-radius: 3px;
	background: linear-gradient(to right,
		#E8E2D4 var(--lo), var(--ad-btn-bg, #F2A93B) var(--lo),
		var(--ad-btn-bg, #F2A93B) var(--hi), #E8E2D4 var(--hi));
}
.ad-sf-range input[type="range"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	pointer-events: none;
}
.ad-sf-range input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	pointer-events: auto;
	width: 20px; height: 20px;
	border-radius: 50%;
	background: var(--ad-btn-bg, #F2A93B);
	border: 3px solid #FFFFFF;
	box-shadow: 0 1px 5px rgba(0,0,0,0.35);
	cursor: pointer;
}
.ad-sf-range input[type="range"]::-moz-range-thumb {
	pointer-events: auto;
	width: 16px; height: 16px;
	border-radius: 50%;
	background: var(--ad-btn-bg, #F2A93B);
	border: 3px solid #FFFFFF;
	box-shadow: 0 1px 5px rgba(0,0,0,0.35);
	cursor: pointer;
}
.ad-sf-range input[type="range"]:focus-visible { outline: 3px solid #1A222F; outline-offset: 4px; }
.ad-sf-price-out { display: block; font-size: 0.82rem; color: #4A4A4A; margin-top: 4px; text-align: right; }

.ad-sf-btn {
	height: 2.75rem;
	width: 100%;
	border: 0;
	border-radius: 10px;
	background: #1A222F;
	color: #FFFFFF;
	font-weight: 700;
	font-size: 0.9rem;
	cursor: pointer;
}
.ad-sf-btn:hover { background: #A60641; }
.ad-sf-btn:focus-visible { outline: 3px solid #1A222F; outline-offset: 2px; }

/* Product grid: boxless cards, glow covers, crimson price. */
.ad-store-main .woocommerce-breadcrumb,
.ad-store-main .woocommerce-products-header { display: none; }
.ad-store-main ul.products {
	max-width: 1200px;
	margin: 0 auto !important;
	padding-inline: 24px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 3.2rem 2.4rem;
}
.ad-store-main ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	text-align: center;
	background: none;
	border: 0;
	position: relative;
}
.ad-store-main ul.products li.product a img {
	width: auto !important;
	max-width: 78%;
	max-height: 340px;
	margin: 0 auto 1.1rem;
	border-radius: 10px;
	box-shadow: 0 18px 40px rgba(30, 26, 20, 0.28);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.ad-store-main ul.products li.product:hover a img,
.ad-store-main ul.products li.product:focus-within a img {
	transform: translateY(-4px);
	box-shadow: 0 24px 52px rgba(30, 26, 20, 0.38);
}
.ad-store-main ul.products li.product .woocommerce-loop-product__title {
	font-size: 1.16rem !important;
	font-weight: 700;
	color: #17181A;
	padding: 0 !important;
	margin: 0 0 2px;
}
.ad-card-author { display: block; font-size: 0.88rem; color: #5B5B5B; margin-bottom: 4px; }
.ad-store-main ul.products li.product .price {
	color: #B00A48 !important;
	font-weight: 700 !important;
	font-size: 1.1rem !important;
}
.ad-store-main ul.products li.product .price del { color: #8a8a8a !important; font-weight: 400 !important; margin-right: 6px; }

/* Hover ADD TO CART pill over the cover (also on keyboard focus). */
.ad-store-main ul.products li.product .button {
	position: absolute;
	top: 150px;
	left: 50%;
	transform: translateX(-50%);
	background: #17181A !important;
	color: #FFFFFF !important;
	border-radius: 999px !important;
	padding: 0.8em 1.6em !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
	z-index: 3;
}
.ad-store-main ul.products li.product:hover .button,
.ad-store-main ul.products li.product .button:focus,
.ad-store-main ul.products li.product .button:focus-visible {
	opacity: 1;
	pointer-events: auto;
}
.ad-store-main ul.products li.product .button:hover { background: #A60641 !important; }
.ad-store-main ul.products li.product .button:focus-visible { outline: 3px solid #1A222F; outline-offset: 2px; opacity: 1; }
.ad-store-main ul.products li.product .added_to_cart {
	display: inline-block;
	margin-top: 6px;
	color: #A60641;
	font-weight: 700;
}

/* Tile pagination (Blog/Events language). */
.ad-store-main .woocommerce-pagination { text-align: center; margin: 3rem 0 0; }
.ad-store-main .woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	gap: 8px;
	border: 0 !important;
	margin: 0;
}
.ad-store-main .woocommerce-pagination ul.page-numbers li { border: 0 !important; }
.ad-store-main .woocommerce-pagination .page-numbers {
	min-width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid #E3D4B6 !important;
	border-radius: 10px;
	background: #FBF4E4;
	color: #1A222F;
	font-weight: 600;
	padding: 0 10px;
	text-decoration: none;
}
.ad-store-main .woocommerce-pagination span.page-numbers.current {
	background: #1A222F !important;
	border-color: #1A222F !important;
	color: #FFFFFF !important;
}
.ad-store-main .woocommerce-pagination a.page-numbers:hover {
	background: var(--ad-btn-bg, #F2A93B);
	border-color: var(--ad-btn-bg, #F2A93B);
	color: #1A222F;
}

/* v1.9.142 — pagination exactly like Blog/Events. WooCommerce puts the
   class "page-numbers" on the UL itself, so the tile background was also
   painting the whole row's container — the cream strip visible between
   tiles. Container neutralised; tiles, dots and hover matched 1:1 to the
   blog pager palette (#FBF4E4 tiles, ink current, #F49C26 hover). */
.ad-store-main .woocommerce-pagination ul.page-numbers {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.ad-store-main .woocommerce-pagination .page-numbers {
	font-weight: 700 !important;
	border: 1.5px solid #E3D4B6 !important;
}
.ad-store-main .woocommerce-pagination span.page-numbers.current {
	background: #1A222F !important;
	border-color: #1A222F !important;
	color: #FFFFFF !important;
}
.ad-store-main .woocommerce-pagination span.page-numbers.dots {
	border: 0 !important;
	background: none !important;
	min-width: auto !important;
	height: auto !important;
	padding: 0 0.3rem !important;
	color: #5f5140 !important;
}
.ad-store-main .woocommerce-pagination a.page-numbers:hover,
.ad-store-main .woocommerce-pagination a.page-numbers:focus-visible {
	background: #F49C26 !important;
	border-color: #F49C26 !important;
	color: #1A222F !important;
}

/* Woo notices sit inside the content width. */
.ad-store-main .woocommerce-notices-wrapper { max-width: 1200px; margin: 0 auto; padding-inline: 24px; }

/* Responsive: 4 -> 3 -> 2 -> 1 columns. */
@media (max-width: 1280px) {
	.ad-store-main ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
	.ad-store-main ul.products { grid-template-columns: repeat(2, 1fr); gap: 2.4rem 1.6rem; }
	.ad-shop-filters-wrap { margin-top: -36px; }
}
@media (max-width: 560px) {
	.ad-store-main ul.products { grid-template-columns: 1fr; }
	.ad-store-search { max-width: 92%; }
	.ad-store-main ul.products li.product a img { max-height: 300px; }
}

/* v1.9.126 — store polish: the parent theme's demo shop furniture (the
   "Ananyoo Shop" promo bar and category pill row) is hidden on this
   site's store; the taller banner content (title + sub + search) gets
   breathing room so the heading clears the floating header. */
.ad-store-main .ariade-shop-intro,
.ad-store-main .ariade-shop-cats { display: none !important; }
.ad-store-banner.wp-block-cover { min-height: 500px !important; }
.ad-store-banner .wp-block-cover__inner-container { padding-top: 110px; }
@media (max-width: 781px) {
	.ad-store-banner.wp-block-cover { min-height: 430px !important; }
	.ad-store-banner .wp-block-cover__inner-container { padding-top: 80px; }
}

/* v1.9.127 — store layout rescue: the parent's shop layout wrappers
   (.ariade-shop-layout grid with its unused filter rail) collapse to
   zero width inside our full-bleed template. Flatten every wrapper to a
   simple full-width block; our own grid handles the columns. */
.ad-store-main,
.ad-store-main .content-area,
.ad-store-main .site-main,
.ad-store-main .ariade-shop-layout,
.ad-store-main .ariade-shop-main {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
}
.ad-store-main ul.products { width: 100%; box-sizing: border-box; }

/* v1.9.128 — store final polish: parent's leftover "Shop" hero title
   hidden; grid columns enforced over the parent's woocommerce.css; the
   wide-align container constraint lifted; filter labels in sentence
   case per the Figma. */
.ad-store-main .ariade-shop-title,
.ad-store-main .ariade-shop-hero { display: none !important; }
.ad-store-main .content-area.alignwide { margin-inline: 0 !important; }
.ad-store-main ul.products { grid-template-columns: repeat(4, 1fr) !important; }
@media (max-width: 1280px) {
	.ad-store-main ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 900px) {
	.ad-store-main ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
	.ad-store-main ul.products { grid-template-columns: 1fr !important; }
}
.ad-sf-field label,
.ad-sf-label { text-transform: none !important; letter-spacing: 0 !important; font-weight: 500; }

/* v1.9.129 — card skin: the parent's woocommerce.css loads after ours
   and its boxed "view-key" cards were winning. Heavier selectors +
   explicit resets give the Figma boxless card everywhere. */
.ad-store-main .ariade-shop-main ul.products li.product,
.ad-store-main ul.products li.product {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	text-align: center !important;
	overflow: visible !important;
}
/* (v1.9.137) The generic li.product img rule that lived here targeted the
   default Woo card markup we replaced in 1.9.133; its higher specificity
   was beating the 300x395 cover-fill below. Removed. */
.ad-store-main .ariade-shop-main ul.products li.product .woocommerce-loop-product__title,
.ad-store-main ul.products li.product .woocommerce-loop-product__title {
	font-size: 1.16rem !important;
	text-align: center !important;
	color: #17181A !important;
	margin: 0 0 2px !important;
}
.ad-store-main .ariade-shop-main ul.products li.product .price,
.ad-store-main ul.products li.product .price,
.ad-store-main ul.products li.product .price bdi,
.ad-store-main ul.products li.product .price .amount {
	color: #B00A48 !important;
	font-weight: 700 !important;
	text-align: center !important;
	display: inline-block;
}
/* Hide only the PARENT theme's default card badges (our own .ad-bc-*
   badges are intentional — v1.9.156). */
.ad-store-main ul.products li.product .ariade-badge,
.ad-store-main ul.products li.product .ariade-feat-badge,
.ad-store-main ul.products li.product .onsale,
.ad-store-main ul.products li.product [class*="flash"] { display: none !important; }

/* v1.9.131 — author line: the parent loop bypasses the title hooks, so
   the line is printed at the end of the card and flex-ordered into its
   Figma position (cover, title, author, price). The anchor becomes
   display:contents so its children join the flex order; the ADD TO CART
   pill is absolutely positioned and unaffected. */
.ad-store-main ul.products li.product {
	display: flex !important;
	flex-direction: column;
	align-items: center;
}
.ad-store-main ul.products li.product > .woocommerce-LoopProduct-link { display: contents; }
.ad-store-main ul.products li.product img { order: 1; }
.ad-store-main ul.products li.product .woocommerce-loop-product__title { order: 2; }
.ad-store-main ul.products li.product .ad-card-author { order: 3; }
.ad-store-main ul.products li.product .price { order: 4; }
.ad-store-main ul.products li.product .added_to_cart { order: 6; }
.ad-store-main ul.products li.product a:focus-visible img {
	outline: 3px solid #1A222F;
	outline-offset: 3px;
}

/* ======================================================================
   v1.9.132 — store listing corrections from Shivaji's Figma comparison
   ====================================================================== */

/* 1. Stray grey strip: the admin toolbar's no-JS fallback must never
   show to visitors (it leaked into a cached page render). */
/* v1.9.211 — the .nojq utility used to catch WordPress's admin bar too:
   core outputs <div id="wpadminbar" class="nojq nojs"> before its JS strips
   those classes, so this rule hid the whole toolbar. Exclude the bar, and
   force the bar visible on screen against any leftover inline hide from the
   1.9.139 era (print styles still hide it as WordPress intends). */
.nojq:not(#wpadminbar) { display: none !important; }
@media screen {
	body #wpadminbar { display: block !important; }
}

/* 2. Width unlock — the parent's late stylesheet caps .site-main at
   1200px; heavier selectors beat it regardless of load order. */
.ad-store-main .content-area .site-main,
.ad-store-main .site-main {
	max-width: none !important;
	width: 100% !important;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
}

/* 3. Figma line widths: filter panel and grid share the same wide rail. */
.ad-shop-filters-wrap { max-width: 1200px; }
.ad-store-main ul.products {
	max-width: 1200px;
	gap: 2.6rem 2rem;
}

/* 4. Covers fill their cells like the design. */
.ad-store-main .ariade-shop-main ul.products li.product a img,
.ad-store-main ul.products li.product a img {
	max-width: 88% !important;
	max-height: 420px !important;
}

/* 5. Banner: normal height, and the night veil now scales with the
   banner (percentages) so no band edge appears on the taller store
   banner. */
.ad-store-banner.wp-block-cover { min-height: 440px !important; }
.ad-store-banner .wp-block-cover__inner-container { padding-top: 88px; }
.ad-store-banner.wp-block-cover .wp-block-cover__background {
	background: linear-gradient(180deg,
		rgba(13, 17, 25, 0.88) 0%,
		rgba(13, 17, 25, 0.72) 40%,
		rgba(13, 17, 25, 0.5) 72%,
		rgba(13, 17, 25, 0.35) 100%) !important;
	opacity: 1 !important;
}

/* 6. Parent shop controls (Grid/List toggles, Default sorting) and the
   result count are not in the design. */
.ad-store-main .ariade-shop-ctl,
.ad-store-main .woocommerce-result-count { display: none !important; }

/* 7. Pagination: the site's tile language, enforced. */
.ad-store-main nav.woocommerce-pagination { text-align: center !important; margin: 3rem 0 0 !important; border: 0 !important; }
.ad-store-main nav.woocommerce-pagination ul.page-numbers {
	display: inline-flex !important;
	gap: 8px !important;
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
.ad-store-main nav.woocommerce-pagination ul.page-numbers li {
	border: 0 !important;
	margin: 0 !important;
	float: none !important;
	overflow: visible !important;
}
.ad-store-main nav.woocommerce-pagination .page-numbers {
	min-width: 2.5rem !important;
	height: 2.5rem !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border: 1.5px solid #E3D4B6 !important;
	border-radius: 10px !important;
	background: #FBF4E4 !important;
	color: #1A222F !important;
	font-weight: 600 !important;
	padding: 0 10px !important;
	text-decoration: none !important;
	line-height: 1 !important;
}
.ad-store-main nav.woocommerce-pagination span.page-numbers.current {
	background: #1A222F !important;
	border-color: #1A222F !important;
	color: #FFFFFF !important;
	opacity: 1 !important;
}
.ad-store-main nav.woocommerce-pagination a.page-numbers:hover {
	background: var(--ad-btn-bg, #F2A93B) !important;
	border-color: var(--ad-btn-bg, #F2A93B) !important;
	color: #1A222F !important;
}

/* ======================================================================
   v1.9.133 — store rebuilt on our own card template + flat header zone
   ====================================================================== */

/* A. (v1.9.139) The store-specific "flat header zone" overrides that
   lived here are removed. The store banner carries .ad-banner /
   .ad-banner-inner, so it now inherits the SAME approved inner-page
   treatment as Forum/Blog/Events: header tint + 150px fade (v1.9.121)
   and the top-weighted night-navy banner veil (v1.9.123). One blending
   recipe everywhere — no seam, no demarcation line. */

/* B. Compact filter panel (smaller fonts, tighter controls, narrower). */
.ad-shop-filters-wrap { max-width: 1200px; }
.ad-shop-filters { padding: 18px 22px 20px; }
.ad-sf-heading { font-size: 0.9rem; margin-bottom: 8px; }
.ad-sf-field label,
.ad-sf-label { font-size: 0.75rem; margin-bottom: 5px; }
.ad-sf-field select {
	height: 2.5rem;
	font-size: 0.85rem;
	padding: 0 10px;
}
.ad-sf-range { height: 2.5rem; }
.ad-sf-price-out { font-size: 0.76rem; }
.ad-sf-btn { height: 2.5rem; font-size: 0.85rem; }
.ad-sf-grid { gap: 12px 16px; }

/* C. Our own book card — parent skin cannot reach this markup. */
.ad-store-main ul.products { max-width: 1200px; }
.ad-store-main ul.products li.ad-book-card {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: block !important;
	position: relative !important;
	text-align: center !important;
	overflow: visible !important;
	width: auto !important;
	float: none !important;
}
.ad-book-card .ad-bc-link {
	display: block;
	text-decoration: none !important;
	color: inherit;
}
.ad-book-card .ad-bc-coverwrap {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	min-height: 300px;
	margin-bottom: 1rem;
}
.ad-book-card .ad-bc-coverwrap img {
	width: auto !important;
	height: auto !important;
	max-width: 84% !important;
	max-height: 380px !important;
	aspect-ratio: auto !important;
	object-fit: contain !important;
	border-radius: 10px !important;
	box-shadow: 0 16px 36px rgba(30, 26, 20, 0.30) !important;
	background: transparent !important;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.ad-book-card:hover .ad-bc-coverwrap img,
.ad-book-card:focus-within .ad-bc-coverwrap img {
	transform: translateY(-4px);
	box-shadow: 0 22px 46px rgba(30, 26, 20, 0.4) !important;
}
h2.ad-bc-title {
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	color: #17181A !important;
	margin: 0 0 2px !important;
	padding: 0 !important;
	line-height: 1.3 !important;
}
.ad-book-card .ad-bc-link:hover h2.ad-bc-title { color: #A60641 !important; }
.ad-bc-author {
	display: block;
	font-size: 0.85rem;
	color: #5B5B5B;
	margin-bottom: 3px;
}
.ad-bc-price,
.ad-bc-price .amount,
.ad-bc-price bdi {
	color: #B00A48 !important;
	font-weight: 700 !important;
	font-size: 1.05rem !important;
}
.ad-bc-price del,
.ad-bc-price del .amount { color: #8a8a8a !important; font-weight: 400 !important; margin-right: 6px; }

/* The hover/focus ADD TO CART pill sits over the cover area. */
.ad-store-main ul.products li.ad-book-card .button {
	position: absolute !important;
	top: 140px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	margin: 0 !important;
}

/* v1.9.134 — Shivaji: covers are all 300x395 — give every card that
   exact frame and let the image fill it completely; filter fonts smaller
   including the dropdown values; Apply button becomes a small "Go". */
.ad-book-card .ad-bc-coverwrap {
	display: block;
	width: min(300px, 92%);
	margin: 0 auto 1rem;
	aspect-ratio: 300 / 395;
	min-height: 0;
	align-items: initial;
	justify-content: initial;
}
.ad-book-card .ad-bc-coverwrap img,
.woocommerce ul.products li.ad-book-card .ad-bc-coverwrap img,
.ad-store-main ul.products li.ad-book-card a .ad-bc-coverwrap img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	aspect-ratio: 300 / 395 !important;
	object-fit: cover !important;
	display: block;
	margin: 0 !important;
	border-radius: 10px !important;
}
.ad-sf-field label,
.ad-sf-label { font-size: 0.72rem; }
.ad-sf-field select { font-size: 0.8rem; height: 2.4rem; }
.ad-sf-heading { font-size: 0.85rem; }
.ad-sf-price-out { font-size: 0.72rem; }
.ad-sf-apply { justify-self: start; }
.ad-sf-btn {
	width: auto;
	min-width: 4.5rem;
	padding: 0 1.3rem;
	height: 2.4rem;
	font-size: 0.82rem;
}

/* v1.9.135, retuned in v1.9.141 — banner matched to the other inner
   pages (372px base; the search bar adds ~36px, tuned live in the DOM). */
.ad-store-banner.wp-block-cover { min-height: 372px !important; }
.ad-store-banner .wp-block-cover__inner-container { padding-top: 22px; }
.ad-store-search { margin-top: 0.7rem; }
.ad-store-banner h1 { margin-top: 0 !important; }
.ad-store-banner p { margin-top: 6px !important; margin-bottom: 0 !important; }

/* ======================================================================
   v1.9.140 — store header strip, hero-overlap filter panel, one-line
   filter bar, centred product grid. Each fix targets the exact rule or
   element found in the rendered DOM — not a guess.
   ====================================================================== */

/* 1. THE TOP "GRADING ROW": the root block-gap (24px) pushed the store
   banner down, so a 24px strip of the page background showed through the
   translucent header — the grey band. The banner now starts flush at the
   very top, and the header melts into it like every other inner page. */
.wp-site-blocks > .ad-store-banner,
.ad-store-banner.wp-block-cover {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

/* 2. Filter panel rises INTO the hero (Figma look), with dark space
   reserved under the search bar so the two never touch. Retuned in
   v1.9.141: panel enters the hero by 52px, 58px gap under the search. */
.ad-store-banner .wp-block-cover__inner-container { padding-bottom: 58px; }
.ad-shop-filters-wrap { margin-top: -52px; }

/* 3. CENTRED GRID: the parent theme's
   `.woocommerce .ariade-shop-main ul.products { margin: 0 !important }`
   out-specifies `.ad-store-main ul.products` and pinned the grid to the
   left edge. Same specificity here; we load last, so we win the tie. */
.woocommerce .ariade-shop-main ul.products,
.ad-store-main ul.products { margin-inline: auto !important; }

/* 4. The whole filter row on ONE line on desktop: six compact fields
   plus the small Go button. Wraps to 3 / 2 / 1 columns on smaller
   screens. */
.ad-sf-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) auto; gap: 10px 12px; align-items: end; }
.ad-sf-heading { font-size: 0.78rem; margin-bottom: 6px; }
.ad-sf-field label,
.ad-sf-label { font-size: 0.62rem; margin-bottom: 3px; }
.ad-sf-field select { height: 2rem; font-size: 0.7rem; padding: 0 6px; }
.ad-sf-range { height: 2rem; }
.ad-sf-price-out { font-size: 0.62rem; margin-top: 2px; }
.ad-sf-btn { height: 2rem; font-size: 0.74rem; min-width: 3.4rem; padding: 0 0.9rem; width: auto; }
.ad-shop-filters { padding: 14px 20px 16px; }

/* v1.9.190 — price cell alignment + slider trim + Clear link.
   The price cell stacked label -> slider -> value, so with the row bottom-
   aligned the value sat on the baseline and pushed the slider ABOVE the
   dropdowns. Put the label and value on one top row and let the slider be the
   bottom control, so it lines up with the selects; trim the bar a touch. */
.ad-sf-price {
	display: grid;
	grid-template-columns: 1fr auto;
	align-content: end;
	column-gap: 8px;
	row-gap: 3px;
}
.ad-sf-price .ad-sf-label { grid-column: 1; grid-row: 1; margin: 0; align-self: center; }
.ad-sf-price .ad-sf-price-out { grid-column: 2; grid-row: 1; margin: 0; align-self: center; white-space: nowrap; text-align: right; }
.ad-sf-price .ad-sf-range { grid-column: 1 / -1; grid-row: 2; width: 85%; }

/* "Go" and "Clear" share the last cell on ONE line; Clear is a compact ruby
   text link, shown only when a filter is active (rendered by PHP). */
.ad-sf-apply { display: flex; align-items: center; gap: 10px; }
.ad-sf-clear {
	font-size: 0.72rem;
	font-weight: 600;
	color: #A60641;
	text-decoration: none;
	white-space: nowrap;
	line-height: 1.1;
}
.ad-sf-clear:hover { color: #7E052F; text-decoration: underline; }
.ad-sf-clear:focus-visible { outline: 3px solid #1A222F; outline-offset: 2px; border-radius: 4px; }

@media (max-width: 1120px) {
	.ad-sf-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.ad-sf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
	.ad-sf-grid { grid-template-columns: 1fr; }
}

/* v1.9.142 FINAL SAY — pagination identical to Blog/Events. The v1.9.132
   block above styles tiles via ".page-numbers", which ALSO matches the
   UL container (WooCommerce puts that class on the UL too) — that was
   the cream strip behind the row. These selectors out-rank everything
   earlier. */
.ad-store-main nav.woocommerce-pagination ul.page-numbers {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	display: inline-flex !important;
	flex-wrap: wrap !important;
	gap: 0.5rem !important;
	justify-content: center !important;
}
.ad-store-main nav.woocommerce-pagination ul.page-numbers li .page-numbers {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 2.5rem !important;
	height: 2.5rem !important;
	padding: 0 0.8rem !important;
	border: 1.5px solid #E3D4B6 !important;
	border-radius: 10px !important;
	background: #FBF4E4 !important;
	color: #1A222F !important;
	text-decoration: none !important;
	font-weight: 700 !important;
	box-shadow: none !important;
	line-height: 1 !important;
}
.ad-store-main nav.woocommerce-pagination ul.page-numbers li span.page-numbers.current {
	background: #1A222F !important;
	border-color: #1A222F !important;
	color: #FFFFFF !important;
}
.ad-store-main nav.woocommerce-pagination ul.page-numbers li span.page-numbers.dots {
	border: 0 !important;
	background: none !important;
	min-width: auto !important;
	height: auto !important;
	padding: 0 0.3rem !important;
	color: #5f5140 !important;
}
.ad-store-main nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover,
.ad-store-main nav.woocommerce-pagination ul.page-numbers li a.page-numbers:focus-visible {
	background: #F49C26 !important;
	border-color: #F49C26 !important;
	color: #1A222F !important;
}

/* ======================================================================
   v1.9.144 — Figma card polish: smaller covers with breathing room,
   bigger title & price (price stays crimson), tiny author line tucked
   under the title, and the ADAPTIVE GLOW — each cover's shadow tinted
   by the book's own colour (--ad-glow set by ad-shop.js; neutral
   fallback when unset).
   ====================================================================== */
.ad-book-card .ad-bc-coverwrap {
	width: min(224px, 78%);
}
.ad-book-card .ad-bc-coverwrap img,
.woocommerce ul.products li.ad-book-card .ad-bc-coverwrap img,
.ad-store-main ul.products li.ad-book-card a .ad-bc-coverwrap img {
	box-shadow:
		0 16px 40px 2px rgba(var(--ad-glow, 30, 26, 20), 0.5),
		0 4px 14px rgba(var(--ad-glow, 30, 26, 20), 0.32) !important;
}
.ad-book-card:hover .ad-bc-coverwrap img,
.ad-book-card:focus-within .ad-bc-coverwrap img {
	box-shadow:
		0 24px 54px 4px rgba(var(--ad-glow, 30, 26, 20), 0.62),
		0 6px 18px rgba(var(--ad-glow, 30, 26, 20), 0.4) !important;
}
h2.ad-bc-title {
	font-size: 1.3rem !important;
	margin: 0 0 1px !important;
	line-height: 1.25 !important;
}
.ad-bc-author {
	display: block !important;
	font-size: 0.72rem !important;
	color: #6A6A6A !important;
	line-height: 1.2 !important;
	margin: 0 0 8px !important;
	font-weight: 500 !important;
}
.ad-bc-price,
.ad-bc-price .amount,
.ad-bc-price bdi {
	font-size: 1.3rem !important;
	color: #B00A48 !important;
	font-weight: 700 !important;
}

/* ======================================================================
   v1.9.145 — PRODUCT DETAIL page (Ariade structure kept as-is).
   300x395 cover in a compact white frame with the thumbnails standing
   to its right (Figma), Anandodhara crimson price, ruby→amber section
   bands, amber thumb accents, and the zoom lightbox overlay.
   ====================================================================== */

/* Gallery: borderless rounded main image + thumbnail strip on the right.
   v1.9.153: main image has NO frame (just rounded corners), thumbnails
   carry the Figma amber border on the active one, and the strip pages
   three at a time via the accessible carousel (ad-product-gallery.js). */
.single-product .ariade-gallery {
	display: grid;
	grid-template-columns: minmax(0, 340px) 96px;
	gap: 16px;
	align-items: start;
}
/* Main image: no border, rounded corners on the image itself. */
.single-product .ariade-gallery-main {
	border: 0 !important;
	border-radius: 16px !important;
	background: transparent !important;
	padding: 0 !important;
	overflow: visible !important;
}
.single-product .ariade-gallery-main img {
	aspect-ratio: 300 / 395 !important;
	object-fit: cover !important;
	border-radius: 16px !important;
}
.single-product .ariade-gallery-zoom-link { cursor: zoom-in; display: block; }
.single-product .ariade-gallery-zoom-link img { display: block; }

/* Thumbnail strip. */
.single-product .ariade-gallery-thumbs {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Each thumb: rounded, amber ring when selected (Figma), white inset. */
.single-product .ariade-gallery-thumb {
	display: block;
	width: 100%;
	padding: 3px !important;
	border: 2px solid transparent !important;
	border-radius: 12px !important;
	background: transparent !important;
	box-shadow: none !important;
	cursor: pointer;
}
.single-product .ariade-gallery-thumb img {
	aspect-ratio: 300 / 395 !important;
	object-fit: cover !important;
	border-radius: 9px !important;
	display: block;
	width: 100%;
}
.single-product .ariade-gallery-thumb[aria-current="true"] {
	border-color: #F49C26 !important;
	background: #FFFFFF !important;
}
.single-product .ariade-gallery-thumb:hover:not([aria-current="true"]) {
	border-color: rgba( 244, 156, 38, 0.55 ) !important;
}
.single-product .ariade-gallery-thumb:focus-visible {
	outline: 3px solid #A60641 !important;
	outline-offset: 2px;
}

/* The 3-at-a-time carousel shell (built by JS). */
.ad-thumb-carousel {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: stretch;
}
.ad-thumb-viewport {
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: none;          /* Firefox — visual only, still scrollable */
	-ms-overflow-style: none;
}
.ad-thumb-viewport::-webkit-scrollbar { width: 0; height: 0; display: none; }
.ad-thumb-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 2.1rem;
	padding: 0;
	border: 1.5px solid #E3D4B6;
	border-radius: 9px;
	background: #FBF4E4;
	color: #1A222F;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}
.ad-thumb-nav:hover:not( :disabled ) {
	background: #F49C26;
	border-color: #F49C26;
	color: #1A222F;
}
.ad-thumb-nav:focus-visible {
	outline: 3px solid #A60641;
	outline-offset: 2px;
}
.ad-thumb-nav:disabled {
	opacity: 0.38;
	cursor: default;
}
.ad-thumb-nav svg { display: block; }

@media (max-width: 600px) {
	.single-product .ariade-gallery { grid-template-columns: minmax(0, 1fr) 84px; }
}

/* Price in the Anandodhara crimson, bold like the listing cards. */
.single-product .summary .price,
.single-product .summary .price .amount,
.single-product .summary .price bdi {
	color: #B00A48 !important;
	font-weight: 700 !important;
}

/* Section bands: Anandodhara ruby → amber (both Details and Reviews). */
.ariade-band {
	background: linear-gradient(100deg, #A60641 0%, #C90E52 55%, #F49C26 100%) !important;
	box-shadow: 0 10px 26px rgba(166, 6, 65, 0.28) !important;
}
.ariade-band.ariade-band-reviews {
	background: linear-gradient(100deg, #7E052F 0%, #A60641 55%, #8A0838 100%) !important;  /* v1.9.168 full ruby */
}

/* Zoom lightbox overlay (ad-product-zoom.js). */
.ad-pz-overlay {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: rgba(13, 17, 25, 0.93);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 4vh 4vw;
}
.ad-pz-img {
	max-width: 92vw;
	max-height: 92vh;
	width: auto;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
}
.ad-pz-close {
	position: absolute;
	top: 22px;
	right: 26px;
	width: 2.9rem;
	height: 2.9rem;
	border-radius: 50%;
	border: 0;
	background: #F49C26;
	color: #1A222F;
	display: grid;
	place-items: center;
	cursor: pointer;
}
.ad-pz-close:hover { background: #FFB84D; }
.ad-pz-close:focus-visible { outline: 3px solid #FFFFFF; outline-offset: 2px; }

/* ======================================================================
   v1.9.146 — Figma summary layout + fixed "added to cart" notice.
   ====================================================================== */

/* Description under the title. */
.single-product .ad-pd-desc {
	color: #4A4A4A;
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0.2rem 0 0.9rem;
	max-width: 60ch;
}
.single-product .ad-pd-desc p { margin: 0 0 0.6em; }

/* Spec rows — Categories row and the Woo attributes table, both drawn
   as plain "Label:   Value" lines like the Figma. */
.single-product .ad-pd-specs { margin: 1.1rem 0 1.5rem; }
.single-product .ad-pd-specs .ad-pd-spec {
	display: flex;
	gap: 8px;
	margin: 0 0 6px;
	font-size: 0.92rem;
}
.single-product .ad-pd-specs .ad-pd-spec-th {
	flex: 0 0 130px;
	color: #333333;
	font-weight: 600;
}
.single-product .ad-pd-specs .ad-pd-spec-td,
.single-product .ad-pd-specs .ad-pd-spec-td a { color: #1A222F; font-weight: 700; text-decoration: none; }
.single-product .ad-pd-specs .ad-pd-spec-td a:hover { color: #A60641; text-decoration: underline; }
.single-product .ad-pd-specs table.woocommerce-product-attributes {
	border: 0 !important;
	margin: 0 !important;
	width: auto !important;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes tr { border: 0 !important; background: none !important; }
.single-product .ad-pd-specs table.woocommerce-product-attributes th,
.single-product .ad-pd-specs table.woocommerce-product-attributes td {
	border: 0 !important;
	background: none !important;
	padding: 0 0 6px !important;
	font-size: 0.75rem !important; /* v1.9.238 — was 0.92rem; this high-specificity rule is why the 1.9.236/237 size changes never took effect. Now 12px, as Shivaji tuned in DevTools. */
	font-style: normal !important;
	text-align: left !important;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes th {
	width: 130px;
	min-width: 130px;
	color: #333333 !important;
	font-weight: 600 !important;
	padding-right: 8px !important;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes td,
.single-product .ad-pd-specs table.woocommerce-product-attributes td a {
	color: #1A222F !important;
	font-weight: 700 !important;
	text-decoration: none;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes td p { margin: 0 !important; display: inline; }

/* "Added to your cart" notice: text vertically centred, button a proper
   amber pill with a visible hover (was a squashed circle). */
.woocommerce-message,
.woocommerce-info {
	display: flex !important;
	align-items: center !important;
	gap: 1rem;
	line-height: 1.4 !important;
}
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-message a.wc-forward {
	margin-left: auto !important;
	order: 2;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	height: auto !important;
	min-width: 0 !important;
	padding: 0.62rem 1.4rem !important;
	border-radius: 999px !important;
	background: #F2A93B !important;
	color: #1A222F !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	text-decoration: none !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible !important;
}
.woocommerce-message .button:hover,
.woocommerce-message a.wc-forward:hover,
.woocommerce-message .button:focus-visible {
	background: #E08A00 !important;
	color: #1A222F !important;
}

/* v1.9.147 — the added-to-cart notice, bullet-proof. Explicit button
   geometry so no environment can squash it into an ellipse or let the
   label spill out; message text truly middle-aligned. */
.woocommerce .woocommerce-message,
.woocommerce-message {
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	gap: 1rem !important;
	min-height: 0 !important;
	padding-top: 14px !important;
	padding-bottom: 14px !important;
	line-height: 1.45 !important;
}
.woocommerce .woocommerce-message .button,
.woocommerce-message .button,
.woocommerce-message a.wc-forward,
.woocommerce-message .wp-element-button {
	order: 2;
	margin: 0 0 0 auto !important;
	float: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	align-self: center !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	height: 2.6rem !important;
	min-height: 0 !important;
	padding: 0 1.35rem !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #F2A93B !important;
	color: #1A222F !important;
	font-size: 0.82rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	text-transform: uppercase !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	text-decoration: none !important;
	box-shadow: none !important;
	overflow: visible !important;
}
.woocommerce .woocommerce-message .button:hover,
.woocommerce-message .button:hover,
.woocommerce-message a.wc-forward:hover,
.woocommerce-message .button:focus-visible {
	background: #E08A00 !important;
	color: #1A222F !important;
}

/* ======================================================================
   v1.9.148 — (a) metas as ONE aligned two-column sheet: labels with a
   colon in a fixed 140px column, every value starting flush at the same
   left edge; (b) the notice bar for WooCommerce's NEW block-notice
   markup (wc-block-components-notice-banner) — the earlier fix only
   covered the classic .woocommerce-message markup, which is why the
   bar looked untouched.
   ====================================================================== */

/* (a) Spec rows: both the Categories row and the attributes table use
   the exact same 140px label column, zero extra gaps. */
.single-product .ad-pd-specs .ad-pd-spec {
	display: grid !important;
	grid-template-columns: 140px 1fr;
	gap: 0 !important;
	margin: 0 0 6px !important;
}
.single-product .ad-pd-specs .ad-pd-spec-th { padding: 0 !important; }
.single-product .ad-pd-specs table.woocommerce-product-attributes {
	border-collapse: collapse !important;
	border-spacing: 0 !important;
	width: 100% !important;
	table-layout: fixed !important;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes th {
	width: 140px !important;
	min-width: 140px !important;
	max-width: 140px !important;
	padding: 0 0 6px 0 !important;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes th::after { content: ":"; }
.single-product .ad-pd-specs table.woocommerce-product-attributes td {
	padding: 0 0 6px 0 !important;
	text-align: left !important;
}

/* (b) Block notice banner — same look as the classic one: middle
   aligned text and the amber VIEW CART pill. */
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 14px 18px !important;
	border: 0 !important;
	border-left: 5px solid #0e7c6b !important;
	border-radius: 12px !important;
	background: #eefaf7 !important;
	color: #0e1b36 !important;
	box-shadow: none !important;
}
.wc-block-components-notice-banner > svg {
	flex: 0 0 auto !important;
	align-self: center !important;
	margin: 0 !important;
}
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content {
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	gap: 1rem !important;
	width: 100% !important;
	padding: 0 !important;
	align-self: center !important;
	line-height: 1.45 !important;
}
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward,
.wc-block-components-notice-banner__content a.button,
.wc-block-components-notice-banner a.wc-forward {
	margin: 0 0 0 auto !important;
	float: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	align-self: center !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	height: 2.6rem !important;
	min-height: 0 !important;
	padding: 0 1.35rem !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #F2A93B !important;
	color: #1A222F !important;
	font-size: 0.82rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	text-transform: uppercase !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	text-decoration: none !important;
	box-shadow: none !important;
}
.wc-block-components-notice-banner__content .wc-forward:hover,
.wc-block-components-notice-banner a.wc-forward:hover,
.wc-block-components-notice-banner__content .wc-forward:focus-visible {
	background: #E08A00 !important;
	color: #1A222F !important;
	text-decoration: none !important;
}

/* v1.9.149 — notice polish. (a) WooCommerce focuses the notice banner
   programmatically (tabindex="-1") so screen readers announce it; the
   theme's navy focus ring then draws a black frame around the whole
   bar. The banner is not keyboard-operable, so no visible ring is
   required (WCAG 2.4.7 covers interactive elements) — removed.
   (b) The View-cart pill's ink colour is enforced with text-fill too:
   a parent button rule was painting the label pale amber-on-amber,
   failing contrast. #1A222F on #F2A93B is ~8:1 (AA and AAA). */
.woocommerce-notices-wrapper .wc-block-components-notice-banner:focus,
.woocommerce-notices-wrapper .wc-block-components-notice-banner:focus-visible,
.wc-block-components-notice-banner:focus,
.wc-block-components-notice-banner:focus-visible,
.woocommerce-message:focus,
.woocommerce-message:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward,
.wc-block-components-notice-banner__content a.button,
.wc-block-components-notice-banner a.wc-forward,
.woocommerce-message .button,
.woocommerce-message a.wc-forward {
	color: #1A222F !important;
	-webkit-text-fill-color: #1A222F !important;
}
.wc-block-components-notice-banner__content .wc-forward:hover,
.wc-block-components-notice-banner a.wc-forward:hover,
.woocommerce-message .button:hover,
.woocommerce-message a.wc-forward:hover {
	color: #1A222F !important;
	-webkit-text-fill-color: #1A222F !important;
}

/* v1.9.150 — the View-cart pill rendered washed-out in its resting
   state (label looked light): an inherited opacity/filter dimmed the
   whole link. Forced fully opaque; colours were already AA/AAA. */
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward,
.wc-block-components-notice-banner__content a.button,
.wc-block-components-notice-banner a.wc-forward,
.woocommerce-message .button,
.woocommerce-message a.wc-forward {
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
	font-weight: 800 !important;
}

/* ======================================================================
   v1.9.156 — full product feature states: card sale/featured/out-of-stock
   badges, detail featured label + sale flash (Anandodhara palette), and
   a proper In-stock / Out-of-stock treatment.
   ====================================================================== */

/* --- Listing card badges --- */
.ad-book-card .ad-bc-coverwrap { position: relative; }
.ad-book-card .ad-bc-badge {
	position: absolute;
	top: 10px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	font-size: 0.64rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
	padding: 0.34rem 0.6rem;
	border-radius: 999px;
	white-space: nowrap;
	box-shadow: 0 4px 10px rgba(20, 24, 38, 0.25);
}
.ad-book-card .ad-bc-sale {
	left: 10px;
	background: #A60641;
	color: #FFFFFF;
}
.ad-book-card .ad-bc-feat {
	right: 10px;
	background: #1A222F;
	color: #FFFFFF;
}
.ad-book-card .ad-bc-feat span[aria-hidden] { color: #F5B942; font-size: 0.78rem; }

/* Out-of-stock card: dim the cover and show a clear band. */
.ad-book-card.outofstock .ad-bc-cover { opacity: 0.72; filter: grayscale(0.18); }
.ad-book-card .ad-bc-oos {
	position: absolute;
	left: 50%;
	bottom: 14px;
	transform: translateX(-50%);
	z-index: 3;
	background: rgba(26, 34, 47, 0.9);
	color: #FFFFFF;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.36rem 0.9rem;
	border-radius: 999px;
	white-space: nowrap;
}

/* Sale price on the card: muted strikethrough, crimson current. */
.ad-bc-price del,
.ad-bc-price del .amount { color: #9A9A9A !important; font-weight: 400 !important; margin-right: 6px; text-decoration: line-through; }
.ad-bc-price ins,
.ad-bc-price ins .amount { text-decoration: none !important; color: #B00A48 !important; font-weight: 700 !important; }

/* --- Detail: featured label (parent .ariade-single-featured) in amber --- */
.single-product .ariade-single-featured {
	background: #FFF6E7 !important;
	color: #8A5600 !important;
	border: 1.5px solid rgba(242, 169, 59, 0.55) !important;
}
.single-product .ariade-single-featured span { color: #E0952A !important; }

/* --- Detail: sale flash over the image, Anandodhara ruby --- */
.single-product.woocommerce div.product span.onsale,
.woocommerce div.product span.onsale {
	background: #A60641 !important;
	color: #FFFFFF !important;
	top: 14px !important;
	left: 14px !important;
	font-weight: 800 !important;
	box-shadow: 0 6px 16px rgba(166, 6, 65, 0.3) !important;
}

/* --- Detail: price strikethrough muted, sale crimson --- */
.single-product .summary .price del,
.single-product .summary .price del .amount { color: #9A9A9A !important; font-weight: 400 !important; }
.single-product .summary .price ins,
.single-product .summary .price ins .amount { text-decoration: none !important; color: #B00A48 !important; font-weight: 700 !important; }

/* --- Stock availability badges --- */
.single-product .summary p.stock {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0.4rem 0 1rem;
	padding: 0.42rem 0.9rem;
	border-radius: 10px;
	font-size: 0.86rem;
	font-weight: 700;
	line-height: 1;
}
.single-product .summary p.stock.in-stock {
	background: #EAF7F2;
	color: #0B6B58;
	border: 1.5px solid rgba(14, 124, 107, 0.35);
}
.single-product .summary p.stock.in-stock::before {
	content: "";
	width: 16px; height: 16px;
	background: no-repeat center/contain;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230B6B58' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.single-product .summary p.stock.out-of-stock,
.woocommerce div.product p.stock.out-of-stock {
	background: #FCEDEC !important;
	color: #B3261E !important;
	border: 1.5px solid rgba(179, 38, 30, 0.32) !important;
	display: inline-flex !important;
	align-items: center;
	gap: 0.4rem;
	padding: 0.42rem 0.9rem !important;
	border-radius: 10px !important;
	font-size: 0.86rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	margin: 0.4rem 0 1rem !important;
}
.single-product .summary p.stock.out-of-stock::before,
.woocommerce div.product p.stock.out-of-stock::before {
	content: "";
	width: 16px; height: 16px;
	flex: none;
	background: no-repeat center/contain;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23B3261E' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M15 9l-6 6M9 9l6 6'/%3E%3C/svg%3E");
}

/* ======================================================================
   v1.9.158 — Cart page in the Anandodhara design + shared midnight banner
   on detail / cart / checkout. The banner itself reuses the .ad-store-
   banner treatment (veil + header blend) already defined above, so the
   header melts into it exactly like the shop. Here we restyle the
   WooCommerce Cart block from the parent's blue-purple theme into the
   Figma cream-rows + white-totals look.
   ====================================================================== */

/* Constrain the cart/checkout content like the rest of the store. */
.ad-cart-main .wp-block-post-content,
.ad-checkout-main .wp-block-post-content { max-width: 1200px; margin-inline: auto; }

/* The parent's gradient "N items in your cart" band — the banner already
   announces the page, so hide it. */
.ariade-cart-band { display: none !important; }

/* Two-column layout. */
.ad-cart-main .wc-block-cart { gap: 2rem !important; align-items: flex-start; }
.ad-cart-main .wc-block-cart__main { background: transparent !important; border: 0 !important; padding: 0 !important; }
.ad-cart-main .wc-block-cart-items { background: transparent !important; border: 0 !important; }

/* Header labels: light, no gradient. */
.ad-cart-main .wc-block-cart-items thead,
.ad-cart-main .wc-block-cart-items__header { background: none !important; }
.ad-cart-main .wc-block-cart-items__header th {
	background: none !important;
	color: #6A6A6A !important;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 700 !important;
	font-size: 0.72rem !important;
	border: 0 !important;
	padding: 0 0.4rem 0.7rem !important;
}

/* Item rows as cream cards. */
.ad-cart-main .wc-block-cart-items__row {
	background: #FBF7EF !important;
	border: 1px solid #EEE6D6 !important;
	border-radius: 14px !important;
	border-top: 1px solid #EEE6D6 !important;
	padding: 1rem 1.2rem !important;
	margin-bottom: 14px !important;
}
.ad-cart-main .wc-block-cart-item__image img {
	border-radius: 10px !important;
	border: 1px solid #EAE2D2 !important;
	width: 64px !important;
}
.ad-cart-main .wc-block-components-product-name {
	color: #1A222F !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	text-decoration: none !important;
}
.ad-cart-main .wc-block-components-product-name:hover { color: #A60641 !important; }
.ad-cart-main .wc-block-components-product-metadata { color: #6A6A6A !important; }
.ad-cart-main .wc-block-components-product-price__value,
.ad-cart-main .wc-block-cart-item__total .wc-block-formatted-money-amount {
	color: #B00A48 !important;
	font-weight: 700 !important;
}
.ad-cart-main .wc-block-components-product-price__regular { color: #9A9A9A !important; }

/* Quantity stepper. */
.ad-cart-main .wc-block-components-quantity-selector {
	border: 1.5px solid #E3D4B6 !important;
	border-radius: 999px !important;
	max-width: 8rem !important;
	background: #FFFFFF !important;
}
.ad-cart-main .wc-block-components-quantity-selector__button { color: #1A222F !important; }
.ad-cart-main .wc-block-components-quantity-selector__button:hover { background: #F49C26 !important; color: #1A222F !important; }

/* Remove link. */
.ad-cart-main .wc-block-cart-item__remove-link { color: #A60641 !important; }
.ad-cart-main .wc-block-cart-item__remove-link:hover { color: #7E052F !important; }

/* Sidebar "Cart Totals": one white card (override the parent's navy). */
.ad-cart-main .wc-block-cart__sidebar,
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-sidebar {
	background: #FFFFFF !important;
	color: #1A222F !important;
	border: 1px solid #EEE6D6 !important;
	border-radius: 16px !important;
	padding: 1.6rem !important;
	box-shadow: 0 14px 40px rgba(20, 24, 38, 0.08) !important;
}
.ad-cart-main .wc-block-cart__sidebar > * {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
}
.ad-cart-main .wc-block-cart__totals-title {
	color: #1A222F !important;
	font-size: 1.15rem !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 700 !important;
}
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-totals-item,
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-totals-item__label { color: #333333 !important; }
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-totals-item__value,
.ad-cart-main .wc-block-cart__sidebar .wc-block-formatted-money-amount { color: #1A222F !important; font-weight: 700 !important; }
.ad-cart-main .wc-block-cart__sidebar hr,
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-totals-item { border-color: #EEE6D6 !important; }
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-panel__button,
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-totals-coupon__button { color: #A60641 !important; }
.ad-cart-main .wc-block-cart__sidebar input[type=text] {
	background: #FBF7EF !important;
	border: 1.5px solid #E3D4B6 !important;
	color: #1A222F !important;
	border-radius: 10px !important;
}
.ad-cart-main .wc-block-cart__sidebar input[type=text]::placeholder { color: #9A9A9A !important; }
.ad-cart-main .wc-block-cart__sidebar .wc-block-components-totals-shipping .wc-block-formatted-money-amount { color: #0B6B58 !important; }

/* Proceed to checkout — amber pill. */
.ad-cart-main .wc-block-cart__submit-button,
.ad-cart-main .wc-block-cart__submit-container .wc-block-components-button {
	background: #F2A93B !important;
	color: #1A222F !important;
	border-radius: 999px !important;
	font-weight: 800 !important;
	border: 0 !important;
}
.ad-cart-main .wc-block-cart__submit-button:hover,
.ad-cart-main .wc-block-cart__submit-container .wc-block-components-button:hover { background: #E08A00 !important; }

/* Coupon apply button — amber. */
.ad-cart-main .wc-block-components-totals-coupon .wc-block-components-button {
	background: #F2A93B !important;
	color: #1A222F !important;
	border-radius: 999px !important;
}

/* ======================================================================
   v1.9.159 — CLASSIC cart table in the Figma layout. The classic
   [woocommerce_cart] gives a true Product / Price / Quantity / Subtotal
   table (with proper <th> semantics), styled here as rounded cream cards
   with the × remove on the left, ± steppers, and a white Cart Total card.
   ====================================================================== */
.ad-cart-main .woocommerce { max-width: 1200px; margin-inline: auto; }

/* The items table → separate rounded rows. */
.ad-cart-main table.cart,
.ad-cart-main table.shop_table.cart {
	border: 0 !important;
	border-collapse: separate !important;
	border-spacing: 0 14px !important;
	width: 100% !important;
	background: transparent !important;
}
.ad-cart-main table.cart thead th {
	background: none !important;
	border: 0 !important;
	color: #565656 !important; /* v1.9.160 — ~6.3:1 on the page (was 5.4:1) */
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 700 !important;
	font-size: 0.72rem !important;
	padding: 0 0.6rem 0.4rem !important;
	text-align: left !important;
}
/* Coupon placeholder readable too (was ~2.8:1). */
.ad-cart-main td.actions .coupon input#coupon_code::placeholder { color: #6A6A6A !important; opacity: 1; }

/* Each item row is a cream card. */
.ad-cart-main tr.cart_item td,
.ad-cart-main tr.woocommerce-cart-form__cart-item td {
	background: #FBF7EF !important;
	border-top: 1px solid #EEE6D6 !important;
	border-bottom: 1px solid #EEE6D6 !important;
	padding: 1.05rem 0.6rem !important;
	vertical-align: middle !important;
}
.ad-cart-main tr.cart_item td.product-remove {
	border-left: 1px solid #EEE6D6 !important;
	border-radius: 14px 0 0 14px !important;
	padding-left: 1.2rem !important;
	width: 58px;
}
.ad-cart-main tr.cart_item td.product-subtotal {
	border-right: 1px solid #EEE6D6 !important;
	border-radius: 0 14px 14px 0 !important;
	padding-right: 1.4rem !important;
}
.ad-cart-main td.product-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.8rem; height: 1.8rem; border-radius: 50%;
	color: #6A6A6A !important; font-size: 1.35rem; line-height: 1;
	background: none !important; text-decoration: none !important;
}
.ad-cart-main td.product-remove a.remove:hover { color: #A60641 !important; background: #F5E6EC !important; }
.ad-cart-main td.product-thumbnail img {
	width: 64px !important; height: auto; border-radius: 10px; border: 1px solid #EAE2D2;
}
.ad-cart-main td.product-name a { color: #1A222F !important; font-weight: 700 !important; text-decoration: none !important; font-size: 1rem; }
.ad-cart-main td.product-name a:hover { color: #A60641 !important; }
.ad-cart-main td.product-price { color: #1A222F !important; font-weight: 700 !important; }
.ad-cart-main td.product-price .amount { color: #1A222F !important; }
.ad-cart-main td.product-subtotal { color: #B00A48 !important; font-weight: 800 !important; }
.ad-cart-main td.product-subtotal .amount { color: #B00A48 !important; }

/* Quantity stepper (buttons injected by ad-cart.js). */
.ad-cart-main td.product-quantity .quantity {
	display: inline-flex !important;
	align-items: center;
	border: 1.5px solid #E3D4B6;
	border-radius: 999px;
	overflow: hidden;
	background: #FFFFFF;
	max-width: 8rem;
}
.ad-cart-main td.product-quantity input.qty {
	width: 2.6rem !important;
	border: 0 !important;
	background: transparent !important;
	text-align: center;
	font-weight: 700;
	padding: 0.3rem 0 !important;
	-moz-appearance: textfield;
	box-shadow: none !important;
}
.ad-cart-main td.product-quantity input.qty::-webkit-outer-spin-button,
.ad-cart-main td.product-quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ad-cart-main .ad-qty-btn {
	width: 2rem; height: 2.3rem; border: 0; background: transparent;
	color: #1A222F; font-size: 1.1rem; font-weight: 700; cursor: pointer; line-height: 1;
}
.ad-cart-main .ad-qty-btn:hover { background: #F49C26; color: #1A222F; }
.ad-cart-main .ad-qty-btn:focus-visible { outline: 3px solid #A60641; outline-offset: -3px; }

/* Coupon + update row (the table's actions cell). */
.ad-cart-main tr td.actions {
	background: transparent !important;
	border: 0 !important;
	/* v1.9.164 — horizontal + bottom padding so the coupon field and Update
	   cart button sit inset from the cream row band instead of touching its
	   edges. */
	padding: 1.2rem 1.6rem 1.2rem !important;
}
.ad-cart-main td.actions .coupon { display: inline-flex; gap: 0.6rem; align-items: center; }
.ad-cart-main td.actions .coupon input#coupon_code {
	border: 1.5px solid #E3D4B6 !important;
	border-radius: 999px !important;
	padding: 0.62rem 1.1rem !important;
	background: #FBF7EF !important;
	min-width: 12rem;
}
.ad-cart-main td.actions .coupon button,
.ad-cart-main td.actions button[name="apply_coupon"] {
	background: #F2A93B !important; color: #1A222F !important;
	border-radius: 999px !important; font-weight: 800 !important; border: 0 !important;
	padding: 0.62rem 1.5rem !important;
}
.ad-cart-main td.actions button[name="update_cart"] {
	background: #1A222F !important; color: #FFFFFF !important;
	border-radius: 999px !important; font-weight: 700 !important; border: 0 !important;
	padding: 0.62rem 1.5rem !important; float: right;
}
/* v1.9.160 — WCAG: the disabled state must not rely on opacity (that
   dimmed white-on-navy to ~2.9:1). Use a solid muted pill with dark
   text — #4A463C on #E7E0D2 ≈ 7.3:1 (AA + AAA). */
.ad-cart-main td.actions button[name="update_cart"][disabled],
.ad-cart-main td.actions button[name="update_cart"]:disabled {
	opacity: 1 !important;
	background: #E7E0D2 !important;
	color: #4A463C !important;
	cursor: not-allowed;
}

/* Cart totals card. */
.ad-cart-main .cart-collaterals { width: 100%; display: block; }
.ad-cart-main .cart-collaterals .cross-sells { display: none; }
.ad-cart-main .cart_totals {
	float: right;
	width: 100%;
	max-width: 420px;
	background: #FFFFFF;
	border: 1px solid #EEE6D6;
	border-radius: 16px;
	padding: 1.6rem;
	box-shadow: 0 14px 40px rgba(20, 24, 38, 0.08);
}
.ad-cart-main .cart_totals h2 { color: #1A222F; font-weight: 700; font-size: 1.15rem; margin: 0 0 1rem; }
.ad-cart-main .cart_totals table,
.ad-cart-main .cart_totals table th,
.ad-cart-main .cart_totals table td { border: 0 !important; background: transparent !important; }
.ad-cart-main .cart_totals table tr { border-bottom: 1px solid #EEE6D6; }
/* v1.9.164 — horizontal padding so the Subtotal / Total labels and amounts
   are inset from the cream row band instead of touching its edges. */
.ad-cart-main .cart_totals th { color: #333333 !important; font-weight: 600 !important; padding: 0.85rem 1.2rem !important; }
.ad-cart-main .cart_totals td { color: #1A222F !important; font-weight: 700 !important; padding: 0.85rem 1.2rem !important; text-align: right; }
.ad-cart-main .cart_totals .order-total td .amount,
.ad-cart-main .cart_totals .order-total .amount { color: #B00A48 !important; font-size: 1.15rem; }
.ad-cart-main .wc-proceed-to-checkout { padding: 1.2rem 0 0 !important; }
.ad-cart-main .wc-proceed-to-checkout a.checkout-button {
	background: #F2A93B !important; color: #1A222F !important;
	border-radius: 999px !important; font-weight: 800 !important;
	display: block; text-align: center; padding: 0.9rem 1rem !important;
}
.ad-cart-main .wc-proceed-to-checkout a.checkout-button:hover { background: #E08A00 !important; }

/* Mobile: let WooCommerce's responsive stacking take over cleanly. */
@media (max-width: 720px) {
	.ad-cart-main tr.cart_item td { display: block; text-align: right; border-radius: 0 !important; border-left: 1px solid #EEE6D6 !important; border-right: 1px solid #EEE6D6 !important; }
	.ad-cart-main tr.cart_item td.product-remove { border-radius: 14px 14px 0 0 !important; }
	.ad-cart-main tr.cart_item td.product-subtotal { border-radius: 0 0 14px 14px !important; }
	.ad-cart-main .cart_totals { max-width: none; float: none; }
}

/* ======================================================================
   v1.9.212–213 — Cart page: totals pulled up to the TOP RIGHT + ruby card
   Per request: the classic cart no longer drops the Cart-totals box below
   the items table. On desktop the cart becomes a two-column grid — items
   left, totals right, top-aligned — and the totals card swaps its white
   look for the same ruby (#A60641) as the checkout Order-summary sidebar
   (v1.9.162), with white text throughout.
   Contrast on ruby: white 7.71:1 (AA), accent #FFC978 5.1:1 (AA, used for
   links + focus ring), amber buttons keep navy #1A222F text (8:1).
   Guarded with :has(.cart-collaterals) so the empty-cart screen is
   untouched. Mobile stacks back to one column.
   ====================================================================== */
@media (min-width: 900px) {
	.ad-cart-main .woocommerce:has(.cart-collaterals) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 420px;
		gap: 2rem;
		align-items: start;
	}
	.ad-cart-main .woocommerce:has(.cart-collaterals) > .woocommerce-notices-wrapper { grid-column: 1 / -1; grid-row: 1; }
	.ad-cart-main .woocommerce:has(.cart-collaterals) > .woocommerce-cart-form { grid-column: 1; grid-row: 2; }
	.ad-cart-main .woocommerce:has(.cart-collaterals) > .cart-collaterals { grid-column: 2; grid-row: 2; }
}
/* The card itself — ruby, like the checkout Order summary. */
.ad-cart-main .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	max-width: none;
	background: #A60641;
	border: 0;
	box-shadow: 0 14px 40px rgba(20, 24, 38, 0.18);
}
.ad-cart-main .cart-collaterals .cart_totals h2 { color: #FFFFFF; }
.ad-cart-main .cart-collaterals .cart_totals table tr,
.ad-cart-main .cart-collaterals .cart_totals table tbody tr { background: transparent !important; border-bottom: 1px solid rgba(255, 255, 255, 0.28); }
.ad-cart-main .cart-collaterals .cart_totals th { color: #FFFFFF !important; }
.ad-cart-main .cart-collaterals .cart_totals td { color: #FFFFFF !important; }
.ad-cart-main .cart-collaterals .cart_totals td .amount,
.ad-cart-main .cart-collaterals .cart_totals .order-total td .amount,
.ad-cart-main .cart-collaterals .cart_totals .order-total .amount { color: #FFFFFF !important; }
/* Shipping methods + the address block inside the card. */
.ad-cart-main .cart-collaterals .cart_totals .woocommerce-shipping-methods,
.ad-cart-main .cart-collaterals .cart_totals .woocommerce-shipping-methods li,
.ad-cart-main .cart-collaterals .cart_totals .woocommerce-shipping-methods label,
.ad-cart-main .cart-collaterals .cart_totals .woocommerce-shipping-destination {
	color: #FFFFFF;
}
.ad-cart-main .cart-collaterals .cart_totals .woocommerce-shipping-methods input[type="radio"] { accent-color: #FFC978; }
.ad-cart-main .cart-collaterals .cart_totals a:not(.checkout-button):not(.button),
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-button {
	color: #FFC978 !important; /* 5.1:1 on ruby */
	text-decoration: underline;
	text-underline-offset: 3px;
}
/* The Proceed button keeps its navy-on-amber text (8:1) and no underline. */
.ad-cart-main .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
	color: #1A222F !important;
	text-decoration: none !important;
}
/* Shipping calculator (Country / State / Suburb / Postcode) — cream fields
   with dark text, same treatment as the checkout coupon field. */
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form { margin-top: 0.6rem; }
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form p { margin: 0 0 0.75rem; }
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form label { color: #FFFFFF; font-weight: 600; display: block; margin-bottom: 0.25rem; }
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form select,
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form .select2-selection,
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form input.input-text {
	width: 100%;
	background: #FBF7EF !important;
	color: #1A222F !important;
	border: 1px solid #EEE6D6;
	border-radius: 10px;
	min-height: 44px;
	padding: 0.45rem 0.7rem;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form button,
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form .button {
	background: #F2A93B !important;
	color: #1A222F !important; /* 8:1 on amber, matches checkout Apply */
	border: 0 !important;
	border-radius: 999px !important;
	font-weight: 800 !important;
	padding: 0.6rem 1.4rem !important;
	min-height: 44px;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form button:hover,
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form .button:hover { background: #E08A00 !important; }
/* Keyboard focus must stay visible on the ruby card. */
.ad-cart-main .cart-collaterals .cart_totals a:focus-visible,
.ad-cart-main .cart-collaterals .cart_totals input:focus-visible,
.ad-cart-main .cart-collaterals .cart_totals select:focus-visible,
.ad-cart-main .cart-collaterals .cart_totals button:focus-visible {
	outline: 3px solid #FFC978;
	outline-offset: 2px;
}

/* ======================================================================
   v1.9.214 — Approved cart sample applied
   Wider cart (1280px), slimmer 360px ruby sidebar with a bigger items
   column, and the Shipment section rebuilt as compact option pills:
   tiny uppercase SHIPMENT eyebrow, each method a one-line pill (radio +
   name left, price right, "Free" when priceless), selected pill gets a
   lighter fill + #FFC978 border, destination + Change-address on one
   small line. Total enlarged, Total Weight demoted to a quiet small row.
   All text stays white on ruby (7.7:1); accents #FFC978 (5.1:1).
   ====================================================================== */
@media (min-width: 900px) {
	.ad-cart-main .wp-block-post-content > .woocommerce:has(.cart-collaterals) {
		max-width: min(1280px, 94vw);
		margin-left: auto;
		margin-right: auto;
		grid-template-columns: minmax(0, 1fr) 360px;
		gap: 2.5rem;
	}
}
.ad-cart-main .cart-collaterals .cart_totals { padding: 1.4rem 1.4rem 1.6rem; }
/* Rows sit flush with the card padding now that the cream band is gone. */
.ad-cart-main .cart-collaterals .cart_totals th { padding: 0.8rem 0 !important; }
.ad-cart-main .cart-collaterals .cart_totals td { padding: 0.8rem 0 !important; }

/* --- Shipment: stacked block with an eyebrow label. --- */
/* v1.9.216: take the totals table fully out of table layout — a block row
   inside display:table shrink-wraps whatever width you give it. The rows
   become simple label/value flex lines, the shipping row a full block. */
.ad-cart-main .cart-collaterals .cart_totals table,
.ad-cart-main .cart-collaterals .cart_totals table tbody { display: block; width: 100% !important; }
.ad-cart-main .cart-collaterals .cart_totals table tr {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	width: 100%;
}
.ad-cart-main .cart-collaterals .cart_totals table th,
.ad-cart-main .cart-collaterals .cart_totals table td { display: block; }
.ad-cart-main .cart-collaterals .cart_totals tr.woocommerce-shipping-totals { display: block; width: 100%; padding: 0.85rem 0; }
.ad-cart-main .cart-collaterals .cart_totals tr.woocommerce-shipping-totals th {
	display: block;
	padding: 0 0 0.55rem !important;
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 800 !important;
	color: rgba(255, 255, 255, 0.78) !important;
}
.ad-cart-main .cart-collaterals .cart_totals tr.woocommerce-shipping-totals td { display: block; width: 100%; padding: 0 !important; text-align: left; }
.ad-cart-main .cart-collaterals .cart_totals ul.woocommerce-shipping-methods,
.ad-cart-main .cart-collaterals .cart_totals ul#shipping_method { list-style: none !important; width: 100%; margin: 0 !important; padding: 0 !important; }
.ad-cart-main .cart-collaterals .cart_totals ul.woocommerce-shipping-methods li,
.ad-cart-main .cart-collaterals .cart_totals ul#shipping_method li {
	display: flex !important;
	width: 100%;
	align-items: center;
	gap: 10px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 10px;
	padding: 0.5rem 0.7rem;
	margin: 0 0 6px !important;
	font-size: 0.75rem; /* v1.9.218 — per request, smaller compact pills */
}
.ad-cart-main .cart-collaterals .cart_totals ul.woocommerce-shipping-methods li label,
.ad-cart-main .cart-collaterals .cart_totals ul#shipping_method li label {
	display: flex !important;
	flex: 1;
	min-width: 0;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	line-height: 1.25;
	font-weight: 600;
}
.ad-cart-main .cart-collaterals .cart_totals ul.woocommerce-shipping-methods li label .amount,
.ad-cart-main .cart-collaterals .cart_totals ul#shipping_method li label .amount {
	margin-left: auto;
	font-weight: 800;
	white-space: nowrap;
}
/* Methods with no price show "Free" on the right. */
.ad-cart-main .cart-collaterals .cart_totals ul.woocommerce-shipping-methods li label:not(:has(.amount))::after,
.ad-cart-main .cart-collaterals .cart_totals ul#shipping_method li label:not(:has(.amount))::after {
	content: "Free";
	margin-left: auto;
	font-weight: 800;
}
.ad-cart-main .cart-collaterals .cart_totals ul.woocommerce-shipping-methods li:has(input:checked),
.ad-cart-main .cart-collaterals .cart_totals ul#shipping_method li:has(input:checked) {
	background: rgba(255, 255, 255, 0.2);
	border-color: #FFC978;
}
.ad-cart-main .cart-collaterals .cart_totals input.shipping_method { accent-color: #FFC978; width: 16px; height: 16px; flex: none; margin: 0; }
/* Destination + Change address as one small quiet line. */
.ad-cart-main .cart-collaterals .cart_totals p.woocommerce-shipping-destination {
	display: inline;
	margin: 0;
	font-size: 0.78rem;
	color: rgba(255, 255, 255, 0.88);
}
.ad-cart-main .cart-collaterals .cart_totals p.woocommerce-shipping-destination::after { content: " \00b7 "; color: rgba(255, 255, 255, 0.6); }
.ad-cart-main .cart-collaterals .cart_totals form.woocommerce-shipping-calculator { display: inline-block; margin: 0.4rem 0 0; font-size: 0.78rem; }
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-button { font-size: 0.78rem; }
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form { min-width: 100%; }

/* --- Total big, weight small. --- */
.ad-cart-main .cart-collaterals .cart_totals tr.order-total th { font-size: 1.15rem !important; }
.ad-cart-main .cart-collaterals .cart_totals tr.order-total td,
.ad-cart-main .cart-collaterals .cart_totals tr.order-total td .amount { font-size: 1.25rem !important; }
/* ======================================================================
   v1.9.225 — Order-received (thank you) page, designed
   The block themes render this page from a separate "order-confirmation"
   template; without one in the child, WooCommerce's bare default showed —
   no banner, everything loose and left-scattered. The child now ships its
   own template (banner inside <main>, same shell as checkout) and the
   sections below dress the confirmation blocks as Anandodhara cards.
   ====================================================================== */
.ad-orderrcv-main .wc-block-order-confirmation-status {
	margin: 0 0 0.5rem;
}
.ad-orderrcv-main .wc-block-order-confirmation-status h1 { color: #1A222F; }
/* The order meta strip (number / date / total / email / payment). */
.ad-orderrcv-main .wc-block-order-confirmation-summary {
	background: #FFFFFF;
	border: 1px solid #EEE6D6;
	border-radius: 16px;
	padding: 1.25rem 1.5rem;
	box-shadow: 0 14px 40px rgba(20, 24, 38, 0.06);
	margin: 1rem 0 2rem;
}
.ad-orderrcv-main .wc-block-order-confirmation-summary ul { gap: 2rem; }
.ad-orderrcv-main .wc-block-order-confirmation-summary li { border: 0; }
.ad-orderrcv-main .wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item__key {
	color: #6b6b6b;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 700;
}
.ad-orderrcv-main .wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item__value {
	color: #1A222F;
	font-weight: 700;
}
/* Card treatment for each confirmation section. */
.ad-orderrcv-main .wc-block-order-confirmation-totals-wrapper,
.ad-orderrcv-main .wc-block-order-confirmation-downloads-wrapper,
.ad-orderrcv-main .wc-block-order-confirmation-additional-fields-wrapper,
.ad-orderrcv-main .wc-block-order-confirmation-additional-information,
.ad-orderrcv-main .wc-block-order-confirmation-address-wrapper .wp-block-column {
	background: #FFFFFF;
	border: 1px solid #EEE6D6;
	border-radius: 16px;
	padding: 1.5rem 1.75rem;
	box-shadow: 0 14px 40px rgba(20, 24, 38, 0.06);
	margin-bottom: 2rem;
}
.ad-orderrcv-main .wc-block-order-confirmation-address-wrapper { gap: 2rem; }
.ad-orderrcv-main .wc-block-order-confirmation-address-wrapper .wp-block-column { margin-bottom: 0; }
.ad-orderrcv-main h2.wp-block-heading { color: #1A222F; font-weight: 700; margin: 0 0 1rem; }
/* Totals table. */
.ad-orderrcv-main .wc-block-order-confirmation-totals__table,
.ad-orderrcv-main table.order_details { width: 100%; border: 0; }
.ad-orderrcv-main .wc-block-order-confirmation-totals__table th,
.ad-orderrcv-main .wc-block-order-confirmation-totals__table td,
.ad-orderrcv-main table.order_details th,
.ad-orderrcv-main table.order_details td {
	border: 0;
	border-bottom: 1px solid #EEE6D6;
	padding: 0.8rem 0.25rem;
	color: #1A222F;
}
.ad-orderrcv-main table.order_details tfoot tr:last-child th,
.ad-orderrcv-main table.order_details tfoot tr:last-child td,
.ad-orderrcv-main .wc-block-order-confirmation-totals__table tfoot tr:last-child th,
.ad-orderrcv-main .wc-block-order-confirmation-totals__table tfoot tr:last-child td {
	border-bottom: 0;
	font-size: 1.1rem;
	font-weight: 800;
	color: #A60641;
}
.ad-orderrcv-main table a { color: #A60641; text-decoration: underline; text-underline-offset: 3px; }
/* Addresses. */
.ad-orderrcv-main address { font-style: normal; line-height: 1.7; color: #1A222F; }
/* Bank details (EFT orders) — highlighted callout inside the card flow. */
.ad-orderrcv-main .woocommerce-bacs-bank-details {
	background: #FFF6E6;
	border: 1px solid #F2A93B;
	border-radius: 14px;
	padding: 1.25rem 1.5rem 1rem;
	margin: 0 0 2rem;
}
.ad-orderrcv-main .woocommerce-bacs-bank-details h2,
.ad-orderrcv-main .woocommerce-bacs-bank-details h3 { color: #1A222F; margin: 0 0 0.6rem; font-size: 1.05rem; }
.ad-orderrcv-main .wc-bacs-bank-details { list-style: none; margin: 0; padding: 0; }
.ad-orderrcv-main .wc-bacs-bank-details li { padding: 0.3rem 0; color: #1A222F; }

/* v1.9.224 — Checkout order-summary contrast hardening (WAVE).
   The amber quantity badge painted its number near-white (2.18:1); item
   name and price used 0.8-alpha white that scanners flag as ambiguous.
   Badge number goes navy on amber (8.0:1); name/price solid white (7.7:1). */
.ad-checkout-main .wc-block-checkout .wc-block-components-order-summary-item__quantity,
.ad-checkout-main .wc-block-checkout .wc-block-components-order-summary-item__quantity span,
.ad-checkout-main .wc-block-checkout .wc-block-components-order-summary-item__quantity span[aria-hidden] {
	color: #1A222F !important;
}
.ad-checkout-main .wc-block-checkout .wc-block-components-product-name,
.ad-checkout-main .wc-block-checkout .wc-block-components-order-summary-item__description,
.ad-checkout-main .wc-block-checkout .wc-block-components-order-summary-item__total-price,
.ad-checkout-main .wc-block-checkout .wc-block-components-product-price {
	color: #FFFFFF !important;
}

/* v1.9.220 — Calculator selects + WAVE clean-up.
   1) Country/State: select2 stacked its own box height on top of the field
      padding, rendering ~90px tall boxes next to 48px inputs. The single
      selection is now a fixed 48px flex box matching Suburb/Postcode.
   2) The shipping radios get wrapped in a real <fieldset> with a
      screen-reader legend (via functions.php) — reset its chrome here. */
.ad-cart-main .cart-collaterals .cart_totals fieldset.ad-ship-fs {
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
	background: transparent;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form .select2-container .select2-selection--single {
	height: 48px !important;
	min-height: 48px !important;
	background: #FBF7EF !important;
	border: 1px solid #EEE6D6 !important;
	border-radius: 10px;
	display: flex;
	align-items: center;
	padding: 0 2rem 0 0.7rem;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form .select2-selection__rendered {
	line-height: normal !important;
	padding: 0 !important;
	color: #1A222F !important;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form .select2-selection__arrow {
	height: 100% !important;
	top: 0 !important;
	right: 8px !important;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form select {
	height: 48px;
	min-height: 48px !important;
}

/* v1.9.218 — Shipping calculator polish.
   1) Every .form-row carried a clearfix ::before with content " " (a real
      space, not an empty string) rendered as display:table — inside the
      card it produced a ~26px phantom line above EVERY label. Neutralised.
   2) "Change address" upgraded from a bare text link to a small outlined
      pill button (#FFC978 on ruby, 5.1:1) so it is clearly clickable. */
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form p::before,
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form p::after {
	display: none !important; /* v1.9.219 — emptying the content still left a
	   25.6px table box; removing the pseudo entirely closes the gap. Nothing
	   floats inside the card, so the clearfix is not needed here. */
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form p {
	padding: 0 !important;
	margin: 0 0 0.7rem !important;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form { margin-top: 0.55rem; }
/* v1.9.221 (WAVE): the required asterisks were theme-red on ruby — very low
   contrast. Amber #FFC978 reads at 5.1:1 on the card. */
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-form .required {
	color: #FFC978 !important;
}
.ad-cart-main .cart-collaterals .cart_totals .shipping-calculator-button {
	display: inline-block;
	/* v1.9.220 (axe): the earlier rgba(255,255,255,.12) fill composited the
	   ruby to #B12458, dropping #FFC978 text to 4.25:1. Border-only pill on
	   pure ruby keeps the amber text at 5.1:1 (AA). */
	background: transparent;
	border: 1.5px solid #FFC978;
	border-radius: 999px;
	padding: 0.4rem 1rem !important;
	font-size: 0.8rem !important;
	font-weight: 700;
	color: #FFC978 !important;
	text-decoration: none !important;
	line-height: 1.2;
	margin-top: 0.35rem;
}
/* v1.9.221: the accent-link rule (a:not(.checkout-button):not(.button))
   outranks a plain :hover selector because its :not() classes count toward
   specificity — the hover text stayed amber on the amber fill and vanished.
   The a.shipping-calculator-button:hover selector outranks it. */
.ad-cart-main .cart-collaterals .cart_totals a.shipping-calculator-button:hover,
.ad-cart-main .cart-collaterals .cart_totals a.shipping-calculator-button:focus-visible {
	background: #FFC978;
	color: #3A0A1F !important; /* 11.2:1 on the amber fill */
	text-decoration: none !important;
}

/* v1.9.217 — Proceed/Apple Pay/PayPal buttons: identical width, centred.
   The checkout button inherited 17.6px side margins from a parent rule, so
   its 100%-wide box overflowed right (left gap 40px, right 5px) while the
   express-checkout containers sat flush. Stack all three with flex and
   strip stray margins so every button spans the same centred column. */
.ad-cart-main .cart-collaterals .cart_totals .wc-proceed-to-checkout {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.6rem;
}
.ad-cart-main .cart-collaterals .cart_totals .wc-proceed-to-checkout > * {
	width: 100% !important;
	margin: 0 !important;
	box-sizing: border-box;
}
.ad-cart-main .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
	width: 100% !important;
	margin: 0 !important;
	box-sizing: border-box;
}

.ad-cart-main .cart-collaterals .cart_totals tr.total-weight th,
.ad-cart-main .cart-collaterals .cart_totals tr.total-weight td {
	font-size: 0.82rem !important;
	font-weight: 500 !important;
	color: rgba(255, 255, 255, 0.88) !important;
	padding: 0.35rem 0 0.9rem !important;
}



/* ======================================================================
   v1.9.161 — CHECKOUT kept in the existing Ariade block structure, only
   recoloured from the parent's blue-purple to Anandodhara ruby + amber
   (per Shivaji: keep our structure, just the ruby and the yellow).
   ====================================================================== */

/* Step heading bands: neutral light grey #F1F1F1 with navy text
   (v1.9.164 — per request: NOT yellow, use #F1F1F1). Flat, no gradient.
   Navy #1A222F on #F1F1F1 = 14.08:1 (WCAG AAA). */
.ad-checkout-main .wc-block-checkout .wc-block-components-checkout-step__heading {
	background: #F7E8CD !important;   /* v1.9.168 — cream, carries the maroon rakhi */
	background-image: none !important;
	position: relative;
	overflow: hidden;
}
.ad-checkout-main .wc-block-checkout .wc-block-components-checkout-step__heading,
.ad-checkout-main .wc-block-checkout .wc-block-components-checkout-step__heading * {
	color: #1A222F !important;
}

/* Focus rings ruby (was purple #534ab7). */
.ad-checkout-main .wc-block-checkout .wc-block-components-text-input input:focus,
.ad-checkout-main .wc-block-checkout .wc-block-components-text-input .components-text-control__input:focus,
.ad-checkout-main .wc-block-checkout select:focus,
.ad-checkout-main .wc-block-checkout textarea:focus {
	outline-color: #A60641 !important;
}

/* Place order button: amber brand CTA (was navy → purple hover). */
.ad-checkout-main .wc-block-checkout .wc-block-components-checkout-place-order-button {
	background: #F2A93B !important;
	color: #1A222F !important;
}
.ad-checkout-main .wc-block-checkout .wc-block-components-checkout-place-order-button:hover {
	background: #E08A00 !important;
	color: #1A222F !important;
}

/* Links, radios, checkboxes → ruby (was purple). */
.ad-checkout-main .wc-block-checkout a { color: #A60641; }
.ad-checkout-main .wc-block-checkout a:hover { color: #7E052F; }
.ad-checkout-main .wc-block-checkout input[type="radio"],
.ad-checkout-main .wc-block-checkout input[type="checkbox"],
.ad-checkout-main .wc-block-checkout .wc-block-components-radio-control__input {
	accent-color: #A60641 !important;
}
.ad-checkout-main .wc-block-checkout .wc-block-components-radio-control__option--checked-option-highlighted,
.ad-checkout-main .wc-block-checkout .wc-block-checkout__shipping-option--selected {
	border-color: #A60641 !important;
}

/* Sidebar shipping accent → amber (was teal). */
.ad-checkout-main .wc-block-checkout .wc-block-checkout__sidebar .wc-block-components-totals-shipping .wc-block-formatted-money-amount {
	color: #F5B942 !important;
}
/* Order-summary quantity badges: SOLID Anandodhara yellow with a navy bold
   number. Border is the SAME yellow (v1.9.164 — no black/navy ring per
   request). Navy #1A222F number on #F2A93B = 8.00:1 (WCAG AAA). */
.ad-checkout-main .wc-block-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item__quantity {
	background: #F2A93B !important;
	color: #1A222F !important;
	border: 1px solid #F2A93B !important;
	font-weight: 700 !important;
}

/* ── v1.9.162 — Checkout order-summary sidebar → ruby ──────────────────────
   Per request: the right-hand Order summary box changes from the parent's
   navy (#0E1B36) to Anandodhara ruby (#A60641), so it matches the ruby end
   of the step-heading bars. Structure unchanged — this is a colour swap only.
   Contrast verified against ruby: white title/total 7.71:1, near-white badge
   7.64:1, 0.8-alpha product/meta text ~5.26:1 — all pass WCAG 2.1 AA. */
.ad-checkout-main .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block {
	background: #A60641 !important;
}

/* ── v1.9.163 — Checkout coupon area WCAG + clarity ────────────────────────
   The coupon sits inside the ruby order-summary box.
   • "Enter code" field: was white text on a translucent white-over-ruby
     field (~6.67:1, muddy). Now a solid cream field with dark text and a
     #6A6A6A placeholder (5.06:1) — same as the cart coupon, clearly visible.
   • APPLY button: parent painted it amber with WHITE text (2.18:1 — FAIL).
     Now Anandodhara yellow with navy text (8.00:1), matching the cart's
     Apply-coupon button. The "Add coupons" panel toggle
     (.wc-block-components-panel__button) is deliberately left untouched. */
.ad-checkout-main .wc-block-checkout .wc-block-components-totals-coupon input {
	background: #FBF7EF !important;
	color: #1A222F !important;
}
.ad-checkout-main .wc-block-checkout .wc-block-components-totals-coupon input::placeholder {
	color: #6A6A6A !important;
	opacity: 1 !important;
}
.ad-checkout-main .wc-block-checkout .wc-block-components-totals-coupon__button {
	background: #F2A93B !important;
	color: #1A222F !important;
}
.ad-checkout-main .wc-block-checkout .wc-block-components-totals-coupon__button:hover {
	background: #E08A00 !important;
	color: #1A222F !important;
}


/* -- v1.9.165 -- Checkout order summary: essentials only ------------------
   Per request: the checkout Order summary should show only what the buyer
   needs to confirm the order -- cover, title, quantity, unit price and line
   total. The WooCommerce Checkout block additionally prints each product's
   SHORT DESCRIPTION here (.wc-block-components-product-metadata). On these
   books that carries the Bengali sub-title, a search-keyword line and a
   "Book Details -> Language: Bengali" list -- noise at the point of payment,
   and extra text a screen-reader user must listen through before reaching
   the price and the Place-order button. Hidden with display:none, so it is
   removed from the accessibility tree as well, not merely hidden visually.
   Scoped to .ad-checkout-main -- the product page description is untouched. */
.ad-checkout-main .wc-block-checkout .wc-block-components-order-summary-item .wc-block-components-product-metadata {
	display: none !important;
}


/* -- v1.9.166 -- Single product: restore centred content width -----------
   Regression fix. The single-product template renders div.product (a 2-col
   grid: gallery | summary, with the Reviews and Related rows spanning the
   full grid width) inside a full-bleed flow <main>. Nothing capped
   div.product, so it stretched to the browser edges -- the cover hugged the
   left edge and the ruby Reviews band + Related row ran edge to edge. Cap it
   to the store content width (1200px, matching cart/checkout) and centre it,
   with a 24px gutter on narrower screens. */
.ad-single-product div.product {
	width: min(1200px, 100% - 48px) !important;
	margin-inline: auto !important;
}


/* -- v1.9.167 -- Checkout order-summary thumbnail: 10px radius ------------
   WooCommerce Blocks gives the order-summary cover thumbnail a 5px corner
   radius; bumped to 10px to match the cart thumbnails and the store's
   softer rounding. The 2px light border is left as-is. */
.ad-checkout-main .wc-block-components-order-summary-item__image > img {
	border-radius: 10px !important;
}

/* -- v1.9.168 -- Rakhi on the ruby bands + Related-products band + top gap --
   (a) product body clears the banner; (b) Reviews band full ruby with the
   rakhi at right and the star rating shifted left of it (old ruby->amber
   failed the white rating's contrast); (c) Related products = matching ruby
   band (grid icon + ivory rakhi); (d) checkout step bars cream + maroon
   rakhi. All rakhis are decorative ::after (aria-hidden), behind the text. */

.ad-single-product { padding-top: 2.6rem !important; }

.single-product .ariade-band-reviews { padding-right: 172px; overflow: hidden; }
.single-product .ariade-band-reviews > * { position: relative; z-index: 2; }
.single-product .ariade-band-reviews::after {
  content: ""; position: absolute; inset: 0 0 0 auto; width: 150px; z-index: 1; pointer-events: none;
  background-image: url(assets/img/rakhi-ivory.png), url(assets/img/rakhi-ivory-50.png);
  background-repeat: no-repeat, no-repeat;
  background-position: right 14px center, right 56px center;
  background-size: auto 82%, auto 74%;
}

/* Related heading: parent styles .related.products>h2 at (0,4,2) with !important,
   so we override at higher specificity (.single-product.woocommerce div.product ...). */
.single-product .related.products { margin-top: 3rem !important; }
.single-product.woocommerce div.product .related.products > h2 {
  position: relative !important; overflow: hidden !important;
  background: linear-gradient(100deg, #7E052F 0%, #A60641 55%, #8A0838 100%) !important;
  color: #fff !important; border-radius: 16px !important; margin: 0 0 1.8rem !important;
  padding: 22px 24px 22px 92px !important; font-size: 1.5rem !important; font-weight: 800 !important;
  line-height: 1.2 !important; letter-spacing: 0 !important; text-align: left !important; text-transform: none !important;
  box-shadow: 0 10px 26px rgba(166, 6, 65, 0.28) !important;
}
.single-product.woocommerce div.product .related.products > h2::before {
  content: "" !important; position: absolute !important; left: 24px !important; top: 50% !important; bottom: auto !important; right: auto !important;
  transform: translateY(-50%) !important; width: 52px !important; height: 52px !important; border-radius: 13px !important;
  background: rgba(255,255,255,.16) url(assets/img/band-icon-grid.svg) center / 26px no-repeat !important;
}
.single-product.woocommerce div.product .related.products > h2::after {
  content: "" !important; position: absolute !important; inset: 0 0 0 auto !important; width: 150px !important; z-index: 1 !important; pointer-events: none !important;
  background-image: url(assets/img/rakhi-ivory.png), url(assets/img/rakhi-ivory-50.png) !important;
  background-repeat: no-repeat, no-repeat !important;
  background-position: right 14px center, right 56px center !important;
  background-size: auto 74%, auto 66% !important;
}

.ad-checkout-main .wc-block-checkout .wc-block-components-checkout-step__heading > * { position: relative; z-index: 1; }
.ad-checkout-main .wc-block-checkout .wc-block-components-checkout-step__heading::after {
  content: ""; position: absolute; inset: 0 0 0 auto; width: 150px; z-index: 0; pointer-events: none;
  background-image: url(assets/img/rakhi-maroon.png), url(assets/img/rakhi-maroon-50.png);
  background-repeat: no-repeat, no-repeat;
  background-position: right 12px center, right 52px center;
  background-size: auto 86%, auto 78%;
}

@media (max-width: 640px) {
  .single-product .ariade-band-reviews { padding-right: 100px; }
  .single-product.woocommerce div.product .related.products > h2 { padding-left: 76px !important; }
  .single-product .ariade-band-reviews::after,
  .single-product .related.products > h2::after { width: 96px; background-size: auto 64%, auto 58%; }
}


/* -- v1.9.170 -- Card add-to-cart border removed + category header ---------
   (a) The loop "Add to cart" pill carried a 0.8px navy border that read as a
   black ring on the ruby hover state -- removed. The keyboard focus ring is
   kept for accessibility but changed from navy to white, which is crisp on
   the dark cover and no longer looks like a black border.
   (b) The parent theme's purple .ariade-cathead category bar duplicated the
   skyline banner (already shows the category name + description) and was
   off-brand; hidden so the banner is the single category header. */
.ad-store-main ul.products li.product .button,
.ad-store-main ul.products li.ad-book-card .button { border: 0 !important; }
.ad-store-main ul.products li.product .button:focus-visible {
  outline: 3px solid #FFFFFF !important; outline-offset: 2px !important;
}
.ad-store-main .ariade-cathead { display: none !important; }


/* ==========================================================================
   v1.9.172 — DONATE PAGE (/donate/) — AVRA story + GiveWP form
   Figma screens 17–21. Cream/maroon, WCAG 2.2 AA, fully responsive.
   The AVRA write-up is rendered as native semantic HTML (headings, lists,
   landmarks) — NOT an embedded Word/iframe, which fails keyboard, reflow,
   zoom and screen-reader requirements. GiveWP form is brand-coloured in the
   form builder (maroon #460804 / ruby #A60641); page CSS only frames it.
   ========================================================================== */
:root { --ad-maroon: #460804; --ad-maroon-soft: #F0E0D6; }

.ad-donate { --flow: clamp(2.2rem, 4vw, 3.6rem); }
.ad-donate > * + * { margin-top: var(--flow); }

/* -- Lead ------------------------------------------------------------------ */
.ad-donate-lead { max-width: 820px; margin-inline: auto; }
.ad-donate-lead .ad-section-title { color: var(--ad-maroon); }
.ad-donate-leadtext {
	font-size: clamp(1.02rem, 1.15vw, 1.28rem);
	line-height: 1.65; color: var(--ad-body); margin-top: 0.9rem;
}
.ad-donate-leadtext strong { color: var(--ad-maroon); }

/* -- Give section: form + aside -------------------------------------------- */
.ad-donate-cols { gap: clamp(1.5rem, 3vw, 3rem); align-items: stretch; }
.ad-give-h {
	font-size: clamp(1.5rem, 2.1vw, 2.1rem); line-height: 1.15;
	letter-spacing: -0.02em; color: var(--ad-ink); margin: 0 0 1rem;
	text-align: center;
}
/* Frame the embedded GiveWP form so it sits on a clean paper card that
   matches the aside height. GiveWP renders its own inner card/iframe; we
   only provide the outer surface + spacing. */
.ad-donate-formcol .give-form,
.ad-donate-formcol [class*="givewp"],
.ad-donate-formcol iframe { max-width: 100%; }
.ad-give-note {
	font-size: 0.9rem; line-height: 1.6; color: var(--ad-body-soft);
	margin-top: 1rem;
}
.ad-give-note a { color: var(--ad-maroon); font-weight: 600; text-decoration: underline; }

.ad-donate-aside {
	background: var(--ad-cream); border: 1.5px solid var(--ad-line);
	border-radius: var(--ad-radius); padding: clamp(1.4rem, 2.4vw, 2rem);
	height: 100%;
}
.ad-aside-h {
	font-size: clamp(1.15rem, 1.5vw, 1.5rem); line-height: 1.2;
	letter-spacing: -0.01em; color: var(--ad-maroon); margin: 0 0 0.7rem;
}
.ad-donate-aside p { color: var(--ad-body); line-height: 1.7; font-size: 0.98rem; }
.ad-donate-aside p strong { color: var(--ad-maroon); }
.ad-aside-points { list-style: none; margin: 1.1rem 0 0; padding: 0; }
.ad-aside-points li {
	position: relative; padding: 0 0 0 1.9rem; margin: 0 0 0.8rem;
	color: var(--ad-body); line-height: 1.55; font-size: 0.95rem;
}
.ad-aside-points li strong { color: var(--ad-maroon); }
.ad-aside-points li::before {
	content: ""; position: absolute; left: 0; top: 0.15rem; width: 1.15rem; height: 1.15rem;
	background: var(--ad-maroon);
	-webkit-mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9.55 17.6 4.4 12.45l1.4-1.4 3.75 3.75 8.25-8.25 1.4 1.4z'/%3E%3C/svg%3E");
	        mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9.55 17.6 4.4 12.45l1.4-1.4 3.75 3.75 8.25-8.25 1.4 1.4z'/%3E%3C/svg%3E");
}

/* -- AVRA story (readable measure) ----------------------------------------- */
.ad-avra-story { max-width: 760px; margin-inline: auto; }
.ad-avra-story .ad-section-title { color: var(--ad-maroon); }
.ad-avra-story > * + * { margin-top: 1.15rem; }
.ad-avra-story h3 {
	font-size: clamp(1.25rem, 1.7vw, 1.6rem); line-height: 1.25;
	letter-spacing: -0.01em; color: var(--ad-maroon);
	margin-top: 2rem;
}
.ad-avra-story p { color: var(--ad-body); line-height: 1.75; font-size: 1.02rem; }
.ad-story-list { margin: 0.4rem 0 0; padding: 0; list-style: none; }
.ad-story-list li {
	position: relative; padding: 0 0 0 1.7rem; margin: 0 0 0.65rem;
	color: var(--ad-body); line-height: 1.6;
}
.ad-story-list li::before {
	content: ""; position: absolute; left: 0.15rem; top: 0.62em; width: 7px; height: 7px;
	border-radius: 50%; background: var(--ad-ruby);
}
.ad-avra-callout {
	background: var(--ad-cream); border-left: 5px solid var(--ad-maroon);
	border-radius: 10px; padding: 1rem 1.3rem; margin: 1.2rem 0;
}
.ad-avra-callout-name {
	margin: 0; font-family: var(--ad-font-display);
	font-size: clamp(1.1rem, 1.6vw, 1.5rem); line-height: 1.3; color: var(--ad-maroon);
	letter-spacing: -0.01em;
}
.ad-avra-callout-name strong { font-weight: 800; }

/* -- Your impact cards ------------------------------------------------------ */
.ad-impact .ad-section-title { color: var(--ad-maroon); }
.ad-impact-cols { gap: clamp(1.1rem, 2vw, 1.8rem); }
.ad-impact-card { text-align: center; }
.ad-impact-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 66px; height: 66px; border-radius: 50%;
	background: var(--ad-paper); border: 2px solid var(--ad-ruby);
	box-shadow: 0 4px 12px rgba(70,8,4,.08);
	margin: 0 auto 1.05rem;
}
.ad-impact-card h3 { color: var(--ad-maroon); }

/* -- Volunteer CTA band ----------------------------------------------------- */
.ad-volunteer {
	background: var(--ad-cream); border: 1.5px solid var(--ad-line);
	border-radius: var(--ad-radius);
	padding: clamp(2rem, 4vw, 3.2rem) clamp(1.2rem, 4vw, 3rem);
	max-width: 1000px; margin-inline: auto;
}
.ad-volunteer-h { color: var(--ad-maroon); font-size: clamp(1.5rem, 2.4vw, 2.3rem); letter-spacing: -0.02em; }
.ad-volunteer-text {
	max-width: 680px; margin: 0.9rem auto 1.6rem; color: var(--ad-body);
	line-height: 1.7; font-size: clamp(0.98rem, 1.1vw, 1.15rem);
}

/* -- Responsive: stack columns, form first --------------------------------- */
@media (max-width: 781px) {
	.ad-donate-formcol { margin-bottom: 1.6rem; }
	.ad-donate-aside { height: auto; }
}


/* v1.9.173 — community photo inside the "Who you are supporting" aside box.
   Sits at the top of the cream panel (text kept intact below it), rounded to
   match the card, cropped 4:3 with the focus biased upward to keep the two
   people and the book they are sharing in frame. */
.ad-aside-photo { margin: 0 0 1.25rem; }
.ad-aside-photo img {
	display: block; width: 100%; height: auto; aspect-ratio: 4 / 3;
	object-fit: cover; object-position: center 36%;
	border-radius: 12px;
}


/* v1.9.175 — Donate banner + community photo tidy-up.
   (a) The banner title ("Keep the Stream of Joy Flowing") + the broader
   sub-line are taller than a one-word inner-page title, so the hero rode up
   under the transparent site header. Pad the banner content down (donate page
   only) so the title clears the header on every width.
   (b) Community photo re-cropped to a 4:3 landscape so the light hall-wall
   strips at the left/right edges are gone and it fills the frame. */
.page-id-47 .ad-banner-inner .wp-block-cover__inner-container {
	padding-top: clamp(64px, 8vw, 104px);
	padding-bottom: clamp(20px, 3vw, 30px);
}


/* ==========================================================================
   v1.9.178 -- "Why your support matters" redesign (.ad-case)
   Editorial case-for-support layout replacing the old flat .ad-avra-story:
   centred header + stat strip, ruby-tinted iconed pressures panel, pull-quote,
   value block with activity chips, and a highlighted AVRA solution card.
   Reuses the theme palette + Archivo/Manrope fonts + Phosphor duotone icons.
   All icons are decorative (aria-hidden); heading order (h2 > h3s) preserved.
   ========================================================================== */
.ad-case { margin-top: clamp(1.5rem, 4vw, 3rem); padding-block: clamp(0.5rem, 2vw, 1.5rem); }
.ad-case .adc-inner { max-width: 960px; margin-inline: auto; }

/* -- Header -- */
.ad-case .adc-head { max-width: 760px; margin: 0 auto 2.4rem; text-align: center; }
.ad-case .adc-eyebrow {
	display: inline-flex; align-items: center; gap: .5rem;
	font-family: var(--ad-font-body); font-weight: 700; font-size: .8rem;
	letter-spacing: .14em; text-transform: uppercase; color: var(--ad-ruby); margin-bottom: .9rem;
}
.ad-case .adc-eyebrow::before, .ad-case .adc-eyebrow::after {
	content: ""; width: 22px; height: 2px; background: var(--ad-amber); border-radius: 2px;
}
.ad-case .adc-title {
	font-family: var(--ad-font-display); font-weight: 800; letter-spacing: -.02em; line-height: 1.08;
	font-size: clamp(2rem, 3.4vw, 2.9rem); color: var(--ad-maroon); margin: 0 0 1rem;
}
.ad-case .adc-lead { font-size: 1.12rem; line-height: 1.72; color: #3A3A3A; margin: 0 auto; max-width: 720px; }

/* -- Stat strip -- */
.ad-case .adc-stats {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 0;
	margin: 2.4rem auto 3rem; max-width: 820px;
	background: linear-gradient(180deg, #fff, var(--ad-cream-soft));
	border: 1px solid var(--ad-line); border-radius: 16px;
	box-shadow: 0 10px 30px rgba(70,8,4,.05); overflow: hidden;
}
.ad-case .adc-stat { flex: 1 1 200px; text-align: center; padding: 1.5rem 1.2rem; position: relative; }
.ad-case .adc-stat + .adc-stat::before {
	content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: var(--ad-line);
}
.ad-case .adc-fig {
	display: block; font-family: var(--ad-font-display); font-weight: 800; font-size: 2.5rem;
	line-height: 1; color: var(--ad-ruby); letter-spacing: -.02em;
}
.ad-case .adc-lab { display: block; margin-top: .5rem; font-size: .86rem; line-height: 1.4; color: #3A3A3A; font-weight: 600; }

/* -- Pressures panel -- */
.ad-case .adc-panel {
	background: var(--ad-cream-soft); border: 1px solid var(--ad-line); border-radius: 16px;
	padding: clamp(1.5rem, 3vw, 2.3rem); max-width: 900px; margin: 0 auto;
}
.ad-case .adc-panel-h { display: flex; align-items: center; gap: .7rem; margin: 0 0 .4rem; }
.ad-case .adc-panel-h h3 {
	font-family: var(--ad-font-display); font-weight: 700; font-size: 1.5rem;
	letter-spacing: -.01em; color: var(--ad-maroon); margin: 0;
}
.ad-case .adc-tag {
	margin-left: auto; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: var(--ad-ruby); background: rgba(166,6,65,.09); padding: .3rem .6rem; border-radius: 20px; white-space: nowrap;
}
.ad-case .adc-panel-intro { color: #3A3A3A; font-size: 1rem; line-height: 1.6; margin: .2rem 0 1.4rem; }
.ad-case .adc-plist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1.05rem 1.8rem; }
.ad-case .adc-plist li { display: flex; gap: .85rem; align-items: flex-start; }
.ad-case .adc-pico {
	flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; background: #fff;
	border: 1px solid rgba(166,6,65,.18); color: var(--ad-ruby);
	display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 3px 8px rgba(70,8,4,.06);
}
.ad-case .adc-pico svg { width: 26px; height: 26px; }
.ad-case .adc-ptxt { display: block; }
.ad-case .adc-ptxt b { display: block; font-family: var(--ad-font-display); font-weight: 700; font-size: 1.02rem; color: var(--ad-maroon); margin-bottom: .15rem; }
.ad-case .adc-ptxt span { display: block; color: #3A3A3A; font-size: .94rem; line-height: 1.5; }
.ad-case .adc-tried { display: flex; gap: .7rem; align-items: flex-start; margin: 1.5rem 0 0; padding-top: 1.2rem; border-top: 1px dashed rgba(166,6,65,.25); }
.ad-case .adc-tried .adc-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--ad-amber); margin-top: .5rem; }
.ad-case .adc-tried > span:last-child { color: #3A3A3A; font-size: .95rem; line-height: 1.6; font-style: italic; }
.ad-case .adc-tried b { color: var(--ad-maroon); font-style: normal; }

/* -- Pull quote -- */
.ad-case .adc-pq { max-width: 820px; margin: 3rem auto; text-align: center; position: relative; padding: 0 1rem; }
.ad-case .adc-mark { display: block; font-family: var(--ad-font-display); font-weight: 800; font-size: 4.5rem; line-height: .6; color: var(--ad-amber); height: 2.2rem; }
.ad-case .adc-quote { margin: 0; border: 0; padding: 0; }
.ad-case .adc-quote p {
	margin: 0; font-family: var(--ad-font-display); font-weight: 600; letter-spacing: -.01em;
	font-size: clamp(1.5rem, 2.9vw, 2.15rem); line-height: 1.32; color: var(--ad-maroon);
}
.ad-case .adc-quote em { font-style: normal; color: var(--ad-ruby); }
.ad-case .adc-pq figcaption {
	margin-top: 1rem; font-size: .9rem; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: #3A3A3A;
}
.ad-case .adc-pq figcaption::before { content: ""; display: inline-block; width: 26px; height: 2px; background: var(--ad-amber); vertical-align: middle; margin-right: .6rem; }

/* -- Value block + activity chips -- */
.ad-case .adc-value { max-width: 760px; margin: 0 auto; }
.ad-case .adc-value h3 { font-family: var(--ad-font-display); font-weight: 700; font-size: clamp(1.35rem, 2vw, 1.7rem); letter-spacing: -.01em; color: var(--ad-maroon); margin: 0 0 .8rem; }
.ad-case .adc-value p { font-size: 1.05rem; line-height: 1.75; color: var(--ad-body); margin: 0 0 1.3rem; }
.ad-case .adc-value p b { color: var(--ad-maroon); }
.ad-case .adc-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.ad-case .adc-chips li { font-size: .85rem; font-weight: 600; color: var(--ad-ruby); background: #fff; border: 1px solid rgba(166,6,65,.22); padding: .4rem .85rem; border-radius: 20px; }

/* -- AVRA solution card -- */
.ad-case .adc-avra {
	position: relative; max-width: 900px; margin: 3.2rem auto 0;
	background: linear-gradient(135deg, #fff 0%, var(--ad-cream-soft) 100%);
	border: 1px solid var(--ad-line); border-radius: 20px; padding: clamp(1.8rem, 3.2vw, 2.6rem);
	box-shadow: 0 16px 40px rgba(70,8,4,.08); overflow: hidden;
}
.ad-case .adc-avra::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: linear-gradient(180deg, var(--ad-amber), var(--ad-ruby)); }
.ad-case .adc-avra-top { display: flex; align-items: center; gap: 1.1rem; margin-bottom: 1.1rem; }
.ad-case .adc-avra-ico {
	flex: 0 0 auto; width: 64px; height: 64px; border-radius: 50%; background: #fff; border: 2px solid var(--ad-ruby);
	color: var(--ad-ruby); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(166,6,65,.14);
}
.ad-case .adc-avra-ico svg { width: 38px; height: 38px; }
.ad-case .adc-avra-id { display: flex; flex-direction: column; }
.ad-case .adc-avra-eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ad-ruby); }
.ad-case .adc-avra-name { font-family: var(--ad-font-display); font-weight: 800; font-size: 2.1rem; line-height: 1; color: var(--ad-maroon); letter-spacing: -.01em; margin: .15rem 0 .1rem; }
.ad-case .adc-avra-sub { font-size: .98rem; font-weight: 600; color: #3A3A3A; }
.ad-case .adc-avra > p { font-size: 1.04rem; line-height: 1.72; color: var(--ad-body); margin: 0; }
.ad-case .adc-avra > p.adc-avra-tie {
	display: flex; align-items: center; gap: .6rem; margin: 1.3rem 0 0; padding-top: 1.2rem;
	border-top: 1px solid var(--ad-line); font-family: var(--ad-font-display); font-weight: 700; font-size: 1.02rem; color: var(--ad-ruby);
}
.ad-case .adc-avra-tie svg { width: 22px; height: 22px; flex: 0 0 auto; }

/* -- Responsive -- */
@media (max-width: 680px) {
	.ad-case .adc-plist { grid-template-columns: 1fr; }
	.ad-case .adc-stat + .adc-stat::before { display: none; }
	.ad-case .adc-stat { border-top: 1px solid var(--ad-line); }
	.ad-case .adc-stats .adc-stat:first-child { border-top: none; }
	.ad-case .adc-avra-top { flex-direction: column; text-align: center; align-items: center; }
}


/* =========================================================================
   v1.9.182 — My Account (WooCommerce) — Anandodhara brand.
   The Ariade parent skins /my-account/ with its own blue->purple->pink gradient
   (the greeting band + the active tab) and indigo links -- off-brand here.
   Remap the account area to the site's ruby content-header band (same gradient
   + ivory rakhi as the donate form header and product/checkout headers), amber
   primary buttons and ruby links, so the account, shop and donation areas read
   as one brand. WCAG kept: white on ruby >=7:1, ruby #A60641 7.71:1 on white,
   amber buttons use #352107 text (7.02:1). All decorative art is aria-hidden.
   ========================================================================= */

/* Greeting band -> ruby content-header with the rakhi motif at the right. */
.ariade-account-band {
	background: linear-gradient(100deg, #7E052F 0%, #A60641 55%, #8A0838 100%) !important;
	position: relative !important;
	overflow: hidden !important;
}
.ariade-account-band > * { position: relative; z-index: 2; }
.ariade-account-band::after {
	content: ""; position: absolute; inset: 0 0 0 auto; width: 150px; z-index: 1; pointer-events: none;
	background-image: url(assets/img/rakhi-ivory.png), url(assets/img/rakhi-ivory-50.png);
	background-repeat: no-repeat, no-repeat;
	background-position: right 14px center, right 56px center;
	background-size: auto 74%, auto 66%;
}

/* Left nav: active tab -> ruby gradient; inactive -> maroon text, cream hover.
   The parent styles the active tab at (0,3,3) with !important
   (.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a),
   so match its structure + one extra class and !important to win. */
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link.is-active a {
	background-image: linear-gradient(100deg, #7E052F 0%, #A60641 55%, #8A0838 100%) !important;
	background-color: transparent !important;
	color: #FFFFFF !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a svg,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a path { color: #FFFFFF !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li:not(.is-active) a:hover {
	background: var(--ad-cream) !important;
	color: var(--ad-maroon) !important;
}

/* Content links -> ruby (override the parent's indigo a:not(.button)). */
.woocommerce-account .woocommerce-MyAccount-content a:not(.button) { color: var(--ad-ruby) !important; }
.woocommerce-account .woocommerce-MyAccount-content a:not(.button):hover { color: var(--ad-amber-deep) !important; }

/* Primary account buttons -> the site's amber CTA (brown text for AA). */
.woocommerce-account .woocommerce-Button,
.woocommerce-account button.button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-account form.woocommerce-form-login button,
.woocommerce-account form.woocommerce-form-register button,
.woocommerce-account form.edit-account button,
.woocommerce-account form.woocommerce-address-fields button,
.woocommerce-account form.woocommerce-EditAccountForm button {
	background: var(--ad-amber) !important;
	color: #352107 !important;
	border-color: var(--ad-amber) !important;
}
.woocommerce-account .woocommerce-Button:hover,
.woocommerce-account button.button:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.woocommerce-account form button:hover { background: var(--ad-amber-hover) !important; border-color: var(--ad-amber-hover) !important; }

/* Form fields: brand ruby focus ring. */
.woocommerce-account input:focus,
.woocommerce-account select:focus,
.woocommerce-account textarea:focus {
	border-color: var(--ad-ruby) !important;
	outline: 2px solid rgba(166, 6, 65, .25) !important;
	outline-offset: 1px !important;
}

/* Orders / addresses tables: brand headers + hairlines. */
.woocommerce-account .woocommerce-orders-table thead th,
.woocommerce-account table.shop_table thead th,
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 { color: var(--ad-maroon) !important; }
.woocommerce-account table.shop_table,
.woocommerce-account table.shop_table td,
.woocommerce-account table.shop_table th { border-color: var(--ad-line) !important; }


/* v1.9.184 — "My Donations" nav icon: a hollow (outline) heart.
   The custom /my-account/donations/ endpoint has no parent icon mapping, so it
   fell back to a tiny dot. Draw a heart outline at the built-in nav-icon
   treatment (centred in the 27px chip) -- navy to match the other inactive
   icons, white on the active ruby tab. 18px reads a touch larger than the dot. */
.woocommerce-account .woocommerce-MyAccount-navigation-link--donations a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1B36' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: 50% 50% !important;
	background-size: 18px 18px !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active.woocommerce-MyAccount-navigation-link--donations a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E") !important;
}


/* v1.9.186 — My Donations tab: let the embedded dashboard fill the content
   area. The GiveWP iframe was narrower than the column and the account content
   kept a wide gutter, leaving empty side margins around the dashboard. */
.woocommerce-account .woocommerce-MyAccount-content iframe {
	width: 100% !important;
	max-width: 100% !important;
	display: block !important;
}
.woocommerce-account .woocommerce-MyAccount-content:has(iframe) {
	padding-left: 10px !important;
	padding-right: 10px !important;
}


/* =====================================================================
   v1.9.192 — Accessibility page colour + Sitemap midnight header
   ===================================================================== */

/* --- Accessibility Statement (page id 100) only: warm Anandodhara colour.
   Scoped so the plain Privacy / Terms pages stay untouched. Contrast kept to
   WCAG AA (ruby 7.7:1; amber-deep, deep-green, maroon all >4.5:1 on ivory). --- */
.page-id-100 .ad-legal {
	background: #FFFDF8;
	border: 1px solid var(--ad-line, #EADFCB);
	border-top: 5px solid var(--ad-ruby, #A60641);
	border-radius: 16px;
	box-shadow: 0 18px 44px rgba(70, 8, 4, .06);
	padding: 2rem 2.2rem 2.4rem;
	max-width: 820px !important;
}
.page-id-100 .ad-legal h2 { position: relative; padding-left: 16px; color: var(--ad-ruby, #A60641); }
.page-id-100 .ad-legal h2::before {
	content: ""; position: absolute; left: 0; top: .18em; bottom: .18em;
	width: 5px; border-radius: 3px; background: var(--ad-ruby, #A60641);
}
.page-id-100 .ad-legal h2:nth-of-type(2) { color: #B3540A; }
.page-id-100 .ad-legal h2:nth-of-type(2)::before { background: #B3540A; }
.page-id-100 .ad-legal h2:nth-of-type(3) { color: #14532D; }
.page-id-100 .ad-legal h2:nth-of-type(3)::before { background: #14532D; }
.page-id-100 .ad-legal h2:nth-of-type(4) { color: #460804; }
.page-id-100 .ad-legal h2:nth-of-type(4)::before { background: #460804; }
.page-id-100 .ad-legal h2:nth-of-type(5) { color: #A60641; }
.page-id-100 .ad-legal h2:nth-of-type(5)::before { background: #A60641; }
.page-id-100 .ad-legal ul { list-style: none; padding-left: 1.5rem; }
.page-id-100 .ad-legal ul li { position: relative; }
.page-id-100 .ad-legal ul li::before {
	content: ""; position: absolute; left: -1.1rem; top: .62em;
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--ad-amber, #F49C26); box-shadow: 0 0 0 3px rgba(244, 156, 38, .18);
}
.page-id-100 .ad-legal a:not(.button) { color: var(--ad-ruby, #A60641); font-weight: 600; }
.page-id-100 .ad-legal .ad-legal-lead {
	background: var(--ad-cream-soft, #FBF4E4);
	border-left: 4px solid var(--ad-amber, #F49C26);
	border-bottom: 0; border-radius: 10px;
	padding: 1rem 1.2rem; color: var(--ad-maroon, #460804);
}

/* ============================================================================
   Sitemap & Search heroes -- full "blended banner" recipe (v1.9.195)
   ----------------------------------------------------------------------------
   These two pages use the parent Ariade theme's own hero markup
   (.ariade-sitemap-hero / .ariade-search-hero), so they were NOT picking up
   this site's inner-page banner treatment (.ad-banner). That left a hard seam:
   a solid header bar sitting ABOVE a separate banner, instead of the header
   floating transparently over one continuous skyline like every other page.
   This block reproduces the exact, WAVE-tested .ad-banner recipe for both:
     1. float the header over the banner (transparent base, no border / blur);
     2. give it the soft dark tint + 150px fade so the nav stays readable and
        dissolves into the photo with no seam;
     3. veil the banner top-heavy (0.88 -> 0.35) so its top matches the header
        tint and the Kolkata-Sydney skyline glows through lower down;
     4. take header clearance from the sitewide --ariade-hero-pad-top/bottom.
   Root-relative skyline path so it survives migration to production.
   ========================================================================== */

/* (1)+(2) Header float + tint + fade -- mirrors body:has(.ad-banner) .site-header */
body:has(.ariade-sitemap-hero) .site-header,
body:has(.ariade-search-hero) .site-header {
	position: absolute !important;
	top: 0 !important; left: 0 !important; right: 0 !important;
	z-index: 60 !important;
	background: #1E1C1B !important;      /* mobile / fallback tint */
	border-bottom: none !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}
body.admin-bar:has(.ariade-sitemap-hero) .site-header,
body.admin-bar:has(.ariade-search-hero) .site-header { top: 32px !important; }
@media (min-width: 782px) {
	body:has(.ariade-sitemap-hero) .site-header,
	body:has(.ariade-search-hero) .site-header {
		background: rgba(16, 21, 30, 0.55) !important;
		box-shadow: none !important;
	}
	body:has(.ariade-sitemap-hero) .site-header::after,
	body:has(.ariade-search-hero) .site-header::after {
		content: ""; position: absolute; left: 0; right: 0; top: 100%;
		height: 150px; pointer-events: none; z-index: 0;
		background: linear-gradient(to bottom,
			rgba(16, 21, 30, 0.55) 0%,
			rgba(16, 21, 30, 0.34) 25%,
			rgba(16, 21, 30, 0.18) 50%,
			rgba(16, 21, 30, 0.07) 75%,
			rgba(16, 21, 30, 0) 100%);
	}
}

/* (3)+(4) The banner surface itself -- top-weighted veil + header clearance,
   identical treatment to the .ad-banner cover on every other inner page. */
.ariade-sitemap-hero,
.ariade-search-hero {
	position: relative !important;
	background-color: #0D1119 !important;
	background-image:
		linear-gradient(180deg,
			rgba(13, 17, 25, 0.88) 0%,
			rgba(13, 17, 25, 0.72) 35%,
			rgba(13, 17, 25, 0.50) 65%,
			rgba(13, 17, 25, 0.35) 100%),
		url("/wp-content/uploads/2026/08/banner-skyline.jpg") !important;
	background-size: cover, cover !important;
	background-position: center 42% !important;
	background-repeat: no-repeat, no-repeat !important;
	min-height: 372px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: none !important;
	border-radius: 0 !important;
	padding: var(--ariade-hero-pad-top, 112px) 1.5rem var(--ariade-hero-pad-bottom, 52px) !important;
}
/* drop the parent light-hero's decorative wave / dot layer on the dark banner */
.ariade-sitemap-hero::before, .ariade-sitemap-hero::after,
.ariade-search-hero::before,  .ariade-search-hero::after { background: none !important; content: none !important; }

.ariade-sitemap-hero__inner,
.ariade-search-hero__inner { text-align: center !important; max-width: 840px !important; margin-inline: auto !important; position: relative; z-index: 1; }
.ariade-sitemap-hero__title,
.ariade-search-hero__title { color: #FFFFFF !important; }
.ariade-sitemap-hero__lead { color: #F3EDE3 !important; }

/* Search refine button: the site's amber CTA so it reads on the dark banner
   (the parent's navy button would blend into it). Amber #F49C26 with near-black
   text stays well above WCAG AA (>7:1). */
.ariade-search-hero__submit { background: #F49C26 !important; color: #2B1400 !important; }
.ariade-search-hero__submit:hover { background: #E08E1C !important; }
/* Strong focus rings against the midnight banner (white =~ 12:1). */
.ariade-search-hero__input:focus-visible,
.ariade-search-hero__submit:focus-visible { outline: 3px solid #FFFFFF !important; outline-offset: 2px !important; }

/* v1.9.196 — Sitemap banner full-bleed. Unlike the search hero (which lives in
   the search TEMPLATE and is already full width), the sitemap hero is rendered
   INSIDE the ariade/sitemap block, whose wrapper the block-layout caps at the
   1200px content width and centres -- so the banner was only 1200px wide and
   inset ~156px on the left. Break the hero out to the full viewport width so it
   runs edge-to-edge like every other inner-page banner; the card grid below
   stays in the centred 1200px column, untouched. overflow-x:clip on the sitemap
   main absorbs the 100vw vs. scrollbar difference so no horizontal scrollbar
   appears. */
.ariade-sitemap-hero {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}
.ariade-sitemap-main { overflow-x: clip !important; }

/* v1.9.196 — Search pagination palette. The parent theme (Ariade 1.4.72) now
   centres and sizes the search pagination; here we only recolour it to this
   site's cream / ink / amber pager palette so it matches the blog, shop and
   events paginations on this site (which the block-pagination rule above
   already paints). Layout, spacing and the 48px tap size come from the parent. */
.ariade-search-pagination .page-numbers { background:#FBF4E4 !important; border-color:#E3D4B6 !important; color:#1A222F !important; }
.ariade-search-pagination .page-numbers.current { background:#1A222F !important; border-color:#1A222F !important; color:#fff !important; }
.ariade-search-pagination a.page-numbers:hover,
.ariade-search-pagination a.page-numbers:focus-visible { background:#F49C26 !important; border-color:#F49C26 !important; color:#1A222F !important; }
.ariade-search-pagination .page-numbers.dots { background:none !important; border:0 !important; color:#5F5140 !important; }

/* ==========================================================================
   ACCESSIBLE TIMELINE  -- [ananevt_timeline] on the About Us "Our Journey"
   (v1.9.200). Brand reskin of the Ananyoo Accessible Events timeline:
   ruby #A60641 + amber #F49C26, a 5-line excerpt clamp, and -- for the
   "alternate" design -- a round year-over-date badge sitting on the centre
   spine (the designer's Figma look). The badge uses the .antl__dm / .antl__yr
   sub-spans added in Ananyoo Accessible Events v1.5.4.
   ========================================================================== */
.antl {
	--antl-line: #A60641 !important;
	--antl-line-soft: #F0D6DF !important;
	--antl-date-bg: #A60641 !important;
	--antl-date-text: #FFFFFF !important;
	--antl-year-bg: #A60641 !important;
	--antl-year-text: #FFFFFF !important;
	--antl-title: #A60641 !important;
	--antl-accent-bg: #F49C26 !important;
	--antl-accent-text: #352107 !important;
}
/* excerpt: 4-5 lines, then "Read more" carries on to the full post */
.antl .antl__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 5;
	line-clamp: 5;
	overflow: hidden;
}
/* ALTERNATE design -- round year-over-date badge on the centre spine */
.antl--alternate .antl__item::before { display: none; }
.antl--alternate .antl__meta { margin: 0; }
.antl--alternate .antl__date {
	position: absolute;
	top: 4px;
	width: 62px;
	height: 62px;
	padding: 0;
	border-radius: 50%;
	background: #A60641;
	color: #FFFFFF;
	display: flex;
	flex-direction: column-reverse; /* DOM: day-month then year -> reverse puts the YEAR on top */
	align-items: center;
	justify-content: center;
	line-height: 1.05;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: 0 5px 14px -5px rgba(166, 6, 65, 0.55);
	z-index: 2;
}
.antl--alternate .antl__item--odd  .antl__date { right: -64px; }
.antl--alternate .antl__item--even .antl__date { left:  -64px; }
.antl--alternate .antl__date .antl__yr { font-size: 0.92rem; font-weight: 800; }
.antl--alternate .antl__date .antl__dm {
	font-size: 0.58rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; opacity: 0.95;
}
/* mobile -- alternate collapses to a single left-spine column, where a 62px
   badge would overflow; fall back to a tidy inline ruby date pill. */
@media (max-width: 680px) {
	.antl--alternate .antl__item::before { display: block; }
	.antl--alternate .antl__meta { margin: 0 0 0.45rem; }
	.antl--alternate .antl__date {
		position: static; width: auto; height: auto;
		border-radius: 999px; padding: 5px 13px;
		flex-direction: row; gap: 6px; box-shadow: none;
	}
	.antl--alternate .antl__date .antl__yr,
	.antl--alternate .antl__date .antl__dm { font-size: 0.66rem; }
}


/* AD-CONTRAST-AA (v1.9.202) — WCAG AA contrast fixes: About story badge/tagline + timeline source tag */
.ad-sc-tile .ad-sc-badge{background-color:#B3540A!important}
.ad-sc-tile .ad-sc-txt{color:#352107!important}
.ad-timeline-wrap .antl__src{display:none!important}
/* AD-CONTRAST-AA-END */


/* === Anandodhara — Distinguished Guests hover glow (site colours) ===
   The hover EFFECT (lift, zoom, band-rise, glow, carousel clip-handling,
   reduced-motion + high-contrast) ships in the Ananyoo Accessible Events plugin
   as an opt-in (block toggle "Card hover glow"). Here we only set this site's
   brand colours, so the plugin stays generic. === */
.ananevt-guests--glow{
	--ananevt-guest-glow-1: rgba(255,241,120,.82);
	--ananevt-guest-glow-2: rgba(255,224,0,.50);
	--ananevt-guest-name-hover:#ffe08a;
}

/* v1.9.205 — breathing room around the auto-built Photo / Video gallery
   panels on posts and events. The parent .wp-block-post-content layout CSS
   zeroes child margins with higher precedence, so these two sections carry
   their own explicit gap. */
.entry-content .ad-post-gallery,
.entry-content .ad-post-videos {
	margin-block: 2.75rem !important;
}

/* v1.9.207 — WCAG contrast fix on the white My Account card. The Accessible
   Login plugin's site setting paints account links with --ananyoo-link
   (#ffff00 here — right on its dark login page, unreadable on this white
   card, ~1.07:1) and the form text inherits white. Scope the logged-out
   forms to explicit accessible colours: body text dark, links the ruby
   already used for MyAccount content links (7.7:1 on white). */
.woocommerce-account .woocommerce form.woocommerce-form-login,
.woocommerce-account .woocommerce form.woocommerce-form-register,
.woocommerce-account .woocommerce form.woocommerce-ResetPassword,
.woocommerce-account .woocommerce .woocommerce-lost-password-confirmation {
	color: var(--ad-body);
}
.woocommerce-account .woocommerce form.woocommerce-form-login a,
.woocommerce-account .woocommerce form.woocommerce-form-register a,
.woocommerce-account .woocommerce form.woocommerce-ResetPassword a,
.woocommerce-account .woocommerce .lost_password a,
.woocommerce-account .woocommerce .woocommerce-LostPassword a {
	color: var(--ad-ruby) !important;
	text-decoration: underline;
}
.woocommerce-account .woocommerce form.woocommerce-form-login a:hover,
.woocommerce-account .woocommerce form.woocommerce-form-register a:hover,
.woocommerce-account .woocommerce form.woocommerce-ResetPassword a:hover,
.woocommerce-account .woocommerce .lost_password a:hover,
.woocommerce-account .woocommerce .woocommerce-LostPassword a:hover {
	color: var(--ad-amber-deep) !important;
}

/* v1.9.208 — My Account forms: accessible values for the Accessible Login
   bridge, plus tidy-ups.
   1) The Accessible Login wc-bridge paints account links and buttons from its
      --ananyoo-* variables (with !important), overriding the theme — which is
      the plugin's intent, but this site's saved values (yellow accents) fail
      on the white card. Redefining the SAME variables at higher specificity
      hands the bridge this site's accessible palette: the plugin still wins,
      now with ruby buttons and links (7.7:1 on white) and amber-deep hover.
   2) The duplicate "Login" heading under the gradient band is visually hidden
      but kept for screen readers — the band already announces the section.
   3) Account buttons lose a stray left margin so they align with the fields. */
body.woocommerce-account .woocommerce,
body.woocommerce-page .woocommerce {
	--ananyoo-link: var(--ad-ruby);
	--ananyoo-button-bg: var(--ad-ruby);
	--ananyoo-button-text: #ffffff;
	--ananyoo-button-hover: var(--ad-amber);
}
.woocommerce-account .woocommerce h2:has(+ form.login) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	margin: -1px;
	border: 0;
	padding: 0;
	white-space: nowrap;
}
.woocommerce-account .woocommerce form.login .button,
.woocommerce-account .woocommerce form.register .button,
.woocommerce-account .woocommerce .woocommerce-Button {
	margin-left: 0 !important;
}

/* v1.9.209 — one uniform, AA-passing hover and focus state for every account
   button: the site CTA pair (brown #352107 on amber #F49C26, 7.02:1).
   Previously the bridge hover painted amber-deep while the text colour
   differed per button — brown on amber-deep is 3.05:1, a WCAG failure. */
body.woocommerce-account .woocommerce form.login .button:hover,
body.woocommerce-account .woocommerce form.register .button:hover,
body.woocommerce-account .woocommerce form .button:hover,
body.woocommerce-account .woocommerce .woocommerce-Button:hover,
body.woocommerce-account .woocommerce form.login .button:focus-visible,
body.woocommerce-account .woocommerce form.register .button:focus-visible,
body.woocommerce-account .woocommerce form .button:focus-visible,
body.woocommerce-account .woocommerce .woocommerce-Button:focus-visible {
	background: var(--ad-amber) !important;
	border-color: var(--ad-amber) !important;
	color: #352107 !important;
}

/* =====================================================================
   v1.9.227 — Order Received page, both states (per approved samples).
   The banner (shop-banner pattern) now carries the page h1 "Order
   Received" + the thank-you line via ad-store-front.php, so WooCommerce's
   in-content status block would duplicate it — hidden for successful
   orders; kept for FAILED orders (body.ad-order-failed set in PHP) so the
   failure message and pay-again actions are never lost.
   ===================================================================== */
body:not(.ad-order-failed) .ad-orderrcv-main .wc-block-order-confirmation-status {
	display: none;
}

/* --- Email-confirm (privacy verification) state: one centred card ----- */
.ad-orderrcv-main .wc-block-order-confirmation-status-description {
	background: #fff;
	border: 1px solid #EEE6D6;
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(26, 34, 47, 0.06);
	max-width: 640px;
	margin: 0.5rem auto 0;
	padding: 2.2rem 2.4rem;
	text-align: center;
}
.ad-orderrcv-main .wc-block-order-confirmation-status-description > p:first-child {
	color: #1A222F;
	line-height: 1.75;
	margin: 0 0 1.5rem;
}
/* "Log in here" is marked up as a .button — keep it a quiet inline ruby
   link (7.71:1 on white) so it does not fight the one real action below. */
.ad-orderrcv-main .wc-block-order-confirmation-status-description p a.button {
	display: inline;
	background: none;
	border: 0;
	padding: 0;
	border-radius: 0;
	color: #A60641;
	font-weight: 600;
	font-size: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ad-orderrcv-main form.woocommerce-verify-email { margin: 0; }
.ad-orderrcv-main form.woocommerce-verify-email .form-row {
	display: block;
	width: 100%;
	margin: 0 0 1.15rem;
	padding: 0;
}
.ad-orderrcv-main form.woocommerce-verify-email label {
	display: block;
	text-align: left;
	font-weight: 600;
	color: #1A222F;
	margin-bottom: 0.45rem;
}
.ad-orderrcv-main form.woocommerce-verify-email .input-text {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
	height: 48px;
	background: #FBF7EF;
	border: 1px solid #E4DAC6;
	border-radius: 10px;
	padding: 0 1rem;
	color: #1A222F;
	font: inherit;
}
.ad-orderrcv-main form.woocommerce-verify-email .input-text:focus {
	outline: 2px solid #A60641;
	outline-offset: 2px;
}
.ad-orderrcv-main form.woocommerce-verify-email .login-submit { margin-bottom: 0; }
/* Confirm button: site CTA pair — navy #1A222F on amber #F2A93B, 8:1. */
.ad-orderrcv-main form.woocommerce-verify-email input.button {
	width: 100%;
	background: #F2A93B;
	color: #1A222F;
	border: 0;
	border-radius: 999px;
	padding: 0.95rem 2rem;
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	cursor: pointer;
}
.ad-orderrcv-main form.woocommerce-verify-email input.button:hover,
.ad-orderrcv-main form.woocommerce-verify-email input.button:focus-visible {
	background: #E08A00;
}
.ad-orderrcv-main form.woocommerce-verify-email input.button:focus-visible {
	outline: 2px solid #1A222F;
	outline-offset: 2px;
}

/* In the verification state the address columns from the template render
   with no content — without this they showed as two empty white pills. */
.ad-orderrcv-main .wc-block-order-confirmation-address-wrapper:not(:has(address)) {
	display: none;
}

/* --- Full order view polish -------------------------------------------- */
/* The intro line above the bank details sat flush against the card edge. */
.ad-orderrcv-main .wc-block-order-confirmation-additional-information {
	padding: 1.8rem 2rem;
}
.ad-orderrcv-main .wc-block-order-confirmation-additional-information > p:first-child {
	margin: 0 0 1.1rem;
	color: #1A222F;
	font-weight: 600;
}

/* =====================================================================
   v1.9.228 — Product page breadcrumb + breathing room under the banner.
   The trail (restored in ad-store-front.php) aligns with the product
   body's 1200px column. Ruby links (7.2:1 on cream), navy current page,
   muted decorative separators (aria-hidden). The extra bottom margin
   creates the requested gap between banner area and product content.
   ===================================================================== */
.ad-single-product .woocommerce-breadcrumb.ad-breadcrumb {
	/* v1.9.229 — the 1.9.125 strip rule (.ad-store-main .woocommerce-breadcrumb
	   {display:none}) still applied; this higher-specificity block wins. */
	display: block;
	width: min(1200px, 100% - 48px);
	margin: 0 auto 1.8rem;
	font-size: 0.9rem;
	letter-spacing: 0.01em;
	color: #1A222F;
}
.ad-single-product .ad-breadcrumb a {
	color: #A60641;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ad-single-product .ad-breadcrumb a:hover {
	color: #7A0430;
}
.ad-single-product .ad-breadcrumb a:focus-visible {
	outline: 2px solid #A60641;
	outline-offset: 2px;
	border-radius: 2px;
}
.ad-single-product .ad-crumb-sep {
	margin: 0 0.55rem;
	color: #6E6558;
}

/* =====================================================================
   v1.9.230 — Accessibility repairs on the product template (WAVE + axe +
   Lighthouse findings, reported by Shivaji).
   (1) The ruby section bands (Reviews, Related products) were painted by a
       background GRADIENT only, so testing tools — which read the computed
       background-color — saw white text on the page cream and reported
       "very low contrast". Each band now declares a solid ruby
       background-color underneath its gradient: the tools measure the real
       pairing (white on #7E052F = 10.4:1, on #A60641 = 7.7:1) and the band
       stays readable even if gradients fail to paint.
   ===================================================================== */
.ariade-band {
	background-color: #A60641 !important;
}
.ariade-band.ariade-band-reviews {
	background-color: #7E052F !important;
}
.single-product.woocommerce div.product .related.products > h2 {
	background-color: #7E052F !important;
}

/* =====================================================================
   v1.9.231 — two banner follow-ups to the 1.9.230 a11y pass.
   (1) The parent styles the banner title via h1-qualified selectors, so
       the product page's stepped-down h2 title lost its white display
       style and vanished into the night sky. The h2 variant now carries
       the same treatment (measured from the live h1: white Archivo 600,
       uppercase, 0.04em tracking, ~44.6px at desktop).
   (2) The cover gets a solid charcoal base colour under its photo so
       contrast checkers that ignore background images measure a real
       pairing (white on #272322 = 14.6:1). Invisible behind the image.
   ===================================================================== */
.ad-banner h2.ad-banner-title {
	color: #fff;
	font-family: Archivo, "Barlow Semi Condensed", sans-serif;
	font-size: clamp(2rem, 1.2rem + 2.2vw, 2.786rem);
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.02;
	margin: 0;
	text-transform: uppercase;
}
.ad-banner.ad-store-banner {
	background-color: #272322;
}

/* =====================================================================
   v1.9.232 — the last four WAVE "very low contrast" flags: the product
   cards' hover ADD TO CART pills rest at opacity:0 but stayed
   visibility:visible, so WAVE measured their text as transparent. They
   now also rest visibility:hidden (WAVE skips hidden text; the real
   visible pairing is white on #17181A, 16.9:1). Keyboard access is
   preserved with the standard :focus-within pattern — the card's title
   link precedes the button in the DOM, so focusing into a card reveals
   its button for the next Tab stop, and the button's own :focus rules
   keep it visible while focused.
   ===================================================================== */
.ad-store-main ul.products li.product .button {
	visibility: hidden;
	transition: opacity 0.15s ease, visibility 0s linear 0.15s;
}
.ad-store-main ul.products li.product:hover .button,
.ad-store-main ul.products li.product:focus-within .button,
.ad-store-main ul.products li.product .button:focus,
.ad-store-main ul.products li.product .button:focus-visible {
	visibility: visible;
	transition: opacity 0.15s ease, visibility 0s;
}

/* v1.9.233 — sighted keyboard users: reveal the card pill fully (opacity
   too) as soon as focus enters the card, not only when the pill itself is
   focused. Pointer-events stay off until hover/focus reaches the button. */
.ad-store-main ul.products li.product:focus-within .button {
	opacity: 1;
	pointer-events: auto;
}

/* =====================================================================
   v1.9.234 — Product summary redesign (approved sample: refined ledger
   panel, no underlines per Shivaji). The spec list becomes a cream panel
   with a ruby accent edge; labels are uppercase eyebrows, values sit
   right-aligned, and LINKED values (category, language, author, country)
   finally read as clickable: bold ruby (7.2:1 on the cream panel) that
   fills solid ruby with white text on hover and carries a visible focus
   ring. The heavy selectors + !important are needed because the original
   spec styling forces the td link colour to navy at high specificity.
   Quantity + ADD TO CART align as one polished row (guarded off variable-
   product forms). Small screens stack each row label-over-value.
   ===================================================================== */
.ad-single-product .summary .ad-pd-specs {
	background: #FBF7EF;
	border: 1px solid #EEE6D6;
	border-left: 4px solid #A60641;
	border-radius: 14px;
	padding: 1.15rem 1.5rem;
	margin: 1.2rem 0 1.6rem;
	box-shadow: 0 8px 22px rgba(26, 34, 47, 0.06);
}
.ad-single-product .summary .ad-pd-specs .ad-pd-spec {
	/* The Categories row wears a soft rose band so the taxonomy row reads
	   differently from the plain attribute rows (Shivaji). Ruby links on
	   #F6E7ED = 6.9:1; the eyebrow label = 4.8:1. */
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	flex-wrap: wrap;
	margin: 0 0 0.45rem;
	padding: 0.6rem 0.85rem;
	background: #F6E7ED;
	border-radius: 10px;
	border-bottom: 0;
}
.ad-single-product .summary .ad-pd-spec-th,
.ad-single-product .summary .shop_attributes th {
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #5A6474;
	font-weight: 700;
	font-style: normal;
	white-space: nowrap;
}
.ad-single-product .summary .shop_attributes { width: 100%; border: 0; margin: 0; }
.ad-single-product .summary .shop_attributes tr {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	flex-wrap: wrap;
	padding: 0.6rem 0;
	border-bottom: 1px solid #EFE5D3;
}
.ad-single-product .summary .shop_attributes tr:last-child { border-bottom: 0; }
.ad-single-product .summary .shop_attributes th {
	text-align: left;
	padding: 0;
	background: none;
	border: 0;
	width: auto;
}
.ad-single-product .summary .shop_attributes td {
	padding: 0;
	border: 0;
	background: none;
	font-style: normal;
	color: #1A222F;
	font-weight: 600;
	text-align: right;
}
.ad-single-product .summary .shop_attributes td p { margin: 0; }
.ad-single-product .summary .ad-pd-spec-td { color: #1A222F; font-weight: 600; text-align: right; }
.single-product .ad-pd-specs table.woocommerce-product-attributes td a,
.single-product .ad-pd-specs .ad-pd-spec-td a {
	color: #A60641 !important;
	font-weight: 700;
	text-decoration: none !important;
	border-radius: 8px;
	padding: 0.1rem 0.38rem;
	margin-left: 0.15rem;
	transition: background 0.15s ease, color 0.15s ease;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes td a:hover,
.single-product .ad-pd-specs .ad-pd-spec-td a:hover {
	background: #A60641;
	color: #FFFFFF !important;
}
.single-product .ad-pd-specs table.woocommerce-product-attributes td a:focus-visible,
.single-product .ad-pd-specs .ad-pd-spec-td a:focus-visible {
	outline: 2px solid #A60641;
	outline-offset: 2px;
}
@media (max-width: 560px) {
	.ad-single-product .summary .ad-pd-specs .ad-pd-spec,
	.ad-single-product .summary .shop_attributes tr {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.15rem;
	}
	.ad-single-product .summary .shop_attributes td,
	.ad-single-product .summary .ad-pd-spec-td { text-align: left; }
}
.ad-single-product .summary form.cart:not(.variations_form) {
	display: flex;
	align-items: stretch;
	gap: 0.8rem;
	flex-wrap: wrap;
	margin-top: 0.4rem;
}
.ad-single-product .summary form.cart .quantity .qty {
	height: 52px;
	width: 86px;
	background: #FBF7EF;
	border: 1px solid #E4DAC6;
	border-radius: 12px;
	text-align: center;
	font-weight: 700;
	color: #1A222F;
	font-size: 1rem;
}
.ad-single-product .summary form.cart .quantity .qty:focus-visible {
	outline: 2px solid #A60641;
	outline-offset: 2px;
}
.ad-single-product .summary .single_add_to_cart_button {
	min-height: 52px;
	padding: 0 2.6rem !important;
	border-radius: 999px !important;
	letter-spacing: 0.06em;
	box-shadow: 0 8px 20px rgba(224, 138, 0, 0.35);
}

/* =====================================================================
   v1.9.235 — ADD TO CART made properly inviting (Shivaji). Rest: amber
   pill with a basket glyph (decorative, CSS-only) and soft glow. Hover /
   keyboard focus: the pill inverts to ruby with white text (7.71:1) and
   lifts 2px with a ruby glow — the same amber-to-ruby language the spec
   links use, so the page feels one system. Pressed state settles back
   down; users who prefer reduced motion get the colour change only.
   ===================================================================== */
.ad-single-product .summary .single_add_to_cart_button {
	/* !important: a legacy rule forces the button to display:block. */
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.ad-single-product .summary .single_add_to_cart_button::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	flex: none;
	background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23352107%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%2721%27%20r%3D%271.6%27%2F%3E%3Ccircle%20cx%3D%2719%27%20cy%3D%2721%27%20r%3D%271.6%27%2F%3E%3Cpath%20d%3D%27M2.5%203h2l2.6%2012.2a2%202%200%200%200%202%201.6h8.7a2%202%200%200%200%202-1.6L21.5%208H6%27%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
}
.ad-single-product .summary .single_add_to_cart_button:hover,
.ad-single-product .summary .single_add_to_cart_button:focus-visible {
	background: #A60641 !important;
	color: #FFFFFF !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(166, 6, 65, 0.4);
}
.ad-single-product .summary .single_add_to_cart_button:hover::before,
.ad-single-product .summary .single_add_to_cart_button:focus-visible::before {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23FFFFFF%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%2721%27%20r%3D%271.6%27%2F%3E%3Ccircle%20cx%3D%2719%27%20cy%3D%2721%27%20r%3D%271.6%27%2F%3E%3Cpath%20d%3D%27M2.5%203h2l2.6%2012.2a2%202%200%200%200%202%201.6h8.7a2%202%200%200%200%202-1.6L21.5%208H6%27%2F%3E%3C%2Fsvg%3E");
}
.ad-single-product .summary .single_add_to_cart_button:focus-visible {
	outline: 3px solid #1A222F;
	outline-offset: 3px;
}
.ad-single-product .summary .single_add_to_cart_button:active {
	transform: translateY(0);
	box-shadow: 0 6px 14px rgba(166, 6, 65, 0.3);
}
@media (prefers-reduced-motion: reduce) {
	.ad-single-product .summary .single_add_to_cart_button,
	.ad-single-product .summary .single_add_to_cart_button:hover,
	.ad-single-product .summary .single_add_to_cart_button:focus-visible,
	.ad-single-product .summary .single_add_to_cart_button:active {
		transition: background-color 0.18s ease, color 0.18s ease;
		transform: none;
	}
}

/* =====================================================================
   v1.9.236 — smaller, tighter type inside the product details panel
   (Shivaji): values step down to 0.88rem, eyebrow labels to 0.68rem,
   rows slightly tighter. Ruby link contrast stays 7.2:1 on the cream.
   ===================================================================== */
.ad-single-product .summary .ad-pd-specs { font-size: 0.75rem; }
/* v1.9.237 — Shivaji tuned it live in DevTools: both labels and values at
   0.75rem (12px). Contrast pairs unchanged; ruby links 7.2:1 on cream. */
.ad-single-product .summary .shop_attributes td,
.ad-single-product .summary .ad-pd-spec-td { font-size: 0.75rem !important; }
.ad-single-product .summary .ad-pd-spec-th,
.ad-single-product .summary .shop_attributes th { font-size: 0.75rem !important; }
.ad-single-product .summary .ad-pd-specs .ad-pd-spec,
.ad-single-product .summary .shop_attributes tr { padding: 0.5rem 0; }

/* =====================================================================
   v1.9.239 — Categories row polish (Shivaji).
   (1) Breathing room: the rose band gets inner padding again plus a gap
       below before the attribute rows (1.9.236's tightening had squeezed
       it to zero horizontal padding).
   (2) The category chips now read as pills in BOTH states: hollow at
       rest — transparent fill, 1.5px ruby border, ruby text (6.9:1 on
       the rose band) — and solid ruby with white text (7.7:1) on hover
       and keyboard focus, so the shape no longer appears from nowhere.
   ===================================================================== */
.ad-single-product .summary .ad-pd-specs .ad-pd-spec {
	padding: 0.55rem 0.85rem;
	margin: 0 0 0.55rem;
}
.single-product .ad-pd-specs .ad-pd-spec-td a {
	display: inline-block;
	background: transparent;
	border: 1.5px solid #A60641;
	border-radius: 999px;
	color: #A60641 !important;
	font-weight: 700;
	text-decoration: none !important;
	padding: 0.13rem 0.7rem;
	margin-left: 0.35rem;
	line-height: 1.5;
	transition: background 0.15s ease, color 0.15s ease;
}
.single-product .ad-pd-specs .ad-pd-spec-td a:hover,
.single-product .ad-pd-specs .ad-pd-spec-td a:focus-visible {
	background: #A60641;
	color: #FFFFFF !important;
}
.single-product .ad-pd-specs .ad-pd-spec-td a:focus-visible {
	outline: 2px solid #A60641;
	outline-offset: 2px;
}

/* =====================================================================
   v1.9.240 — HOME HERO CAROUSEL (Ananyoo Accessible Carousel v2.9.6)
   The single montage Cover becomes a four-slide rotating backdrop
   (montage → podcast studio → community adda → Bengali books) behind
   the SAME fixed frosted-glass panel. The carousel is the anacb/slider
   block (overlay layout, fade, 7 s autoplay, hover/focus pause, W3C
   pattern controls); the panel sits in a pointer-transparent overlay so
   the arrows, dots and pause button beneath stay fully clickable while
   the panel's own CTAs keep working. A charcoal scrim on every slide
   (#272322 at 25%) reproduces the old Cover dim, so the panel keeps its
   verified contrast on all four photos. Wrapper keeps the .ad-hero
   class: the existing top gradient cap, white type, panel glass and the
   ≤781px flex-stack all carry over unchanged.
   ===================================================================== */
.ad-hero-carousel { position: relative; }
.ad-hero-carousel .ad-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 120px 1rem 96px;
	pointer-events: none; /* clicks fall through to the slider controls… */
}
.ad-hero-carousel .ad-hero-overlay > .ad-hero-panel { pointer-events: auto; } /* …except on the panel itself */
/* per-slide charcoal scrim = the old Cover dim (teal-deep/charcoal 25%) */
.ad-hero-carousel .aac-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(39, 35, 34, 0.25);
	pointer-events: none;
}

/* Tablet/mobile ≤781px — same stacked hero as the old design: image band
   on top (the carousel, 300px), headline/CTAs below on the charcoal band.
   The wrapper is already flex-column via the existing .ad-hero rule; the
   overlay leaves its absolute position and flows after the slider. */
@media (max-width: 781px) {
	.ad-hero-carousel .ad-hero-overlay {
		position: static;
		order: 2;
		padding: 1.75rem 1.25rem 2.25rem;
		background: var(--ad-footer);
		pointer-events: auto;
	}
	/* v1.9.249 — Shivaji asked for the mobile hero image to be ~20-25px
	   taller so the slides are a little more visible. 300px -> 325px here
	   (this is the image band itself in the 601-781px range). */
	.ad-hero-carousel .ad-hero-slider { order: 1; min-height: 325px; }
	/* lighter scrim — the photo is the content here, panel sits below it */
	.ad-hero-carousel .aac-slide::after { background: rgba(39, 35, 34, 0.12); }
}

/* Phone ≤600px — the carousel's own mobile layout kicks in (controls row
   below the image on the card background, which we set to charcoal via
   cardBg). Blend it into the hero: full-bleed image (no card padding or
   radius) and light-on-charcoal dots — inactive white dots, the active
   dot a WHITE pill with a charcoal core (v1.9.242: was amber, Shivaji
   asked for the yellow to go — white matches the desktop active pill and
   the arrow/pause controls, and stays >15:1 on the charcoal band).
   Arrow and pause pills are already white on charcoal. */
@media (max-width: 600px) {
	.ad-hero-carousel .ad-hero-slider { padding: 0 !important; border-radius: 0 !important; }
	.ad-hero-carousel .ad-hero-slider .aac-slide__bg { border-radius: 0 !important; }
	/* v1.9.249 — phone slide image +24px (plugin default 14rem/224px felt too
	   short on the new site): 15.5rem = 248px. Extra class beats the plugin's
	   .aac-carousel.aac-layout-overlay .aac-slide__bg on specificity. */
	.ad-hero-carousel .ad-hero-slider.aac-layout-overlay .aac-slide__bg { height: 15.5rem; }
	/* v1.9.244 — approved mobile dot style: soft cream dots, the active
	   slide an amber pill (no white, no core — Shivaji's pick from samples). */
	.ad-hero-carousel .ad-hero-slider .aac-carousel__dot::before {
		background: rgba(247, 232, 205, 0.6) !important;
		width: 12px !important;
		height: 12px !important;
		border-radius: 999px !important;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__dot:hover::before,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__dot:focus-visible::before {
		background: #F7E8CD !important;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__dot[aria-current="true"],
	.ad-hero-carousel .ad-hero-slider .aac-carousel__dot.is-active {
		background: transparent !important;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__dot[aria-current="true"]::before,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__dot.is-active::before {
		background: #F49C26 !important;
		width: 24px !important;
		height: 12px !important;
		border-radius: 999px !important;
	}

	/* v1.9.242 — ONE-LINE controls row (Shivaji: count + Pause were wrapping
	   to a second line at phone widths). The three control groups become one
	   nowrap flex row: arrows | dots (centred, flexible) | count + pause.
	   The Pause/Play button turns icon-only — its text label collapses to a
	   screen-reader-only span, so the accessible name is unchanged — and the
	   count pill slims down. Below 360px the count hides entirely (it is
	   aria-hidden decoration; the live region still announces "Slide x of 4"
	   and the dots carry the position visually). All buttons stay ≥24px
	   targets (arrows/pause 44px), WCAG 2.5.8. */
	.ad-hero-carousel .ad-hero-slider .aac-carousel__nav {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 0.4rem;
		padding: 0.55rem 0.5rem 0.7rem;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__nav-left,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__nav-center,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__nav-right {
		display: flex;
		align-items: center;
		flex-wrap: nowrap;
		margin: 0;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__nav-center {
		flex: 1 1 auto;
		justify-content: center;
		min-width: 0;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__nav-right { gap: 0.35rem; }
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause {
		width: 44px;
		height: 44px;
		min-width: 44px;
		border-radius: 50%;
		padding: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	/* visually hidden, still read by screen readers */
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause-label {
		position: absolute !important;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
		border: 0;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause-icon { margin: 0; }
	.ad-hero-carousel .ad-hero-slider .aac-carousel__count {
		font-size: 0.72rem;
		padding: 0.18rem 0.4rem;
	}
}
@media (max-width: 360px) {
	.ad-hero-carousel .ad-hero-slider .aac-carousel__count { display: none; }
}

/* =====================================================================
   v1.9.241 — HERO CAROUSEL controls vs the floating header (found in
   the live check of 1.9.240). The transparent site header floats over
   the top of the hero, and the carousel parks its count + Pause pill at
   top-right and its skip link at top-left — both landed underneath the
   header (pause unreachable, skip link hidden behind the logo when
   focused). Two scoped fixes, hero instance only:
   1. ≥601px the count + Pause move to the bottom-right corner, clear of
      the header, the centre dots and the side arrows (≤600px the
      plugin's own static controls row already sits below the image).
   2. The revealed skip link lifts above the header stack (z 70 > header
      60) so keyboard users always see it — solid navy pill, white
      outline, painted over the logo corner. WCAG 2.4.7 / 2.1.1.
   ===================================================================== */
@media (min-width: 601px) {
	.ad-hero-carousel .ad-hero-slider .aac-carousel__nav-right {
		top: auto;
		bottom: 16px;
		right: 16px;
	}
}
.ad-hero-carousel .aac-skip-link:focus,
.ad-hero-carousel .aac-skip-link:focus-visible { z-index: 70; }

/* =====================================================================
   v1.9.243 — the v1.9.242 "flat top" experiment is reverted: the 340px
   gradient cap applies to the carousel hero again (same stack as the
   original montage Cover), and the three new slide images now carry a
   baked-in dark night-cap top like the montage export, so the cap, the
   header tint and its fade all melt seamlessly into every slide.
   ===================================================================== */

/* =====================================================================
   v1.9.244 — SAMPLE-APPROVED ROUND (Shivaji, 2026-08-22)
   (1) TOP GAP FIX, all widths: WordPress' root block-gap leaves a 24px
       strip of page background above the hero, and it peeked through the
       translucent front-page header as a light "bar" (logged-in AND
       logged-out — it was never the admin toolbar). The hero pulls up by
       exactly that gap, so the photo reaches the true top of the page.
   (2) MOBILE (≤600px) controls in Anandodhara colours — approved from
       the sample: amber arrows and Pause/Play with dark-brown glyphs
       (amber #F49C26 on charcoal band; brown #352107 glyphs 6.6:1),
       charcoal count pill with cream text, cream dots with an amber
       active pill (edited at source in the ≤600 block above). DESKTOP
       controls stay exactly as the plugin ships them — Shivaji's call:
       "too much yellow" on the big screen.
   (3) MOBILE CTA band made compact — smaller headline, tighter body
       copy, and both pill buttons small enough to sit in ONE row even
       at 320px. Touch targets stay ≥44px on controls; text has 4.5:1+.
   ===================================================================== */
.ad-hero.ad-hero-carousel {
	/* v1.9.245 — needs !important: core's first-child margin reset was
	   winning the cascade and the hero stayed 24px down (verified live). */
	margin-top: calc(-1 * var(--wp--style--block-gap, 24px)) !important;
}
@media (max-width: 600px) {
	/* controls — Anandodhara amber, approved sample */
	.ad-hero-carousel .ad-hero-slider .aac-carousel__arrow,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause {
		background: #F49C26 !important;
		color: #352107 !important;
		border: none !important;
		box-shadow: 0 8px 20px -10px rgba(0, 0, 0, 0.65) !important;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__arrow:hover,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__arrow:focus-visible,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause:hover,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause:focus-visible {
		background: #F7E8CD !important;
		color: #352107 !important;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause-icon,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause-icon::before,
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause-icon::after {
		background-color: #352107 !important;
		border-color: #352107 !important;
		color: #352107 !important;
	}
	.ad-hero-carousel .ad-hero-slider .aac-carousel__pause-icon { background-color: transparent !important; }
	.ad-hero-carousel .ad-hero-slider .aac-carousel__count {
		background: rgba(39, 35, 34, 0.85) !important;
		color: #F7E8CD !important;
	}
	/* CTA band — compact, both buttons one row */
	.ad-hero-carousel .ad-hero-overlay { padding: 1.15rem 1.1rem 1.35rem !important; }
	.ad-hero-carousel .ad-hero-panel h1 {
		font-size: 1.35rem !important;
		line-height: 1.12 !important;
		margin-bottom: 0.45rem !important;
	}
	.ad-hero-carousel .ad-hero-panel p {
		font-size: 0.82rem !important;
		line-height: 1.55 !important;
		margin-bottom: 0.85rem !important;
	}
	.ad-hero-carousel .ad-hero-panel .wp-block-buttons {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		gap: 0.5rem !important;
	}
	.ad-hero-carousel .ad-hero-panel .wp-block-button__link {
		padding: 0.45rem 0.9rem !important;
		font-size: 0.72rem !important;
	}
}

/* =====================================================================
   v1.9.246 — HERO BLEND, approved from live preview (Shivaji: montage
   blends "too good", the 3 new slides showed a slight demarcation line
   under the header). The montage's night sky is near-black at the top,
   so the header tint + fade vanish into it; the new slides' tops were
   only fairly dark, so the eye still caught the header's soft edge.
   This layer gives every slide the same montage-depth darkness at the
   top — a long, eased decay (near-black at the very top, gone by
   ~470px) painted OVER the slide image, under the panel and controls.
   The montage itself shows no visible change (black over black).
   Desktop/tablet only — the phone layout has its own approved design
   with the image below the solid charcoal header, no blending needed.
   ===================================================================== */
@media (min-width: 601px) {
	.ad-hero-carousel .ad-hero-slider .aac-slide::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		height: 480px;
		background: linear-gradient(to bottom,
			rgba(13, 17, 24, 0.95) 0px,
			rgba(13, 17, 24, 0.86) 80px,
			rgba(13, 17, 24, 0.72) 150px,
			rgba(13, 17, 24, 0.52) 220px,
			rgba(13, 17, 24, 0.30) 300px,
			rgba(13, 17, 24, 0.12) 380px,
			rgba(13, 17, 24, 0) 470px);
		pointer-events: none;
		z-index: 1;
	}
}

/* ==========================================================================
   v1.9.251 — Gallery lightbox hardening (belt to gallery.js's portal move).
   (1) The dialog is authored inside a constrained group, so core layout CSS
       (max-width + auto-margin centring + block-gap margin) squeezed the
       position:fixed overlay into the 1180px content column — neutralise
       those with equal !important weight so inset:0 stretches it edge to
       edge wherever the node lives.
   (2) The Close button sits before .ad-lb-stage in the DOM; the stage (also
       positioned, full width) painted over it and swallowed its clicks —
       lift the button above the stage.
   ========================================================================== */
.ad-gallery-lb { max-width: none !important; margin: 0 !important; }
.ad-gallery-lb .ad-lb-close { z-index: 6; }

/* ==========================================================================
   v1.9.254 — Donations paused (temporary, pairs with AD_DONATIONS_PAUSED in
   functions.php). Every converted Donate link keeps its size and place but
   goes grey and inert: greyscale over whatever colour the button had (amber
   header pill, navy join button, amber footer pill), softened, with a
   not-allowed cursor. The href is already removed server-side, so this is
   visual polish only — nothing here is load-bearing for the block.
   ========================================================================== */
a[data-ad-donate-paused],
a[data-ad-donate-paused]:hover,
a[data-ad-donate-paused]:focus {
	filter: grayscale(1) contrast(0.9);
	opacity: 0.55;
	cursor: not-allowed;
	text-decoration: none;
	box-shadow: none;
}
