/*
Theme Name: Get Truth Get Life
Theme URI: https://gettruthgetlife.com
Author: Mark Alex
Author URI: https://gettruthgetlife.com
Description: A rich, reverent theme for the Get Truth Get Life ministry — deep navy and antique gold, classical serif typography, and built-in giving buttons for PayPal, Revolut and MPESA. Built for long-form devotional reading.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gettruthgetlife
Tags: blog, one-column, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready, accessibility-ready
*/

/* ==========================================================================
   1. Design tokens
   ========================================================================== */

:root {
	/* Ink & ground — built from the Get Truth Get Life shield:
	   royal blue, gold, white. Blues run 900 (deepest) to 050 (tint). */
	--gtgl-ink:          #0B1533;
	--gtgl-ink-soft:     #414E77;
	--gtgl-ink-faint:    #616C92;

	--gtgl-navy:         #071243;   /* deepest blue — header, footer, hero */
	--gtgl-navy-2:       #0A1A63;
	--gtgl-navy-3:       #0E2288;

	--gtgl-burgundy:     #1B3FD8;   /* the brand royal blue — links, buttons */
	--gtgl-burgundy-lt:  #1430B5;   /* its hover, one step deeper */

	--gtgl-gold:         #8A6408;   /* text-safe gold — 5.4:1 on white */
	--gtgl-gold-deco:    #B8860B;   /* rules and UI borders — 3.3:1 on white */
	--gtgl-gold-lt:      #F0B429;   /* gold on the deep blues */

	--gtgl-paper:        #FFFFFF;
	--gtgl-paper-2:      #F2F6FE;
	--gtgl-paper-3:      #E4EAFD;
	--gtgl-rule:         #DCE4F7;

	/* Type */
	--gtgl-display: "Cormorant Garamond", "Apple Garamond", "Times New Roman", Georgia, serif;
	--gtgl-body:    "Lora", Georgia, "Times New Roman", serif;

	--gtgl-fs-base: 1.1875rem;   /* 19px */
	--gtgl-lh-base: 1.75;

	/* Layout */
	--gtgl-measure:  38rem;      /* ~68 characters — the reading column */
	--gtgl-wide:     62rem;
	--gtgl-full:     80rem;
	--gtgl-gutter:   1.5rem;

	/* Motion & depth */
	--gtgl-ease: cubic-bezier(.22, .61, .36, 1);
	--gtgl-shadow-sm: 0 1px 2px rgba(7, 18, 67, .06), 0 2px 8px rgba(7, 18, 67, .05);
	--gtgl-shadow-md: 0 2px 4px rgba(7, 18, 67, .06), 0 12px 32px rgba(7, 18, 67, .10);
	--gtgl-radius: 3px;
}

/* ==========================================================================
   2. Fonts (self-hosted — no third-party CDN, GDPR-friendly)
   ========================================================================== */

@font-face {
	font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-ext-500-normal.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-ext-600-normal.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Cormorant Garamond"; font-style: italic; font-weight: 600; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-600-italic.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Cormorant Garamond"; font-style: italic; font-weight: 600; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-ext-600-italic.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Cormorant Garamond"; font-style: normal; font-weight: 700; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-700-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Cormorant Garamond"; font-style: normal; font-weight: 700; font-display: swap;
	src: url("assets/fonts/cormorant-garamond-latin-ext-700-normal.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Lora"; font-style: normal; font-weight: 400; font-display: swap;
	src: url("assets/fonts/lora-latin-400-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Lora"; font-style: normal; font-weight: 400; font-display: swap;
	src: url("assets/fonts/lora-latin-ext-400-normal.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Lora"; font-style: italic; font-weight: 400; font-display: swap;
	src: url("assets/fonts/lora-latin-400-italic.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Lora"; font-style: italic; font-weight: 400; font-display: swap;
	src: url("assets/fonts/lora-latin-ext-400-italic.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Lora"; font-style: normal; font-weight: 500; font-display: swap;
	src: url("assets/fonts/lora-latin-500-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Lora"; font-style: normal; font-weight: 500; font-display: swap;
	src: url("assets/fonts/lora-latin-ext-500-normal.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Lora"; font-style: normal; font-weight: 600; font-display: swap;
	src: url("assets/fonts/lora-latin-600-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Lora"; font-style: normal; font-weight: 600; font-display: swap;
	src: url("assets/fonts/lora-latin-ext-600-normal.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ==========================================================================
   3. Reset & base
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 6rem;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

body {
	margin: 0;
	background: var(--gtgl-paper);
	color: var(--gtgl-ink);
	font-family: var(--gtgl-body);
	font-size: var(--gtgl-fs-base);
	line-height: var(--gtgl-lh-base);
	font-kerning: normal;
	font-variant-ligatures: common-ligatures;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

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

h1, h2, h3, h4, h5, h6 {
	font-family: var(--gtgl-display);
	font-weight: 600;
	line-height: 1.15;
	color: var(--gtgl-navy);
	margin: 0 0 .5em;
	text-wrap: balance;
}

h1 { font-size: clamp(2.2rem, 5.5vw, 3.4rem); letter-spacing: .005em; }
h2 { font-size: clamp(1.8rem, 4vw, 2.4rem); }
h3 { font-size: clamp(1.45rem, 3vw, 1.8rem); }
h4 { font-size: 1.3rem; }
h5, h6 { font-size: 1.1rem; }

p { margin: 0 0 1.4em; }
p:last-child { margin-bottom: 0; }

a {
	color: var(--gtgl-burgundy);
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	text-decoration-color: rgba(27, 63, 216, .35);
	transition: color .2s var(--gtgl-ease), text-decoration-color .2s var(--gtgl-ease);
}
a:hover { color: var(--gtgl-burgundy-lt); text-decoration-color: var(--gtgl-gold-deco); }

:focus-visible {
	outline: 2px solid var(--gtgl-burgundy);
	outline-offset: 3px;
	border-radius: 2px;
}

hr {
	border: 0;
	height: 1px;
	background: var(--gtgl-rule);
	margin: 3rem 0;
}

blockquote {
	margin: 2rem 0;
	padding: .25rem 0 .25rem 1.5rem;
	border-left: 3px solid var(--gtgl-gold-deco);
	font-style: italic;
	color: var(--gtgl-ink);
}
blockquote p:last-child { margin-bottom: 0; }
blockquote cite {
	display: block;
	margin-top: .75rem;
	font-style: normal;
	font-size: .85em;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gtgl-ink-soft);
}

code, pre, kbd {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .9em;
}
code { background: var(--gtgl-paper-2); padding: .1em .35em; border-radius: 2px; }
pre {
	background: var(--gtgl-navy);
	color: #DDE5FD;
	padding: 1.25rem;
	border-radius: var(--gtgl-radius);
	overflow-x: auto;
}
pre code { background: none; padding: 0; color: inherit; }

table {
	width: 100%;
	border-collapse: collapse;
	margin: 2rem 0;
	font-size: .95em;
}
th, td { padding: .65rem .75rem; text-align: left; border-bottom: 1px solid var(--gtgl-rule); }
th { font-family: var(--gtgl-display); font-size: 1.05em; color: var(--gtgl-navy); }

ul, ol { margin: 0 0 1.4em; padding-left: 1.4em; }
li { margin-bottom: .4em; }

/* ==========================================================================
   4. Utilities
   ========================================================================== */

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px; width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	white-space: nowrap;
}
.screen-reader-text:focus {
	clip-path: none;
	height: auto; width: auto;
	display: block;
	top: 1rem; left: 1rem;
	z-index: 100000;
	background: var(--gtgl-paper);
	color: var(--gtgl-burgundy);
	padding: .75rem 1.25rem;
	box-shadow: var(--gtgl-shadow-md);
	border-radius: var(--gtgl-radius);
	font-family: var(--gtgl-display);
	font-size: 1.1rem;
}

.gtgl-container { width: 100%; max-width: var(--gtgl-full); margin-inline: auto; padding-inline: var(--gtgl-gutter); }
.gtgl-measure   { width: 100%; max-width: var(--gtgl-measure); margin-inline: auto; }
.gtgl-wide      { width: 100%; max-width: var(--gtgl-wide); margin-inline: auto; padding-inline: var(--gtgl-gutter); }

/* Small caps meta label */
.gtgl-eyebrow {
	font-family: var(--gtgl-body);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gtgl-gold);
	margin: 0 0 1rem;
	display: block;
}

/* Gold ornamental divider */
.gtgl-ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .85rem;
	margin: 3rem 0;
	color: var(--gtgl-gold-deco);
}
.gtgl-ornament::before,
.gtgl-ornament::after {
	content: "";
	height: 1px;
	flex: 1 1 auto;
	max-width: 7rem;
	background: linear-gradient(to right, transparent, var(--gtgl-rule), transparent);
}
.gtgl-ornament span { font-size: .8rem; letter-spacing: .3em; }

/* ==========================================================================
   5. Buttons
   ========================================================================== */

.gtgl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	font-family: var(--gtgl-body);
	font-size: .9rem;
	font-weight: 600;
	letter-spacing: .06em;
	line-height: 1;
	padding: .85rem 1.5rem;
	border: 1px solid transparent;
	border-radius: var(--gtgl-radius);
	cursor: pointer;
	text-decoration: none;
	transition: background-color .2s var(--gtgl-ease), color .2s var(--gtgl-ease),
	            border-color .2s var(--gtgl-ease), transform .2s var(--gtgl-ease),
	            box-shadow .2s var(--gtgl-ease);
}
.gtgl-btn:hover { transform: translateY(-1px); }
.gtgl-btn:active { transform: translateY(0); }

.gtgl-btn--primary {
	background: var(--gtgl-burgundy);
	color: #FFFFFF;
	box-shadow: var(--gtgl-shadow-sm);
}
.gtgl-btn--primary:hover { background: var(--gtgl-burgundy-lt); color: #FFFFFF; box-shadow: var(--gtgl-shadow-md); }

.gtgl-btn--gold {
	background: var(--gtgl-gold-lt);
	color: var(--gtgl-navy);
	font-weight: 600;
	box-shadow: 0 1px 2px rgba(7, 18, 67, .3), 0 6px 18px rgba(7, 18, 67, .25);
}
.gtgl-btn--gold:hover {
	background: #FFC94D;
	color: var(--gtgl-navy);
}

.gtgl-btn--ghost {
	background: transparent;
	color: var(--gtgl-burgundy);
	border-color: var(--gtgl-rule);
}
.gtgl-btn--ghost:hover { border-color: var(--gtgl-gold-deco); background: var(--gtgl-paper-2); color: var(--gtgl-burgundy); }

.gtgl-btn--onnavy {
	background: transparent;
	color: var(--gtgl-gold-lt);
	border-color: rgba(240, 180, 41, .45);
}
.gtgl-btn--onnavy:hover { background: rgba(240, 180, 41, .12); border-color: var(--gtgl-gold-lt); color: #FFE9B8; }

.gtgl-btn--sm { padding: .6rem 1.1rem; font-size: .8rem; }
.gtgl-btn--block { width: 100%; }

/* ==========================================================================
   6. Site header
   ========================================================================== */

.gtgl-header {
	background: var(--gtgl-navy-2);
	color: #DDE5FD;
	border-bottom: 1px solid rgba(240, 180, 41, .25);
	position: sticky;
	top: 0;
	z-index: 900;
}
.admin-bar .gtgl-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .gtgl-header { top: 46px; } }

.gtgl-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: 4.75rem;
	padding-block: .75rem;
}

.gtgl-brand { display: flex; align-items: center; gap: .85rem; text-decoration: none; flex: 0 1 auto; min-width: 0; }
.gtgl-brand:hover { text-decoration: none; }
.gtgl-brand__mark { flex: 0 0 auto; display: block; }
.gtgl-brand__mark img {
	height: 3rem;
	width: auto;
	display: block;
	/* lifts the shield off the deep blue header without a hard edge */
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .35));
}
@media (max-width: 560px) { .gtgl-brand__mark img { height: 2.1rem; } }
.gtgl-brand__text { min-width: 0; }
.gtgl-brand__title {
	font-family: var(--gtgl-display);
	font-size: clamp(1.3rem, 2.6vw, 1.7rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: .015em;
	color: #FFFFFF;
	margin: 0;
	white-space: nowrap;
}
.gtgl-brand:hover .gtgl-brand__title { color: var(--gtgl-gold-lt); }
.gtgl-brand__tagline {
	display: block;
	font-size: .66rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(240, 180, 41, .8);
	margin-top: .3rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gtgl-brand__logo img { max-height: 3rem; width: auto; }

.gtgl-header__right { display: flex; align-items: center; gap: 1.25rem; }

/* Primary nav */
.gtgl-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 1.6rem; }
.gtgl-nav li { margin: 0; position: relative; }
.gtgl-nav a {
	font-family: var(--gtgl-body);
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #C6D2F5;
	text-decoration: none;
	padding-block: .5rem;
	display: block;
	position: relative;
}
.gtgl-nav a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: .1rem;
	height: 1px;
	background: var(--gtgl-gold-lt);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s var(--gtgl-ease);
}
.gtgl-nav a:hover { color: #FFF; }
.gtgl-nav a:hover::after,
.gtgl-nav .current-menu-item > a::after,
.gtgl-nav .current_page_item > a::after { transform: scaleX(1); }
.gtgl-nav .current-menu-item > a, .gtgl-nav .current_page_item > a { color: var(--gtgl-gold-lt); }

/* Sub-menus */
.gtgl-nav .sub-menu {
	position: absolute;
	top: 100%; left: -1rem;
	min-width: 13rem;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	background: var(--gtgl-navy-2);
	border: 1px solid rgba(240, 180, 41, .2);
	border-radius: var(--gtgl-radius);
	padding: .5rem 0;
	box-shadow: var(--gtgl-shadow-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-.4rem);
	transition: opacity .2s var(--gtgl-ease), transform .2s var(--gtgl-ease), visibility .2s;
}
.gtgl-nav li:hover > .sub-menu,
.gtgl-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.gtgl-nav .sub-menu a { padding: .55rem 1.25rem; text-transform: none; letter-spacing: .02em; font-size: .88rem; }
.gtgl-nav .sub-menu a::after { display: none; }
.gtgl-nav .sub-menu a:hover { background: rgba(240, 180, 41, .1); }

/* Header search toggle */
.gtgl-iconbtn {
	background: none;
	border: 1px solid rgba(240, 180, 41, .3);
	color: var(--gtgl-gold-lt);
	width: 2.4rem; height: 2.4rem;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color .2s var(--gtgl-ease), border-color .2s var(--gtgl-ease);
}
.gtgl-iconbtn:hover { background: rgba(240, 180, 41, .14); border-color: var(--gtgl-gold-lt); }

/* Mobile toggle */
.gtgl-burger { display: none; }
.gtgl-burger .bar { display: block; width: 20px; height: 1.5px; background: currentColor; transition: transform .25s var(--gtgl-ease), opacity .2s; }
.gtgl-burger .bar + .bar { margin-top: 5px; }
.gtgl-burger[aria-expanded="true"] .bar:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.gtgl-burger[aria-expanded="true"] .bar:nth-child(2) { opacity: 0; }
.gtgl-burger[aria-expanded="true"] .bar:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

@media (max-width: 900px) {
	.gtgl-burger { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; }
	.gtgl-nav {
		position: fixed;
		inset: 4.75rem 0 auto 0;
		background: var(--gtgl-navy);
		border-bottom: 1px solid rgba(240, 180, 41, .25);
		max-height: 0;
		overflow: hidden;
		/* visibility keeps the collapsed links out of the tab order —
		   max-height alone only clips them visually. */
		visibility: hidden;
		transition: max-height .35s var(--gtgl-ease), visibility 0s linear .35s;
	}
	.admin-bar .gtgl-nav { top: calc(4.75rem + 46px); }
	.gtgl-nav[data-open="true"] {
		max-height: 80vh;
		overflow-y: auto;
		visibility: visible;
		transition: max-height .35s var(--gtgl-ease), visibility 0s;
	}
	.gtgl-nav ul { flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 0 1.5rem; }
	.gtgl-nav li { border-top: 1px solid rgba(255, 255, 255, .06); }
	.gtgl-nav a { padding: .95rem var(--gtgl-gutter); font-size: .9rem; }
	.gtgl-nav a::after { display: none; }
	.gtgl-nav .sub-menu {
		position: static; opacity: 1; visibility: visible; transform: none;
		background: rgba(0, 0, 0, .2); border: 0; box-shadow: none; border-radius: 0; padding: 0;
	}
	.gtgl-nav .sub-menu a { padding-left: 2.5rem; }
	/* The Give button drops to icon-only here. Hide the word visually but
	   keep it for screen readers — the heart is aria-hidden, so display:none
	   would leave the link with no accessible name at all. */
	.gtgl-header__give-label {
		border: 0;
		clip-path: inset(50%);
		height: 1px;
		width: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		white-space: nowrap;
	}
}

@media (max-width: 560px) {
	/* Rather than truncate the tagline to a stub, drop it. */
	.gtgl-brand__tagline { display: none; }
	.gtgl-brand__mark svg { width: 26px; height: 26px; }
	.gtgl-header__right { gap: .6rem; }
	.gtgl-header__inner { gap: .75rem; }
}

/* ==========================================================================
   7. Hero (front page)
   ========================================================================== */

.gtgl-hero {
	position: relative;
	background: linear-gradient(158deg, var(--gtgl-navy-2) 0%, var(--gtgl-navy-3) 48%, #16359E 100%);
	color: #E4EAFD;
	overflow: hidden;
	isolation: isolate;
}
.gtgl-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 62% 55% at 50% -12%, rgba(240, 180, 41, .20), transparent 70%),
		radial-gradient(ellipse 40% 60% at 90% 110%, rgba(27, 63, 216, .28), transparent 70%);
	z-index: -1;
}
.gtgl-hero::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: linear-gradient(to right, transparent, var(--gtgl-gold-deco), transparent);
}
.gtgl-hero__inner {
	max-width: 46rem;
	margin-inline: auto;
	padding: clamp(4rem, 11vw, 7.5rem) var(--gtgl-gutter);
	text-align: center;
}
.gtgl-hero__eyebrow {
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--gtgl-gold-lt);
	margin: 0 0 1.5rem;
}
.gtgl-hero__title {
	font-size: clamp(2.6rem, 7vw, 4.5rem);
	font-weight: 600;
	line-height: 1.04;
	color: #FFFFFF;
	margin: 0 0 1.5rem;
	letter-spacing: .01em;
}
.gtgl-hero__verse {
	font-size: clamp(1.05rem, 2.2vw, 1.3rem);
	font-style: italic;
	line-height: 1.65;
	color: rgba(228, 234, 253, .88);
	max-width: 34rem;
	margin: 0 auto 1rem;
}
.gtgl-hero__ref {
	font-size: .75rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--gtgl-gold-lt);
	margin: 0 0 2.5rem;
}
.gtgl-hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; justify-content: center; }

/* ==========================================================================
   8. Post list
   ========================================================================== */

.gtgl-main { padding-block: clamp(3rem, 7vw, 5rem); }

.gtgl-section-head { text-align: center; margin-bottom: clamp(2.5rem, 5vw, 3.5rem); }
.gtgl-section-head h2 { margin-bottom: .35rem; }
.gtgl-section-head p { color: var(--gtgl-ink-soft); font-size: .95rem; margin: 0; }

.gtgl-postlist { display: grid; gap: clamp(2.5rem, 5vw, 3.5rem); }

.gtgl-card {
	position: relative;
	padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
	border-bottom: 1px solid var(--gtgl-rule);
}
.gtgl-postlist > .gtgl-card:last-child { border-bottom: 0; padding-bottom: 0; }

.gtgl-card__thumb {
	display: block;
	margin-bottom: 1.5rem;
	border-radius: var(--gtgl-radius);
	overflow: hidden;
	background: var(--gtgl-paper-2);
	aspect-ratio: 16 / 9;
}
.gtgl-card__thumb img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .5s var(--gtgl-ease);
}
.gtgl-card__thumb:hover img { transform: scale(1.03); }

.gtgl-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem .9rem;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gtgl-ink-faint);
	margin-bottom: .85rem;
}
.gtgl-card__meta a { color: var(--gtgl-gold); text-decoration: none; }
.gtgl-card__meta a:hover { color: var(--gtgl-burgundy); text-decoration: underline; }
.gtgl-card__meta .sep { color: var(--gtgl-rule); }

.gtgl-card__title {
	font-size: clamp(1.6rem, 3.4vw, 2.1rem);
	line-height: 1.14;
	margin: 0 0 .85rem;
	letter-spacing: .005em;
}
.gtgl-card__title a { color: var(--gtgl-navy); text-decoration: none; background-image: linear-gradient(var(--gtgl-gold-deco), var(--gtgl-gold-deco)); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .35s var(--gtgl-ease), color .2s var(--gtgl-ease); }
.gtgl-card__title a:hover { color: var(--gtgl-burgundy); background-size: 100% 1px; }

.gtgl-card__excerpt { color: var(--gtgl-ink-soft); font-size: 1.02rem; line-height: 1.7; margin-bottom: 1.1rem; }

.gtgl-card__more {
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gtgl-burgundy);
	display: inline-flex;
	align-items: center;
	gap: .45rem;
}
.gtgl-card__more::after { content: "→"; transition: transform .2s var(--gtgl-ease); }
.gtgl-card__more:hover::after { transform: translateX(3px); }

/* Featured (first post on front page) */
.gtgl-card--featured .gtgl-card__title { font-size: clamp(2rem, 4.6vw, 2.9rem); }
.gtgl-card--featured .gtgl-card__excerpt { font-size: 1.1rem; }

/* ==========================================================================
   9. Single post
   ========================================================================== */

/* Breadcrumbs
   Quiet by design. A reader who arrived from a search needs to know where
   they are; a reader who arrived from the menu already knows, and should not
   have to read past a navigation bar to reach the title. */
.gtgl-breadcrumbs {
	max-width: 46rem;
	margin: 0 auto clamp(1.25rem, 2.5vw, 1.75rem);
	font-family: var(--gtgl-body);
	font-size: .8125rem;
	line-height: 1.5;
	color: var(--gtgl-ink-faint);
}
.gtgl-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: .35rem .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gtgl-breadcrumbs li {
	display: flex;
	align-items: baseline;
	gap: .5rem;
	margin: 0;
}
.gtgl-breadcrumbs li + li::before {
	content: "/";
	color: var(--gtgl-gold-deco);
}
.gtgl-breadcrumbs a {
	color: var(--gtgl-ink-soft);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .18s var(--gtgl-ease), border-color .18s var(--gtgl-ease);
}
.gtgl-breadcrumbs a:hover,
.gtgl-breadcrumbs a:focus-visible {
	color: var(--gtgl-burgundy);
	border-bottom-color: var(--gtgl-gold-deco);
}
.gtgl-breadcrumbs [aria-current="page"] {
	color: var(--gtgl-ink-faint);
	/* The last crumb is often a long study title. Let it truncate rather than
	   wrap to three lines above the headline it is describing. */
	max-width: 22rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gtgl-article__header {
	text-align: center;
	max-width: 46rem;
	margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
}
.gtgl-article__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: .5rem .9rem;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gtgl-ink-faint);
	margin-bottom: 1.25rem;
}
.gtgl-article__meta a { color: var(--gtgl-gold); text-decoration: none; }
.gtgl-article__meta a:hover { color: var(--gtgl-burgundy); text-decoration: underline; }
.gtgl-article__title { font-size: clamp(2.1rem, 5.5vw, 3.4rem); line-height: 1.1; margin: 0 0 1.25rem; }
.gtgl-article__hr {
	width: 4rem; height: 2px; border: 0;
	background: var(--gtgl-gold-deco);
	margin: 1.75rem auto 0;
}
.gtgl-article__featured {
	margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
	max-width: var(--gtgl-wide);
	border-radius: var(--gtgl-radius);
	overflow: hidden;
}

/* The reading column */
.gtgl-content { font-size: 1.1875rem; line-height: 1.8; }
.gtgl-content > * { max-width: var(--gtgl-measure); margin-inline: auto; }
.gtgl-content > .alignwide  { max-width: var(--gtgl-wide); }
.gtgl-content > .alignfull  { max-width: none; width: 100%; }
.gtgl-content h2 { margin-top: 2.75rem; margin-bottom: .6rem; }
.gtgl-content h3 { margin-top: 2.25rem; margin-bottom: .5rem; }
.gtgl-content h2::after {
	content: "";
	display: block;
	width: 2.5rem; height: 1px;
	background: var(--gtgl-gold-deco);
	margin-top: .75rem;
}
.gtgl-content img, .gtgl-content figure { border-radius: var(--gtgl-radius); }
.gtgl-content figure { margin: 2.5rem auto; }
.gtgl-content figcaption {
	font-size: .82rem;
	color: var(--gtgl-ink-faint);
	text-align: center;
	margin-top: .75rem;
	font-style: italic;
}
.gtgl-content a { font-weight: 500; }

/* The illuminated KEY TEXT block — auto-applied to opening scripture */
.gtgl-keytext {
	position: relative;
	background: var(--gtgl-paper-2);
	border-left: 3px solid var(--gtgl-gold-deco);
	border-radius: 0 var(--gtgl-radius) var(--gtgl-radius) 0;
	padding: 1.75rem 1.75rem 1.75rem 2rem;
	margin-block: 0 2.5rem !important;
	font-size: 1.08rem;
	line-height: 1.7;
	color: var(--gtgl-ink);
}
.gtgl-keytext__label {
	display: block;
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gtgl-gold);
	margin-bottom: .6rem;
}
.gtgl-keytext__body { font-style: italic; }

/* Reading progress bar */
.gtgl-progress {
	position: fixed;
	top: 0; left: 0;
	height: 2px;
	width: 100%;
	transform: scaleX(0);
	transform-origin: left;
	background: linear-gradient(to right, var(--gtgl-gold-deco), var(--gtgl-burgundy));
	z-index: 1000;
	pointer-events: none;
}

/* Tags */
.gtgl-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; }
.gtgl-tags a {
	font-size: .72rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gtgl-ink-soft);
	background: var(--gtgl-paper-2);
	border: 1px solid var(--gtgl-rule);
	border-radius: 100px;
	padding: .35rem .85rem;
	text-decoration: none;
	transition: all .2s var(--gtgl-ease);
}
.gtgl-tags a:hover { background: var(--gtgl-navy); color: var(--gtgl-gold-lt); border-color: var(--gtgl-navy); }

/* Post navigation */
.gtgl-postnav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--gtgl-rule);
	border-block: 1px solid var(--gtgl-rule);
	margin-top: clamp(3rem, 6vw, 4.5rem);
}
.gtgl-postnav__link {
	background: var(--gtgl-paper);
	padding: 2rem 1.5rem;
	text-decoration: none;
	display: block;
	transition: background-color .2s var(--gtgl-ease);
}
.gtgl-postnav__link:hover { background: var(--gtgl-paper-2); }
.gtgl-postnav__link--next { text-align: right; }
.gtgl-postnav__dir {
	display: block;
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gtgl-gold);
	margin-bottom: .5rem;
}
.gtgl-postnav__title {
	font-family: var(--gtgl-display);
	font-size: 1.2rem;
	line-height: 1.25;
	color: var(--gtgl-navy);
}
.gtgl-postnav__link:hover .gtgl-postnav__title { color: var(--gtgl-burgundy); }
@media (max-width: 640px) {
	.gtgl-postnav { grid-template-columns: 1fr; }
	.gtgl-postnav__link--next { text-align: left; }
}

/* Author box */
.gtgl-author {
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	padding: 2rem;
	background: var(--gtgl-paper-2);
	border-radius: var(--gtgl-radius);
	margin-top: 3rem;
}
.gtgl-author img { border-radius: 50%; flex: 0 0 auto; }
.gtgl-author__name { font-family: var(--gtgl-display); font-size: 1.3rem; color: var(--gtgl-navy); margin: 0 0 .4rem; }
.gtgl-author__bio { font-size: .95rem; color: var(--gtgl-ink-soft); margin: 0; line-height: 1.65; }
@media (max-width: 560px) { .gtgl-author { flex-direction: column; } }

/* ==========================================================================
   10. Giving — the donate buttons
   ========================================================================== */

.gtgl-give {
	background: linear-gradient(152deg, var(--gtgl-navy-2) 0%, var(--gtgl-navy-3) 100%);
	color: #DDE5FD;
	border-radius: var(--gtgl-radius);
	padding: clamp(2.25rem, 5vw, 3.25rem);
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.gtgl-give::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 75% 95% at 12% 0%, rgba(240, 180, 41, .18), transparent 68%);
	z-index: -1;
}
.gtgl-give--strip { margin-top: clamp(3rem, 6vw, 4.5rem); }
.gtgl-give--footer { background: none; padding: 0; border-radius: 0; }
.gtgl-give--footer::before { display: none; }

.gtgl-give__head { text-align: center; max-width: 34rem; margin: 0 auto 2rem; }
.gtgl-give__eyebrow {
	font-size: .7rem; font-weight: 600; letter-spacing: .26em; text-transform: uppercase;
	color: var(--gtgl-gold-lt); margin: 0 0 .9rem;
}
.gtgl-give__title {
	font-family: var(--gtgl-display);
	font-size: clamp(1.7rem, 3.6vw, 2.3rem);
	font-weight: 600;
	line-height: 1.15;
	color: #FFFFFF;
	margin: 0 0 .85rem;
}
.gtgl-give__blurb { font-size: .98rem; line-height: 1.7; color: rgba(221, 229, 253, .82); margin: 0; }

.gtgl-give__methods {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: 1rem;
	max-width: 46rem;
	margin-inline: auto;
}

.gtgl-method {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: .75rem;
	padding: 1.5rem 1.25rem;
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(240, 180, 41, .22);
	border-radius: var(--gtgl-radius);
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	font: inherit;
	transition: background-color .25s var(--gtgl-ease), border-color .25s var(--gtgl-ease), transform .25s var(--gtgl-ease);
}
.gtgl-method:hover {
	background: rgba(240, 180, 41, .1);
	border-color: rgba(240, 180, 41, .55);
	transform: translateY(-2px);
	text-decoration: none;
	color: inherit;
}
.gtgl-method__icon {
	width: 2.6rem; height: 2.6rem;
	display: grid; place-items: center;
	border-radius: 50%;
	background: rgba(240, 180, 41, .14);
	color: var(--gtgl-gold-lt);
	flex: 0 0 auto;
}
.gtgl-method__icon svg { width: 1.35rem; height: 1.35rem; }
.gtgl-method__name {
	font-family: var(--gtgl-display);
	font-size: 1.25rem;
	font-weight: 600;
	color: #FFFFFF;
	line-height: 1.1;
}
.gtgl-method__note {
	font-size: .74rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(240, 180, 41, .85);
}

/* MPESA detail panel */
.gtgl-method[aria-expanded] .gtgl-method__note::after { content: " ▾"; }
.gtgl-method[aria-expanded="true"] .gtgl-method__note::after { content: " ▴"; }

.gtgl-mpesa-panel {
	grid-column: 1 / -1;
	background: rgba(0, 0, 0, .22);
	border: 1px solid rgba(240, 180, 41, .22);
	border-radius: var(--gtgl-radius);
	padding: 1.5rem;
	margin-top: -.25rem;
}
.gtgl-mpesa-panel[hidden] { display: none !important; }
.gtgl-mpesa-panel h3 {
	font-size: 1rem; color: var(--gtgl-gold-lt); margin: 0 0 1rem;
	letter-spacing: .12em; text-transform: uppercase; font-family: var(--gtgl-body); font-weight: 600;
}
.gtgl-mpesa-row {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: .7rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, .07);
	font-size: .92rem;
}
.gtgl-mpesa-row:last-of-type { border-bottom: 0; }
.gtgl-mpesa-row dt { color: rgba(221, 229, 253, .65); letter-spacing: .08em; text-transform: uppercase; font-size: .72rem; margin: 0; }
.gtgl-mpesa-row dd { margin: 0; display: flex; align-items: center; gap: .6rem; }
.gtgl-mpesa-row .val { font-family: var(--gtgl-display); font-size: 1.2rem; font-weight: 600; color: #FFFFFF; letter-spacing: .04em; }
.gtgl-copy {
	background: rgba(240, 180, 41, .14);
	border: 1px solid rgba(240, 180, 41, .3);
	color: var(--gtgl-gold-lt);
	font-family: var(--gtgl-body);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .3rem .6rem;
	border-radius: 2px;
	cursor: pointer;
	transition: background-color .2s var(--gtgl-ease);
	white-space: nowrap;
}
.gtgl-copy:hover { background: rgba(240, 180, 41, .28); }
.gtgl-copy[data-copied="true"] { background: rgba(120, 180, 120, .25); border-color: rgba(120, 180, 120, .5); color: #C6E6C6; }
.gtgl-mpesa-steps { margin: 1.25rem 0 0; padding-left: 1.25rem; font-size: .86rem; line-height: 1.7; color: rgba(221, 229, 253, .78); }
.gtgl-mpesa-steps li { margin-bottom: .3rem; }

/* Header give button */
.gtgl-header__give { flex: 0 0 auto; }

/* ==========================================================================
   11. Footer
   ========================================================================== */

.gtgl-footer {
	background: var(--gtgl-navy);
	color: #B9C6EE;
	padding-block: clamp(3.5rem, 7vw, 5rem) 0;
	border-top: 1px solid rgba(240, 180, 41, .25);
	font-size: .95rem;
}
.gtgl-footer__give { padding-bottom: clamp(3rem, 6vw, 4rem); border-bottom: 1px solid rgba(255, 255, 255, .08); }

.gtgl-footer__cols {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	padding-block: clamp(3rem, 6vw, 4rem);
}
@media (max-width: 800px) { .gtgl-footer__cols { grid-template-columns: 1fr 1fr; } .gtgl-footer__about { grid-column: 1 / -1; } }
@media (max-width: 520px) { .gtgl-footer__cols { grid-template-columns: 1fr; } }

.gtgl-footer h2, .gtgl-footer h3 {
	font-family: var(--gtgl-body);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gtgl-gold-lt);
	margin: 0 0 1.25rem;
}
.gtgl-footer p { line-height: 1.75; color: rgba(185, 198, 238, .85); }
.gtgl-footer a { color: #C6D2F5; text-decoration: none; }
.gtgl-footer a:hover { color: var(--gtgl-gold-lt); text-decoration: underline; }
.gtgl-footer ul { list-style: none; margin: 0; padding: 0; }
.gtgl-footer li { margin-bottom: .7rem; }

.gtgl-footer__brand { font-family: var(--gtgl-display); font-size: 1.5rem; color: #FFFFFF; margin: 0 0 .9rem; text-transform: none; letter-spacing: .01em; }

.gtgl-contact li { display: flex; gap: .7rem; align-items: flex-start; }
.gtgl-contact svg { flex: 0 0 auto; width: 1rem; height: 1rem; margin-top: .35rem; color: var(--gtgl-gold-lt); }

.gtgl-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	padding-block: 1.75rem;
	border-top: 1px solid rgba(255, 255, 255, .08);
	font-size: .82rem;
	color: rgba(185, 198, 238, .65);
}
.gtgl-footer__bottom p { margin: 0; }

/* ==========================================================================
   12. Widgets / search / pagination / comments / 404
   ========================================================================== */

.gtgl-searchform { display: flex; gap: .5rem; max-width: 26rem; }
.gtgl-searchform input[type="search"] {
	flex: 1 1 auto;
	font-family: var(--gtgl-body);
	font-size: .95rem;
	padding: .75rem 1rem;
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	background: #FFF;
	color: var(--gtgl-ink);
}
.gtgl-searchform input[type="search"]:focus { border-color: var(--gtgl-gold-deco); outline-offset: 1px; }

.gtgl-searchbar {
	background: var(--gtgl-navy-2);
	border-bottom: 1px solid rgba(240, 180, 41, .2);
	padding: 1.25rem 0;
}
.gtgl-searchbar[hidden] { display: none; }
.gtgl-searchbar .gtgl-searchform { max-width: 34rem; margin-inline: auto; }

.gtgl-pagination { margin-top: clamp(3rem, 6vw, 4.5rem); }
.gtgl-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; align-items: center; }
.gtgl-pagination .page-numbers {
	min-width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-inline: .6rem;
	font-size: .9rem;
	text-decoration: none;
	color: var(--gtgl-ink-soft);
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	transition: all .2s var(--gtgl-ease);
}
.gtgl-pagination a.page-numbers:hover { border-color: var(--gtgl-gold-deco); color: var(--gtgl-burgundy); }
.gtgl-pagination .page-numbers.current { background: var(--gtgl-navy); border-color: var(--gtgl-navy); color: var(--gtgl-gold-lt); }
.gtgl-pagination .page-numbers.dots { border-color: transparent; }

.gtgl-comments { margin-top: clamp(3rem, 6vw, 4.5rem); }
.gtgl-comments .comment-list { list-style: none; padding: 0; margin: 0 0 3rem; }
.gtgl-comments .comment-list ol { list-style: none; padding-left: 1.5rem; }
.gtgl-comments .comment-body { padding: 1.5rem 0; border-bottom: 1px solid var(--gtgl-rule); }
.gtgl-comments .comment-author { font-family: var(--gtgl-display); font-size: 1.15rem; color: var(--gtgl-navy); }
.gtgl-comments .comment-metadata { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gtgl-ink-faint); margin-bottom: .75rem; }
.gtgl-comments .comment-metadata a { color: inherit; text-decoration: none; }
.gtgl-comments input[type="text"], .gtgl-comments input[type="email"], .gtgl-comments input[type="url"], .gtgl-comments textarea {
	width: 100%;
	font-family: var(--gtgl-body);
	font-size: 1rem;
	padding: .75rem 1rem;
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	background: #FFF;
	color: var(--gtgl-ink);
	margin-bottom: 1rem;
}
.gtgl-comments .form-submit input[type="submit"],
.gtgl-comments .submit {
	background: var(--gtgl-burgundy);
	color: #FFFFFF;
	border: 0;
	font-family: var(--gtgl-body);
	font-size: .9rem;
	font-weight: 600;
	letter-spacing: .06em;
	padding: .85rem 1.75rem;
	border-radius: var(--gtgl-radius);
	cursor: pointer;
}
.gtgl-comments .comment-reply-title { font-size: 1.6rem; }

.gtgl-404 { text-align: center; padding-block: clamp(4rem, 10vw, 7rem); }
.gtgl-404__code { font-family: var(--gtgl-display); font-size: clamp(5rem, 18vw, 10rem); line-height: 1; color: var(--gtgl-paper-3); margin: 0; }
.gtgl-404 h1 { margin-top: -1rem; }
.gtgl-404 p { color: var(--gtgl-ink-soft); max-width: 32rem; margin-inline: auto; }
.gtgl-404 .gtgl-searchform { margin: 2rem auto 0; }

/* Archive header */
.gtgl-archive-head {
	text-align: center;
	padding-block: clamp(3rem, 7vw, 4.5rem);
	background: var(--gtgl-paper-2);
	border-bottom: 1px solid var(--gtgl-rule);
}
.gtgl-archive-head h1 { margin-bottom: .4rem; }
.gtgl-archive-head p { color: var(--gtgl-ink-soft); margin: 0; font-size: .98rem; }

/* WordPress core alignment classes */
.alignleft  { float: left;  margin: .5rem 1.75rem 1.25rem 0; }
.alignright { float: right; margin: .5rem 0 1.25rem 1.75rem; }
.aligncenter { margin-inline: auto; display: block; }
.sticky, .gallery-caption, .bypostauthor { /* required by the theme check */ }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: .82rem; color: var(--gtgl-ink-faint); text-align: center; font-style: italic; }

/* Print */
@media print {
	.gtgl-header, .gtgl-footer, .gtgl-give, .gtgl-postnav, .gtgl-progress, .gtgl-tags, .gtgl-comments { display: none !important; }
	body { background: #FFF; font-size: 11pt; }
	.gtgl-content > * { max-width: none; }
	a { text-decoration: none; color: #000; }
}

/* ==========================================================================
   13. The bookshop (WooCommerce)
   ========================================================================== */

.gtgl-shop-head__note {
	max-width: 34rem;
	margin: .75rem auto 0;
	color: var(--gtgl-ink-soft);
	font-size: .96rem;
	line-height: 1.7;
}

/* --- Product grid --- */

.woocommerce ul.products,
.gtgl-shop ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: clamp(1.75rem, 4vw, 3rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; }

.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	margin: 0 !important;
	width: auto !important;
	float: none !important;
	text-align: left;
}
.woocommerce ul.products li.product a { text-decoration: none; }

/* Cover: a book standing on a shelf, not a product photo.
   The covers are not all the same proportion, so each sits in a slot of
   fixed ratio and stands on its baseline — that keeps every title in a
   row starting at the same height however tall the artwork is. */
.gtgl-book__coverwrap {
	position: relative;
	margin-bottom: 1.25rem;
	aspect-ratio: 5 / 8;
}
.gtgl-book__coverwrap img {
	/* absolutely positioned so the image's intrinsic height can't
	   override the slot's aspect-ratio — that is what keeps every
	   title in a row starting at the same height */
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	/* contain, not cover: never crop a cover's title or the author's name */
	object-fit: contain;
	object-position: bottom center;
	/* drop-shadow follows the image's own edges rather than the slot's,
	   so the shadow hugs the book however wide the artwork is */
	filter:
		drop-shadow(0 1px 2px rgba(7, 18, 67, .22))
		drop-shadow(0 12px 26px rgba(7, 18, 67, .20));
	transition: transform .4s var(--gtgl-ease), filter .4s var(--gtgl-ease);
}
.woocommerce ul.products li.product:hover .gtgl-book__coverwrap img {
	transform: translateY(-5px);
	filter:
		drop-shadow(0 2px 4px rgba(7, 18, 67, .24))
		drop-shadow(0 22px 44px rgba(7, 18, 67, .28));
}

.gtgl-book__title {
	font-size: 1.3rem;
	line-height: 1.2;
	margin: 0 0 .3rem;
	color: var(--gtgl-navy);
}
.woocommerce ul.products li.product a:hover .gtgl-book__title { color: var(--gtgl-burgundy); }

.gtgl-book__pages {
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gtgl-gold);
	margin: 0 0 .7rem;
}
.gtgl-book__blurb {
	font-size: .92rem;
	line-height: 1.65;
	color: var(--gtgl-ink-soft);
	margin: 0 0 1.1rem;
	flex: 1 1 auto;
}
.gtgl-book__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: .9rem;
	border-top: 1px solid var(--gtgl-rule);
}
.woocommerce ul.products li.product .price {
	font-family: var(--gtgl-display);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--gtgl-navy);
	margin: 0;
}
.woocommerce ul.products li.product .price del { color: var(--gtgl-ink-faint); font-size: .7em; margin-right: .35rem; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* Sale flash */
.woocommerce span.onsale {
	position: absolute;
	top: .75rem; left: .75rem;
	background: var(--gtgl-burgundy);
	color: #FFFFFF;
	font-family: var(--gtgl-body);
	font-size: .66rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: .35rem .7rem;
	border-radius: 2px;
	min-height: 0;
	min-width: 0;
	line-height: 1.4;
	margin: 0;
	z-index: 2;
}

/* --- Single product --- */

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
@media (max-width: 820px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
}
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .up-sells,
.woocommerce div.product > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

.woocommerce div.product div.images {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	position: sticky;
	top: 7rem;
}
.woocommerce div.product div.images img {
	border-radius: 2px;
	box-shadow: 0 2px 4px rgba(7,18,67,.16), 0 20px 46px rgba(7,18,67,.2);
}
@media (max-width: 820px) {
	.woocommerce div.product div.images { position: static; max-width: 20rem; margin-inline: auto !important; }
}

.woocommerce div.product div.summary {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}
.woocommerce div.product .product_title {
	font-size: clamp(1.9rem, 4vw, 2.7rem);
	line-height: 1.12;
	margin: 0 0 .5rem;
}
.woocommerce div.product .gtgl-byline {
	font-size: .75rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gtgl-gold);
	margin: 0 0 1.5rem;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--gtgl-display);
	font-size: 2.2rem;
	font-weight: 600;
	color: var(--gtgl-navy);
	margin: 0 0 1.5rem;
}
.woocommerce div.product p.price del { font-size: .55em; color: var(--gtgl-ink-faint); }
.woocommerce div.product p.price ins { text-decoration: none; }

.woocommerce-product-details__short-description {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--gtgl-ink);
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--gtgl-rule);
}

/* Book specs table */
.gtgl-specs {
	margin: 0 0 2rem;
	border-top: 1px solid var(--gtgl-rule);
}
.gtgl-spec {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	padding: .7rem 0;
	border-bottom: 1px solid var(--gtgl-rule);
	font-size: .92rem;
}
.gtgl-spec dt {
	color: var(--gtgl-ink-faint);
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: .72rem;
	font-weight: 600;
	margin: 0;
	padding-top: .18rem;
}
.gtgl-spec dd { margin: 0; color: var(--gtgl-ink); font-weight: 500; }

/* Add to cart */
.woocommerce div.product form.cart { margin-bottom: 1.5rem; display: flex; gap: .75rem; flex-wrap: wrap; }
.woocommerce div.product form.cart .quantity { display: none; } /* one copy of an ebook is enough */
.woocommerce div.product form.cart .button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
	background: var(--gtgl-burgundy);
	color: #FFFFFF;
	font-family: var(--gtgl-body);
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: .05em;
	padding: 1rem 2rem;
	border: 0;
	border-radius: var(--gtgl-radius);
	line-height: 1;
	transition: background-color .2s var(--gtgl-ease), transform .2s var(--gtgl-ease);
}
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce #respond input#submit:hover {
	background: var(--gtgl-burgundy-lt);
	color: #FFFFFF;
	transform: translateY(-1px);
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--gtgl-burgundy);
	color: #FFFFFF;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--gtgl-burgundy-lt); }

/* Delivery reassurance */
.gtgl-delivery {
	background: var(--gtgl-paper-2);
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.5rem;
}
.gtgl-delivery p {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	font-size: .9rem;
	line-height: 1.6;
	color: var(--gtgl-ink-soft);
	margin: 0 0 .7rem;
}
.gtgl-delivery p:last-child { margin-bottom: 0; }
.gtgl-delivery svg { flex: 0 0 auto; color: var(--gtgl-gold-deco); margin-top: .18rem; }
.gtgl-delivery__pay {
	padding-top: .7rem;
	border-top: 1px solid var(--gtgl-rule);
	font-size: .8rem !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--gtgl-ink-faint) !important;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 3rem 0 0;
	border-bottom: 1px solid var(--gtgl-rule);
	display: flex;
	gap: 2rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--gtgl-body);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gtgl-ink-faint);
	padding: 1rem 0;
	display: block;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--gtgl-navy);
	border-bottom-color: var(--gtgl-gold-deco);
}
.woocommerce div.product .woocommerce-tabs .panel {
	padding-top: 2rem;
	max-width: var(--gtgl-measure);
	font-size: 1.05rem;
	line-height: 1.8;
}
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.6rem; }

/* Related products */
.woocommerce .related > h2, .woocommerce .up-sells > h2, .woocommerce .cross-sells > h2 {
	font-size: 1.8rem;
	margin: 4rem 0 2rem;
	padding-top: 3rem;
	border-top: 1px solid var(--gtgl-rule);
}

/* --- Cart, checkout, account --- */

.woocommerce table.shop_table {
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	border-collapse: separate;
	font-size: .95rem;
}
.woocommerce table.shop_table th {
	font-family: var(--gtgl-body);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gtgl-ink-faint);
	background: var(--gtgl-paper-2);
}
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: 1rem; }
.woocommerce-cart table.cart img { width: 64px; border-radius: 2px; box-shadow: var(--gtgl-shadow-sm); }

.woocommerce-checkout h3, .woocommerce-cart h2, .woocommerce-account h2 {
	font-size: 1.5rem;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--gtgl-rule);
	margin-bottom: 1.5rem;
}
.woocommerce form .form-row label {
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--gtgl-ink-soft);
	margin-bottom: .4rem;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	font-family: var(--gtgl-body);
	font-size: 1rem;
	padding: .8rem 1rem;
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	background: #FFF;
	color: var(--gtgl-ink);
	height: auto;
	line-height: 1.5;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus { border-color: var(--gtgl-gold-deco); }
.woocommerce form .form-row .description { font-size: .82rem; color: var(--gtgl-ink-faint); margin-top: .4rem; }

#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment {
	background: var(--gtgl-paper-2);
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--gtgl-rule); padding: 1.25rem; }
.woocommerce-checkout #payment ul.payment_methods li { margin-bottom: .5rem; }
.woocommerce-checkout #payment ul.payment_methods label {
	font-family: var(--gtgl-display);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--gtgl-navy);
	text-transform: none;
	letter-spacing: 0;
}
.woocommerce-checkout #payment div.payment_box {
	background: #FFF;
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	font-size: .9rem;
	color: var(--gtgl-ink-soft);
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #FFF; }

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
	border-top: 0;
	border-left: 3px solid var(--gtgl-gold-deco);
	background: var(--gtgl-paper-2);
	border-radius: 0 var(--gtgl-radius) var(--gtgl-radius) 0;
	font-size: .95rem;
	color: var(--gtgl-ink);
}
.woocommerce .woocommerce-error { border-left-color: var(--gtgl-burgundy); }
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before { color: var(--gtgl-gold-deco); }
.woocommerce .woocommerce-error::before { color: var(--gtgl-burgundy); }

/* Downloads table — the thing a buyer comes back for */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: .7rem 0;
	border-bottom: 1px solid var(--gtgl-rule);
	font-size: .82rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--gtgl-ink-soft);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--gtgl-burgundy); font-weight: 600; }

.woocommerce .woocommerce-order-details, .woocommerce .woocommerce-customer-details { margin-top: 2rem; }

/* --- Cart and Checkout BLOCKS ---
   WooCommerce 8+ builds the cart and checkout pages from blocks, which share
   almost no markup with the shortcode styled above: none of .shop_table,
   .form-row or #payment appears. These pages are also plain Pages, so
   page.php renders them and the block stylesheet supplies the layout. What
   follows only recolours and re-types that layout to match the theme — it
   deliberately does not fight the block's own grid, because the checkout is
   the one page where a CSS argument costs real money.
   Both sets are kept: the store may end up back on the shortcode if a
   payment gateway turns out to have no block support. */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { --gtgl-blk-gap: 1.6rem; }

/* Section headings */
.wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title {
	font-family: var(--gtgl-display);
	color: var(--gtgl-navy);
	letter-spacing: 0;
}
.wc-block-components-checkout-step__title { font-size: 1.35rem; font-weight: 600; }
.wc-block-components-checkout-step__description { color: var(--gtgl-ink-faint); font-size: .9rem; }

/* Step numbers */
.wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__title::before {
	background: var(--gtgl-navy);
	color: #FFF;
	font-family: var(--gtgl-body);
	font-weight: 600;
}

/* Inputs — match the classic form controls above.
   The .wc-block-components-form prefix is not decoration: WooCommerce's own
   rule is .wc-block-components-form .wc-block-components-text-input
   input[type="email"], and without matching that specificity exactly this
   block loses and the fields keep WooCommerce's default grey border. */
.wc-block-components-form .wc-block-components-text-input input[type="text"],
.wc-block-components-form .wc-block-components-text-input input[type="email"],
.wc-block-components-form .wc-block-components-text-input input[type="tel"],
.wc-block-components-form .wc-block-components-text-input input[type="number"],
.wc-block-components-form .wc-block-components-textarea,
.wc-block-components-form .wc-blocks-components-select__container,
.wc-block-components-form .wc-block-components-combobox-control input.components-combobox-control__input {
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
	background: #FFF;
	color: var(--gtgl-ink);
	font-family: var(--gtgl-body);
}
.wc-block-components-form .wc-block-components-text-input input[type="text"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="email"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="tel"]:focus,
.wc-block-components-form .wc-block-components-text-input input[type="number"]:focus,
.wc-block-components-form .wc-block-components-textarea:focus,
.wc-block-components-form .wc-blocks-components-select__select:focus {
	border-color: var(--gtgl-gold-deco);
	outline: 2px solid transparent;
	box-shadow: 0 0 0 1px var(--gtgl-gold-deco);
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label { color: var(--gtgl-ink-faint); font-family: var(--gtgl-body); }

/* Buttons — reuse the theme's button colours */
.wc-block-components-button:not(.is-link) {
	background: var(--gtgl-burgundy);
	border-radius: var(--gtgl-radius);
	font-family: var(--gtgl-body);
	font-weight: 600;
	letter-spacing: .02em;
}
.wc-block-components-button:not(.is-link):hover { background: var(--gtgl-burgundy-lt); }
.wc-block-components-button.is-link { color: var(--gtgl-burgundy); }

/* Panels: order summary, totals, payment methods */
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__totals-title + .wc-block-components-totals-wrapper,
.wc-block-components-sidebar .wc-block-components-panel {
	background: var(--gtgl-paper-2);
	border: 1px solid var(--gtgl-rule);
	border-radius: var(--gtgl-radius);
}
.wc-block-components-totals-item__label { color: var(--gtgl-ink-soft); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--gtgl-display);
	color: var(--gtgl-navy);
}
.wc-block-components-radio-control__option { border-color: var(--gtgl-rule); }
.wc-block-components-radio-control__label { color: var(--gtgl-ink); font-weight: 600; }

/* Product rows in the summary — small covers, same treatment as elsewhere */
.wc-block-components-order-summary-item__image img,
.wc-block-cart-item__image img { border-radius: 2px; box-shadow: var(--gtgl-shadow-sm); }
.wc-block-components-product-name { font-family: var(--gtgl-display); color: var(--gtgl-navy); text-decoration: none; }

/* Notices */
.wc-block-components-notice-banner {
	border-radius: var(--gtgl-radius);
	font-size: .95rem;
}
.wc-block-components-notice-banner.is-error { border-color: var(--gtgl-burgundy); }

/* The consent and terms checkboxes. These carry legal weight, so they get a
   little more room and a real focus ring rather than the browser default. */
.wc-block-checkout__terms,
.wc-block-components-checkbox {
	font-size: .92rem;
	line-height: 1.55;
	color: var(--gtgl-ink-soft);
}
.wc-block-components-checkbox .wc-block-components-checkbox__input:focus-visible {
	outline: 2px solid var(--gtgl-gold-deco);
	outline-offset: 2px;
}
.wc-block-components-checkbox__label a { color: var(--gtgl-burgundy); }

/* Classic-checkout consent row, for the shortcode fallback */
.gtgl-consent { margin-top: 1rem; font-size: .92rem; line-height: 1.55; }
.gtgl-consent label { text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; font-size: .92rem !important; color: var(--gtgl-ink-soft) !important; }
.gtgl-consent .required { color: var(--gtgl-burgundy); }

/* ── Editor colour palette ─────────────────────────────────────────────────
   WordPress builds these class names from the slugs registered in
   functions.php but does not write the rules, so they have to live here.
   Without them, a colour picked in the block editor previews correctly and
   then does nothing at all on the published page. */
.has-gtgl-navy-color  { color: var(--gtgl-navy); }
.has-gtgl-blue-color  { color: var(--gtgl-burgundy); }
.has-gtgl-gold-color  { color: var(--gtgl-gold); }
.has-gtgl-ink-color   { color: var(--gtgl-ink); }
.has-gtgl-paper-color { color: var(--gtgl-paper-2); }
.has-gtgl-white-color { color: #FFF; }

.has-gtgl-navy-background-color  { background-color: var(--gtgl-navy); }
.has-gtgl-blue-background-color  { background-color: var(--gtgl-burgundy); }
.has-gtgl-gold-background-color  { background-color: var(--gtgl-gold); }
.has-gtgl-ink-background-color   { background-color: var(--gtgl-ink); }
.has-gtgl-paper-background-color { background-color: var(--gtgl-paper-2); }
.has-gtgl-white-background-color { background-color: #FFF; }

/* The four dark grounds need light text, or a coloured block is unreadable.
   White clears AA on all four (gold is the tightest at 5.4:1); the theme's
   light gold would have come in at 2.9:1 on gold and 4.1:1 on royal blue,
   so links here are white and lean on the underline instead of colour. */
.has-gtgl-navy-background-color,
.has-gtgl-blue-background-color,
.has-gtgl-gold-background-color,
.has-gtgl-ink-background-color { color: #FFF; }
.has-gtgl-navy-background-color a,
.has-gtgl-blue-background-color a,
.has-gtgl-gold-background-color a,
.has-gtgl-ink-background-color a { color: #FFF; text-decoration: underline; }

/* ── Social links (footer) ─────────────────────────────────────────────── */
.gtgl-social {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
}
.gtgl-social li { margin: 0; }
.gtgl-social a {
	width: 2.3rem;
	height: 2.3rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid rgba(240, 180, 41, .3);
	color: var(--gtgl-gold-lt);
	text-decoration: none;
	transition: background-color .2s var(--gtgl-ease), border-color .2s var(--gtgl-ease), transform .2s var(--gtgl-ease);
}
.gtgl-social a:hover {
	background: rgba(240, 180, 41, .14);
	border-color: var(--gtgl-gold-lt);
	color: #FFE9B8;
	transform: translateY(-2px);
	text-decoration: none;
}

/* ── Product content note ──────────────────────────────────────────────── */
.gtgl-content-note {
	background: #FFF8E6;
	border: 1px solid var(--gtgl-gold-deco);
	border-left-width: 3px;
	border-radius: 0 var(--gtgl-radius) var(--gtgl-radius) 0;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}
.gtgl-content-note__label {
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--gtgl-gold);
	margin: 0 0 .4rem !important;
}
.gtgl-content-note p {
	font-size: .9rem;
	line-height: 1.6;
	color: #4A3A12;
	margin: 0;
}
