/* global.css..gtml 8bf7799 2025/09/15 19:59 */
:root {
	--color-global-red: #990000;
	--color-global-1:  #DCF86C;
	--color-global-1a: #D8DFCE;
	--color-global-2:  #61AB71;
	--color-global-2a: #DBDBDB;
	--color-global-2b: #E8E2DD;
	--color-global-3:  white;
	--color-global-4:  black;
	--color-global-5:  white;
	--color-global-6:  white;
	--color-global-7:  #F0F2E9;
	--color-global-8:  black;
	--color-global-9:  white;
	--color-global-10: white;
	--color-global-11: #92a7ba;
	--color-global-12: black;
	--color-global-13: black;
}
:root {
	/* stylelint-disable declaration-block-no-duplicate-custom-properties */
	--color-top-sitename-fg:       black;
	--color-top-header-bg:         var(--color-global-7);
	--color-top-tel-fg:            black;
	--color-top-phone-bg:          var(--color-global-1a);
	--color-selected-bg:           var(--color-global-1);
	--color-hmenu-fg:              black;
	--color-hmenu-bg:              var(--color-global-7);
	--color-dummy-bg:              var(--color-global-7);
	--color-menu-fg:               black;
	--color-menu-bg:               var(--color-global-7);
	--color-menu-selected-bg:      var(--color-selected-bg);
	--color-menu-separator:        black;
	--color-hsubmenu-fg:           var(--color-menu-fg);
	--color-hsubmenu-bg:           var(--color-menu-bg);
	--color-hsubmenu-selected-bg:  var(--color-selected-bg);
	--color-top-separator:         black;
	--color-body-bg:               var(--color-global-6);
	--color-body-bold-bg:          var(--color-global-7);
	--color-hmenu-bottom:          var(--color-global-8);
	--color-text-title-fg:         black;
	--color-text-title-bg:         var(--color-global-1);
	--color-article-title-fg:      var(--color-global-10);
	--color-article-title-bg:      var(--color-global-11);
	--color-article-author-fg:      var(--color-global-12);
	--color-text-fg:               var(--color-global-13);
	--color-rcmnd-sep-fg:          black;
	--color-rcmnd-sep-bg:          var(--color-global-1a);
	--color-article-title:         #92a7ba;
	--color-deal-selected:         var(--color-selected-bg);
	--color-top-bullet:            var(--color-global-red);
	/* stylelint-enable declaration-block-no-duplicate-custom-properties */
}

:root {
	--body-max-width: 1200px;
	--backup-fonts: arial, verdana, helvetica, freesans, sans-serif;
	--mobile-top-img-rhs: 42px;
}


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

html {
	scrollbar-gutter: stable;
	font-family: var(--backup-fonts);
}

html, body, main {
	overflow-x: hidden;
}
html:has(:target) {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html,
	html:has(:target) {
		scroll-behavior: auto;
	}
}

h1 {
	font-size:1.5rem;
	margin:0
}
h2 {
	font-size:1.2rem;
	margin:0
}
.text-title + .text h2:first-of-type {
	margin-top: 1em;
}

@media (400px <= width < 800px) {
	h1 {
		font-size:clamp(1.1rem, 3vw, 1.5rem);
	}
	h2 {
		font-size:clamp(1.05rem, 3vw, 1.2rem);
	}
}

@media (width < 400px) {
	h1 {
		font-size:1.1rem
	}
	h2 {
		font-size:1.05rem
	}
}
body {
	max-width: var(--body-max-width);
	background-color: var(--color-body-bold-bg);
	background-image:none;
	margin:0 auto;
	padding:0;
}
body, input, select, textarea, button {
	font-size: 1em;
	font-family: inherit;
}

textarea {
	overflow:auto;
}
fieldset {
	border:1px solid black;
}
table, td, th {
	border:0;
	border-collapse:collapse;
	border-spacing:0;
	padding:0;
	margin:0;
}
ul, ol {
	padding-right: clamp(10px, 5vw, 40px);
	margin-right: 0;
}
img {
	border:0;
}
.target:target {
	background-color:#E9E3CF;
}
.bold-token {
	font-weight: bold;
}

:root {
	--popup-lhs-gap: 10px;
}
 #popup {
	border:1px solid black;
	display:none;
	text-align:right;
	background-color:#fbfbfb;
	width:calc(85% - var(--popup-lhs-gap));
	max-width:400px;
	margin:0 auto;
	position:fixed;
}
 #popup p {
	margin:10px;
}
 #popup.visible {
	display:block;
	z-index:9;
}
.see-also {
	min-height: 5em;
	margin-block: 12px;
	background-color: var(--color-body-bold-bg);
	padding: 10px;
	text-align: right;
	box-sizing: border-box;
}
.see-also-href {
	font-size:120%;
}
.see-also ul {
	list-style:none;
	margin:0;
	padding:0;
}
.see-also li {
	margin:0;
	padding:0;
}
/* stylelint-disable-next-line no-descending-specificity */
.see-also h2,
.text-title + .text .see-also h2 {
	margin:0;
}
.see-also h3 {
	margin-top:12px;
	margin-bottom:0;
}
/* stylelint-disable-next-line no-descending-specificity */
.see-also h3 + p {
	margin: 0;
}

 #contact-form-div {
	background-color: var(--color-global-1);
	width: min(75vw, 300px);
}
fieldset#contact-fieldset {
	position: relative;
	padding: 1.5em 0.8em 0.8em; /* extra top padding for legend */
}
fieldset#contact-fieldset > legend {
	font-size: 0.8rem;
	text-align: center;
	max-width: 100%;
	white-space: normal;
	padding: 0 0.5em;
	font-weight: bold;
	margin: 0 auto;
	display: table; /* centers multiline legends properly */
}

.top-header{
	position: relative;
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	text-align:center;
	width:100%;
	background-color:var(--color-top-header-bg);
	margin:0 auto;
}

.top-header::before{
	content:"";
	display:block;
	flex:0 0 100%;
	height: 1.1rem;
}

.top-img-wrapper {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	justify-content: center;
	max-width: calc(96% - var(--mobile-top-img-rhs));
}
.top-img-wrapper img {
	margin-right: 0.75em;
	vertical-align: middle;
	width: clamp(40px, 16vw, 195px);
	height: auto;
}
.top-name {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	flex-grow: 1;
	color: var(--color-top-sitename-fg);
	font-size: clamp(20px, 7vw, 72px);
	font-weight: bold;
	padding-block: 0 0.1em;
	padding-inline-end: 1.2em;
}

.top-name > span:first-child {
	margin-block-end: 0.10em;
	font-size: 1.25em;
	letter-spacing: 0.05em;
	font-weight: 800;
	font-family: Rubik, var(--backup-fonts);
}
.top-name > .top-name-services {
	font-size: 0.75em;
}
.top-name-services .top-name-separator {
	font-size: 1.2em;
	margin: 0 0.5ch;
	color: var(--color-top-bullet);
}
.header-link {
	text-decoration:none;
	color:inherit;
}
 #hamburger-button {
	display: none;
}

.pagewide-center {
	margin:0 auto;
	width: 100%;
	min-width: auto;
	background-color: var(--color-body-bg);
}
.content-flex {
	display: grid;
	grid-template-columns: max-content auto;
	align-items: start;
	width: 100%;
	box-sizing: border-box;
	background-color: white;
}

 #rhs {
	display: grid;
	align-items: start;
	justify-content: start;
	overflow: hidden !important;
	font-weight: 600;
	width: clamp(50px, 20vw, calc(147px + 2 * 3px));
}
.text {
	flex:1;
	padding: 0 clamp(10px, 5vw, 20px);
	margin: 0 auto;
	box-sizing: border-box;
	width: 100%;
	max-width:800px;
	text-align: justify;
	font-size: 1rem;
	line-height: 1.45;
	letter-spacing: 0.02em;
}
.text-title {
	color: var(--color-text-title-fg);
	background-color: var(--color-text-title-bg);
	text-align:center;
	margin:0 auto;
	width:95%;
}
.text-bold-bg {
	background-color: var(--color-body-bold-bg);
	padding: 1px 10px;
}

.essay h3 {
	font-size: 1em;
	font-weight: bold;
	line-height: inherit;
	letter-spacing: normal;
	word-spacing: normal;
}

.extra-space > li:not(:last-child) {
	margin-block-end: 1em;
}

.service-title::after,
.feature-label::after {
	content: ":";
}

.service-title,
.feature-label {
	display: inline;
	font-weight: bold;
	margin-right: 0.5em;
	margin-left: 0;
}

:root {
	--menu-separator: 2px;
	--menu-height: 33px;
	--hmenu-height: 25px;
	--menu-font-size: clamp(0.75rem, 3vw, 1rem);
}
.menu-add a {
	line-height:1.3
}
.menu-add, .menu-add ul {
	padding: 0;
	margin: 0;
}
.menu-add {
	margin-top: 2em;
	text-align: center;
	font-size:  var(--menu-font-size);
}
/* stylelint-disable-next-line no-descending-specificity */
.menu-add li {
	all: unset;
	display: block;
	margin-top: 1em;
	width: 100%;
}
.menu-add a:link {
	color:#06c;
}
.menu-add a:visited {
	color:#800080;
}
.menu-add a:hover {
	color:black;
}
.menu-add a:active {
	color:red;
}
/* stylelint-disable-next-line no-descending-specificity */
.menu-add span {
	font-size:120%;
	font-weight:bold;
}

 #menu {
	 display: flex;
	 flex-direction: column;
	 align-items: stretch;         /* each link fills the nav width   */
	 white-space: normal;          /* ⟸ was nowrap – that caused spillout */
	 width: 100%;                  /* explicit so it never grows wider */
	 box-sizing: border-box;       /* include any padding you may add */
	 background-color: var(--color-menu-bg);
	 font-size: var(--menu-font-size);
}

/* stylelint-disable-next-line no-descending-specificity */
[id="menu"] > a {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	width: 100%;
	min-height: var(--menu-height);
	box-sizing: border-box;
	color: var(--color-menu-fg);
	text-decoration: none;
	line-height: 1.3;
	border-inline: 6px groove var(--color-global-1);
	position: relative; /* anchor for ::before separator     */
}

[id="menu"] > a.menuitem-ishi {
	border-block-start: 6px groove var(--color-global-1);
}
[id="menu"] > a.menuitem-faq {
	border-block-end:   6px groove var(--color-global-1);
}

[id="menu"] > a:not(:first-of-type)::before {
	content: "";
	position: absolute;
	border-top: var(--menu-separator) solid var(--color-menu-separator, currentColor);
	inset-inline: 0;
	top: 0;
	height: 0;
}

 #menu:not(:hover) .selected,
 #menu:hover a:hover {
	background-color: var(--color-menu-selected-bg);
}

.phones {
	display: flex;
	flex-wrap: wrap;
	white-space: nowrap;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 10px;
	width: 100%;
	font-weight: bold;
	color: white;
	background-color: var(--color-top-phone-bg);
	border-top: 4px double var(--color-top-separator);
	border-bottom: 4px double var(--color-top-separator);
	padding-block: 5px 8px;
}
.tel {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: var(--color-top-tel-fg);
	font-size: clamp(15px, 3.3vw, 30.5px);
	line-height: 1.2;
	gap: 10px;
}
.tel-text {
	margin-left: 1em;
	text-align: center;
	flex-shrink: 0;
}

.hand-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	flex-shrink: 0;
}
.hand-icon img {
	width: clamp(26px, 5.5vw, 52px);
	height: auto;
}
.tel-number {
	white-space: nowrap;
	flex-shrink: 0;
}

.pic-width {
	text-align:center;
}

.menu-final-row {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0;
	background-color: white;
	margin: 0 auto;
}
.menu-final-row > * {
	margin: 10px auto 0;
	box-sizing: border-box;
}

.menuitem-deal {
	border: 6px groove var(--color-global-1);
	text-align: center;
	padding: 3px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}
/* stylelint-disable no-descending-specificity */
 #menu .menuitem-deal a {
	color: black;
	white-space: normal;
	overflow-wrap: break-word;
	text-decoration: none;
	display: block;
	width: 100%;
	text-align: center;
	margin-inline: 0;
	border: none;
}

@media (width >= 600px) {
	 #menu .menuitem-deal a:hover,
	 #menu:not(:hover) .menuitem-deal.selected {
		 background-color: var(--color-deal-selected);
	}
}
.menuitem-deal span {
	display: block;
}
/* stylelint-enable no-descending-specificity */

.bottom-box {
	margin-right: 5px;
	margin-block: 15px 10px;
	border: 3px solid #990000;
	font-weight: bold;
	line-height: 1.5;
	box-sizing: border-box;
	max-width: calc(100% - 10px);
}
.bottom-box-link {
	text-decoration: none;
	color: inherit;
	display: block;
	cursor: pointer;
	font-weight: normal;
	margin: 7px;
}
.city-list {
	display:block;
	white-space:normal;
	padding:0;
	margin:0;
	text-align: right;
	font-size: 0.8rem;
}
/* stylelint-disable-next-line no-descending-specificity */
.bottom-box.text p:has(+ .city-list) {
	margin-bottom: 0;
}
.city-list .city-name {
	display:inline;
	white-space:nowrap;
	font-weight:normal;
}
.city-list .city-name:not(:last-of-type)::after {
	content:",\0020";
}
.city-list .city-name:last-of-type::after {
	content:".";
}
.share-container {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	direction: rtl;
	position: relative;
	margin-inline: 2vw;
	column-gap: 0.6em;
	flex: 1 1 auto;   /* ▲ grow to fill the row ─ restores wide popup */

}
.share-container::before,
.share-container::after {
	content: "";
	display: block;
	height: 180px;
}

.share-button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25em;
	background-color: #555;
	color: white;
	padding: 8px;
	border-radius: 6px;
	border: none;
	cursor: pointer;
	min-width: 80px;
	font-weight: bold;
}
.share-icon-label {
	font-size: 1.4em;
	line-height: 1;
}
.share-text {
	font-size: 1rem;
	line-height: 1;
}

 #share-popup {
	 margin-inline-end: 0.05em;
	 background: white;
	 border: 1px solid #ccc;
	 box-shadow: 0 0 0.4em rgba(0, 0, 0, 0.2);
	 padding: 0.4em;
	 max-width: 90vw;
	 z-index: 10;
}

@media (width < 600px) {
	.share-container {
		column-gap: 0.25em;
	}
}

.share-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-evenly;
	row-gap: 0.6em;
	align-items: center;
	text-align: center;
}

.share-buttons > * {
	display: flex;
	flex-direction: column;
	width: clamp(50px, 18vw, 80px);
	align-items: center;
	text-align: center;
}
.share-icon {
	width: 1.6em;
	height: 1.6em;
	/* stylelint-disable-next-line value-keyword-case */
	fill: currentColor;
}
.copy-button {
	position: relative;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: inherit;
}
.copy-feedback {
	position: absolute;
	bottom: 100%;
	inset-inline-end: 0;
	white-space: nowrap;
	background: white;
	border: 1px solid #ccc;
	padding: 0.2em 0.5em;
	font-size: 0.9em;
	color: green;
	box-shadow: 0 0 0.2em rgba(0, 0, 0, 0.2);
	border-radius: 0.3em;
	margin-bottom: 0.4em;
	z-index: 20;
	animation: fadeout 1.5s forwards;
}

@keyframes fadeout {
	0% { opacity: 1; }
	70% { opacity: 1; }
	100% { opacity: 0; }
}
.icon-label {
	font-size: 0.75em;
	margin-top: 0.2em;
}


/* stylelint-disable-next-line no-descending-specificity */
li:target {
	background-color:#F4F1E7;
}
[id] {
	scroll-margin-top: 20px;
}

.keyword {
	vertical-align:top;
	color: #990000;
	font-weight:bold;
	white-space:nowrap;
	font-size: 0.9rem;
}

.highlight-note {
	background-color: #F0F2E9;
	padding-inline: 10px;
	text-align: right;
}
.sr-only {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	border: 0;
	padding: 0;
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}

.font-size-wrapper {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	box-sizing: content-box;
	padding: 4px;
	z-index: 2000;
	direction: ltr;
}
.font-size-inner {
	max-width: calc(var(--body-max-width) + (100% - var(--body-max-width)) / 2 - 2px);
	width: 100%;
	display: flex;
	justify-content: flex-start;
}
 #font-size-controls {
	display: flex;
	gap: 0.3rem;
	border: 0;
	padding: 0;
	margin: 0;
	direction: rtl;
}
 #font-size-controls input[type="radio"] {
	display: none;
}
 #font-size-controls label {
	display: flex;
	align-items: center;
	justify-content: center;
	width: clamp(1rem, 3vw, 2.1rem);
	height: clamp(1rem, 3vw, 2.1rem);
	border: 1px solid #ccc;
	border-radius: 0.25rem;
	background-color: #f8f9fa;
	cursor: pointer;
	user-select: none;
	transition: background-color 0.3s, border-color 0.3s;
	font-size: 1rem;
}
 #font-size-controls input[type="radio"]:checked + label {
	background-color: #ffcccc;
}
 #font-size-controls label.small-font,
 #font-size-controls label.medium-font,
 #font-size-controls label.large-font {
	line-height: normal;
	letter-spacing: normal;
}
fieldset#font-size-controls {
	border: 0;
	padding: 0;
	margin: 0;
	min-inline-size: unset;
}
fieldset#font-size-controls > legend {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
.font-scale {
	font-size: 1rem;
	line-height: 1.45;
	letter-spacing: 0.02em;
}
.small-font, #font-size-controls label.small-font {
	font-size: 0.75rem;
	line-height: 1.50;
	letter-spacing: 0.03em;
}
.medium-font, #font-size-controls label.medium-font {
	font-size: 1rem;
	line-height: 1.45;
	letter-spacing: 0.02em;
}
.large-font, #font-size-controls label.large-font {
	font-size: 1.25rem;
	line-height: 1.35;
	letter-spacing: 0.01em;
}

.text img,
.text .svg-container {
	width: auto;
	max-width: clamp(95px, var(--img-fraction, 38vw), 40vw);
	height: auto;
	display: block;
	object-fit: contain;
}
.text .svg-container > svg {
	inline-size: 100%;
	block-size: auto;
	display: block;
}

.text img.full-width-img, .full-width-img {
	width: 100vw !important;
	max-width: 100% !important;
	height: auto !important;
	display: block !important;
	margin: 0 !important;
	object-fit: contain !important;
}
.text img.half-width-img, .half-width-img {
	width: 35% !important;
	max-width: 100% !important;
	height: auto !important;
	display: block !important;
	margin: 0 auto !important;
	object-fit: contain !important;
}
.float-left {
	float: left;
	padding-left: clamp(0%, 8vw, 20px);
	padding-right: 20px;
}

.no-justify {
	text-align: start;
}

@media (width < 600px) {
	.float-left {
		padding-left:5px;
		padding-right:15px;
	}
	.text {
		text-align: start;
		letter-spacing: normal;
	}
	#rcmnds {
		letter-spacing: -0.06rem;
		font-size: 0.95em;
	}
}


 #iframe1 {
	width: 100%;
	max-width: 700px;
	height: 600px;
	box-sizing: border-box;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.single-signon {
	width:80%;
	margin: 1em auto;
}
.yt-iframe {
	width: 100%;
	max-width: 425px;
	aspect-ratio: 425 / 344;
	height: auto;
	margin: 0 auto;
	border: 0;
	display: block;
	overflow: hidden;
}
.yt-short {
	aspect-ratio: 9.1 / 9;
	max-width: clamp(70px, 70vw, 380px);
}
.yt-video h2.content-page {
	font-size: 0.85em;
	font-weight: bold;
	margin-bottom:0.25em;
}
.video-legend {
	margin-top: 0.25em;
}
.font-scale.video-legend {
	font-size: 0.88em;
}

.direct-link {
	margin-top: 0.8em;
	font-size: 0.8em;
	color: #DDD;
}

.yt-video {
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 8px auto;
	text-align: center;
	box-sizing: border-box;
}

.nowrap {
	white-space:nowrap;
}

/* stylelint-disable-next-line value-keyword-case */
.infolink{color:currentColor;text-decoration:none;outline:none}
.infolink:hover{text-decoration:underline}
/* stylelint-disable-next-line value-keyword-case */
.infolink:focus-visible{text-decoration:underline;outline:2px solid currentColor;outline-offset:2px}

.vcss {
	float:right;
}
.footer-buttons {
	display: flex;
	align-items: center;
	direction: rtl;
	margin-inline: 2vw;
	overflow: visible;
}
.footer-buttons button {
	min-height: 52px;
	padding: 8px;
}
.back-to-top {
	position: absolute; 
	inset-inline-start: 5vw;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25em;
	background-color: #555;
	color: white;
	padding: 8px;
	border-radius: 6px;
	border: none;
	cursor: pointer;
	margin-inline-start: auto;
	z-index: 5;
}
/* stylelint-disable-next-line no-descending-specificity */
.back-to-top svg {
	width: 1.6em;
	height: 1.6em;
	/* stylelint-disable-next-line value-keyword-case */
	color: currentColor;
}
.back-to-top-label {
	font-size: 1rem;
	line-height: 1;
	text-align: center;
}
.back-to-top:hover svg {
	transform: translateY(-2px);
}
footer {
	position: relative;
	margin-bottom: 15px;
	text-align: center;
}

.footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style-type: none;
	margin-right: 0.25em;
}
/* stylelint-disable-next-line no-descending-specificity */
.footer li {
	display: flex;
	align-items: center;
	white-space: nowrap;
	line-height: 1.5;
}
.separator {
	font-weight:900;
	margin: 0 7px;
	color: #888;
	display: inline-block;
	line-height: 1.5;
	vertical-align: middle;
}
/* stylelint-disable-next-line no-descending-specificity */
.footer a {
	text-decoration: none;
	color: var(--global-text-fg);
	align-items: center;
	line-height: 1.5;
}
/* stylelint-disable-next-line no-descending-specificity */
.footer a:visited, .footer a:link {
	color: var(--global-text-fg);
}
/* stylelint-disable-next-line no-descending-specificity */
.footer a:hover {
	color: #990000;
}
.splogo td {
	padding:8px;
	border-spacing:1px;
}
.hmenu-container {
	border-bottom: 7px solid var(--color-hmenu-bottom);
	padding: 0 0 1px 0;
	background-color: var(--color-top-separator);
}
 #hmenu {
	display: flex;
	justify-content: center;
	width: 100%;
	position: relative;
	list-style-type: none;
	margin: 0;
	padding: 0;
	font-weight: bold;
	z-index: 9;
}
.hmenu-long-text {
	line-height:100%;
	max-width:85%;
	height: auto;
}
 #hmenu .dummy {
	 flex: 1 1 auto;
	 min-width: 0;
	 background-color: var(--color-dummy-bg);
	 overflow: hidden;
}
  #hmenu .dummy::before {
	 display: block;
	 box-sizing: border-box;
	 width: 100%;
	 height: 100%;
	 background-color: var(--color-dummy-bg);
}
 #hmenu .dummy:first-child {
	 border-left: 1px solid var(--color-top-separator);
}
 #hmenu .dummy:last-child {
	 border-right: 1px solid var(--color-top-separator);
}
.hmenuitem {
	flex: 0 1 16.66%;
	max-width: 162px;
	height: var(--hmenu-height);
	margin: 0 1px 0 0;
	position: relative;
	padding: 0;
	overflow: hidden;
	text-align: center;
	right: auto;
}
.dummy + .hmenuitem {
	margin-right: 0;
}
.hmenuitem ul {
	display:block;
	margin:0; padding:0;
	list-style-type:none;
}
/* stylelint-disable-next-line no-descending-specificity */
.hmenuitem li { margin:0; padding:0 }
/* stylelint-disable-next-line no-descending-specificity */
.hsubmenu li {
	position:relative;
	border-top: 1px solid var(--color-top-separator);
}
.hsubmenu { background-color:white }
.hsubmenu:hover, .hmenuitem:hover, #li-links:focus-within/*by tab*/ {
	overflow:visible;
}
 #hmenu > li {
	right: auto !important;
}
/* stylelint-disable-next-line no-descending-specificity */
 #hmenu a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--hmenu-height);
	padding: 0;
	text-align: center;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	line-height: 1;
}

/* stylelint-disable-next-line no-descending-specificity */
  #hmenu li, #hmenu li > a {
	 box-sizing:border-box;
}

/* stylelint-disable-next-line no-descending-specificity */
.hmenuitem a {
	background-color: var(--color-hmenu-bg);
	color: var(--color-hmenu-fg);
	font-size:  var(--menu-font-size);
}
/* stylelint-disable-next-line no-descending-specificity */
.hmenuitem ul a {
	background-color: var(--color-hsubmenu-bg);
	color: var(--color-hsubmenu-fg);
}

@media (width < 1024px) {
	#hmenu {
	    flex-wrap: wrap;
	    justify-content: center;
	    gap: 1px;
	}

	.hmenuitem {
	    flex: 0 1 calc(33.333% - 1px);
	    max-width: calc(33.33% - 1px);
	    margin-right: 0;
	}

	#hmenu .dummy {
	    display: none;
	}
}
/* stylelint-disable-next-line no-descending-specificity */
.article-nav a, a.article-nav {
	font-weight:bold;
	padding:8px 20px 8px 20px;
	border:1px solid black;
	background-color: var(--color-global-1);
	display:inline-block;
}
.article-nav {
	margin-top: 1em;
	text-align: right;
}
/* stylelint-disable-next-line no-descending-specificity */
.article-nav p {
	margin-bottom: 1em;
}
.article-nav-row {
	display: block;
	text-align: right;
}
.article-nav-adjacent {
	font-weight: bold;
	font-size: 120%;
	display: block;
	text-align: right;
}
.article-title {
	width:100%;
	padding-right:20px;
	background-color: var(--color-article-title-bg);
	text-align: right;
}
.article-title h1 {
	padding-left:20px;
	color: var(--color-article-title-fg);
	font-size:1.5em;
}
/* stylelint-disable-next-line no-descending-specificity */
.article-title span {
	display: inline-block;
	margin-top: 10px;
	font-weight:bold;
	color: var(--color-article-author-fg);
}
.links {
	font-size: 1.1em;
	line-height: 2;
}
.index-links ul {
	font-size: 1.1em;
	line-height: 2;
	margin-top: 0;
	padding-right: 2em;
}
.index-title {
	padding: 1em 0;
	font-weight: bold;
	color: var(--color-article-title);
	margin: 0;
	font-size: 1.25em;
}
.lecture .article-title {
	margin-bottom: 1em;
}
/* stylelint-disable-next-line no-descending-specificity */
hr.lecture-end {
	border: none;
	border-top: 3px dashed #aaa;
	margin: 2em 0 1em;
}
.lecture .article-nav {
	margin-bottom: 1em;
}
.en-right {
	text-align:right;
	direction:ltr;
	unicode-bidi:embed;
}
.en-left {
	text-align:left;
	direction:ltr;
	unicode-bidi:embed;
}
.bibliography {
	font-size: 70%;
}
.bibliography ol {
	list-style: none;
	counter-reset: bib;
	padding-right: 0;
	margin: 0;
}
/* stylelint-disable-next-line no-descending-specificity */
.bibliography li {
	display: flex;
	margin-bottom: 0.5em;
	unicode-bidi: embed;
}
.bibliography li::before {
	counter-increment: bib;
	content: counter(bib) ".\00a0";
	flex-shrink: 0;
	white-space: nowrap;
}
/* stylelint-disable-next-line no-descending-specificity */
.bibliography a {
	word-break: break-all;
}

.books {
	font-size: 120%;
	width: 100%;
	max-width: 750px;
	line-height: 1.4;
	margin: 0 auto;
	overflow-wrap: break-word;
}
 #rcmnds-top {
	width: 100%;
	text-align: center;
	margin: 5px auto 1em;
}
 #rcmnds {
	width:100%;
	table-layout:fixed;
	border:0;
	margin:auto;
}
 #rcmnds td.ordinal, #rcmnds td.date {
	font-size: 0.75rem;
}
 #rcmnds td.ordinal {
	width: 2rem;
	text-align:left;
	padding-left:3px;
}
 #rcmnds td.date {
	width: 3.5rem;
	text-align:right;
	padding-right:3px;
}
.rcmnd-cell {
	white-space: nowrap;
	overflow: hidden;
}
.rcmnd-list {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block;
}
.rcmnd-sep {
	width: 100%;
	height: 36px;
	background-color: var(--color-rcmnd-sep-bg);
	font-weight: bold;
	color: var(--color-rcmnd-sep-fg);
}
.rcmnd-date {
	float: left;
	color: black;
	text-align: left;
	margin-left:1em;
}
.button {
	border: 3px solid var(--color-global-red);
	font-size: 17px;
	text-decoration: none;
	padding: 0 0.25rem;
	background: var(--color-global-1a);
	display: flex;
	flex-wrap:wrap;
	justify-content:center;
	width:fit-content;
	box-sizing:border-box;
	margin-inline:auto;
}
.button-text{
	overflow-wrap:anywhere;
	white-space:normal;
}

a.button:link, a.rcmnd-list:link {
	color: var(--color-test-fg);
	text-decoration:none;
	font-weight:bold;
}
a.button:visited, a.rcmnd-list:visited {
	color: var(--color-test-fg);
	text-decoration:none;
	font-weight:bold;
}
a.button:hover {
	color:#990000;
	background-color: var(--color-global-1);
	text-decoration:none;
	font-weight:bolder;
}
a.rcmnd-list:hover {
	color:#990000;
	background-color:transparent;
}

@media (width < 600px) {
	:root {
		--rhs-adjust: 0px;
		--color-menu-fg: black;
		--color-menu-bg: var(--color-body-bold-bg);
		--color-menu-selected-bg: var(--color-global-1);
	}
	#hamburger-button {
		all: unset;
		width: 48px;
		position: absolute;
		right: 5px;
		aspect-ratio: 1 / 1;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		user-select: none;
		z-index: 2000;
	}
	#hamburger-button svg {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 70%;
		height: 70%;
	}
	.top-img-wrapper {
		padding-right: var(--mobile-top-img-rhs);
	}
	.top-img-wrapper img {
		margin-block: 10px;
	}
	.top-name {
		font-size: clamp(10px, 6vw, 39px);
		font-size: clamp(10px, 6.3cqw, 39px);
		padding-block: 0 0.2em;
		padding-inline-end: 0.6em;
	}

	/* Default mobile state */
	#hamburger-icon { display: block; }
	#close-icon     { display: none; }

	#menu {
		position: fixed;
		width: 80vw;
		right: 5px;
		left: auto;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
		z-index: 1000;
		box-sizing: border-box;
		font-size: clamp(0.8em, 8vw, 1.2em);
	}

	#menu a {
		width: 100%;
		text-align: center;
		white-space: normal;
	}
	#menu .menuitem-qwdance {
		font-size: 0.8em;
	}
.menu-final-row {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
		padding: 10px;
		flex-wrap: wrap;
		font-size: 1rem;
		padding-block: 6px;
	}
	.menuitem-deal {
		height: auto;
		margin: 0;
		flex: 1 1 0;
	}
	#close-icon {
		position: absolute;
		top: 10px;
		left: 10px;
		z-index: 1001;
	}

	#menu {
		opacity: 0;
		transform: translateY(-10px);
		visibility: hidden;
		transition: opacity 200ms ease-out, transform 200ms ease-out;
	}
	body.menu-open {
		overflow: hidden;
		height: 100vh;
	}
	#menu {
		overflow-y: auto;
		max-height: 100vh;
		-webkit-overflow-scrolling: touch; /* Safari */
	}
	body.menu-open #menu {
		opacity: 1;
		transform: translateY(0);
		visibility: visible;
	}
	body:not(.menu-open) #menu {
		transition: none;
	}

	/* Toggled state */
	body.menu-open #hamburger-icon { display: none; }
	body.menu-open #close-icon     { display: block; }
	#rhs {
		width: 0;
	}
}
/* stylelint-disable no-descending-specificity */
 #hmenu > li:hover > a,
 #hmenu .hsubmenu a:hover {
	background-color: var(--color-selected-bg);
}
 #hmenu li:has(.hsubmenu a:hover) > a {
	background-color: var(--color-hsubmenu-selected-bg);
}
 #hmenu:not(:hover) > li > a.selected,
 .hsubmenu a.selected {
	background-color: var(--color-hsubmenu-selected-bg);
}
 #hmenu:not(:hover) li:has(.hsubmenu a.selected) > a {
	background-color: var(--color-hsubmenu-selected-bg);
}
 #hmenu:hover > li:not(:has(.hsubmenu a:hover)) > a.selected:not(:hover) {
	background-color: var(--color-hmenu-bg);
}

 #hmenu:hover .hsubmenu:hover a.selected:not(:hover),
 .hsubmenu:not(:hover) .hsubmenu.selected {
	background-color: var(--color-hmenu-bg);
}
/* stylelint-enable no-descending-specificity */

@font-face {
	font-family: Rubik;
	font-style: normal;
	font-weight: 800;
	src: url('/fonts/Rubik-ExtraBold.woff2') format('woff2'),
	     url('/fonts/Rubik-ExtraBold.woff') format('woff');
	font-display: swap;
}
