/* ==========================================================================
   TTS – Theme header, mega menu, mobile menu and footer
   Colours/breakpoint come from TTS Theme → Header & Menu (printed as CSS vars).
   ========================================================================== */

/* ---------- Header wrapper ---------- */
.tts-header {
	position: relative;
	z-index: 1000;
	width: 100%;
	font-family: "Instrument Sans", sans-serif;
}
.tts-header.is-sticky {
	position: sticky;
	top: 0;
}
.admin-bar .tts-header.is-sticky { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) {
	.admin-bar .tts-header.is-sticky { top: 0; }
}
.tts-header *,
.tts-header *::before,
.tts-header *::after { box-sizing: border-box; }

/* ---------- Desktop bar ---------- */
.tts-hd {
	background: var(--tts-hd-bg, #085ba5);
	transition: box-shadow .3s ease;
}
.tts-header.is-scrolled .tts-hd { box-shadow: 0 6px 24px rgba(3, 25, 48, .25); }

.tts-hd__inner {
	position: relative;
	display: flex;
	align-items: center;
	gap: 32px;
	width: 100%;
	max-width: 1440px;
	min-height: 92px;
	margin: 0 auto;
	padding: 0 25px;
}

.tts-hd__logo { flex: 0 0 auto; display: block; line-height: 0; }
.tts-hd__logo img { display: block; width: 194px; max-width: 100%; height: auto; }

.tts-hd__nav { flex: 1 1 auto; display: flex; justify-content: center; }
.tts-hd__menu {
	display: flex;
	align-items: center;
	gap: 48px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tts-hd__item { position: static; margin: 0; padding: 0; list-style: none; }

/* links + dropdown toggles share one look */
.tts-header .tts-hd__link,
.tts-header .tts-hd__link:hover,
.tts-header .tts-hd__link:focus {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 6px 0;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: #f2f7fe;
	font-family: inherit;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: normal;
	text-decoration: none;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
}
.tts-header .tts-hd__link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

/* animated underline (same effect as before, under the text only) */
.tts-hd__link > span {
	background-image: linear-gradient(var(--tts-hd-underline, #ff8600), var(--tts-hd-underline, #ff8600));
	background-size: 0% 1px;
	background-repeat: no-repeat;
	background-position: left bottom;
	padding-bottom: 5px;
	transition: background-size .35s ease;
}
.tts-hd__link:hover > span,
.tts-hd__link:focus-visible > span,
.tts-hd__item.is-current > .tts-hd__link > span,
.tts-hd__item.is-open > .tts-hd__link > span { background-size: 100% 1px; }

.tts-hd__chev { flex: 0 0 auto; margin-top: -4px; transition: transform .3s ease; }
.tts-hd__item.is-open .tts-hd__chev { transform: rotate(180deg); }

/* CTA */
.tts-header .tts-hd__cta,
.tts-header .tts-hd__cta:visited {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 24px;
	background: #fff;
	border: 1px solid #fff;
	border-radius: 0;
	color: var(--tts-hd-bg, #085ba5);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.3;
	text-decoration: none;
	transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.tts-header .tts-hd__cta:hover,
.tts-header .tts-hd__cta:focus-visible {
	background: transparent;
	color: #fff;
}

/* ---------- Mega menu panel ---------- */
.tts-mega {
	position: absolute;
	top: calc(100% - 12px);
	left: 50%;
	width: min(860px, calc(100% - 40px));
	padding: 40px 30px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 10px 25px rgba(0, 0, 0, .12);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, 10px);
	transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
	z-index: 1001;
}
/* invisible bridge so the mouse can travel from the menu item to the panel */
.tts-mega::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 24px;
}
.tts-hd__item.is-open > .tts-mega {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
	transition: opacity .25s ease, transform .25s ease, visibility 0s;
}

.tts-mega__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px 40px;
}
.tts-header .tts-mega__item,
.tts-header .tts-mega__item:visited {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 6px 8px;
	margin: -6px -8px;
	border-radius: 8px;
	color: #14315e;
	text-decoration: none;
	transition: background-color .25s ease, transform .25s ease;
}
.tts-header .tts-mega__item:hover,
.tts-header .tts-mega__item:focus-visible {
	background: #f2f7fe;
	color: #14315e;
	transform: translateX(4px);
	outline: none;
}
.tts-mega__icon { flex: 0 0 40px; display: flex; align-items: center; justify-content: center; }
.tts-mega__icon img { display: block; width: 40px; height: 40px; object-fit: contain; }
.tts-mega__title {
	font-family: "Instrument Sans", sans-serif;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.5;
}
.tts-mega__item.is-current .tts-mega__title { font-weight: 600; color: #085ba5; }

/* ---------- Desktop: smaller screens ---------- */
@media (max-width: 1280px) {
	.tts-hd__menu { gap: 30px; }
	.tts-hd__inner { gap: 24px; }
}
@media (max-width: 1100px) {
	.tts-hd__menu { gap: 22px; }
	.tts-hd__logo img { width: 160px; }
	.tts-mega__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   Mobile menu (from the original [tts_mobile_menu] snippet)
   ========================================================================== */
/* ---------- Top bar (logo left / hamburger right) ---------- */
.ttsmm{width:100%}
.ttsmm-bar{
	display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 20px;background:var(--ttsmm-bar-bg,#085ba5);box-sizing:border-box;box-shadow: 0 0px 10px #00000061;
}
.ttsmm-bar-logo{display:block;line-height:0}
.ttsmm-bar-logo img{display:block;height:28px;width:auto;max-width:62vw}

/* ---------- Hamburger ---------- */
.ttsmm-toggle{
	position:relative;width:48px;height:44px;padding:0;margin:0 -4px 0 0;
	background:transparent!important;border:0;border-radius:8px;cursor:pointer;
	display:inline-flex;align-items:center;justify-content:center;
	-webkit-tap-highlight-color:transparent;box-shadow:none;
}
.ttsmm-toggle:focus-visible{outline:2px solid var(--ttsmm-icon,#fff);outline-offset:2px}
.ttsmm-bars{position:relative;display:block;width:34px;height:21px}
.ttsmm-bars span{
	position:absolute;left:0;height:3px;background:var(--ttsmm-icon,#fff);border-radius:3px;
	transition:transform .45s cubic-bezier(.77,0,.175,1),opacity .25s ease,width .35s ease,top .45s cubic-bezier(.77,0,.175,1);
}
.ttsmm-bars span:nth-child(1){top:0;width:100%}
.ttsmm-bars span:nth-child(2){top:9px;width:100%}
.ttsmm-bars span:nth-child(3){top:18px;width:60%}
.ttsmm-toggle:hover .ttsmm-bars span:nth-child(3){width:100%}
.ttsmm-toggle.is-active .ttsmm-bars span:nth-child(1){top:9px;transform:rotate(45deg)}
.ttsmm-toggle.is-active .ttsmm-bars span:nth-child(2){opacity:0;transform:translateX(-14px)}
.ttsmm-toggle.is-active .ttsmm-bars span:nth-child(3){top:9px;width:100%;transform:rotate(-45deg)}

/* ---------- Overlay ---------- */
.ttsmm-overlay{
	position:fixed;inset:0;background:rgba(3,25,48,.55);
	opacity:0;visibility:hidden;z-index:99998;
	transition:opacity .45s ease,visibility 0s linear .45s;
}
.ttsmm-layer.is-open .ttsmm-overlay{opacity:1;visibility:visible;transition:opacity .45s ease,visibility 0s}

/* ---------- Panel ---------- */
.ttsmm-panel{
	position:fixed;top:0;left:0;height:100%;height:100dvh;
	width:min(88vw,400px);background:var(--ttsmm-color,#085ba5);color:#fff;
	display:flex;flex-direction:column;z-index:99999;
	font-family:"Instrument Sans",sans-serif;
	transform:translateX(-100%);visibility:hidden;
	box-shadow:8px 0 40px rgba(0,0,0,.25);
	transition:transform .5s cubic-bezier(.77,0,.175,1),visibility 0s linear .5s;
}
.ttsmm-layer.is-open .ttsmm-panel{transform:translateX(0);visibility:visible;transition:transform .5s cubic-bezier(.77,0,.175,1),visibility 0s}
.ttsmm-panel *{box-sizing:border-box}

.ttsmm-head{
	display:flex;align-items:center;justify-content:space-between;
	padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.15);flex:0 0 auto;
}
.ttsmm-logo img{display:block;height:28px;width:auto;max-width:200px}
.ttsmm-close{
	width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.12);
	color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
	transition:background .25s ease,transform .35s ease;padding: 0;
}
.ttsmm-close:hover{background:rgba(255,255,255,.25);transform:rotate(90deg)}

/* ---------- Sliding viewport ---------- */
.ttsmm-viewport{position:relative;flex:1 1 auto;overflow:hidden}
.ttsmm-main,.ttsmm-sub{
	position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;
	padding:12px 24px 24px;margin:0;list-style:none;
	transition:transform .45s cubic-bezier(.77,0,.175,1),opacity .35s ease,visibility 0s;
}
.ttsmm-main.is-shifted{transform:translateX(-30%);opacity:0;visibility:hidden;transition:transform .45s cubic-bezier(.77,0,.175,1),opacity .35s ease,visibility 0s linear .45s}
.ttsmm-sub{background:var(--ttsmm-color,#085ba5);transform:translateX(100%);visibility:hidden;transition:transform .45s cubic-bezier(.77,0,.175,1),visibility 0s linear .45s}
.ttsmm-sub.is-active{transform:translateX(0);visibility:visible;transition:transform .45s cubic-bezier(.77,0,.175,1),visibility 0s}

/* ---------- Main items (staggered entrance) ---------- */
.ttsmm-main li{
	list-style:none;margin:0;border-bottom:1px solid rgba(255,255,255,.12);
	opacity:0;transform:translateX(-18px);
	transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1);
}
.ttsmm-layer.is-open .ttsmm-main li{
	opacity:1;transform:none;transition-delay:calc(.12s + var(--i,0) * .05s);
}
.ttsmm-link{
	display:flex;align-items:center;justify-content:space-between;width:100%;
	padding:18px 4px;background:none;border:0;color:#fff;text-decoration:none;
	font-family:inherit;font-size:16px;font-weight:400;line-height:1.3;text-align:left;cursor:pointer;
	transition:padding-left .3s ease,opacity .3s ease;
}
.ttsmm-link:hover,.ttsmm-link:focus-visible{padding-left:10px;color:#fff;outline:none;opacity:.9}
.ttsmm-chev{flex:0 0 auto;opacity:.8}

/* ---------- Sub panel ---------- */
.ttsmm-back{
	display:inline-flex;align-items:center;gap:6px;padding:10px 0;margin:0 0 4px;
	background:none;border:0;color:rgba(255,255,255,.85);cursor:pointer;
	font-family:inherit;font-size:14px;font-weight:500;
}
.ttsmm-back:hover{color:#fff}
.ttsmm-sub-title{font-size:22px;font-weight:600;margin:6px 0 14px}
.ttsmm-sub ul{list-style:none;margin:0;padding:0}
.ttsmm-sub li{margin:0;opacity:0;transform:translateX(24px);transition:opacity .35s ease,transform .45s cubic-bezier(.22,1,.36,1)}
.ttsmm-sub.is-active li{opacity:1;transform:none;transition-delay:calc(.15s + var(--i,0) * .045s)}
.ttsmm-sub-link{
	display:flex;align-items:center;gap:14px;padding:8px 0;color:#fff;text-decoration:none;
	font-size:15px;font-weight:400;line-height:1.3;transition:transform .3s ease;
}
.ttsmm-sub-link:hover{transform:translateX(6px);color:#fff}
.ttsmm-icon{
	flex:0 0 35px;width:35px;height:35px;border-radius:10px;background:#fff;
	display:flex;align-items:center;justify-content:center;
}
.ttsmm-icon img{width:18px;height:18px;object-fit:contain;display:block}

/* ---------- Active page indicator ---------- */
.ttsmm-link{position:relative}
.ttsmm-main li.is-current > .ttsmm-link::before{
	content:"";position:absolute;left:-24px;top:50%;width:4px;height:58%;
	transform:translateY(-50%);background:var(--ttsmm-accent,#f58220);border-radius:0 4px 4px 0;
}
.ttsmm-main li.is-current > .ttsmm-link > span:first-child{
	font-weight:400;text-decoration:underline;text-decoration-color:var(--ttsmm-accent,#f58220);
	text-decoration-thickness:2px;text-underline-offset:9px;
}
.ttsmm-sub-link.is-current{font-weight:700}
.ttsmm-sub-link.is-current > span:last-child{
	text-decoration:underline;text-decoration-color:var(--ttsmm-accent,#f58220);
	text-decoration-thickness:2px;text-underline-offset:6px;
}
.ttsmm-sub-link.is-current .ttsmm-icon{box-shadow:0 0 0 3px var(--ttsmm-accent,#f58220)}

/* ---------- Scroll-for-more hint ---------- */
.ttsmm-more{
	position:absolute;left:0;right:0;bottom:0;height:80px;z-index:3;
	display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px;
	background:linear-gradient(to top,var(--ttsmm-color,#085ba5) 30%,transparent);
	pointer-events:none;opacity:0;visibility:hidden;transform:translateY(8px);
	transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s;
}
.ttsmm-more.is-visible{
	opacity:1;visibility:visible;transform:none;
	transition:opacity .3s ease,transform .3s ease,visibility 0s;
}
.ttsmm-more span{
	display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;
	background:rgba(255,255,255,.18);color:#fff;font-size:12px;font-weight:500;letter-spacing:.02em;
}
.ttsmm-more svg{animation:ttsmm-bounce 1.4s ease-in-out infinite}
@keyframes ttsmm-bounce{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}

/* ---------- CTA ---------- */
.ttsmm-foot{flex:0 0 auto;padding:18px 24px 26px;border-top:1px solid rgba(255,255,255,.15)}
.ttsmm-cta{
	display:block;text-align:center;padding:14px 20px;background:#fff;color:var(--ttsmm-color,#085ba5);
	font-weight:600;font-size:16px;text-decoration:none;border-radius:4px;
	transition:transform .3s ease,box-shadow .3s ease;
}
.ttsmm-cta:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.2);color:var(--ttsmm-color,#085ba5)}

body.ttsmm-lock{overflow:hidden}

@media (prefers-reduced-motion:reduce){
	.ttsmm-more svg{animation:none}
	.ttsmm-panel,.ttsmm-overlay,.ttsmm-main,.ttsmm-sub,.ttsmm-main li,.ttsmm-sub li,.ttsmm-bars span,.ttsmm-more{transition-duration:.01s!important;transition-delay:0s!important}
}

/* sticky mobile bar sits inside the sticky header */
.tts-header .ttsmm-bar { box-shadow: none; }
.tts-header.is-scrolled .ttsmm-bar { box-shadow: 0 0 10px #00000061; }

/* ==========================================================================
   Footer
   ========================================================================== */
.tts-footer {
	background: var(--tts-ft-bg, #085ba5);
	color: #f2f7fe;
	font-family: "Instrument Sans", sans-serif;
}
.tts-footer *,
.tts-footer *::before,
.tts-footer *::after { box-sizing: border-box; }

.tts-ft__inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 48px 25px 30px;
}

.tts-ft__logo { display: inline-block; line-height: 0; }
.tts-ft__logo img { display: block; width: 194px; max-width: 100%; height: auto; }

.tts-ft__main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: 26px;
	padding-bottom: 28px;
	border-bottom: 1px solid rgba(242, 247, 254, .9);
}

.tts-ft__menu,
.tts-ft__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tts-ft__menu { gap: 12px 40px; }
.tts-ft__menu li,
.tts-ft__legal li { margin: 0; padding: 0; list-style: none; }

.tts-footer a { color: #f2f7fe; text-decoration: none; transition: opacity .25s ease, color .25s ease; }
.tts-footer a:hover,
.tts-footer a:focus-visible { color: #fff; opacity: .8; }

.tts-ft__menu a {
	font-size: 15px;
	line-height: 1.4;
	background-image: linear-gradient(#ff8600, #ff8600);
	background-size: 0% 1px;
	background-repeat: no-repeat;
	background-position: left bottom;
	padding-bottom: 4px;
	transition: background-size .35s ease;
}
.tts-ft__menu a:hover,
.tts-ft__menu a:focus-visible { background-size: 100% 1px; opacity: 1; }

.tts-footer .tts-ft__cta,
.tts-footer .tts-ft__cta:visited {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 24px;
	background: #f2f7fe;
	border: 1px solid #f2f7fe;
	color: var(--tts-ft-bg, #085ba5);
	font-size: 15px;
	line-height: 1.3;
	opacity: 1;
	transition: background-color .25s ease, color .25s ease;
}
.tts-footer .tts-ft__cta:hover,
.tts-footer .tts-ft__cta:focus-visible { background: transparent; color: #fff; opacity: 1; }

.tts-ft__bottom {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 16px 32px;
	padding-top: 26px;
	font-size: 13px;
	line-height: 1.5;
}
.tts-ft__copy,
.tts-ft__credit { margin: 0; }
.tts-ft__legal { gap: 8px 48px; justify-content: center; }
.tts-ft__credit { text-align: right; }

/* ---------- Footer: tablet / mobile ---------- */
@media (max-width: 1024px) {
	.tts-ft__inner { padding: 40px 20px 26px; text-align: center; }
	.tts-ft__brand { display: flex; justify-content: center; }
	.tts-ft__main { flex-direction: column; gap: 24px; }
	.tts-ft__menu { justify-content: center; gap: 14px 18px; }
	.tts-footer .tts-ft__cta { width: 100%; max-width: 280px; }
	.tts-ft__bottom { grid-template-columns: 1fr; text-align: center; }
	.tts-ft__credit { text-align: center; }
}
