/* ==========================================================================
   Cal Panel — site enhancements
   Loaded after menu.css / style.css / user_styles.css on every page.
   1. Tokens            4. Ultrapan feature (home)   7. Mobile bar
   2. Desktop polish    5. Home layout               8. Mobile drawer
   3. Contact CTA       6. Responsive layout         9. Motion preferences
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--cp-navy: #093963;
	--cp-blue: #004b8d;
	--cp-link: #0069c6;
	--cp-sky: #3578b3;
	--cp-line: #dbe4ee;
	--cp-ink: #1d2733;
	--cp-muted: #5d6c79;
	--up-green: #3d9416;
	--up-green-dark: #2b720c;
	--up-green-ink: #2f7a12;
	--up-tint: #f3f9ee;
	--ease-out: cubic-bezier(.22, 1, .36, 1);
	--font-display: "Montserrat", Arial, Helvetica, sans-serif;
}

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
a { transition: color .15s ease; }
a:hover { color: var(--cp-blue); }
:focus-visible { outline: 3px solid #5aa9ff; outline-offset: 2px; border-radius: 3px; }

/* 2. Desktop polish -------------------------------------------------------- */
@media (min-width: 981px) {
	/* All top-level items now fit on a single row (they used to wrap
	   under the blue bar and vanish, white-on-white). */
	ul#menuList {
		display: flex;
		justify-content: space-between;
		padding: 0 14px;
	}
	#menu ul#menuList > li { float: none; }
	#menu ul#menuList > li > a {
		padding: 13px 0 13px;
		position: relative;
		letter-spacing: 0;
	}
	#menu ul#menuList > li > a::after {
		content: "";
		position: absolute;
		left: 0; right: 0; bottom: 7px;
		height: 2px;
		background: #8cc4f5;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform .25s var(--ease-out);
	}
	#menu ul#menuList > li:hover > a::after,
	#menu ul#menuList > li > a:focus-visible::after { transform: scaleX(1); }

	#menu li ul {
		border: 0;
		border-radius: 0 0 8px 8px;
		box-shadow: 0 14px 30px rgba(4, 25, 48, .28);
		padding-top: 4px;
		padding-bottom: 6px;
	}
	#menu li li ul { border-radius: 8px; top: -4px; }
	#menu li ul a { transition: color .15s ease, padding .2s var(--ease-out); }
	#menu li ul a:hover { color: #bfe0ff; padding-left: 4px; }

	.col2-box { box-shadow: 0 1px 2px rgba(9, 57, 99, .05); }
}

/* 3. Contact CTA (replaces the old Contact_Us.gif — crisp, tappable) ------- */
.cta-contact {
	display: block;
	margin: 4px 0 6px;
	padding: 14px 12px 12px;
	text-align: center;
	text-decoration: none;
	border: 1px solid #c9d8e8;
	border-radius: 8px;
	background: linear-gradient(#fff, #f5f9fd);
	box-shadow: 0 1px 2px rgba(9, 57, 99, .08);
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s var(--ease-out);
}
.cta-contact:hover { border-color: var(--cp-link); box-shadow: 0 6px 16px rgba(0, 75, 141, .14); transform: translateY(-1px); }
.cta-contact a { text-decoration: none; }
.cta-contact a:hover { text-decoration: underline; }
.cta-contact__label {
	display: block;
	font: bold 15px/19px Arial, Helvetica, sans-serif;
	color: #1a3fc4;
	text-transform: uppercase;
}
.cta-contact__phone {
	display: block;
	margin-top: 6px;
	font: bold 25px/1 Arial, Helvetica, sans-serif;
	color: #1a3fc4;
	letter-spacing: -.01em;
}

/* 4. Ultrapan feature (home) ----------------------------------------------- */
.up-feature {
	position: relative;
	display: grid;
	grid-template-columns: 236px 1fr;
	align-items: center;
	gap: 26px;
	margin: 0 0 30px;
	padding: 22px 26px 22px 22px;
	border: 1px solid #dfe9d6;
	border-radius: 14px;
	background:
		radial-gradient(120% 140% at 0% 0%, #ffffff 0%, #ffffff 38%, var(--up-tint) 100%);
	box-shadow: 0 1px 2px rgba(20, 60, 10, .05), 0 10px 30px -12px rgba(30, 90, 10, .22);
	overflow: hidden;
}
.up-feature::before { /* brand swoosh accent */
	content: "";
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 5px;
	background: linear-gradient(180deg, #6cc43a, var(--up-green-dark));
}
.up-feature__logo {
	display: block;
	border-radius: 10px;
	transition: transform .35s var(--ease-out);
}
.up-feature__logo:hover { transform: scale(1.03) rotate(-.5deg); }
.up-feature__logo img { display: block; width: 100%; height: auto; }

.up-badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 10px;
	padding: 4px 10px 4px 8px;
	border-radius: 999px;
	background: #e3f3d8;
	color: var(--up-green-dark);
	font: 700 10px/1.2 var(--font-display);
	letter-spacing: .14em;
	text-transform: uppercase;
}
.up-badge i {
	position: relative;
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--up-green);
}
.up-badge i::after {
	content: "";
	position: absolute; inset: 0;
	border-radius: 50%;
	background: var(--up-green);
	animation: up-ping 2s var(--ease-out) infinite;
}
@keyframes up-ping { 0% { transform: scale(1); opacity: .7; } 80%, 100% { transform: scale(2.8); opacity: 0; } }

.up-feature h1 {
	margin: 0;
	padding: 0;
	font: 800 22px/1.22 var(--font-display);
	color: var(--cp-navy);
	text-transform: uppercase;
	letter-spacing: -.005em;
	text-wrap: balance;
}
.up-feature h1 span { color: var(--up-green-ink); }
.up-feature__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-top: 16px;
	padding: 0;
	font: 600 15px/1.2 var(--font-display);
	color: var(--cp-muted);
}
.up-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 18px 11px 20px;
	border-radius: 999px;
	background: linear-gradient(180deg, #46a31c, var(--up-green-dark));
	color: #fff;
	font: 800 13px/1 var(--font-display);
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 0 6px 16px -6px rgba(43, 114, 12, .75), inset 0 1px 0 rgba(255, 255, 255, .25);
	transition: transform .25s var(--ease-out), box-shadow .25s ease, filter .2s ease;
}
.up-btn svg { width: 16px; height: 16px; transition: transform .25s var(--ease-out); }
.up-btn:hover { color: #fff; transform: translateY(-1px); filter: brightness(1.06); box-shadow: 0 10px 22px -8px rgba(43, 114, 12, .85), inset 0 1px 0 rgba(255, 255, 255, .25); }
.up-btn:hover svg { transform: translateX(3px); }
.up-btn:active { transform: translateY(0); }

/* 5. Home layout ----------------------------------------------------------- */
.intro { display: flex; gap: 22px; align-items: flex-start; }
.intro__img { flex: 0 0 auto; width: 137px; height: auto; margin-top: 4px; }
.intro__text { flex: 1 1 auto; min-width: 0; }
.intro__text > p:first-child { font-size: 13px; line-height: 18px; }
h2.pseudo-h2 { font-family: Arial, Helvetica, sans-serif; line-height: 1.2; }
.lineup { display: grid; grid-template-columns: repeat(2, minmax(0, 220px)); column-gap: 30px; margin: 0 0 20px; padding: 0 0 0 40px; }
.lineup li p { padding: 2px; }
.linecard-link { margin: 26px 0 14px; }
.linecard-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font: bold 16px/1.3 Arial, Helvetica, sans-serif;
}
.linecard-link svg { width: 18px; height: 18px; flex: 0 0 auto; }

/* 6. Responsive layout ----------------------------------------------------- */
.m-bar, .m-drawer, .m-backdrop { display: none; }

@media (max-width: 980px) {
	html, html.contentpage { background: #edf2f7; }
	body { min-width: 0 !important; }
	.page { width: auto; max-width: 100%; }

	/* Header: the sticky mobile bar replaces logo/address/contact */
	html.js div.header a.logo,
	html.js div.header div.address,
	html.js div.header div.contact { display: none; }
	div.header, html.contentpage div.header { height: auto; }
	html.js.contentpage div.header { display: none; }
	div.hpflash { margin: 0; padding: 0; background: none; }
	div.hpflash img { display: block; width: 100%; height: auto; }

	/* Desktop menu is swapped for the drawer (kept visible if JS is off) */
	html.js #menu { display: none; }
	html:not(.js) #menu { position: static; width: auto; height: auto; }
	html:not(.js) ul#menuList { display: flex; flex-wrap: wrap; gap: 0 18px; padding: 4px 16px; }
	html:not(.js) #menu a { padding: 10px 0; }
	html:not(.js) #menu li ul { display: none !important; }

	/* Content */
	div.content {
		float: none;
		display: flex;
		flex-direction: column;
		width: auto;
		padding: 26px 20px 30px;
		font-size: 15px;
		line-height: 1.55;
		overflow-wrap: break-word;
		box-sizing: border-box;
	}
	div.col1, div.col2, div.colleft, div.colright {
		float: none;
		display: block;
		width: auto;
		margin: 0;
		padding: 0;
	}
	div.colright { order: 1; }
	div.colleft { order: 2; margin-top: 30px; border-radius: 10px; overflow: hidden; }
	div.colleft h2 { margin: 0 -6px 0 -5px; }
	div#sidebar p, div#sidebar li { font-size: 15px; line-height: 1.4; }
	div#sidebar li { padding: 11px 14px; }
	.colleft .request-a-quote { position: static; display: block; margin: 16px 0 0; }

	h1 { font-size: 24px; line-height: 1.25; padding-bottom: 18px; }
	.pseudo-h2 { font-size: 19px; }
	div.singlecol { padding: 0; }
	div.singlecol h2 { width: auto; }
	ul { padding-left: 22px; }
	.content img { max-width: 100%; height: auto !important; }
	.content table { max-width: 100%; }
	.content table[width], .content table[style*="width"] { width: 100% !important; }
	.content td { vertical-align: top; }
	.content iframe, .content embed, .content object, .content video { max-width: 100%; }
	.content input, .content select, .content textarea { max-width: 100%; font-size: 16px; box-sizing: border-box; }
	.content font[size="2"] { font-size: 15px; }
	blockquote { margin-left: 0; margin-right: 0; }

	/* Sample request form: fixed-width inputs flex to the screen */
	div#samplerequest table { width: 100%; }
	div#samplerequest table.samples,
	div#samplerequest table.productliterature { margin-left: 0; }
	div#samplerequest table.samples tbody td,
	div#samplerequest table.productliterature tbody td { padding-left: 4px !important; padding-right: 4px !important; }
	div#samplerequest table input,
	div#samplerequest table select { width: 100% !important; min-width: 0; height: 36px; }
	div#samplerequest table.yourinformation tbody th { width: 34%; white-space: normal; }
	div#samplerequest input.submitrequest { width: 226px !important; height: 40px; }

	/* Sidebar boxes become a responsive card grid */
	div.col2 {
		margin-top: 32px;
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
		gap: 16px;
	}
	.col2-box {
		width: auto;
		margin: 0 !important;
		padding: 16px 18px 12px;
		background: #fff;
		box-sizing: border-box;
	}

	/* Footer */
	div.footer { padding: 30px 20px 34px; text-align: center; }
	div.copyright, div.design { position: static; }
	div.copyright { line-height: 20px; margin-bottom: 18px; }
	div.submenu { letter-spacing: 0; }
	#footermenu { float: none; width: auto; margin: 0 0 18px; }
	#footermenu ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 24px; }
	#footermenu li { float: none; font-size: 14px; padding: 0; margin: 0; border: 0; }
	#footermenu li a { display: inline-block; padding: 4px 0; }
	div.design p { padding: 0; text-align: center; }
	div.design a.poweredby { position: static; display: inline-block; vertical-align: middle; margin-right: 8px; }
	.is-empty { display: none; }
	.social-icon img { margin: 0 8px !important; }

	/* Home */
	.up-feature { grid-template-columns: 200px 1fr; gap: 22px; padding: 22px 22px 22px 20px; }
	.intro__text > p:first-child { font-size: 15px; line-height: 1.55; }
}

@media (max-width: 640px) {
	div.content { padding: 20px 16px 28px; }
	.up-feature {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
		gap: 12px;
		padding: 24px 18px 22px;
		margin-bottom: 26px;
	}
	.up-feature::before { left: 0; right: 0; top: 0; bottom: auto; width: auto; height: 5px; background: linear-gradient(90deg, #6cc43a, var(--up-green-dark)); }
	.up-feature__logo { width: min(250px, 78%); }
	.up-feature h1 { font-size: 19px; }
	.up-feature__cta { justify-content: center; flex-direction: column; gap: 12px; }
	.up-btn { justify-content: center; width: 100%; max-width: 300px; padding: 15px 20px; font-size: 14px; box-sizing: border-box; }

	.intro { display: block; }
	.intro__img { float: left; width: 96px; margin: 4px 14px 8px 0; }
	.intro__text ul { clear: both; }
	.lineup { grid-template-columns: 1fr 1fr; column-gap: 12px; padding-left: 22px; }

	.content img.topright, .content img.right, .content img[align="right"],
	.content img.topleft, .content img.left, .content img[align="left"] {
		float: none;
		display: block;
		margin: 6px auto 14px;
	}
}

/* 7. Mobile bar ------------------------------------------------------------ */
@media (max-width: 980px) {
	html.js .m-bar {
		position: sticky;
		top: 0;
		z-index: 50;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		height: 64px;
		padding: 0 12px 0 16px;
		padding-top: env(safe-area-inset-top);
		background: rgba(255, 255, 255, .94);
		-webkit-backdrop-filter: saturate(1.6) blur(14px);
		backdrop-filter: saturate(1.6) blur(14px);
		border-bottom: 1px solid rgba(9, 57, 99, .1);
		transition: box-shadow .25s ease;
	}
	html.js .m-bar.is-scrolled { box-shadow: 0 6px 20px -10px rgba(9, 57, 99, .45); }
	.m-bar__logo { display: block; line-height: 0; }
	.m-bar__logo img { width: 168px; height: auto; }
	.m-bar__actions { display: flex; align-items: center; gap: 8px; }
	.m-bar__call {
		display: grid;
		place-items: center;
		width: 44px; height: 44px;
		border-radius: 50%;
		background: #eaf2fb;
		color: var(--cp-blue);
		transition: background .2s ease, transform .2s var(--ease-out);
	}
	.m-bar__call:active { transform: scale(.94); }
	.m-bar__call svg { width: 20px; height: 20px; }
	.m-bar__toggle {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		height: 44px;
		padding: 0 16px 0 14px;
		border: 0;
		border-radius: 999px;
		background: var(--cp-navy);
		color: #fff;
		font: 700 13px/1 var(--font-display);
		letter-spacing: .08em;
		text-transform: uppercase;
		cursor: pointer;
		transition: background .2s ease, transform .2s var(--ease-out);
		-webkit-tap-highlight-color: transparent;
	}
	.m-bar__toggle:active { transform: scale(.96); }
	.m-burger { position: relative; width: 18px; height: 12px; }
	.m-burger i {
		position: absolute;
		left: 0;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transition: transform .35s var(--ease-out), width .35s var(--ease-out);
	}
	.m-burger i:nth-child(1) { top: 0; width: 18px; }
	.m-burger i:nth-child(2) { top: 5px; width: 12px; }
	.m-burger i:nth-child(3) { top: 10px; width: 15px; }
	.m-bar__toggle:hover .m-burger i { width: 18px; }
}
@media (max-width: 360px) {
	.m-bar__logo img { width: 142px; }
	.m-bar__label { display: none; }
	.m-bar__toggle { padding: 0 13px; }
}

/* 8. Mobile drawer --------------------------------------------------------- */
@media (max-width: 980px) {
	html.js .m-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 90;
		background: rgba(3, 18, 36, .5);
		-webkit-backdrop-filter: blur(3px);
		backdrop-filter: blur(3px);
		opacity: 0;
		visibility: hidden;
		transition: opacity .4s ease, visibility 0s linear .4s;
	}
	html.js .m-drawer {
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 0; right: 0; bottom: 0;
		z-index: 100;
		width: min(88vw, 400px);
		color: #fff;
		background:
			radial-gradient(90% 50% at 100% 0%, rgba(90, 169, 255, .22), transparent 70%),
			linear-gradient(165deg, #0d4476 0%, #093963 45%, #062a4b 100%);
		border-radius: 22px 0 0 22px;
		box-shadow: -24px 0 60px rgba(2, 16, 32, .45);
		transform: translateX(104%);
		visibility: hidden;
		transition: transform .55s var(--ease-out), visibility 0s linear .55s;
		font-family: var(--font-display);
		overscroll-behavior: contain;
	}
	html.m-open .m-backdrop { opacity: 1; visibility: visible; transition: opacity .4s ease; }
	html.m-open .m-drawer { transform: none; visibility: visible; transition: transform .55s var(--ease-out); }
	html.m-open, html.m-open body { overflow: hidden; }
}

.m-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: calc(14px + env(safe-area-inset-top)) 14px 14px 22px;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.m-drawer__head img { width: 150px; height: auto; display: block; border: 2px solid #fff; border-radius: 3px; }
.m-drawer__close {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 50%;
	background: rgba(255, 255, 255, .06);
	color: #fff;
	cursor: pointer;
	transition: background .2s ease, transform .45s var(--ease-out);
}
.m-drawer__close svg { width: 18px; height: 18px; }
.m-drawer__close:hover { background: rgba(255, 255, 255, .14); transform: rotate(90deg); }
.m-drawer__scroll {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .18) transparent;
	padding: 8px 0 calc(28px + env(safe-area-inset-bottom));
}

/* nav tree */
.m-nav ul { list-style: none; margin: 0; padding: 0; }
.m-nav > ul > li {
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	opacity: 0;
	transform: translateX(28px);
	transition: opacity .45s ease, transform .55s var(--ease-out);
}
html.m-open .m-nav > ul > li {
	opacity: 1;
	transform: none;
	transition-delay: calc(90ms + var(--i, 0) * 38ms);
}
.m-nav__row { display: flex; align-items: stretch; }
.m-nav a {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 52px;
	padding: 0 8px 0 24px;
	color: #fff;
	text-decoration: none;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .01em;
	-webkit-tap-highlight-color: transparent;
}
.m-nav a:hover, .m-nav a:focus-visible { color: #bfe0ff; }
.m-nav a[aria-current="page"] { color: #8fd05f; }
.m-nav a[aria-current="page"]::before {
	content: "";
	width: 6px; height: 6px;
	margin-left: -14px;
	margin-right: 2px;
	border-radius: 50%;
	background: #8fd05f;
}
.m-nav .m-ext { width: 12px; height: 12px; opacity: .55; flex: 0 0 auto; }
.m-nav__toggle {
	flex: 0 0 56px;
	display: grid;
	place-items: center;
	border: 0;
	border-left: 1px solid rgba(255, 255, 255, .08);
	background: none;
	color: rgba(255, 255, 255, .75);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.m-nav__toggle svg { width: 18px; height: 18px; transition: transform .35s var(--ease-out); }
.m-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.m-nav__toggle[aria-expanded="true"] { color: #fff; }
.m-sub {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .4s var(--ease-out);
}
.m-sub.is-open { grid-template-rows: 1fr; }
.m-sub > ul { overflow: hidden; min-height: 0; }
.m-sub > ul { background: rgba(0, 0, 0, .16); }
.m-sub a { min-height: 44px; padding-left: 38px; font-size: 14.5px; font-weight: 500; color: rgba(255, 255, 255, .86); }
.m-sub .m-sub a { padding-left: 52px; font-size: 14px; color: rgba(255, 255, 255, .72); }
.m-sub .m-nav__toggle { flex-basis: 52px; }
.m-sub li + li { border-top: 1px solid rgba(255, 255, 255, .05); }

/* Ultrapan promo card */
.m-promo {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 22px 18px 0;
	padding: 14px 16px 14px 12px;
	border-radius: 16px;
	background: linear-gradient(135deg, #ffffff 0%, #f1f8ea 100%);
	color: var(--cp-navy);
	text-decoration: none;
	box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .55);
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s ease, transform .6s var(--ease-out);
}
html.m-open .m-promo { opacity: 1; transform: none; transition-delay: .35s; }
.m-promo img { width: 78px; height: auto; flex: 0 0 auto; }
.m-promo small {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--up-green-dark);
}
.m-promo strong { display: block; margin: 3px 0 5px; font-size: 14px; font-weight: 800; line-height: 1.25; }
.m-promo em { font-style: normal; font-size: 12.5px; font-weight: 700; color: var(--up-green-ink); }

/* contact block */
.m-contact {
	margin: 24px 18px 0;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s ease, transform .6s var(--ease-out);
}
html.m-open .m-contact { opacity: 1; transform: none; transition-delay: .42s; }
.m-contact h2 {
	margin: 0 0 12px 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6);
}
.m-call {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border-radius: 14px;
	background: #fff;
	color: var(--cp-navy);
	text-decoration: none;
	box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .6);
	transition: transform .2s var(--ease-out);
}
.m-call:active { transform: scale(.98); }
.m-call__icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 42px; height: 42px;
	border-radius: 50%;
	background: linear-gradient(180deg, #46a31c, var(--up-green-dark));
	color: #fff;
}
.m-call__icon svg { width: 19px; height: 19px; }
.m-call small { display: block; font-size: 11px; font-weight: 600; color: var(--cp-muted); letter-spacing: .02em; }
.m-call strong { display: block; font-size: 20px; font-weight: 800; letter-spacing: -.01em; }

.m-list { list-style: none; margin: 10px 0 0; padding: 0; border-radius: 14px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .09); }
.m-list li + li { border-top: 1px solid rgba(255, 255, 255, .08); }
.m-list a, .m-list div {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
}
.m-list a:hover { background: rgba(255, 255, 255, .05); }
.m-list svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px; color: #8fd05f; }
.m-list small { display: block; font-size: 11px; font-weight: 500; color: rgba(255, 255, 255, .62); letter-spacing: .02em; margin-bottom: 2px; }
.m-hours { display: grid; grid-template-columns: auto 1fr; gap: 3px 14px; font-weight: 500; }
.m-hours b { font-weight: 700; }
.m-hours span { color: rgba(255, 255, 255, .8); }

.m-actions { display: flex; gap: 10px; margin-top: 12px; }
.m-btn {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 14px;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, .28);
	color: #fff;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: background .2s ease;
}
.m-btn:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.m-btn svg { width: 18px; height: 18px; flex: 0 0 auto; }
.m-social { flex: 0 0 46px; padding: 0; }
.m-foot { margin: 18px 22px 0; font-size: 11px; color: rgba(255, 255, 255, .45); line-height: 1.5; }

/* 9. Motion preferences ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation: none !important; transition-delay: 0s !important; }
}
