/* ==========================================================================
   Dueter - site.css (every page): tokens, base, header, footer, buttons,
   reveal system. Fonts: Lexend (UI, headings) + Source Sans 3 (body).
   ========================================================================== */
:root{
	--dt-ink:#0B2420; --dt-text:#3D524D; --dt-muted:#566B65; --dt-soft:#84988F;
	--dt-violet:#047857; --dt-violet-2:#10B981; --dt-violet-50:#ECF8F2; --dt-violet-100:#D5F0E3; --dt-violet-200:#B3E2CC;
	--dt-cyan:#06B6D4; --dt-cyan-ink:#0E7490; --dt-cyan-50:#E9F8FB;
	--dt-bg:#F1FAF6; --dt-white:#fff; --dt-line:#DCEBE4;
	--dt-dark:#05140F; --dt-dark-2:#0C221B;
	--dt-ok:#0F9D74; --dt-warn:#C77700; --dt-bad:#D63B50;
	--dt-grad:linear-gradient(110deg,#047857 0%,#047857 35%,#06B6D4 100%);
	--dt-ui:'Lexend',system-ui,-apple-system,'Segoe UI',sans-serif;
	--dt-body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;
	--dt-ease:cubic-bezier(.22,.61,.36,1);
	--dt-radius:20px;
	--dt-max:1440px;
	--dt-gutter:clamp(16px,4vw,48px);
	--dt-head-h:76px;
	--dt-glass:.4; /* scrolled homepage header opacity: .4 = 60% transparent */
}

/* ---------- base, GeneratePress overrides ---------- */
html{scroll-behavior:smooth;}
body{margin:0; background:var(--dt-white); color:var(--dt-text); font-family:var(--dt-body); font-size:17px; line-height:1.7; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,h5,h6{font-family:var(--dt-ui); color:var(--dt-ink); letter-spacing:-.02em;}
#page.grid-container{max-width:none; padding:0; margin:0;}
#content.site-content{display:block; max-width:none; padding:0;}
.dt-wrap{max-width:var(--dt-max); margin:0 auto; padding-left:var(--dt-gutter); padding-right:var(--dt-gutter); box-sizing:border-box;}
.skip-link:focus{position:fixed; top:8px; left:8px; z-index:1000; clip:auto; width:auto; height:auto; padding:10px 16px; background:#fff; color:var(--dt-ink); border-radius:10px;}

/* ---------- buttons ---------- */
.dt-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:9px;
	min-height:52px; padding:0 28px; border:0; border-radius:999px; cursor:pointer;
	font-family:var(--dt-ui); font-size:16px; font-weight:600; line-height:1.2; color:#fff !important; text-decoration:none !important;
	background:var(--dt-grad); background-size:160% 100%; background-position:0 0;
	box-shadow:0 10px 26px -12px rgba(4,120,87,.65);
	transition:transform .2s var(--dt-ease), box-shadow .25s var(--dt-ease), background-position .5s var(--dt-ease);
}
.dt-btn:hover{transform:translateY(-2px); background-position:100% 0; box-shadow:0 16px 32px -14px rgba(4,120,87,.75);}
.dt-btn:focus-visible{outline:3px solid var(--dt-cyan); outline-offset:3px;}
.dt-btn--sm{min-height:44px; padding:0 20px; font-size:14.5px;}
.dt-btn--ghost{background:transparent; color:var(--dt-violet) !important; box-shadow:inset 0 0 0 1.5px var(--dt-violet-200);}
.dt-btn--ghost:hover{background:var(--dt-violet-50); box-shadow:inset 0 0 0 1.5px var(--dt-violet);}
.dt-btn--light{background:#fff; color:var(--dt-violet) !important; box-shadow:0 12px 28px -14px rgba(0,0,0,.45);}

/* ---------- logo ---------- */
.dt-logo{display:inline-flex; align-items:center; gap:10px; text-decoration:none !important; flex:0 0 auto;}
.dt-logo-mark{display:block; width:40px; height:40px; transition:transform .5s var(--dt-ease);}
.dt-logo-mark svg{display:block; width:100%; height:100%;}
.dt-logo-hand{transform-origin:23px 24px; transform-box:view-box; transition:transform .7s var(--dt-ease);}
.dt-logo:hover .dt-logo-hand{transform:rotate(360deg);}
.dt-logo-word{font-family:var(--dt-ui); font-weight:700; font-size:26px; letter-spacing:-.045em; color:var(--dt-ink); line-height:1; transition:color .3s ease;}
.dt-logo-word span{color:var(--dt-violet); transition:color .3s ease;}
.dt-logo--light .dt-logo-word{color:#fff;}
.dt-logo--light .dt-logo-word span{color:#67E8F9;}

/* ---------- header ---------- */
/* The glass lives on ::before. backdrop-filter on the header itself would make
   it the containing block for the fixed mobile menu, trapping the menu inside it. */
.dt-header{position:sticky; top:0; z-index:100; transition:box-shadow .35s ease;}
.dt-header::before{
	content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
	background:rgba(255,255,255,.92); backdrop-filter:saturate(170%) blur(16px); -webkit-backdrop-filter:saturate(170%) blur(16px);
	border-bottom:1px solid transparent;
	transition:background .35s ease, border-color .35s ease;
}
.admin-bar .dt-header{top:32px;}
.dt-header.is-scrolled{box-shadow:0 10px 30px -24px rgba(11,36,32,.45);}
.dt-header.is-scrolled::before{border-bottom-color:var(--dt-line);}
.dt-header-in{
	max-width:var(--dt-max); margin:0 auto; padding:0 var(--dt-gutter); box-sizing:border-box;
	min-height:var(--dt-head-h); display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.dt-nav{display:flex; align-items:center; gap:28px;}
.dt-menu{display:flex; align-items:center; gap:6px; list-style:none; margin:0; padding:0;}
.dt-menu li{margin:0; position:relative;}
.dt-menu a{
	position:relative; display:block; padding:10px 14px; border-radius:10px;
	font-family:var(--dt-ui); font-size:15.5px; font-weight:500; color:var(--dt-ink); text-decoration:none;
	transition:color .2s ease;
}
.dt-menu a::after{
	content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px; border-radius:2px;
	background:var(--dt-grad); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--dt-ease);
}
.dt-menu a:hover::after,.dt-menu .current-menu-item > a::after,.dt-menu .current_page_item > a::after{transform:scaleX(1);}
.dt-menu a:hover{color:var(--dt-violet);}
.dt-menu a:focus-visible{outline:3px solid var(--dt-cyan); outline-offset:1px;}
.dt-burger{display:none;}

/* homepage: transparent over the hero, frosted at 60% transparency on scroll */
.dt-header--over{position:absolute; left:0; right:0;}
.dt-header--over::before{background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none;}
.dt-header--over.is-scrolled{box-shadow:none;}
html.js .dt-header--over{position:fixed;}
.dt-header--over .dt-logo-word,.dt-header--over .dt-menu a{color:#fff;}
.dt-header--over .dt-logo-word span{color:#67E8F9;}
.dt-header--over .dt-menu a:hover{color:#67E8F9;}
.dt-header--over.is-scrolled::before{
	background:rgba(255,255,255,var(--dt-glass));
	backdrop-filter:saturate(180%) blur(18px); -webkit-backdrop-filter:saturate(180%) blur(18px);
	border-bottom-color:rgba(255,255,255,.35);
}
.dt-header--over.is-scrolled .dt-logo-word,.dt-header--over.is-scrolled .dt-menu a{color:var(--dt-ink);}
.dt-header--over.is-scrolled .dt-logo-word span{color:var(--dt-violet);}
.dt-header--over.is-scrolled .dt-menu a:hover{color:var(--dt-violet);}
/* still over a dark hero (data-dt-dark): same 60% transparency, dark glass, light text */
.dt-header--over.is-scrolled.is-on-dark::before{background:rgba(5,20,15,var(--dt-glass)); border-bottom-color:rgba(255,255,255,.1);}
.dt-header--over.is-scrolled.is-on-dark .dt-logo-word,.dt-header--over.is-scrolled.is-on-dark .dt-menu a{color:#fff;}
.dt-header--over.is-scrolled.is-on-dark .dt-logo-word span{color:#67E8F9;}
.dt-header--over.is-scrolled.is-on-dark .dt-menu a:hover{color:#67E8F9;}

/* mobile: off-canvas panel with JS, plain wrapped row without it */
@media (max-width:1024px){
	:root{--dt-head-h:66px;}
	.dt-logo-mark{width:36px; height:36px;}
	.dt-logo-word{font-size:23px;}
	html.no-js .dt-header-in{flex-wrap:wrap; padding-top:10px; padding-bottom:10px;}
	html.no-js .dt-nav{width:100%; flex-wrap:wrap; justify-content:center; gap:10px;}
	html.no-js .dt-menu{flex-wrap:wrap; justify-content:center;}

	html.js .dt-burger{
		display:inline-flex; flex-direction:column; justify-content:center; align-items:center; gap:5px;
		width:46px; height:46px; padding:0; border:0; border-radius:12px; cursor:pointer;
		background:var(--dt-violet-50); position:relative; z-index:102;
	}
	html.js .dt-header--over .dt-burger{background:rgba(255,255,255,.16);}
	html.js .dt-header--over.is-scrolled .dt-burger,html.js .dt-header.is-open .dt-burger{background:var(--dt-violet-50);}
	html.js .dt-header--over.is-scrolled.is-on-dark:not(.is-open) .dt-burger{background:rgba(255,255,255,.16);}
	.dt-burger span{display:block; width:20px; height:2px; border-radius:2px; background:var(--dt-ink); transition:transform .3s var(--dt-ease), opacity .2s ease;}
	.dt-header--over .dt-burger span{background:#fff;}
	.dt-header--over.is-scrolled .dt-burger span,.dt-header.is-open .dt-burger span{background:var(--dt-ink);}
	.dt-header--over.is-scrolled.is-on-dark:not(.is-open) .dt-burger span{background:#fff;}
	.dt-header.is-open .dt-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
	.dt-header.is-open .dt-burger span:nth-child(2){opacity:0;}
	.dt-header.is-open .dt-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

	html.js .dt-nav{
		position:fixed; inset:0; z-index:101; flex-direction:column; justify-content:center; gap:26px;
		padding:90px 24px 40px; background:rgba(255,255,255,.97);
		backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
		opacity:0; visibility:hidden; transform:translateY(-12px);
		transition:opacity .3s ease, transform .35s var(--dt-ease), visibility 0s linear .35s;
	}
	html.js .dt-header.is-open .dt-nav{opacity:1; visibility:visible; transform:none; transition:opacity .3s ease, transform .35s var(--dt-ease);}
	html.js .dt-menu{flex-direction:column; gap:4px; text-align:center;}
	html.js .dt-menu a{font-size:22px; font-weight:600; padding:12px 20px; color:var(--dt-ink) !important;}
	html.js .dt-nav-cta{min-height:54px; font-size:16px; padding:0 30px;}
	.dt-header.is-open .dt-logo{position:relative; z-index:102;}
	.dt-header.is-open .dt-logo-word{color:var(--dt-ink);}
	.dt-header.is-open .dt-logo-word span{color:var(--dt-violet);}
	body.dt-menu-open{overflow:hidden;}
}
@media (max-width:782px){ .admin-bar .dt-header{top:46px;} }
@media (max-width:600px){ .admin-bar .dt-header{top:0;} }

/* ---------- footer ---------- */
.dt-footer{
	position:relative; overflow:hidden; color:#B7CEC5; font-size:15.5px;
	background:linear-gradient(180deg,var(--dt-dark-2),var(--dt-dark));
	padding:clamp(56px,7vw,88px) 0 0;
}
.dt-footer-glow{
	position:absolute; inset:-40% -10% auto; height:520px; pointer-events:none;
	background:radial-gradient(520px 300px at 18% 50%,rgba(16,185,129,.35),transparent 70%),radial-gradient(480px 280px at 85% 40%,rgba(6,182,212,.22),transparent 70%);
}
.dt-footer-grid{position:relative; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:clamp(28px,4vw,64px); padding-bottom:48px;}
.dt-footer-brand p{margin:18px 0 18px; max-width:38ch; line-height:1.7;}
.dt-footer-mail{display:inline-flex; align-items:center; gap:9px; color:#fff !important; text-decoration:none; font-family:var(--dt-ui); font-weight:500; padding:10px 16px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); transition:background .2s ease;}
.dt-footer-mail:hover{background:rgba(255,255,255,.14);}
.dt-footer-col h2{font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#67E8F9; margin:6px 0 18px;}
.dt-footer-links{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.dt-footer-links li{margin:0;}
.dt-footer-links a{color:#D3E5DE; text-decoration:none; transition:color .2s ease, padding .25s var(--dt-ease);}
.dt-footer-links a:hover{color:#fff; padding-left:4px;}
.dt-footer-links a:focus-visible,.dt-footer a:focus-visible{outline:3px solid var(--dt-cyan); outline-offset:3px; border-radius:4px;}
.dt-footer-bar{position:relative; display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; padding-top:22px; padding-bottom:26px; border-top:1px solid rgba(255,255,255,.1); font-size:14px; color:#93AAA2;}
.dt-footer-bar p{margin:0;}
@media (max-width:1024px){ .dt-footer-grid{grid-template-columns:1fr 1fr 1fr;} .dt-footer-brand{grid-column:1 / -1;} }
@media (max-width:767px){
	.dt-footer-grid{grid-template-columns:1fr; text-align:center; gap:34px;}
	.dt-footer-brand{display:flex; flex-direction:column; align-items:center;}
	.dt-footer-brand p{margin-left:auto; margin-right:auto;}
	.dt-footer-links{justify-items:center;}
	.dt-footer-links a:hover{padding-left:0;}
	.dt-footer-bar{flex-direction:column; align-items:center; text-align:center;}
}

/* ---------- scroll reveal (hidden only when JS runs; failsafe after 4s) ---------- */
html.js .dt-rv{opacity:0; transform:translateY(26px); animation:dtRvFailsafe 0s linear 4s forwards;}
html.js.dt-rv-on .dt-rv{animation:none;}
html.js .dt-rv.is-in{opacity:1; transform:none; transition:opacity .8s var(--dt-ease), transform .8s var(--dt-ease); transition-delay:var(--d,0s);}
@keyframes dtRvFailsafe{to{opacity:1; transform:none;}}

@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto;}
	*,*::before,*::after{animation-duration:1ms !important; animation-iteration-count:1 !important; transition-duration:1ms !important;}
	html.js .dt-rv{opacity:1; transform:none;}
}
