/* ================================================
   Tony Rei – Main Stylesheet  v1.0.0
   ================================================ */

/* ── Google Fonts ────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&display=swap');

/* ── Design Tokens ───────────────────────────────────── */
:root {
	/* Site colors */
	--tr-bg:          #faf9f7;
	--tr-fg:          #1a1714;
	--tr-surface:     #f5f3ef;
	--tr-surface-el:  #fffefb;
	--tr-footer-bg:   #f0ede8;

	/* Gold scale */
	--tr-gold-50:     #fdfbf5;
	--tr-gold-100:    #f9f0d9;
	--tr-gold-200:    #f2e0b3;
	--tr-gold-300:    #e8c97d;
	--tr-gold-400:    #ddb347;
	--tr-gold-500:    #d4a84b;
	--tr-gold-600:    #c9a227;
	--tr-gold-700:    #b8860b;
	--tr-gold-800:    #946b08;
	--tr-gold-900:    #63460f;
	--tr-gold-950:    #3a2808;

	/* Semantic */
	--tr-gold:        var(--tr-gold-500);
	--tr-gold-dk:     var(--tr-gold-700);
	--tr-gold-lt:     var(--tr-gold-300);

	/* Gradients */
	--tr-gold-gradient:   linear-gradient(135deg, #f2e0b3 0%, #d4a84b 30%, #c9a227 50%, #b8860b 70%, #946b08 100%);
	--tr-gold-gradient-h: linear-gradient(90deg, #d4a84b, #b8860b);

	/* Glow */
	--tr-glow: 0 0 40px rgba(201, 162, 39, 0.25);

	/* Typography */
	--tr-font-body:    'Inter', system-ui, -apple-system, sans-serif;
	--tr-font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;

	/* Layout */
	--tr-container:    1400px;
	--tr-container-px: 1.5rem;
	--tr-header-h:     5rem;

	/* Borders */
	--tr-border-light: rgba(242, 224, 179, 0.4);
	--tr-border-gold:  rgba(212, 168, 75, 0.35);
	--tr-border-dark:  rgba(26, 23, 20, 0.1);

	/* Border-radius */
	--tr-r:    4px;
	--tr-r-md: 8px;
	--tr-r-lg: 12px;
	--tr-r-xl: 16px;
	--tr-r-2xl: 24px;
	--tr-r-full: 9999px;

	/* Shadows */
	--tr-shadow-sm:  0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
	--tr-shadow-md:  0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(0, 0, 0, 0.05);
	--tr-shadow-lg:  0 8px 28px rgba(0, 0, 0, 0.10), 0 4px 12px rgba(0, 0, 0, 0.06);
	--tr-shadow-xl:  0 16px 48px rgba(0, 0, 0, 0.12), 0 8px 20px rgba(0, 0, 0, 0.07);

	/* Text */
	--tr-muted:    #6b6b6b;
	--tr-muted-lt: #9b9b9b;

	/* Timing */
	--tr-ease:      0.25s ease;
	--tr-ease-slow: 0.4s  ease;
	--tr-ease-in:   0.2s  cubic-bezier(0.4, 0, 1, 1);
	--tr-ease-out:  0.3s  cubic-bezier(0, 0, 0.2, 1);

	/* Z-index */
	--tr-z-header:  100;
	--tr-z-mobile:  200;

	/* Override plugin CSS variables to match main design */
	--tr-gold-dk:   var(--tr-gold-700);
	--tr-cream:     var(--tr-bg);
	--tr-cream-dk:  var(--tr-surface);
	--tr-text:      var(--tr-fg);
	--tr-border:    var(--tr-border-light);
	--tr-shadow:    var(--tr-shadow-md);
	--tr-radius:    var(--tr-r);
	--tr-max-w:     var(--tr-container);
}

/* ── Reset ───────────────────────────────────────────── */
*, *::before, *::after   { box-sizing: border-box; margin: 0; padding: 0; }
html                     { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body                     { background: var(--tr-bg); color: var(--tr-fg); font-family: var(--tr-font-body); font-size: 1rem; line-height: 1.75; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, picture, video, svg { max-width: 100%; height: auto; display: block; }
input, button, textarea  { font-family: inherit; font-size: inherit; }
ul, ol                   { list-style: none; }
a                        { color: inherit; text-decoration: none; }

/* ── Typography base ─────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--tr-font-display);
	line-height: 1.2;
	color:       var(--tr-fg);
	font-weight: 700;
}

/* ── Skip link ───────────────────────────────────────── */
.skip-link {
	position:    absolute;
	top:         -100%;
	left:        1rem;
	z-index:     9999;
	padding:     0.75rem 1.5rem;
	background:  var(--tr-gold-gradient);
	color:       #fff;
	font-weight: 600;
	border-radius: var(--tr-r-full);
	transition:  top 0.2s;
}
.skip-link:focus { top: 1rem; }

/* ── Container ───────────────────────────────────────── */
.tr-container,
.container-custom {
	max-width: var(--tr-container);
	margin:    0 auto;
	padding:   0 var(--tr-container-px);
}

/* ── Gold line / separator ───────────────────────────── */
.line-gold,
.tr-gold-line {
	display:       block;
	width:         52px;
	height:        3px;
	background:    var(--tr-gold-gradient-h);
	border-radius: 2px;
	border:        none;
}

/* ── Buttons ─────────────────────────────────────────── */
.tr-btn {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	gap:             0.5rem;
	padding:         0.6875rem 1.625rem;
	border-radius:   var(--tr-r-full);
	font-family:     var(--tr-font-display);
	font-size:       0.6875rem;   /* 11px */
	font-weight:     600;
	letter-spacing:  0.15em;
	text-transform:  uppercase;
	text-decoration: none;
	border:          none;
	cursor:          pointer;
	transition:      opacity var(--tr-ease), box-shadow var(--tr-ease), transform var(--tr-ease), color var(--tr-ease);
	white-space:     nowrap;
	line-height:     1;
}
.tr-btn--gold {
	background: var(--tr-gold-gradient);
	color:      #fff !important;
	box-shadow: 0 2px 10px rgba(180, 130, 10, 0.3);
}
.tr-btn--gold:hover {
	opacity:    0.9;
	box-shadow: 0 4px 20px rgba(180, 130, 10, 0.4);
	transform:  translateY(-1px);
}
.tr-btn--gold:active { transform: translateY(0); }

.tr-btn--outline {
	background:   transparent;
	color:        var(--tr-gold-600);
	border:       1.5px solid var(--tr-gold-500);
}
.tr-btn--outline:hover {
	background:   var(--tr-gold-gradient);
	color:        #fff;
	border-color: transparent;
}

.tr-btn--full  { width: 100%; }
.tr-btn--lg    { padding: 0.875rem 2rem; font-size: 0.75rem; }

/* ══════════════════════════════════════════════
   HEADER
   ══════════════════════════════════════════════ */
.tr-header {
	position:              sticky;
	top:                   0;
	z-index:               var(--tr-z-header);
	height:                var(--tr-header-h);
	background:            rgba(250, 249, 247, 0.95);
	backdrop-filter:       blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom:         1px solid var(--tr-border-light);
	transition:            box-shadow var(--tr-ease-slow);
	will-change:           transform;
}
.tr-header.is-scrolled {
	box-shadow: 0 2px 20px rgba(26, 23, 20, 0.07);
}

.tr-header__inner {
	height:          100%;
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             1rem;
	max-width:       var(--tr-container);
	margin:          0 auto;
	padding:         0 var(--tr-container-px);
}

/* Logo */
.tr-header__logo {
	flex-shrink:     0;
	display:         flex;
	align-items:     center;
	text-decoration: none;
}
.tr-header__logo img,
.tr-header__logo .custom-logo {
	height:     auto;
	max-height: 48px;
	width:      auto;
	max-width:  200px;
	display:    block;
}
.tr-header__logo-text {
	font-family:    var(--tr-font-display);
	font-size:      1.375rem;
	font-weight:    700;
	color:          var(--tr-gold-800);
	letter-spacing: 0.04em;
}

/* ── Desktop Nav ─────────────────────────────────────── */
.tr-header__nav {
	flex:    1;
	display: flex;
	justify-content: center;
	overflow: hidden;
}
.tr-nav {
	display:     flex;
	align-items: center;
	gap:         0;
	flex-wrap:   nowrap;
}
.tr-nav__item { position: relative; }

/* Link style */
.tr-nav__link,
.tr-nav__dropdown-toggle {
	display:         block;
	padding:         0.5rem 0.5625rem;
	font-family:     var(--tr-font-display);
	font-size:       0.8125rem;
	font-weight:     500;
	letter-spacing:  0.09em;
	text-transform:  uppercase;
	color:           var(--tr-fg);
	text-decoration: none;
	background:      transparent;
	border:          none;
	cursor:          pointer;
	white-space:     nowrap;
	position:        relative;
	transition:      color var(--tr-ease);
	line-height:     1;
}
.tr-nav__dropdown-toggle {
	display:     flex;
	align-items: center;
	gap:         0.3rem;
}

/* Underline indicator */
.tr-nav__link::after,
.tr-nav__dropdown-toggle::after {
	content:          '';
	position:         absolute;
	bottom:           1px;
	left:             0.5625rem;
	right:            0.5625rem;
	height:           1.5px;
	background:       var(--tr-gold-gradient-h);
	transform:        scaleX(0);
	transform-origin: center;
	transition:       transform var(--tr-ease);
	border-radius:    1px;
}
.tr-nav__dropdown-toggle::after { right: 1.5rem; }

.tr-nav__link:hover,
.tr-nav__link.is-active,
.current-menu-item    > .tr-nav__link,
.current-menu-ancestor > .tr-nav__link {
	color: var(--tr-gold-700);
}
.tr-nav__dropdown-toggle:hover,
.tr-nav__dropdown-toggle.is-active,
.tr-nav__dropdown-toggle[aria-expanded="true"],
.current-menu-item    > .tr-nav__dropdown-toggle,
.current-menu-ancestor > .tr-nav__dropdown-toggle {
	color: var(--tr-gold-700);
}

.tr-nav__link:hover::after,
.tr-nav__link.is-active::after,
.current-menu-item > .tr-nav__link::after,
.tr-nav__dropdown-toggle:hover::after,
.tr-nav__dropdown-toggle[aria-expanded="true"]::after {
	transform: scaleX(1);
}

.tr-nav__dropdown-toggle svg {
	flex-shrink: 0;
	transition:  transform 0.2s ease;
}
.tr-nav__dropdown-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

/* Dropdown panel */
.tr-nav__dropdown {
	position:         absolute;
	top:              calc(100% + 0.625rem);
	left:             50%;
	transform:        translateX(-50%) translateY(-6px);
	min-width:        210px;
	background:       var(--tr-surface-el);
	border:           1px solid var(--tr-border-gold);
	border-radius:    var(--tr-r-lg);
	box-shadow:       var(--tr-shadow-xl), var(--tr-glow);
	padding:          0.375rem;
	opacity:          0;
	visibility:       hidden;
	transition:       opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
	pointer-events:   none;
}
/* Arrow */
.tr-nav__dropdown::before {
	content:    '';
	position:   absolute;
	top:        -6px;
	left:       50%;
	transform:  translateX(-50%);
	width:      12px;
	height:     6px;
	background: var(--tr-surface-el);
	clip-path:  polygon(0 100%, 50% 0%, 100% 100%);
}

.menu-item-has-children:hover > .tr-nav__dropdown,
.menu-item-has-children:focus-within > .tr-nav__dropdown {
	opacity:        1;
	visibility:     visible;
	transform:      translateX(-50%) translateY(0);
	pointer-events: auto;
}

.tr-nav__dropdown-item { position: relative; }
.tr-nav__dropdown-link {
	display:         block;
	padding:         0.625rem 0.875rem;
	font-family:     var(--tr-font-display);
	font-size:       0.875rem;
	font-weight:     500;
	color:           var(--tr-fg);
	text-decoration: none;
	border-radius:   var(--tr-r-md);
	transition:      background var(--tr-ease), color var(--tr-ease);
	white-space:     nowrap;
}
.tr-nav__dropdown-link:hover {
	background: var(--tr-gold-100);
	color:      var(--tr-gold-800);
}

/* ── Header actions ──────────────────────────────────── */
.tr-header__actions {
	flex-shrink: 0;
	display:     flex;
	align-items: center;
	gap:         0.625rem;
}
.tr-header__social {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           32px;
	height:          32px;
	border-radius:   50%;
	color:           var(--tr-muted);
	text-decoration: none;
	transition:      color var(--tr-ease), background var(--tr-ease);
}
.tr-header__social:hover {
	color:      var(--tr-gold-700);
	background: var(--tr-gold-100);
}
.tr-header__divider {
	width:       1px;
	height:      24px;
	background:  var(--tr-border-gold);
	flex-shrink: 0;
}

/* ── Hamburger ───────────────────────────────────────── */
.tr-hamburger {
	display:         none;
	flex-direction:  column;
	justify-content: center;
	align-items:     center;
	gap:             5px;
	width:           40px;
	height:          40px;
	background:      transparent;
	border:          none;
	cursor:          pointer;
	padding:         8px;
	flex-shrink:     0;
	border-radius:   var(--tr-r-md);
	transition:      background var(--tr-ease);
}
.tr-hamburger:hover { background: var(--tr-gold-100); }
.tr-hamburger__line {
	display:       block;
	width:         22px;
	height:        1.5px;
	background:    var(--tr-fg);
	border-radius: 2px;
	transition:    transform 0.3s ease, opacity 0.3s ease, width 0.3s ease;
}
.tr-hamburger[aria-expanded="true"] .tr-hamburger__line:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.tr-hamburger[aria-expanded="true"] .tr-hamburger__line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.tr-hamburger[aria-expanded="true"] .tr-hamburger__line:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ══════════════════════════════════════════════
   MOBILE MENU
   ══════════════════════════════════════════════ */
.tr-mobile-menu {
	position:       fixed;
	inset:          0;
	z-index:        var(--tr-z-mobile);
	visibility:     hidden;
	pointer-events: none;
}
.tr-mobile-menu.is-open {
	visibility:     visible;
	pointer-events: auto;
}

.tr-mobile-menu__overlay {
	position:          absolute;
	inset:             0;
	background:        rgba(26, 23, 20, 0.5);
	backdrop-filter:   blur(3px);
	-webkit-backdrop-filter: blur(3px);
	opacity:           0;
	transition:        opacity 0.3s ease;
}
.tr-mobile-menu.is-open .tr-mobile-menu__overlay { opacity: 1; }

.tr-mobile-menu__panel {
	position:       absolute;
	top:            0;
	right:          0;
	bottom:         0;
	width:          78%;
	max-width:      320px;
	background:     var(--tr-surface-el);
	display:        flex;
	flex-direction: column;
	transform:      translateX(100%);
	transition:     transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
	overflow-y:     auto;
	box-shadow:     -8px 0 32px rgba(0, 0, 0, 0.12);
}
.tr-mobile-menu.is-open .tr-mobile-menu__panel { transform: translateX(0); }

.tr-mobile-menu__header {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	padding:         1.125rem 1.375rem;
	border-bottom:   1px solid var(--tr-border-light);
	flex-shrink:     0;
}
.tr-mobile-menu__logo { text-decoration: none; }
.tr-mobile-menu__logo img,
.tr-mobile-menu__logo .custom-logo { height: 38px; width: auto; max-width: 160px; }
.tr-mobile-menu__logo .tr-header__logo-text { font-size: 1.125rem; }

.tr-mobile-menu__close {
	width:           36px;
	height:          36px;
	display:         flex;
	align-items:     center;
	justify-content: center;
	background:      transparent;
	border:          none;
	cursor:          pointer;
	color:           var(--tr-muted);
	border-radius:   50%;
	transition:      background var(--tr-ease), color var(--tr-ease);
}
.tr-mobile-menu__close:hover { background: var(--tr-gold-100); color: var(--tr-fg); }

.tr-mobile-menu__nav {
	flex:       1;
	padding:    0.5rem 0;
	overflow-y: auto;
}
.tr-mobile-nav { list-style: none; margin: 0; padding: 0; }
.tr-mobile-nav__link {
	display:         block;
	padding:         0.875rem 1.375rem;
	font-family:     var(--tr-font-display);
	font-size:       0.9375rem;
	font-weight:     500;
	letter-spacing:  0.03em;
	color:           var(--tr-fg);
	text-decoration: none;
	border-bottom:   1px solid var(--tr-border-light);
	transition:      color var(--tr-ease), background var(--tr-ease);
}
.tr-mobile-nav__link:hover,
.tr-mobile-nav__link.is-active {
	color:      var(--tr-gold-700);
	background: var(--tr-gold-50);
}

.tr-mobile-nav__toggle {
	width:           100%;
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	padding:         0.875rem 1.375rem;
	font-family:     var(--tr-font-display);
	font-size:       0.9375rem;
	font-weight:     500;
	letter-spacing:  0.03em;
	color:           var(--tr-fg);
	background:      transparent;
	border:          none;
	border-bottom:   1px solid var(--tr-border-light);
	cursor:          pointer;
	text-align:      left;
	transition:      color var(--tr-ease), background var(--tr-ease);
}
.tr-mobile-nav__toggle:hover { color: var(--tr-gold-700); background: var(--tr-gold-50); }
.tr-mobile-nav__toggle.is-active { color: var(--tr-gold-700); }
.tr-mobile-nav__toggle svg { flex-shrink: 0; transition: transform 0.25s ease; }
.tr-mobile-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.tr-mobile-nav__sub {
	list-style:  none;
	max-height:  0;
	overflow:    hidden;
	transition:  max-height 0.3s ease;
	background:  var(--tr-gold-50);
}
.tr-mobile-nav__sub.is-open { max-height: 600px; }
.tr-mobile-nav__sub-link {
	display:         block;
	padding:         0.75rem 1.375rem 0.75rem 2rem;
	font-size:       0.9rem;
	color:           var(--tr-fg);
	text-decoration: none;
	border-bottom:   1px solid var(--tr-border-light);
	transition:      color var(--tr-ease);
}
.tr-mobile-nav__sub-link:hover { color: var(--tr-gold-700); }

.tr-mobile-menu__footer {
	padding:    1.375rem;
	border-top: 1px solid var(--tr-border-light);
	flex-shrink: 0;
}
.tr-mobile-menu__social {
	display:         flex;
	gap:             0.625rem;
	justify-content: center;
	margin-top:      1rem;
}
.tr-mobile-menu__social a {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           36px;
	height:          36px;
	border-radius:   50%;
	background:      var(--tr-gold-100);
	color:           var(--tr-gold-700);
	transition:      background var(--tr-ease);
}
.tr-mobile-menu__social a:hover { background: var(--tr-gold-200); }

/* ══════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════ */
.tr-footer {
	background:  var(--tr-footer-bg);
	border-top:  1px solid rgba(212, 168, 75, 0.3);
}

.tr-footer__main {
	display:               grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap:                   2.5rem;
	padding:               3.5rem 0 3rem;
}

.tr-footer__brand { }
.tr-footer__logo-link {
	display:         inline-flex;
	align-items:     center;
	text-decoration: none;
}
.tr-footer__logo-link img,
.tr-footer__logo-link .custom-logo {
	height:    48px;
	width:     auto;
	max-width: 200px;
}
.tr-footer__logo-text {
	font-family:    var(--tr-font-display);
	font-size:      1.25rem;
	font-weight:    700;
	color:          var(--tr-gold-800);
	letter-spacing: 0.04em;
}
.tr-footer__tagline {
	font-size:   0.875rem;
	color:       var(--tr-muted);
	line-height: 1.65;
	margin-top:  0.75rem;
	max-width:   260px;
}
.tr-footer__social {
	display:    flex;
	gap:        0.5rem;
	margin-top: 1.375rem;
}
.tr-footer__social-link {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           36px;
	height:          36px;
	border-radius:   50%;
	border:          1.5px solid rgba(212, 168, 75, 0.4);
	color:           var(--tr-muted);
	text-decoration: none;
	transition:      border-color var(--tr-ease), color var(--tr-ease), background var(--tr-ease);
}
.tr-footer__social-link:hover {
	border-color: var(--tr-gold-500);
	color:        var(--tr-gold-700);
	background:   var(--tr-gold-50);
}

.tr-footer__col-title {
	font-family:    var(--tr-font-display);
	font-size:      0.8125rem;
	font-weight:    600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color:          var(--tr-gold-700);
	margin-bottom:  1.125rem;
}
.tr-footer__nav {
	display:        flex;
	flex-direction: column;
	gap:            0.625rem;
}
.tr-footer__nav a {
	font-size:       0.9rem;
	color:           var(--tr-muted);
	text-decoration: none;
	transition:      color var(--tr-ease);
}
.tr-footer__nav a:hover { color: var(--tr-gold-700); }

.tr-footer__bottom {
	border-top: 1px solid rgba(212, 168, 75, 0.2);
	padding:    1.375rem 0;
}
.tr-footer__bottom-inner {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	flex-wrap:       wrap;
	gap:             0.75rem;
}
.tr-footer__copy,
.tr-footer__legal a,
.tr-footer__nextpuls {
	font-size:   0.8rem;
	color:       var(--tr-muted-lt);
	line-height: 1;
}
.tr-footer__legal {
	display: flex;
	gap:     1.5rem;
}
.tr-footer__legal a {
	text-decoration: none;
	transition:      color var(--tr-ease);
}
.tr-footer__legal a:hover { color: var(--tr-gold-600); }
.tr-footer__nextpuls {
	display:         flex;
	align-items:     center;
	gap:             0.375rem;
	text-decoration: none;
	transition:      color var(--tr-ease);
}
.tr-footer__nextpuls:hover { color: var(--tr-fg); }
.tr-footer__nextpuls svg { width: 14px; height: 14px; opacity: 0.5; }

/* ── Main wrapper ────────────────────────────────────── */
.tr-main { min-height: 60vh; }

/* ══════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════ */
.tr-hero {
	position:   relative;
	overflow:   hidden;
	background: var(--tr-fg);
}
.tr-hero--full {
	min-height:  90vh;
	display:     flex;
	align-items: center;
}
.tr-hero__bg-img {
	position:            absolute;
	inset:               0;
	background-size:     cover;
	background-position: center top;
	background-repeat:   no-repeat;
}
.tr-hero__bg-img::after {
	content:    '';
	position:   absolute;
	inset:      0;
	background: linear-gradient(
		to right,
		rgba(26, 23, 20, 0.75) 0%,
		rgba(26, 23, 20, 0.45) 55%,
		rgba(26, 23, 20, 0.15) 100%
	);
}
/* Gold glow overlay – decorative */
.tr-hero__bg-img::before {
	content:    '';
	position:   absolute;
	inset:      0;
	background: radial-gradient(ellipse 60% 60% at 70% 40%, rgba(212, 168, 75, 0.08), transparent);
	z-index:    1;
}

.tr-hero__content {
	position: relative;
	z-index:  2;
	padding:  6rem 0;
}
.tr-hero__eyebrow {
	display:        block;
	font-size:      0.6875rem;
	font-weight:    700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--tr-gold-400);
	margin-bottom:  1.25rem;
}
.tr-hero__title {
	font-family: var(--tr-font-display);
	font-size:   clamp(2.75rem, 7vw, 5.5rem);
	font-weight: 700;
	color:       #fff;
	line-height: 1.08;
	margin-bottom: 1.25rem;
	max-width:   760px;
}
.tr-hero__title em {
	font-style:  italic;
	color:       var(--tr-gold-300);
}
.tr-hero__subtitle {
	font-size:      0.875rem;
	font-weight:    500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color:          var(--tr-gold-400);
	margin-bottom:  1.25rem;
}
.tr-hero__desc {
	font-size:     1.0625rem;
	color:         rgba(255, 255, 255, 0.82);
	line-height:   1.75;
	max-width:     520px;
	margin-bottom: 2.5rem;
}
.tr-hero__cta {
	display:    flex;
	flex-wrap:  wrap;
	gap:        1rem;
	align-items: center;
}

/* ══════════════════════════════════════════════
   SECTIONS
   ══════════════════════════════════════════════ */
.tr-section       { padding: 5rem 0; }
.tr-section--sm   { padding: 3rem 0; }
.tr-section--lg   { padding: 7rem 0; }
.tr-section--bg   { background: var(--tr-surface); }
.tr-section--ft   { background: var(--tr-footer-bg); }
.tr-section--dark { background: var(--tr-fg); color: #fff; }

.tr-section__eyebrow {
	display:        block;
	font-size:      0.6875rem;
	font-weight:    700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--tr-gold-600);
	margin-bottom:  0.75rem;
}
.tr-section--dark .tr-section__eyebrow { color: var(--tr-gold-400); }

.tr-section__header { margin-bottom: 3rem; }

.tr-section__title {
	font-family: var(--tr-font-display);
	font-size:   clamp(1.875rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 1.15;
	margin-bottom: 1rem;
}
.tr-section__desc {
	font-size:   1rem;
	color:       var(--tr-muted);
	line-height: 1.75;
	max-width:   560px;
}

/* Two-column layout helper */
.tr-split {
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   4rem;
	align-items:           center;
}
.tr-split--reverse .tr-split__media { order: -1; }

.tr-split__text { }
.tr-split__media { }
.tr-split__media img {
	width:         100%;
	border-radius: var(--tr-r-xl);
	object-fit:    cover;
}

/* ══════════════════════════════════════════════
   CARDS – Generic
   ══════════════════════════════════════════════ */
.tr-card {
	background:    var(--tr-surface-el);
	border:        1px solid rgba(242, 224, 179, 0.2);
	border-radius: var(--tr-r-xl);
	overflow:      hidden;
	transition:    transform var(--tr-ease), box-shadow var(--tr-ease), border-color var(--tr-ease);
}
.tr-card:hover {
	transform:    translateY(-4px);
	box-shadow:   var(--tr-shadow-lg);
	border-color: rgba(212, 168, 75, 0.3);
}
.tr-card__img {
	width:      100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display:    block;
}
.tr-card__body { padding: 1.375rem 1.5rem 1.75rem; }
.tr-card__eyebrow {
	font-size:      0.7rem;
	font-weight:    700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color:          var(--tr-gold-600);
	margin-bottom:  0.5rem;
}
.tr-card__title {
	font-family:   var(--tr-font-display);
	font-size:     1.125rem;
	font-weight:   700;
	line-height:   1.3;
	margin-bottom: 0.625rem;
}
.tr-card__title a { text-decoration: none; color: var(--tr-fg); transition: color var(--tr-ease); }
.tr-card__title a:hover { color: var(--tr-gold-700); }
.tr-card__desc {
	font-size:   0.9rem;
	color:       var(--tr-muted);
	line-height: 1.65;
}

/* Programme card variant */
.tr-programme-card {
	display:        flex;
	gap:            1.5rem;
	align-items:    flex-start;
	padding:        1.5rem;
	border-radius:  var(--tr-r-lg);
	border:         1px solid var(--tr-border-light);
	background:     var(--tr-surface-el);
	transition:     border-color var(--tr-ease), box-shadow var(--tr-ease), background var(--tr-ease);
	text-decoration: none;
	color:          var(--tr-fg);
}
.tr-programme-card:hover {
	border-color: var(--tr-border-gold);
	box-shadow:   var(--tr-shadow-md);
	background:   var(--tr-gold-50);
}
.tr-programme-card__number {
	flex-shrink:    0;
	width:          2.5rem;
	height:         2.5rem;
	border-radius:  50%;
	background:     var(--tr-gold-gradient);
	color:          #fff;
	font-family:    var(--tr-font-display);
	font-size:      0.875rem;
	font-weight:    700;
	display:        flex;
	align-items:    center;
	justify-content: center;
}
.tr-programme-card__body { flex: 1; }
.tr-programme-card__title {
	font-family: var(--tr-font-display);
	font-size:   1rem;
	font-weight: 600;
	margin-bottom: 0.375rem;
}
.tr-programme-card__meta {
	font-size: 0.8125rem;
	color:     var(--tr-muted);
}
.tr-programme-card__arrow {
	flex-shrink: 0;
	color:       var(--tr-gold-500);
	margin-top:  0.2rem;
	transition:  transform var(--tr-ease);
}
.tr-programme-card:hover .tr-programme-card__arrow { transform: translateX(3px); }

/* ══════════════════════════════════════════════
   BREADCRUMB
   ══════════════════════════════════════════════ */
.tr-breadcrumb {
	padding:     0.875rem 0;
	border-bottom: 1px solid var(--tr-border-light);
	background:  var(--tr-surface);
}
.tr-breadcrumb__list {
	display:    flex;
	flex-wrap:  wrap;
	gap:        0;
	align-items: center;
}
.tr-breadcrumb__item {
	display:     flex;
	align-items: center;
	gap:         0.5rem;
	font-size:   0.825rem;
	color:       var(--tr-muted);
}
.tr-breadcrumb__item:not(:last-child)::after {
	content: '/';
	margin:  0 0.25rem;
	color:   var(--tr-muted-lt);
}
.tr-breadcrumb__item a { color: var(--tr-muted); transition: color var(--tr-ease); }
.tr-breadcrumb__item a:hover { color: var(--tr-gold-600); }
.tr-breadcrumb__item[aria-current] { color: var(--tr-fg); font-weight: 500; }

/* ══════════════════════════════════════════════
   PAGE HERO (for archive/static pages)
   ══════════════════════════════════════════════ */
.tr-page-hero {
	padding:    4rem 0 3.5rem;
	background: linear-gradient(140deg, var(--tr-bg) 60%, var(--tr-surface) 100%);
	border-bottom: 1px solid var(--tr-border-light);
}
.tr-page-hero__eyebrow {
	display:        block;
	font-size:      0.6875rem;
	font-weight:    700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--tr-gold-600);
	margin-bottom:  0.875rem;
}
.tr-page-hero__title {
	font-family:   var(--tr-font-display);
	font-size:     clamp(2.5rem, 6vw, 4.5rem);
	font-weight:   700;
	font-style:    italic;
	color:         var(--tr-gold-700);
	line-height:   1.05;
	margin-bottom: 1.125rem;
}
.tr-page-hero__desc {
	font-size:   1rem;
	color:       var(--tr-muted);
	line-height: 1.75;
	max-width:   560px;
	margin-bottom: 0;
}

/* ══════════════════════════════════════════════
   UTILITY
   ══════════════════════════════════════════════ */
.tr-text-center { text-align: center; }
.tr-text-right  { text-align: right; }
.tr-mt-auto     { margin-top: auto; }
.tr-sr-only     { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.tr-text-gold   { color: var(--tr-gold-600); }
.tr-text-muted  { color: var(--tr-muted); }

/* Aspect ratio helper */
.tr-ratio-16-9 { aspect-ratio: 16 / 9; overflow: hidden; }
.tr-ratio-4-3  { aspect-ratio: 4 / 3;  overflow: hidden; }
.tr-ratio-1-1  { aspect-ratio: 1 / 1;  overflow: hidden; }
.tr-ratio-16-9 img,
.tr-ratio-4-3 img,
.tr-ratio-1-1 img {
	width:      100%;
	height:     100%;
	object-fit: cover;
}

/* ══════════════════════════════════════════════
   WP CONTENT (entry-content)
   ══════════════════════════════════════════════ */
.entry-content {
	font-size:   1rem;
	line-height: 1.8;
	color:       var(--tr-fg);
}
.entry-content > * + * { margin-top: 1.4em; }
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 { margin-top: 2em; margin-bottom: 0.6em; }
.entry-content p   { margin-bottom: 0; }
.entry-content ul,
.entry-content ol  { padding-left: 1.5rem; }
.entry-content ul  { list-style: disc; }
.entry-content ol  { list-style: decimal; }
.entry-content li  { margin-bottom: 0.35em; }
.entry-content a   { color: var(--tr-gold-700); text-decoration: underline; text-underline-offset: 2px; transition: color var(--tr-ease); }
.entry-content a:hover { color: var(--tr-gold-600); }
.entry-content blockquote {
	border-left:   3px solid var(--tr-gold-500);
	padding:       1rem 1.5rem;
	margin:        1.5rem 0;
	background:    var(--tr-gold-50);
	border-radius: 0 var(--tr-r-md) var(--tr-r-md) 0;
	font-style:    italic;
	color:         var(--tr-muted);
}
.entry-content img {
	border-radius: var(--tr-r-lg);
	margin:        1.5rem 0;
}
.entry-content hr {
	border:     none;
	border-top: 1px solid var(--tr-border-light);
	margin:     2rem 0;
}
.entry-content figure { margin: 1.5rem 0; }
.entry-content figcaption {
	font-size:  0.875rem;
	color:      var(--tr-muted);
	text-align: center;
	margin-top: 0.5rem;
}
.entry-content pre {
	background:    var(--tr-surface);
	border:        1px solid var(--tr-border-light);
	border-radius: var(--tr-r-md);
	padding:       1.25rem 1.5rem;
	overflow-x:    auto;
	font-size:     0.875rem;
}

/* ══════════════════════════════════════════════
   PAGINATION
   ══════════════════════════════════════════════ */
.tr-pagination {
	margin-top:      3rem;
	display:         flex;
	justify-content: center;
	flex-wrap:       wrap;
	gap:             0.5rem;
}
.tr-pagination .page-numbers {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	min-width:       2.375rem;
	height:          2.375rem;
	padding:         0 0.75rem;
	border:          1.5px solid var(--tr-gold-500);
	border-radius:   var(--tr-r-md);
	color:           var(--tr-gold-600);
	text-decoration: none;
	font-weight:     600;
	font-size:       0.875rem;
	transition:      background var(--tr-ease), color var(--tr-ease), border-color var(--tr-ease);
}
.tr-pagination .page-numbers.current,
.tr-pagination .page-numbers:hover {
	background:  var(--tr-gold-gradient);
	color:       #fff;
	border-color: transparent;
}
.tr-pagination .page-numbers.dots {
	border:  none;
	cursor:  default;
	color:   var(--tr-muted-lt);
	background: transparent !important;
}

/* ══════════════════════════════════════════════
   GENERIC PAGE TEMPLATE
   ══════════════════════════════════════════════ */
.tr-page-content {
	padding:   5rem 0;
	max-width: 800px;
}
.tr-page-content__title {
	font-family:   var(--tr-font-display);
	font-size:     clamp(2rem, 4vw, 3rem);
	font-weight:   700;
	margin-bottom: 2.5rem;
}

/* ══════════════════════════════════════════════
   404
   ══════════════════════════════════════════════ */
.tr-404 {
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	justify-content: center;
	min-height:      70vh;
	text-align:      center;
	padding:         4rem 1.5rem;
}
.tr-404__code {
	font-family:    var(--tr-font-display);
	font-size:      clamp(5rem, 15vw, 10rem);
	font-weight:    700;
	font-style:     italic;
	line-height:    1;
	background:     var(--tr-gold-gradient);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom:  1rem;
}
.tr-404__title { font-size: clamp(1.5rem, 3vw, 2.25rem); margin-bottom: 1rem; }
.tr-404__desc  { font-size: 1rem; color: var(--tr-muted); margin-bottom: 2.5rem; max-width: 480px; }

/* ══════════════════════════════════════════════
   FRONT PAGE SECTIONS
   ══════════════════════════════════════════════ */
/* Welcome section */
.tr-welcome { padding: 6rem 0; }
.tr-welcome__video-wrap {
	position:      relative;
	border-radius: var(--tr-r-2xl);
	overflow:      hidden;
	background:    var(--tr-fg);
	box-shadow:    var(--tr-shadow-xl);
}
.tr-welcome__video-wrap iframe {
	display: block;
	width:   100%;
	aspect-ratio: 16 / 9;
	border:  none;
}
/* Gold glow around video */
.tr-welcome__video-wrap::before {
	content:       '';
	position:      absolute;
	inset:         -2px;
	border-radius: var(--tr-r-2xl);
	padding:       2px;
	background:    var(--tr-gold-gradient);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
	z-index:        1;
}

/* Programmes section */
.tr-programmes { padding: 6rem 0; background: var(--tr-surface); }
.tr-programmes__grid {
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   1rem;
	margin-top:            2rem;
}

/* News preview */
.tr-news-preview { padding: 6rem 0; }
.tr-news-preview__grid {
	display:               grid;
	grid-template-columns: repeat(3, 1fr);
	gap:                   1.75rem;
	margin-top:            2rem;
}
.tr-news-preview__cta {
	text-align: center;
	margin-top: 3rem;
}

/* ══════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════ */
@media (max-width: 1280px) {
	.tr-footer__main { grid-template-columns: 1fr 1fr 1fr; gap: 2rem; }
	.tr-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 1024px) {
	:root { --tr-header-h: 4.5rem; }

	/* Hide desktop nav + actions, show hamburger */
	.tr-header__nav     { display: none; }
	.tr-header__actions { display: none; }
	.tr-hamburger       { display: flex; }

	.tr-split           { grid-template-columns: 1fr; gap: 2.5rem; }
	.tr-split--reverse .tr-split__media { order: unset; }

	.tr-section--lg { padding: 5rem 0; }

	.tr-programmes__grid { grid-template-columns: 1fr; }
	.tr-news-preview__grid { grid-template-columns: repeat(2, 1fr); }

	.tr-footer__main { grid-template-columns: 1fr 1fr; gap: 2rem; padding: 2.5rem 0 2rem; }
	.tr-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
	.tr-section      { padding: 3.5rem 0; }
	.tr-section--lg  { padding: 4rem 0; }

	.tr-hero__content { padding: 4.5rem 0; }
	.tr-hero__desc    { margin-bottom: 2rem; }

	.tr-news-preview__grid { grid-template-columns: 1fr; }
	.tr-welcome { padding: 4rem 0; }
	.tr-programmes { padding: 4rem 0; }

	.tr-footer__main { grid-template-columns: 1fr; gap: 1.75rem; }
	.tr-footer__bottom-inner { flex-direction: column; align-items: flex-start; gap: 0.625rem; }
}

@media (max-width: 480px) {
	:root { --tr-container-px: 1rem; }
	.tr-hero--full { min-height: 80vh; }
	.tr-hero__cta  { flex-direction: column; align-items: flex-start; }
	.tr-btn--lg    { width: 100%; justify-content: center; }
}

/* ══════════════════════════════════════════════
   SHARED CARD + FILTER STYLES
   (used across news, events, fotos, front page)
   ══════════════════════════════════════════════ */

/* Year filter */
.tr-year-filter-wrap {
	display:     flex;
	align-items: center;
	gap:         10px;
}
.tr-year-arrow {
	flex-shrink:     0;
	width:           38px;
	height:          38px;
	border-radius:   50%;
	border:          2px solid var(--tr-gold-500);
	background:      transparent;
	color:           var(--tr-gold-600);
	font-size:       22px;
	line-height:     1;
	cursor:          pointer;
	display:         flex;
	align-items:     center;
	justify-content: center;
	transition:      background var(--tr-ease), color var(--tr-ease);
	padding:         0;
}
.tr-year-arrow:hover { background: var(--tr-gold-500); color: #fff; }
.tr-year-scroller {
	flex:                1;
	display:             flex;
	gap:                 8px;
	overflow-x:          auto;
	scrollbar-width:     none;
	-ms-overflow-style:  none;
	scroll-behavior:     smooth;
	padding:             4px 2px;
}
.tr-year-scroller::-webkit-scrollbar { display: none; }
.tr-year-pill {
	flex-shrink:     0;
	padding:         7px 18px;
	border-radius:   var(--tr-r-full);
	border:          2px solid var(--tr-gold-500);
	color:           var(--tr-gold-600);
	font-size:       0.875rem;
	font-weight:     600;
	letter-spacing:  0 !important;
	word-spacing:    0 !important;
	text-decoration: none;
	white-space:     nowrap;
	transition:      background var(--tr-ease), color var(--tr-ease);
	display:         inline-block;
}
.tr-year-pill:hover,
.tr-year-pill.active {
	background:      var(--tr-gold-gradient);
	color:           #fff;
	border-color:    transparent;
}

/* News / archive grid (3 columns) */
.tr-news-grid {
	display:               grid;
	grid-template-columns: repeat(3, 1fr);
	gap:                   1.75rem;
}

/* Card used for news, events, videos */
.tr-news-card {
	background:     var(--tr-surface-el);
	border-radius:  var(--tr-r-lg);
	border:         1px solid rgba(242, 224, 179, 0.2);
	overflow:       hidden;
	display:        flex;
	flex-direction: column;
	transition:     transform var(--tr-ease), box-shadow var(--tr-ease);
}
.tr-news-card:hover { transform: translateY(-4px); box-shadow: var(--tr-shadow-lg); }

.tr-news-card__img-wrap {
	display:         block;
	aspect-ratio:    16 / 9;
	overflow:        hidden;
	text-decoration: none;
	flex-shrink:     0;
}
.tr-news-card__img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	transition: transform 0.45s ease;
	display:    block;
}
.tr-news-card:hover .tr-news-card__img { transform: scale(1.05); }

.tr-news-card__body {
	padding:        1.25rem 1.375rem 1.625rem;
	display:        flex;
	flex-direction: column;
	gap:            0.5rem;
	flex:           1;
}
.tr-news-card__date {
	display:        block;
	font-size:      0.75rem;
	font-weight:    600;
	letter-spacing: 0.04em;
	color:          var(--tr-gold-600);
}
.tr-news-card__title {
	font-family: var(--tr-font-display);
	font-size:   1rem;
	font-weight: 700;
	line-height: 1.35;
	margin:      0;
	flex:        1;
}
.tr-news-card__title a { color: var(--tr-fg); text-decoration: none; transition: color var(--tr-ease); }
.tr-news-card__title a:hover { color: var(--tr-gold-700); }
.tr-news-card__excerpt {
	font-size:           0.875rem;
	color:               var(--tr-muted);
	line-height:         1.65;
	margin:              0;
	display:             -webkit-box;
	-webkit-line-clamp:  2;
	-webkit-box-orient:  vertical;
	overflow:            hidden;
}
.tr-news-card__readmore {
	display:         inline-block;
	font-size:       0.6875rem;
	font-weight:     700;
	letter-spacing:  0.12em;
	text-transform:  uppercase;
	color:           var(--tr-gold-600);
	text-decoration: none;
	margin-top:      auto;
	padding-top:     0.375rem;
	transition:      color var(--tr-ease);
}
.tr-news-card__readmore:hover { color: var(--tr-gold-700); }

.tr-no-results {
	text-align:  center;
	padding:     4rem 0;
	color:       var(--tr-muted);
	font-size:   1.125rem;
	font-style:  italic;
}

/* Override plugin CSS variable values to match theme design */
:root {
	--tr-gold:    #d4a84b;
	--tr-gold-dk: #b8860b;
	--tr-cream:   #faf9f7;
	--tr-cream-dk: #f5f3ef;
	--tr-text:    #1a1714;
	--tr-white:   #ffffff;
	--tr-border:  rgba(242, 224, 179, 0.4);
	--tr-max-w:   1400px;
}

/* Responsive grid */
@media (max-width: 900px) {
	.tr-news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.tr-news-grid { grid-template-columns: 1fr; }
}
