/* =============================================================================
   Bio Lotus — Theme Stylesheet
   Design tokens, typography, global utilities, header / footer skeletons.

   Design system source: bio-lotus-second-attempt/project/theme-tokens.jsx
   Default palette: Sauge & Argile (as finalised in chat2.md)
   ============================================================================= */


/* ── 1. DESIGN TOKENS ──────────────────────────────────────────────────────── */
:root {
	/* Typography */
	--bl-font-serif: 'Cormorant Garamond', Georgia, serif;
	--bl-font-sans:  'Jost', system-ui, sans-serif;
	--bl-ease:       cubic-bezier(0.22, 1, 0.36, 1);

	/* Sauge & Argile palette (default) */
	--bl-bg:           #F2F0E6;
	--bl-bg-alt:       #E4E0D0;
	--bl-bg-section:   #D4D0BC;
	--bl-bg-dark:      #1C1C14;
	--bl-accent:       #5C6E50;
	--bl-accent-soft:  #E0E8D8;
	--bl-bold:         #7A4830;
	--bl-bold-soft:    #EAD8CC;
	--bl-text:         #1C1C14;
	--bl-text-mid:     #4A4A38;
	--bl-text-faint:   #7A7A68;
	--bl-line:         #C4C0A8;
	--bl-surface:      #FAFAF0;
	--bl-footer-text:  #E8E4D4;
	--bl-footer-muted: rgba(232, 228, 212, 0.42);

	/* Layout */
	--bl-max-width:  1400px;
	--bl-padding-x:  clamp(20px, 4vw, 48px);

	/* Header heights (promo banner + main nav) */
	--bl-banner-h: 36px;
	--bl-nav-h:    72px;
	--bl-header-h: calc(var(--bl-banner-h) + var(--bl-nav-h)); /* 108px */
}

/* ── 2. GLOBAL RESET LAYER ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
}

body {
	background-color: var(--bl-bg);
	color:            var(--bl-text);
	font-family:      var(--bl-font-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Blocksy may inject padding-top on <body> for its own sticky header via
   --theme-headerHeight. We use our own sticky stack, so force it to zero. */
html body { padding-top: 0 !important; }

/* Suppress any Blocksy sticky-header spacer or notification-bar elements
   that may be injected by blocksy:header:before / blocksy:header:after hooks. */
.ct-header-spacer,
[data-id="spacer"],
.blocksy-before-header-content { display: none !important; height: 0 !important; }

em { font-style: italic; }

img, video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--bl-accent);
	text-decoration: none;
	transition: color 180ms var(--bl-ease);
}
a:hover { color: var(--bl-bold); }

button {
	font-family: inherit;
	cursor: pointer;
}

input, textarea {
	font-family: inherit;
}

input::placeholder, textarea::placeholder {
	color: inherit;
	opacity: 0.45;
}

/* Slim scrollbar matching design */
::-webkit-scrollbar           { width: 3px; }
::-webkit-scrollbar-thumb     { background: #C4B090; border-radius: 0; }
::-webkit-scrollbar-track     { background: transparent; }

/* ── 3. TYPOGRAPHY OVERRIDES (Blocksy baseline) ─────────────────────────── */
/* Give headings Cormorant Garamond so every h-tag in WP content inherits it */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--bl-font-serif);
	font-weight: 300;
	letter-spacing: 0.02em;
	line-height: 1.1;
	color: var(--bl-text);
}


/* ── 4. LAYOUT CONTAINER ────────────────────────────────────────────────── */
.bl-container {
	max-width:      var(--bl-max-width);
	margin-inline:  auto;
	padding-inline: var(--bl-padding-x);
}


/* ── 5. SECTION-RULE COMPONENT ──────────────────────────────────────────── */
/* Numbered eyebrow  ──────────── label  (from SectionRule in tokens.jsx) */
.bl-section-rule {
	display:         flex;
	align-items:     center;
	gap:             14px;
	margin-bottom:   20px;
}
.bl-section-rule__num {
	font-family:     var(--bl-font-sans);
	font-size:       10px;
	letter-spacing:  0.22em;
	color:           var(--bl-text);
	font-weight:     500;
	flex-shrink:     0;
}
.bl-section-rule__line {
	flex:       1;
	height:     1px;
	background: var(--bl-text);
	opacity:    0.18;
}
.bl-section-rule__label {
	font-family:    var(--bl-font-sans);
	font-size:      9px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--bl-text-faint);
	white-space:    nowrap;
	flex-shrink:    0;
}


/* ── 6. BUTTON COMPONENTS ────────────────────────────────────────────────── */
/* Primary — filled bold colour, flat rectangle (no pill, no radius) */
.bl-btn-primary,
.bl-btn-primary:visited {
	display:         inline-flex;
	align-items:     center;
	gap:             10px;
	background:      var(--bl-bold);
	color:           #FDFAF2;
	border:          none;
	padding:         16px 36px;
	border-radius:   2px;
	font-family:     var(--bl-font-sans);
	font-size:       11px;
	font-weight:     500;
	letter-spacing:  0.16em;
	text-transform:  uppercase;
	text-decoration: none;
	transition:      background 200ms var(--bl-ease), box-shadow 200ms var(--bl-ease);
	white-space:     nowrap;
}
.bl-btn-primary:hover {
	background:  #623A26;
	box-shadow:  0 10px 26px rgba(60, 38, 16, 0.32);
	color:       #FDFAF2;
}
.bl-btn-primary .bl-icon { margin-inline-start: 2px; }

/* Ghost — underline link style */
.bl-btn-ghost,
.bl-btn-ghost:visited {
	display:         inline-flex;
	align-items:     center;
	gap:             8px;
	background:      none;
	border:          none;
	padding:         0 0 2px;
	border-bottom:   1px solid rgba(28, 18, 7, 0.4);
	font-family:     var(--bl-font-sans);
	font-size:       12px;
	letter-spacing:  0.08em;
	color:           var(--bl-text);
	font-weight:     500;
	text-decoration: none;
	transition:      border-color 200ms var(--bl-ease), color 200ms var(--bl-ease);
}
.bl-btn-ghost:hover {
	border-color: var(--bl-text);
	color:        var(--bl-text);
}

/* Outline — bordered, no fill */
.bl-btn-outline,
.bl-btn-outline:visited {
	display:         inline-flex;
	align-items:     center;
	gap:             8px;
	background:      none;
	border:          1px solid var(--bl-line);
	padding:         11px 22px;
	border-radius:   0;
	font-family:     var(--bl-font-sans);
	font-size:       11px;
	letter-spacing:  0.12em;
	text-transform:  uppercase;
	color:           var(--bl-text);
	text-decoration: none;
	transition:      border-color 200ms var(--bl-ease), background 200ms var(--bl-ease), color 200ms var(--bl-ease);
}
.bl-btn-outline:hover {
	border-color: var(--bl-accent);
	background:   var(--bl-accent-soft);
	color:        var(--bl-text);
}


/* ── 7. ICON UTILITY ─────────────────────────────────────────────────────── */
.bl-icon {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	flex-shrink:     0;
	line-height:     1;
}
/* ── 8. STAR RATING ─────────────────────────────────────────────────────── */
.bl-stars {
	display:     flex;
	align-items: center;
	gap:         3px;
}
.bl-stars svg { fill: var(--bl-accent); }


/* ── 9. FADE-IN ANIMATION ────────────────────────────────────────────────── */
/* JS adds .is-visible when element enters the viewport */
.bl-fade-in {
	opacity:    0;
	transform:  translateY(20px);
	transition: opacity 650ms var(--bl-ease), transform 650ms var(--bl-ease);
}
.bl-fade-in.is-visible {
	opacity:   1;
	transform: translateY(0);
}
/* Staggered delays for children */
.bl-fade-in[data-delay="100"] { transition-delay: 100ms; }
.bl-fade-in[data-delay="200"] { transition-delay: 200ms; }
.bl-fade-in[data-delay="300"] { transition-delay: 300ms; }


/* ── 10. PHOTO-ZONE PLACEHOLDER ──────────────────────────────────────────── */
.bl-photo-zone {
	background: linear-gradient(155deg, #D4B898 0%, #C0A07A 100%);
	position:   relative;
	overflow:   hidden;
}
.bl-photo-zone img {
	width:           100%;
	height:          100%;
	object-fit:      cover;
	object-position: center;
	display:         block;
}


/* ── 11. PROMO BANNER ────────────────────────────────────────────────────── */
/* 36px dark strip that sticks to the top of the viewport. Blocksy's sticky
   header sits below it via .site-header { top: var(--bl-banner-h) }. */
.bl-promo-banner {
	background:    var(--bl-bg-dark);
	height:        var(--bl-banner-h);
	display:       flex;
	align-items:   center;
	justify-content: center;
	gap:           18px;
	padding:       0 var(--bl-padding-x);
	border-bottom: 1px solid rgba(196, 192, 168, 0.15);
	position:      sticky;
	top:           0;
	z-index:       400;
}

.bl-promo-banner__dot {
	width:         5px;
	height:        5px;
	border-radius: 50%;
	background:    var(--bl-accent);
	flex-shrink:   0;
}
.bl-promo-banner__msg-primary {
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color:          var(--bl-footer-text);
	font-weight:    500;
	white-space:    nowrap;
}
.bl-promo-banner__msg-secondary {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-size:      13px;
	color:          rgba(240, 229, 206, 0.55);
	letter-spacing: 0.03em;
	white-space:    nowrap;
}

/* Language switcher — right side of the banner */
.bl-lang-switcher {
	position:    absolute;
	top:         0;
	bottom:      0;
	inset-inline-end: var(--bl-padding-x);
	display:     flex;
	align-items: center;
	gap:         2px;
}
.bl-lang-switcher__btn {
	background:     none;
	border:         none;
	padding:        4px 8px;
	font-family:    var(--bl-font-sans);
	font-size:      11px;
	font-weight:    400;
	letter-spacing: 0.18em;
	color:          rgba(240, 229, 206, 0.55);
	transition:     color 180ms var(--bl-ease);
	line-height:    1;
	text-decoration: none;
	cursor:         pointer;
	white-space:    nowrap;
}
.bl-lang-switcher__btn[lang="ar"] {
	font-size:      14px;
	letter-spacing: 0.02em;
}
.bl-lang-switcher__btn.is-active,
.bl-lang-switcher__btn:hover,
.bl-lang-switcher__btn[aria-current="page"] {
	color: var(--bl-accent);
}
.bl-lang-switcher__divider {
	width:      1px;
	height:     11px;
	background: rgba(240, 229, 206, 0.22);
}


/* ── 12. CUSTOM SITE HEADER ──────────────────────────────────────────────── */
/* We render our own header markup (.bl-site-header) via wp_body_open
   priority 5. Blocksy's native header is hidden below so only ours shows. */

/* Hide ALL of Blocksy's native header — wide net to catch every version.
   Our .bl-site-header uses none of these selectors, so it is never affected. */
header[id="header"],
header[data-id="header"],
header.site-header,
.ct-header,
.ct-header-wrap,
.ct-header-row,
.ct-header-content {
	display: none !important;
}

/* Our header: sticky directly below the promo banner. */
.bl-site-header {
	position:       sticky;
	top:            var(--bl-banner-h);
	z-index:        399;
	background:     var(--bl-surface);
	border-bottom:  1px solid var(--bl-line);
	height:         var(--bl-nav-h);
	transition:     background 300ms var(--bl-ease),
	                border-color 300ms var(--bl-ease),
	                backdrop-filter 300ms var(--bl-ease);
}

/* ── Hero-page transparency ──────────────────────────────────────────────────
   When body.bl-has-hero is present (added by PHP body_class filter), the header
   starts transparent so the hero image shows through it. The CSS body class is
   set server-side so there is no JS-timing flash. theme.js adds
   body.bl-hero-scrolled once the user has scrolled past the hero, switching
   the header back to opaque. */
body.bl-has-hero .bl-site-header {
	background:          rgba(250, 250, 240, 0.12);
	backdrop-filter:     blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom-color: transparent;
}
body.bl-has-hero.bl-hero-scrolled .bl-site-header {
	background:          var(--bl-surface);
	backdrop-filter:     none;
	-webkit-backdrop-filter: none;
	border-bottom-color: var(--bl-line);
}

.bl-site-header__container {
	height:      100%;
	display:     flex;
	align-items: center;
	gap:         32px;
}

/* Logo */
.bl-site-header__logo {
	text-decoration: none;
	display:         inline-flex;
	align-items:     center;
}
.bl-site-header__logo .custom-logo,
.bl-site-header__logo img {
	max-height: 44px;
	width:      auto;
	display:    block;
}
.bl-site-header__logo-text {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      26px;
	letter-spacing: 0.04em;
	color:          var(--bl-text);
	line-height:    1;
}


/* Primary nav — flex:1 lets it expand and push actions to the far right */
.bl-site-header__nav {
	flex:            1;
	min-width:       0;
	display:         flex;
	justify-content: center;
}
.bl-site-header__menu {
	display:     flex;
	gap:         36px;
	list-style:  none;
	margin:      0;
	padding:     0;
}
.bl-site-header__menu > li > a {
	font-family:     var(--bl-font-sans);
	font-size:       11px;
	letter-spacing:  0.18em;
	text-transform:  uppercase;
	color:           var(--bl-text-mid);
	text-decoration: none;
	font-weight:     500;
	transition:      color 180ms var(--bl-ease);
	padding:         8px 0;
	display:         inline-block;
}
.bl-site-header__menu > li > a:hover,
.bl-site-header__menu > li.current-menu-item > a,
.bl-site-header__menu > li.current-menu-ancestor > a {
	color: var(--bl-accent);
}

/* Right actions — flex-shrink:0 keeps them on the same row as the nav */
.bl-site-header__actions {
	display:     flex;
	align-items: center;
	gap:         6px;
	flex-shrink: 0;
}
.bl-site-header__action {
	width:           40px;
	height:          40px;
	border-radius:   50%;
	border:          none;
	background:      transparent;
	color:           var(--bl-text-mid);
	cursor:          pointer;
	display:         flex;
	align-items:     center;
	justify-content: center;
	transition:      background 180ms var(--bl-ease),
	                 color 180ms var(--bl-ease);
	position:        relative;
	text-decoration: none;
	padding:         0;
}
.bl-site-header__action:hover,
.bl-site-header__action:focus-visible {
	background: rgba(28, 28, 20, 0.06);
	color:      var(--bl-text);
	outline:    none;
}
.bl-site-header__cart .bl-cart-count {
	position:           absolute;
	top:                2px;
	inset-inline-end:   2px;
	background:         var(--bl-accent);
	color:              #FDFAF2;
	font-family:        var(--bl-font-sans);
	font-size:          9px;
	font-weight:        700;
	line-height:        1;
	padding:            3px 5px;
	border-radius:      999px;
	min-width:          16px;
	text-align:         center;
	display:            inline-flex;
	align-items:        center;
	justify-content:    center;
}
.bl-site-header__cart .bl-cart-count[hidden] {
	display: none;
}

/* Social icon cluster in header — separated from utility icons */
.bl-site-header__socials {
	display:              flex;
	align-items:          center;
	gap:                  2px;
	padding-inline-start: 10px;
	margin-inline-start:  4px;
	border-inline-start:  1px solid rgba(28, 28, 20, 0.12);
}

/* Mobile burger — hidden on desktop */
.bl-site-header__burger {
	display: none;
}

/* Mobile nav drawer (off-screen by default) */
.bl-mobile-nav {
	position:    fixed;
	inset:       0;
	background:  var(--bl-surface);
	z-index:     500;
	transform:   translateY(-100%);
	visibility:  hidden;
	transition:  transform 280ms var(--bl-ease),
	             visibility 0ms 280ms;
	padding:     24px var(--bl-padding-x) 32px;
	overflow-y:  auto;
}
.bl-mobile-nav.is-open {
	transform:  translateY(0);
	visibility: visible;
	transition: transform 280ms var(--bl-ease),
	            visibility 0ms 0ms;
}
.bl-mobile-nav__head {
	display:          flex;
	justify-content:  flex-end;
	margin-bottom:    24px;
}
.bl-mobile-nav__close {
	background:    transparent;
	border:        none;
	width:         40px;
	height:        40px;
	cursor:        pointer;
	color:         var(--bl-text);
	display:       inline-flex;
	align-items:   center;
	justify-content: center;
}
.bl-mobile-nav__menu {
	list-style:    none;
	margin:        0;
	padding:       0;
	display:       flex;
	flex-direction: column;
	gap:           4px;
}
.bl-mobile-nav__menu li a {
	font-family:     var(--bl-font-serif);
	font-style:      italic;
	font-weight:     300;
	font-size:       28px;
	color:           var(--bl-text);
	text-decoration: none;
	padding:         12px 0;
	display:         block;
	border-bottom:   1px solid var(--bl-line);
}
.bl-mobile-nav__menu li a:hover { color: var(--bl-accent); }

/* Social links row at foot of mobile nav drawer */
.bl-mobile-nav__socials {
	display:      flex;
	gap:          12px;
	padding-top:  24px;
	margin-top:   20px;
	border-top:   1px solid var(--bl-line);
}
.bl-mobile-nav__social {
	width:           44px;
	height:          44px;
	border-radius:   50%;
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           var(--bl-text-mid);
	border:          1px solid var(--bl-line);
	text-decoration: none;
	transition:      color 180ms var(--bl-ease),
	                 border-color 180ms var(--bl-ease);
}
.bl-mobile-nav__social:hover,
.bl-mobile-nav__social:focus-visible {
	color:        var(--bl-text);
	border-color: var(--bl-text);
	outline:      none;
}

/* Responsive — hide desktop nav, show burger */
@media (max-width: 900px) {
	.bl-site-header__container {
		grid-template-columns: auto 1fr auto;
		gap: 16px;
	}
	.bl-site-header__nav { display: none; }
	.bl-site-header__burger {
		display:         inline-flex;
		flex-direction:  column;
		gap:             5px;
		background:      transparent;
		border:          none;
		width:           36px;
		height:          36px;
		padding:         0;
		align-items:     center;
		justify-content: center;
		cursor:          pointer;
	}
	.bl-site-header__burger span {
		display:    block;
		width:      20px;
		height:     1.5px;
		background: var(--bl-text);
		transition: background 200ms var(--bl-ease);
	}
	.bl-site-header .bl-lang-switcher {
		display: none; /* moved to mobile nav drawer if needed */
	}
	/* Hide social cluster in header on mobile — shown in mobile nav + footer */
	.bl-site-header__socials { display: none; }
}
@media (max-width: 640px) {
	.bl-site-header__logo .custom-logo,
	.bl-site-header__logo img { max-height: 36px; }
	.bl-site-header__logo-text { font-size: 22px; }
	.bl-site-header__action { width: 36px; height: 36px; }
}

/* Padding top for pages so body content clears the fixed/sticky header stack */
body:not(.page-template-page-fullscreen) .site-main {
	padding-top: 0; /* Blocksy handles scroll offset internally */
}


/* ── 13. FOOTER OVERRIDES (Blocksy) ──────────────────────────────────────── */
/* Override Blocksy footer with the design's dark footer */
.site-footer {
	background:  var(--bl-bg-dark) !important;
	border-top:  1px solid var(--bl-line);
	color:       var(--bl-footer-text);
}
.site-footer a,
.site-footer .ct-footer-link {
	color:      var(--bl-footer-muted);
	transition: color 180ms var(--bl-ease);
}
.site-footer a:hover,
.site-footer .ct-footer-link:hover {
	color: var(--bl-footer-text);
}

/* Footer widget title override */
.site-footer .widget-title,
.site-footer .ct-widget-title {
	font-family:    var(--bl-font-sans) !important;
	font-size:      9px !important;
	font-weight:    500 !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color:          var(--bl-accent) !important;
	margin-bottom:  20px !important;
}

/* Footer brand block */
.bl-footer-brand .site-name {
	font-family:    var(--bl-font-serif);
	font-style:     italic;
	font-weight:    300;
	font-size:      24px;
	letter-spacing: 0.06em;
	color:          var(--bl-footer-text);
	line-height:    1;
}
.bl-footer-brand .site-tagline {
	font-family:    var(--bl-font-sans);
	font-size:      8px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color:          var(--bl-accent);
	margin-top:     4px;
	margin-bottom:  16px;
}

/* Footer copyright bar */
.site-footer .ct-footer-copyright,
.site-footer .ct-copyright {
	font-family:    var(--bl-font-sans);
	font-size:      10px;
	color:          var(--bl-footer-muted);
	letter-spacing: 0.06em;
}

/* ── 14. HOMEPAGE — shared section rules ─────────────────────────────────── */
/* All sections must have consistent outer padding */
.bl-homepage section,
.bl-homepage .bl-section {
	position: relative;
}
.bl-homepage .bl-section-inner {
	max-width:      var(--bl-max-width);
	margin-inline:  auto;
	padding-inline: var(--bl-padding-x);
}

/* Dark section (Philosophy, Newsletter): cream text */
.bl-section--dark {
	background: var(--bl-bg-dark);
	color:      #F0E5CE;
}
.bl-section--dark h2,
.bl-section--dark h3,
.bl-section--dark blockquote,
.bl-section--dark cite {
	color: #F0E5CE;
}

/* Alt section (Categories, Values) */
.bl-section--alt {
	background: var(--bl-bg-alt);
}
/* Section background */
.bl-section--section {
	background: var(--bl-bg-section);
}


/* ── 15. FOOTER CONTACT BLOCK ───────────────────────────────────────────── */
/*
 * Dark zone rendered via blocksy:footer:before hook (priority 5).
 * background matches --bl-bg-dark used by the Blocksy footer below it so
 * the two regions appear as one seamless footer area.
 */

.bl-footer-contact {
	background:   var(--bl-bg-dark, #1C1C14);
	color:        var(--bl-footer-text, #E8E4D4);
	padding-block: 64px;
}

.bl-footer-contact__inner {
	display:               grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap:                   48px;
	align-items:           start;
}

/* ── Brand column ──────────────────────────────────────────────────────── */
.bl-footer-contact__brand-name {
	display:        block;
	font-family:    var(--bl-font-serif, 'Cormorant Garamond', serif);
	font-size:      22px;
	font-weight:    400;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color:          var(--bl-footer-text, #E8E4D4);
	margin-bottom:  16px;
}

.bl-footer-contact__brand-logo {
	display:       block;
	width:         160px;
	height:        auto;
	margin-bottom: 16px;
}

.bl-footer-contact__brand-tag {
	font-family: var(--bl-font-sans, 'Jost', sans-serif);
	font-size:   12px;
	font-weight: 300;
	line-height: 1.7;
	color:       var(--bl-footer-muted, rgba(232, 228, 212, 0.42));
	max-width:   260px;
	margin:      0;
}

/* Social links in footer brand column */
.bl-footer-socials {
	display:    flex;
	gap:        10px;
	margin-top: 20px;
}
.bl-footer-social {
	width:           34px;
	height:          34px;
	border-radius:   50%;
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           var(--bl-footer-muted, rgba(232, 228, 212, .42));
	border:          1px solid rgba(232, 228, 212, 0.16);
	text-decoration: none;
	transition:      color       180ms var(--bl-ease),
	                 border-color 180ms var(--bl-ease),
	                 background   180ms var(--bl-ease);
}
.bl-footer-social:hover,
.bl-footer-social:focus-visible {
	color:        var(--bl-footer-text, #E8E4D4);
	border-color: rgba(232, 228, 212, 0.45);
	background:   rgba(232, 228, 212, 0.06);
	outline:      none;
}

/* ── Column headings ───────────────────────────────────────────────────── */
.bl-footer-contact__col-title {
	font-family:    var(--bl-font-sans, 'Jost', sans-serif);
	font-size:      10px;
	font-weight:    500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color:          var(--bl-footer-muted, rgba(232, 228, 212, 0.42));
	margin:         0 0 20px;
}

/* ── Link list ─────────────────────────────────────────────────────────── */
.bl-footer-contact__list {
	list-style:     none;
	margin:         0;
	padding:        0;
	display:        flex;
	flex-direction: column;
	gap:            12px;
}

.bl-footer-contact__link {
	font-family: var(--bl-font-sans, 'Jost', sans-serif);
	font-size:   13px;
	font-weight: 300;
	color:       var(--bl-footer-text, #E8E4D4);
	text-decoration: none;
	transition:  color 160ms;
}

.bl-footer-contact__link:hover {
	color: #fff;
}

/* ── Address ───────────────────────────────────────────────────────────── */
.bl-footer-contact__address {
	font-family: var(--bl-font-sans, 'Jost', sans-serif);
	font-size:   13px;
	font-weight: 300;
	color:       var(--bl-footer-text, #E8E4D4);
	font-style:  normal;
	line-height: 1.7;
}

/* ── Responsive: tablet → 2 columns ───────────────────────────────────── */
@media (max-width: 900px) {
	.bl-footer-contact__inner {
		grid-template-columns: 1fr 1fr;
	}
	.bl-footer-contact__col--brand {
		grid-column: 1 / -1;
	}
}

/* ── Responsive: mobile → single column ───────────────────────────────── */
@media (max-width: 600px) {
	.bl-footer-contact {
		padding-block: 48px;
	}
	.bl-footer-contact__inner {
		grid-template-columns: 1fr;
		gap:                   36px;
	}
}


/* ── 16. BLOCKSY WP ADMIN TOOLBAR OFFSET ────────────────────────────────── */
/* When the WP toolbar is showing (logged-in users), WP Core adds
   html { margin-top: 32px } which shifts the whole viewport down.
   The banner already has top:32px for this. The site header must add that
   same 32px on top of --bl-banner-h so it sticks just below the banner
   and never gets covered by it. */
.admin-bar .bl-promo-banner {
	top: 32px;
}
.admin-bar .bl-site-header {
	top: calc(32px + var(--bl-banner-h));
}
@media (max-width: 782px) {
	.admin-bar .bl-promo-banner  { top: 46px; }
	.admin-bar .bl-site-header   { top: calc(46px + var(--bl-banner-h)); }
}


/* ── 17. ACCESSIBILITY UTILITIES ─────────────────────────────────────────── */
.screen-reader-text {
	clip:     rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height:   1px;
	width:    1px;
	overflow: hidden;
}
.screen-reader-text:focus {
	background:  var(--bl-surface);
	clip:        auto !important;
	color:       var(--bl-text);
	display:     block;
	font-size:   0.875rem;
	font-weight: 700;
	height:      auto;
	left:        5px;
	line-height: normal;
	padding:     15px 23px 14px;
	text-decoration: none;
	top:         5px;
	width:       auto;
	z-index:     100000;
}

/* Focus visible — override Blocksy where needed */
a:focus-visible,
button:focus-visible {
	outline: 2px solid var(--bl-accent);
	outline-offset: 2px;
}


/* ── 18. RESPONSIVE ─────────────────────────────────────────────────────── */
@media (max-width: 768px) {
	.bl-promo-banner__msg-secondary { display: none; }
	.bl-promo-banner { gap: 10px; }

	:root {
		--bl-banner-h: 36px;
		--bl-nav-h:    60px;
		--bl-header-h: calc(var(--bl-banner-h) + var(--bl-nav-h));
	}
}

@media (max-width: 480px) {
	.bl-promo-banner__dot:last-of-type { display: none; }
	.bl-promo-banner__msg-primary {
		font-size: 9px;
		letter-spacing: 0.1em;
	}
}
