@import url(//fonts.googleapis.com/css?family=Assistant:200,300,400,600,700,800);

/*****************************************Basic*********************************/
body {
	letter-spacing: 0.2px;
	/*font-family: 'Open Sans Hebrew', sans-serif, arial;*/
	font-family: 'Assistant', sans-serif, arial;
	font-size:	14px;
	overflow-x: hidden;
	margin: 0;
	padding: 0;
	color: #333;;
	/* background: #F8FAFC; */
	background: #f1f1f1;
	line-height: 1.25;
	/* letter-spacing: 1.6px; */
}

/**********/
h1,h2,h3,h4,h5,h6,p {
	font-weight: normal;
	margin:	0;
	padding: 0;
	font-size: inherit;
}
a {
	outline: 0;
	text-decoration: none;
	color: #1da1f2;
}
a:hover {text-decoration: none;}
img {
	border: none;
	max-width: 100%;
	height: auto;
}
ul {
	margin: 0;
	padding: 0;
}
li {
	list-style: none;
}
.none {
	display: none;
}
.floatright {
	float: right;
}
.floatleft {
	float: left;
}
.fixed {
	position: fixed !important;
}
.underline {text-decoration: underline;}
.bold {font-weight: bold;}

.overlay{opacity: 0.5; background: #fff; z-index: 9999; height: 100%; top: 0;}
.no_scroll {height: 100%; overflow: hidden;}
.shadow {box-shadow: 0px 5px 10px #888888;}


.no_background {background: none;}
.no_scroll {height: 100%; overflow: hidden;}
.no_border {border: none;}
.no_margin {margin: 0;}
.no_padding {padding: 0;}
.table {display: table;}
.raw {display: table-row;}
.table-cell {display: table-cell;}
.ltr {direction: ltr;}
.rtl {direction: rtl;}
.align_center {text-align: center;}
.opacity_ef {-webkit-transition: all 0.2s ease; transition: all 0.2s ease; opacity: 0.9}
.opacity_ef:hover {opacity: 1;}

::-webkit-input-placeholder {color: #999;}
:-moz-placeholder {color: #999;}
::-moz-placeholder {color: #999;}
:-ms-input-placeholder {color: #999;}

@keyframes blink {
	0%   { opacity:1; }
	50%  { opacity:0; }
	100% { opacity:1; }
}
@-o-keyframes blink{
	0%   { opacity:1; }
	50%  { opacity:0; }
	100% { opacity:1; }
}
@-moz-keyframes blink{
	0%   { opacity:1; }
	50%  { opacity:0; }
	100% { opacity:1; }
}
@-webkit-keyframes blink{
	0%   { opacity:1; }
	50%  { opacity:0; }
	100% { opacity:1; }
}
.blink {
	-webkit-animation: blink 1s infinite;
	-moz-animation: blink 1s infinite;
	-o-animation: blink 1s infinite;
	animation: blink 1s infinite;
}

* {box-sizing: border-box;}

/** Layout **/
#page {
	clear: both;
	display: block;
	margin: 0 auto;
	min-height: 560px;
	/* width: 1128px; */
	min-width: 1200px;
	overflow: hidden;
	/* padding-top: 20px; */
}
.container {
	width: 100%;
	max-width: 100%;
	display: block;
	position: relative;
	float: none;
	margin: auto;
	box-sizing: border-box;
}
.container:after {
	content: "";
	display: block;
	clear: both;
}

.columns_wrapper {
	/* width: 1200px; */
	max-width: 100%;
	display: block;
	position: relative;
	margin: auto;
	box-sizing: border-box;
}
.columns_wrapper:after {
	content: "";
	display: block;
	clear: both;
}


.column {
	display: block;
	min-height: 2px;
}
.spacer {
	width: 1%;
	height: 10px;
	float: right;
}

/** pages **/
body.portal #page {padding: 0; overflow: visible; overflow-x: hidden; width: 100%;}

/**msgs**/
.msg_notice {background: #BAE9E8; padding: 10px 10px; border-radius: 10px; margin-bottom: 10px; width: 100%; margin: auto;}
.msg_notice p {
	color: #555555;
}


.msg_notice.no_content {
	margin: 50px auto 30px auto;
}

/**Modules**/
.module_wrapper {width: 100%;margin-bottom: 10px;}
.module_wrapper .module_headline {padding: 0 0 0 0; font-size: 22px; color: #4d565c; font-weight: bold; margin-bottom: 10px; display: block; width: 100%;}
.module_wrapper .module_headline i {display: none;}
.module_wrapper > .content {box-sizing: border-box; padding: 0px; min-height: 28px; overflow: hidden; /* background: #fff; */ position: relative;}
.module_wrapper.no_margin {margin: 0;}
.module_wrapper.no_padding > .content {padding: 0;}
.module_wrapper.no_border > .content {border: none;}


/** errors **/
.msg_notice {overflow: hidden; clear: both; background: none;}
.msg_notice p { margin: 5px 0 0 0; float: right; text-align: right; width: calc(100% - 35px);}
.msg_notice i {display: none;}

.no_results {overflow: hidden; clear: both; background: none;}
.no_results p {float: right; padding: 6px 0 0 0; font-size: 14px;}
.no_results i {display: none;}

.error_notice {overflow: hidden; clear: both; background: none;}
.error_notice p {float: right; padding: 3px 0 0 0;}
.error_notice i {display: none;}

/** module_load **/
/* .module_load {min-width: 400px;} */

/* .overlay {opacity:0.1; background: #000; z-index: 10;} */
.ajaxon {width:100%; height: 200px; background: url(/css/images/ajax_loader3.gif) scroll 50% 0 no-repeat; margin:auto; display:block; z-index: 11;}
.ajaxon2 {width:100%; height: 200px; background: url(/css/images/ajax-loader2.gif) scroll 50% 0 no-repeat; margin:auto; display:block; z-index: 11;}

/* datepicker */
.ui-datepicker {z-index: 1001 !important; }

/* tootltip */
.tooltip {position: relative;}
.tooltip.in_action {z-index: 100;}
.tooltip .tooltip_link {cursor:pointer; }
.tooltip .tooltip_link:hover,
.tooltip .tooltip_link.selected {}
.tooltip .bubble {box-shadow: 0px 5px 10px #888888;  position: absolute; left: 50%; transform: translateX(-50%) translateY(-15px); bottom: 100%; margin-top: 20px;/* transform: translateY(-50%); */ /* margin-left: 20px; */ border: 1px solid #ccc; border-radius: 4px; padding: 5px 10px; background: #fff;}
.tooltip .bubble .close_tooltip {opacity: 0.9; float: right; clear: both; color: #313131; margin: 0 0 0 0; }
.tooltip .bubble .close_tooltip:hover {opacity: 1;}
.tooltip .bubble .close_tooltip span {float: right; background: #e1e1e1; padding: 4px 8px; font-size: 14px; font-weight: bold; border-radius: 4px;}
.tooltip .bubble .tool_wrap {overflow: hidden;}
.tooltip .bubble .tool_wrap .module_load {min-width: 0;}
.tooltip .bubble .tool_wrap .module_load .content {font-size: 14px;}
.tooltip .bubble::before,
.tooltip .bubble::after {z-index: 1; position: absolute; top: 100%; /* transform: translateY(-50%); */ left: 50%; transform: translateX(-50%); content: '';width: 0;height: 0; border-top: solid 13px #fff; border-left: solid 13px transparent; border-right: solid 13px transparent;}
.tooltip .bubble::before {border-top: solid 14px #ccc; border-right: solid 14px transparent; border-left: solid 14px transparent;}

/** media_wrap **/
.media_wrap {background: #000; max-width: 100%;}
.media_wrap .media_clicker {max-width: 100%; position: relative; display: inline-block;}
.media_wrap .media_clicker i {opacity: 0.3; border-radius: 90px; border: 2px solid #fff; background: #fff url('/css/icons/set1/play-circle-6x.png') no-repeat; z-index: 99;  width: 48px; height: 48px; position: absolute; right: 50%; top: 50%; margin-right: -24px; margin-top: -24px;}
.media_wrap .media_clicker:hover i {opacity: 1;}

/** login_div **/
.login_div {position:relative; margin: auto; width: 450px; top: -1000px; display: table; z-index: -1;}
.login_div .module_load {min-width: 0;}
.login_div .module_wrapper div.content {border-radius: 0 0 6px 6px; overflow: visible;}
.login_div .head {border-radius: 10px 10px 0 0;}
.login_div .foot {border-radius: 0 0 10px 10px;}

/** pagination **/
.pagination {float: right; margin:10px 0; clear: both;}
.pagination span,
.pagination a {padding: 3px; text-decoration: none; margin-left: 3px;display: block; float: right;}
.pagination .pagination_next,
.pagination .pagination_prev {margin:0 3px;padding:4px 0;background-position: center center;background-repeat: no-repeat;border: 1px solid transparent;overflow: hidden;}
/* .pagination a:hover {background-color: #DEDEDE;color: #222;} */
.pagination .pagination_current,
.pagination .pagination_current:hover {color: #02acf6; border-bottom: 1px solid #02acf6;}
.pagination .pagination_dots { margin-right: 2px;display: block;padding: 8px 4px; border:none; color: #02acf6;}

/** forms **/
form {float: right; color: #333;}
form .fieldRow.media_wrap {background: inherit; width: auto;}
form .fieldRow {float: right; clear: both; margin-bottom: 15px; position: relative; width: 100%;}
form .fieldRow .label_wrapper{float: right; margin: 0 0 5px 0;}
form .fieldRow .label_wrapper.empty_label {display: none;}
form .fieldRow label {float: right; }
form .fieldRow .wrapping_field {position: relative; float: right; clear: both;}

form .fieldNotice {float: right; clear: both; margin-top: 2px; color: #00aeeb; font-size: 11px;}
form .type_checkbox .fieldNotice {margin: 10px 0 0 0;}
form .fieldExtra {float: right; clear: both; margin-top: 2px; }

form .fieldRow .field_wrap{float: right; clear: both; width: 100%; border-radius: 5px; overflow:hidden; height: 45px; box-sizing: border-box;}
form .fieldRow .field_submit,
form .fieldRow .field_checkbox,
form .fieldRow .field_radio {border:  none; height: auto; }
/*form .fieldRow .field_radio {margin-top: 3px; width: auto;}*/


form .fieldRow.type_radio .label_wrapper label {padding: 0;}
form .fieldRow .field_radio {width: auto;}
form .fieldRow .field_radio label {with: auto; float: right;}
form .fieldRow .field_radio input {margin: 2px 0 0 0;}
form .fieldRow .field_radio .label_wrapper {width: auto; padding-right: 1px;}
form .fieldRow .field_radio label {width: auto; padding: 0;}
form .fieldRow .field_radio input {display: none;}
form .fieldRow .field_radio input + .label_wrapper label,
form .fieldRow .field_radio input + label {float: right;}
form .fieldRow .field_radio input + .label_wrapper label:before,
form .fieldRow .field_radio input + label:before {box-sizing: border-box; background: #fff; content: ''; border-radius: 50%; border: 1px solid #ccc; width: 16px; height: 16px; float: right; margin: 1px 0 1px 8px;}
form .fieldRow .field_radio input:checked + .label_wrapper label:before,
form .fieldRow .field_radio input:checked + label:before {border: 5px solid #00c0ba;}
form .fieldRow .field_radio input:disabled + .label_wrapper label,
form .fieldRow .field_radio input:disabled + label {opacity: 0.4;}


form .fieldRow.type_checkbox .label_wrapper label {padding: 0;}
form .fieldRow .field_checkbox {width: auto; /*margin-right: 5px;*/}
form .fieldRow .field_checkbox label {with: auto; float: right;}
form .fieldRow .field_checkbox.multiple .cehckboxes_wrap {float: right;}
form .fieldRow .field_checkbox.multiple .cehckbox_wrap {float: right; margin: 0 0 8px 10px;}
form .fieldRow .field_checkbox.multiple .cehckbox_wrap label {width: auto; padding: 0; }
form .fieldRow .field_checkbox.single input {margin: 2px 0 0 0;}
form .fieldRow .field_checkbox.single .label_wrapper {width: auto; padding-right: 1px;}
form .fieldRow .field_checkbox.single label {width: auto; padding: 0;}
form .fieldRow .field_checkbox input {display: none;}
form .fieldRow .field_checkbox input + .label_wrapper label,
form .fieldRow .field_checkbox input + label {float: right;}
form .fieldRow .field_checkbox input + .label_wrapper label:before,
form .fieldRow .field_checkbox input + label:before {box-sizing: border-box; background: #fff; content: ''; border: 1px solid #ccc; width: 16px; height: 16px; float: right; margin: 1px 0 1px 8px;}
form .fieldRow .field_checkbox input:checked + .label_wrapper label:before,
form .fieldRow .field_checkbox input:checked + label:before {background: url(/css/icons/chekced.png) no-repeat 3px 3px #00c0ba; border: 1px solid #00c0ba;}
form .fieldRow .field_checkbox input:disabled + .label_wrapper label,
form .fieldRow .field_checkbox input:disabled + label {opacity: 0.4;}

form .fieldRow .field_custom {height: auto; width: auto; border:none; border-radius: 0;}
form .fieldRow .field_textarea {height: auto; width: 100%;}
form .fieldRow .field_custom_richtext,
form .fieldRow .field_richtext {height: auto; width: 100%; border: none; padding: 2px;}

form .fieldRow .field_textarea textarea,
form .fieldRow select,
form .fieldRow input {float: right; border: none;; padding: 0;margin:0; font-size: 16px;}
form .fieldRow .field_textarea textarea {box-sizing: border-box; resize: none; height: 100px; width: 100%; padding: 10px; font-family: 'Assistant', sans-serif, arial; background: #F8F8F8;}
form .fieldRow .field_richtext textarea {height: 300px;}

form .fieldRow .field_file {height: auto; width: auto; border: none; float: right;}
form .fieldRow .field_file_url input[type="text"]{border: 1px solid #ddd;border-radius: 3px;float: right;height: 27px;overflow: hidden;width: 220px;}
form .field_file_library_media_picker .allowed_file_ext{display: none;}
form .field_file_library_media_picker .actions {padding-top: 1px;}
form .field_file_library_media_picker .img_holder img {width: 100px;}

form .fieldRow input {height: 100%; width: 100%; padding: 0 10px; box-sizing: border-box; background: #F8F8F8;}
form .fieldRow input[type="file"] {padding: 0; height: 33px;}

form .fieldRow select {background: url(/css/icons/select_arrow_down.png) no-repeat left 10px top 20px #F8F8F8; appearance:none; -moz-appearance:none; -webkit-appearance:none; padding: 5px 6px; width: 100%; height: 100%; border:none; outline:none; box-sizing: border-box;}
form .fieldRow select:-moz-focusring {color: transparent; text-shadow: 0 0 0 #000;}
form .fieldRow select option {margin: 3px 0; text/* -align: right; */}



form .fieldRow .radio_wrap {float: right; margin-left: 10px; padding-top: 5px;}
form .fieldRow .radio_wrap input,
form .fieldRow .radio_wrap label {float: right; padding:0; width: auto; margin-right: 5px;}
form .fieldRow .radio_wrap:first-child label {margin-right: 0;}
form .fieldRow .radio_wrap input {margin-top: 3px; height: 14px;}


form .fieldRow.file_wrap label {padding: 0;}
form .fieldRow .field_file .file_holder {/* height: 80px; */ height: auto;}
form .fieldRow .field_file .file_holder.media {float: right; margin: 10px 0 0 0; clear: right;}
form .fieldRow .field_file .file_holder.src {float: right; clear: right; margin: 10px 0 0 0;}
form .fieldRow .field_file .file_holder img{float: right; width: 40px;}
form .fieldRow .field_file .file_holder .file_media {float: right; margin: 2px 0 0 0;}
form .fieldRow .field_file .file_holder .file_media img {float: right; width: 12px;}
form .fieldRow .field_file .file_holder .file_media span{float: right; margin: 0 5px 0 0;}
form .fieldRow .field_file .file_holder .remove_wrapper {margin-top: 5px; float: right; clear: both;}
form .fieldRow .field_file .file_holder .remove_wrapper .field_checkbox {float: right; margin: 2px 0; padding-top: 2px;}
form .fieldRow .field_file .file_holder .remove_wrapper label {float: right; width: 100px; padding-top: 0; margin: 2px 1px 0 0; font-size: 12px; }
form .fieldRow .field_file .file_holder .remove_wrapper label:before {width: 12px; height: 12px; margin: 1px 0 1px 8px;}
form .fieldRow .field_file .file_holder .remove_wrapper input:checked + .label_wrapper label:before,
form .fieldRow .field_file .file_holder .remove_wrapper input:checked + label:before {background: url(/css/icons/chekced.png) no-repeat 2px 2px #a2b6c3;}

form .fieldRow .field_file .allowed_file_ext {margin: 3px 0 0 0; float: right; clear: both; font-size: 10px;}

form .fieldRow .form_field_overlay {background: #fff;height: 100%; opacity: 0.7; position: absolute; width: 100%;}
form .fieldRow .form_field_overlay:hover {opacity:0.5;}

form .fieldRow .field_media_picker {border: none; height: auto; width: auto; padding-top: 8px;}
form .fieldRow .field_media_picker .img_holder img {width: 100px;}
form .fieldRow .field_media_picker .actions a {float: right; clear: both;}


form .type_password .field_wrap.change {width: auto; border: none;}
form .type_password .field_wrap.change a{float: right; text-decoration: underline; padding: 10px 0 0 0;}

form .email_wrap .field_wrap.change {width: auto; border: none;}
form .email_wrap .field_wrap.change span{float: right; padding: 12px 0 0 0;}
form .email_wrap .field_wrap.change a{float: right; text-decoration: underline; padding: 10px 0 0 0; margin: 0 10px 0 0;}

form .submit_wrap {margin-top: 10px;}
form .submit_wrap input {cursor: pointer; background: #fff; border-radius: 8px; border: 1px solid #00BFBA; opacity: 0.8; font-size: 18px; color: #00BFBA; padding: 15px 16px;}
form.delete_form .submit_wrap .field_wrap input {background: #FF4351; }
form .submit_wrap input:hover{opacity: 1;}

form .type_button .field_wrap {margin-top: 10px; height: auto;}
form .type_button button {cursor: pointer; background: #fff; border-radius: 5px; background: #00c0ba; border: 1px solid #00c0ba; font-size: 16px; color: #fff; padding: 14px 20px;}
form .type_button button:hover{opacity: 0.8;}

form .field_wrap .default {color: #ccc;}

form .error .field_checkbox {border: none;}
form .error .field_checkbox.single {}
form .error.type_checkbox .errField {top: -10px;}
form .errField {display: none; z-index: 9; float: right; clear: both; margin: 5px 0 0 0;}
form .errField .wrap {color: #f74853; font-size: 11px;}
form .errField .wrap span {float: right; border-right: 1px solid #f74853; padding: 0 5px;}
form .errField .wrap span:first-child {border-right: none; padding-right: 0;}

form .form_messages {color: #FF0033;}


form .fieldRow.type_fieldset {float: none; clear: none; padding: 0; margin: 0; position: inherit;}
form .fieldRow.type_fieldset .field_fieldset {margin: 0; padding: 0; clear: inherit; width: auto; float: none; overflow: inherit; height: auto; border-radius: 0; border: none; box-sizing: inherit;}
form .fieldRow fieldSet {border: none; padding: 0; margin: 0;}
form .fieldRow fieldSet legend {padding: 0; margin: 0;}


/** autocomplete **/
form .ac_results {z-index: 1; position: absolute; background: #fff; float: right; display: none; clear: both; overflow: hidden; max-height: 150px; overflow-y: auto; border:1px solid #ccc; box-shadow: 0px 5px 10px #888888;}
form .ac_results .pane_results li {width: auto;}
form .ac_results .pane_results .pane_result {width: 100%; padding: 5px;  cursor: pointer; display: block;}
form .ac_results li {font-size: 14px; color: #757575;}
form .ac_results li.highlight {background: #ddd;}
form .ac_results li b {color: #000;}
form .block_panel {display: none;}

/** ui-autocomplete **/
.ui-autocomplete {z-index: 1002; font-size: 14px; max-height: 150px; overflow-y: auto; overflow-x: hidden; background: #fff; border:1px solid #ccc; box-shadow: 0px 5px 10px #888888;}

/** preivew_img **/

form .preivew_img {float: right; clear: both; max-width:100px; margin: 10px 0 5px 0;}
form .preview_remove {float: right; clear: both; margin-top: 2px}

/* pop_model */

.pop_model {position: fixed; bottom: 0; left: 0; right: 0; top: 0; z-index: 100; background: rgba(0,0,0,.7); opacity: inherit; overflow: auto;}
.pop_model .close {width: 34px; height:34px; font-size: 24px; color:#000; text-align: center; background: #fff; border-radius: 50%; position: absolute; left: 30px; top: 30px; cursor: pointer; z-index: 200;}
.pop_model .close:hover {color: red;}
.pop_model .contentModel {border-radius: 5px; padding: 15px; margin: 50px auto; display: flex; background: #fff; min-height: 100px; max-width: 1000px;}

.pop_model.delete .contentModel{width: 300px;}
.pop_model.delete .contentModel{width: 300px;}

/* navigation */
.navigation .horizontal {float: right;}
.navigation .horizontal li {float: right; width: 50px; text-align: center; padding: 5px; width: auto;}
.navigation .horizontal li span {float: right;}
.navigation .horizontal li i {float: right; padding: 7px 5px;}
.navigation .horizontal li span {}
.navigation .horizontal li.nohover:hover a,
.navigation .horizontal li.nohover.selected a {font-weight: inherit; text-decoration: inherit; color: inherit;}
.navigation .horizontal li:hover a,
.navigation .horizontal li.selected a{color: #4203F0;}

.navigation .vertical {float: right; width: 100%;}
.navigation .vertical li {float: right; clear: both; width: 100%; border-bottom: 1px solid #dfdfdf; overflow: hidden;}
.navigation .vertical li.last {border: none;}
.navigation .vertical li a {float: right;}
.navigation .vertical li a i {float: right; padding: 7px 5px;}
.navigation .vertical li a span {float: right; padding: 7px 5px; display: block;}
.navigation .vertical li:hover {background: #f1f1f1; border-radius: 5px;}
.navigation .vertical li:hover a,
.navigation .vertical li.nohover:hover a,
.navigation .vertical li.nohover.selected a {}
.navigation .vertical li.selected a{width: 100%; float: right; color: #333; text-decoration: none;}
.navigation .vertical li.selected a {font-weight: bold; }


/** button_normal**/
.button_normal {display: inline-block;}
.button_normal a {overflow: hidden; float: none; margin: auto; width: 100%; display: block; box-sizing: border-box; opacity: 0.9; text-align: center; background: #fff; border: #7EE7E8 1px solid; border-radius: 5px;padding: 10px 15px; color: #02acf6; font-size: 15px; cursor: pointer;}


/* =====================================================================
   NEW CLASSIC DESIGN — shared tokens & "board" shell (Portal page)
   ---------------------------------------------------------------------
   This is the first slice of the site-wide redesign. It is kept here in
   the GLOBAL stylesheet (per request) so the design system can be reused
   as the rest of the site is migrated. For now EVERYTHING is scoped under
   `body.classic_portal` so it cannot affect any existing page while the
   rest of the site is still on the old design.

   How it maps onto the framework:
   - The framework renders every page as:
       <body class="classic_portal ...">
         (framework header/footer modules)
         <div id="page"> ...containers > columns > module_wrappers... </div>
   - There is no ".board" element, so we treat `#page` as the framed paper
     "board" from the design mockup.
   - The "Assistant" font is already @imported at the very top of this
     file, and the mockup forces all text to Assistant, so no extra font
     import is needed here.
   - Component-level rules (nav, events, columns grid, sun-grid, etc.) live
     inside each module's own .css (auto-prefixed to .module_classic_*),
     NOT here. Only the truly global page shell lives in this block.
   ===================================================================== */

/* Reusable design tokens — published GLOBALLY on :root so the classic
   design system can be reused site-wide. Custom properties are inert until
   referenced, so exposing them here cannot affect any existing page. */
:root{
	--paper:#f5ecd8;
	--paper-light:#fbf6e9;
	--paper-dark:#e9dcc0;
	--ink:#162b45;
	--blue:#12375f;
	--blue-2:#1c4b7d;
	--gold:#8e6a32;
	--line:#bca982;
	--line-soft:rgba(83,67,38,.28);
}

/* Page shell — scoped to BOTH the standalone classic route (body.classic_portal)
   and the live Portal (body.portal). Every rule stays tied to a specific body
   class, so no other page (which carries a different body class) is affected. */
body.classic_portal,
body.classic_synagogue,
body.synagogue_classic_site_view,
body.portal{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;

	/* --- Fit the whole portal into the viewport (no page scroll) ---
	   The board becomes a vertical flex column that is exactly the height of
	   the viewport; only the inner schedule lists (.scroll-area) scroll.
	   100dvh is used so mobile browser toolbars (which shrink the visible
	   viewport) are accounted for, with 100vh as a fallback for older
	   browsers. box-sizing keeps the 18px padding inside that height.
	   This is reverted to natural document flow on the stacked/mobile
	   layout further below (@media max-width:1000px). */
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.classic_portal:before,
body.classic_synagogue:before,
body.synagogue_classic_site_view:before,
body.portal:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.classic_portal #page,
body.classic_synagogue #page,
body.synagogue_classic_site_view #page,
body.portal #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	/* Fill the remaining viewport height (below body padding) and lay the
	   rows out as a flex column so the board container can absorb the space
	   left by the (auto-height) nav + masthead. */
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button):
   widen the board to 90% of the viewport width instead of the normal
   max-width:1500px cap, since the nav bar is hidden and there's no other
   chrome competing for horizontal space. Many classic modules (headers,
   board columns) set their own font-size in px/clamp() rather than em, so a
   plain font-size bump on #page doesn't cascade into them. `zoom` magnifies
   the ENTIRE #page subtree (text, icons, clamp()/px sizes, spacing) exactly
   like the browser's own page zoom, so every module grows uniformly; it is
   supported by all Chromium/WebKit browsers. Firefox (no `zoom` support)
   falls back to the previous em-based font bump. */
body.classic_portal.is-fullscreen #page,
body.classic_synagogue.is-fullscreen #page,
body.synagogue_classic_site_view.is-fullscreen #page,
body.portal.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.classic_portal.is-fullscreen #page,
	body.classic_synagogue.is-fullscreen #page,
	body.synagogue_classic_site_view.is-fullscreen #page,
	body.portal.is-fullscreen #page{
		font-size:1.35em;
	}
}
@supports (zoom:1){
	body.classic_portal.is-fullscreen #page,
	body.classic_synagogue.is-fullscreen #page,
	body.synagogue_classic_site_view.is-fullscreen #page,
	body.portal.is-fullscreen #page{
		zoom:1.35;
	}
}

/* In full-screen, every module's own internal scrollbar (e.g. the
   .scroll-area schedule lists in module_classic_portal_board /
   module_classic_synagogue_board) is hidden: the corresponding module JS
   auto-scrolls that content up/down instead (see each module's own .js), so
   nothing is left unreachable while the scrollbar is gone. This is global
   (not per-module CSS) because module stylesheets get auto-prefixed with
   ".module_classic_X", which would break a "body.is-fullscreen" selector. */
body.classic_portal.is-fullscreen *,
body.classic_synagogue.is-fullscreen *,
body.synagogue_classic_site_view.is-fullscreen *,
body.portal.is-fullscreen *{
	scrollbar-width:none;
}
body.classic_portal.is-fullscreen *::-webkit-scrollbar,
body.classic_synagogue.is-fullscreen *::-webkit-scrollbar,
body.synagogue_classic_site_view.is-fullscreen *::-webkit-scrollbar,
body.portal.is-fullscreen *::-webkit-scrollbar{
	display:none;
}

/* Decorative gold corners of the board */
body.classic_portal #page:before,
body.classic_portal #page:after,
body.classic_synagogue #page:before,
body.synagogue_classic_site_view #page:before,
body.classic_synagogue #page:after,
body.synagogue_classic_site_view #page:after,
body.portal #page:before,
body.portal #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.classic_portal #page:before,
body.classic_synagogue #page:before,
body.synagogue_classic_site_view #page:before,
body.portal #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.classic_portal #page:after,
body.classic_synagogue #page:after,
body.synagogue_classic_site_view #page:after,
body.portal #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* The framework wraps each row in .container > .columns_wrapper > .column and
   applies inline float/width styles. Each classic row is a single full-width
   module, so neutralise those inline styles to let our rows stack cleanly. */
body.classic_portal #page .container,
body.classic_synagogue #page .container,
body.synagogue_classic_site_view #page .container,
body.portal #page .container{clear:both;width:100% !important;margin:0}
body.classic_portal #page .columns_wrapper,
body.classic_synagogue #page .columns_wrapper,
body.synagogue_classic_site_view #page .columns_wrapper,
body.portal #page .columns_wrapper{width:100% !important}
body.classic_portal #page .container > .columns_wrapper > .column,
body.classic_synagogue #page .container > .columns_wrapper > .column,
body.synagogue_classic_site_view #page .container > .columns_wrapper > .column,
body.portal #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.classic_portal #page .module_wrapper,
body.classic_synagogue #page .module_wrapper,
body.synagogue_classic_site_view #page .module_wrapper,
body.portal #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.classic_portal #page .module_wrapper > .content,
body.classic_synagogue #page .module_wrapper > .content,
body.synagogue_classic_site_view #page .module_wrapper > .content,
body.portal #page .module_wrapper > .content{width:100%}

/* =====================================================================
   CLASSIC MANAGE VIEW — Synagogue "Manage" sub-page
   (body.classic_synagogue_manage; scope class appended to the manage
   page_key in model_page_structure_synagogue.php).
   ---------------------------------------------------------------------
   The manage sub-page reuses the classic paper design language (tokens,
   Assistant font, framed board, gold corners) so it matches the live
   Synagogue/Portal pages. Like the live board it now takes the full-viewport
   lock (height:100dvh / overflow:hidden) so the board fills the screen; the
   nav + activate banner and footer stay pinned while the work row grows and
   its own two columns (side-nav + content) scroll independently — i.e. each
   module manages its own overflow. It still KEEPS the framework's normal
   floated column layout (16% side-nav + 83% content): the column/module_wrapper
   "neutralising" rules above are NOT listed for this scope on purpose. On the
   stacked/mobile layout (@media max-width:1000px) the lock is reverted to
   natural document flow. The printit print views use different page_keys and
   are unaffected. */
body.classic_synagogue_manage{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	/* Fit the manage sub-page into the viewport (mirrors the live board shell
	   above): the board becomes a vertical flex column exactly the height of
	   the viewport and only the work-row columns scroll, so the nav + footer
	   stay pinned. 100dvh accounts for mobile browser chrome, 100vh is the
	   fallback. Reverted to natural document flow on the stacked layout
	   (@media max-width:1000px) below. */
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}
/* Faint paper texture behind the board */
body.classic_synagogue_manage:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}
/* #page == the framed sheet of paper (normal document flow, scrollable) */
body.classic_synagogue_manage #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
	/* Fill the leftover viewport height and lay the rows out as a flex column
	   so the work row can absorb the space left by the (auto-height) nav +
	   activate banner + footer. Flex items each establish a BFC, so the
	   floated columns stay contained without needing flow-root. */
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
/* Decorative gold corners of the board (mirror the live board). */
body.classic_synagogue_manage #page:before,
body.classic_synagogue_manage #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
	z-index:2;
}
body.classic_synagogue_manage #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.classic_synagogue_manage #page:after{bottom:7px;left:7px;border-right:0;border-top:0}
/* Neutralise the framework's inline float/width ONLY on the full-width rows
   (nav, activate banner, footer) so they span the board; the 2-column work
   row (side-nav + content) keeps its natural floats. */
body.classic_synagogue_manage #page .container{clear:both;margin:0}

/* Management is only supported on a desktop computer: hide the mobile-only
   notice module (module_manage_mobile_notice, injected as container 0 in
   model_page_structure_synagogue.php) on regular/desktop widths. Shown -
   and REPLACES the rest of the manage page - only in the stacked/mobile
   layout below (@media max-width:1000px). NOTE: these rules must live here
   (not in the module's own CSS file) because helper_module.php automatically
   prefixes every selector in a module's own .css with ".module_name " as an
   ancestor, which would make body/page-scoped selectors impossible to match. */
body.classic_synagogue_manage .module_wrapper.module_manage_mobile_notice{
	display:none;
}

/* Make the WORK ROW (the container holding the side-nav + content, matched by
   its side-nav module) stretch to fill the leftover viewport height. The nav +
   activate banner (container 1) and the footer (last container) keep their
   natural height; this row grows and hands scrolling down to its two columns,
   so each module manages its own content/overflow. */
body.classic_synagogue_manage #page > .container:has(.module_manage_side_nav){
	flex:1 1 auto;
	min-height:0;
	overflow:hidden;
}
body.classic_synagogue_manage #page > .container:has(.module_manage_side_nav) > .columns_wrapper{
	height:100%;
}
body.classic_synagogue_manage #page > .container:has(.module_manage_side_nav) > .columns_wrapper > .column{
	height:100%;
	overflow-y:auto;
	box-sizing:border-box;
}

/* Stacked/mobile layout: undo the fit-to-viewport lock and return the manage
   page to natural document flow (matches the live board's behaviour at this
   width), so the tall side-nav + long lists scroll the page normally. */
@media(max-width:1000px){
	body.classic_synagogue_manage{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
		overflow-x:hidden;
	}
	body.classic_synagogue_manage #page{
		flex:none;
		min-height:0;
		display:flow-root;
	}
	body.classic_synagogue_manage #page > .container:has(.module_manage_side_nav){
		flex:none;
		min-height:0;
		overflow:visible;
	}
	body.classic_synagogue_manage #page > .container:has(.module_manage_side_nav) > .columns_wrapper,
	body.classic_synagogue_manage #page > .container:has(.module_manage_side_nav) > .columns_wrapper > .column{
		height:auto;
		overflow:visible;
	}

	/* Management is only supported on a desktop computer: on the stacked/
	   mobile layout show ONLY the notice module (container 0) and the site
	   nav (module_classic_synagogue_nav), and hide every other row of the
	   manage page (activate banner, side-nav + content work row, footer),
	   preventing management actions from being performed. The nav lives in
	   the SAME container/column as the activate banner (both are just
	   module positions 1 and 2 of container 1 / column 1), so the banner is
	   hidden individually below rather than via the container. */
	body.classic_synagogue_manage #page > .container:not(:has(.module_manage_mobile_notice)):not(:has(.module_classic_synagogue_nav)){
		display:none !important;
	}
	body.classic_synagogue_manage #page > .container:has(.module_manage_mobile_notice),
	body.classic_synagogue_manage #page > .container:has(.module_classic_synagogue_nav){
		display:block !important;
	}
	body.classic_synagogue_manage .module_wrapper.module_manage_activate_synagogue{
		display:none !important;
	}
	body.classic_synagogue_manage .module_wrapper.module_manage_mobile_notice{
		display:block;
		float:none !important;
		width:100% !important;
	}
	body.classic_synagogue_manage .module_wrapper.module_manage_mobile_notice > .content{
		width:100%;
	}
}

/* Make the LAST row (the board module) and its wrapper chain stretch to fill
   the leftover viewport height. The nav (container 1) and masthead
   (container 2) keep their natural height; the board (last container) grows.
   We target the board wrapper explicitly (.module_classic_portal_board) so we
   never turn the framework's generic .column wrappers of other rows into flex
   containers. The inner .columns grid then owns the scrolling (see the
   module's own CSS). */
body.classic_portal #page > .container:has(.module_classic_portal_board),
body.portal #page > .container:has(.module_classic_portal_board){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.classic_portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper,
body.classic_portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper > .column,
body.classic_portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board,
body.classic_portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board > .content,
body.portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper,
body.portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper > .column,
body.portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board,
body.portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Same board-fill chain for the classic SYNAGOGUE board (its own module class).
   Kept as a separate rule so the two pages stay independent. */
body.classic_synagogue #page > .container:has(.module_classic_synagogue_board),
body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper,
body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper,
body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper > .column,
body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper > .column,
body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board,
body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board,
body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board > .content,
body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the mockup's final typography rule) */
body.classic_portal,
body.classic_portal *,
body.classic_synagogue,
body.synagogue_classic_site_view,
body.classic_synagogue *,
body.synagogue_classic_site_view *,
body.portal,
body.portal *{
	font-family:"Assistant","Arial",sans-serif !important;
}

/* ...but never override Font Awesome's own font on its icon glyphs, otherwise
   the icons (e.g. the map-marker pin) render as empty boxes. */
body.classic_portal .fa,
body.classic_portal .fas,
body.classic_portal .far,
body.classic_portal .fal,
body.classic_portal .fab,
body.classic_synagogue .fa,
body.synagogue_classic_site_view .fa,
body.classic_synagogue .fas,
body.synagogue_classic_site_view .fas,
body.classic_synagogue .far,
body.synagogue_classic_site_view .far,
body.classic_synagogue .fal,
body.synagogue_classic_site_view .fal,
body.classic_synagogue .fab,
body.synagogue_classic_site_view .fab,
body.portal .fa,
body.portal .fas,
body.portal .far,
body.portal .fal,
body.portal .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.classic_portal .fab,
body.classic_synagogue .fab,
body.synagogue_classic_site_view .fab,
body.portal .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.classic_portal #page ul,
body.classic_synagogue #page ul,
body.synagogue_classic_site_view #page ul,
body.portal #page ul{margin:0;padding:0;list-style:none}
body.classic_portal #page a,
body.classic_synagogue #page a,
body.synagogue_classic_site_view #page a,
body.portal #page a{text-decoration:none}
body.classic_portal #page h1,
body.classic_portal #page h2,
body.classic_portal #page h3,
body.classic_portal #page h4,
body.classic_portal #page p,
body.classic_synagogue #page h1,
body.synagogue_classic_site_view #page h1,
body.classic_synagogue #page h2,
body.synagogue_classic_site_view #page h2,
body.classic_synagogue #page h3,
body.synagogue_classic_site_view #page h3,
body.classic_synagogue #page h4,
body.synagogue_classic_site_view #page h4,
body.classic_synagogue #page p,
body.synagogue_classic_site_view #page p,
body.portal #page h1,
body.portal #page h2,
body.portal #page h3,
body.portal #page h4,
body.portal #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.classic_portal,
	body.classic_synagogue,
	body.synagogue_classic_site_view,
	body.portal{padding:8px}
	body.classic_portal #page,
	body.classic_synagogue #page,
	body.synagogue_classic_site_view #page,
	body.portal #page{padding:12px}
}

/* Stacked/mobile layout: the three columns collapse to one (see the board
   module CSS @media max-width:1000px). Forcing three stacked schedules into a
   single screen height would make each unusable, so here we undo the
   fit-to-viewport flex layout and return to natural document flow, letting the
   page scroll normally. min-height:100dvh keeps a full-screen minimum. */
@media(max-width:1000px){
	body.classic_portal,
	body.classic_synagogue,
	body.synagogue_classic_site_view,
	body.portal{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.classic_portal #page,
	body.classic_synagogue #page,
	body.synagogue_classic_site_view #page,
	body.portal #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.classic_portal #page > .container:has(.module_classic_portal_board),
	body.classic_portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper,
	body.classic_portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper > .column,
	body.classic_portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board,
	body.classic_portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board > .content,
	body.portal #page > .container:has(.module_classic_portal_board),
	body.portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper,
	body.portal #page > .container:has(.module_classic_portal_board) > .columns_wrapper > .column,
	body.portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board,
	body.portal #page > .container:has(.module_classic_portal_board) .module_wrapper.module_classic_portal_board > .content,
	body.classic_synagogue #page > .container:has(.module_classic_synagogue_board),
	body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board),
	body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper,
	body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper,
	body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper > .column,
	body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) > .columns_wrapper > .column,
	body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board,
	body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board,
	body.classic_synagogue #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board > .content,
	body.synagogue_classic_site_view #page > .container:has(.module_classic_synagogue_board) .module_wrapper.module_classic_synagogue_board > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.classic_portal,
	body.classic_synagogue,
	body.synagogue_classic_site_view,
	body.portal{padding:0}
	body.classic_portal #page,
	body.classic_synagogue #page,
	body.synagogue_classic_site_view #page,
	body.portal #page{border-width:5px;outline:0;padding:8px}
	body.classic_portal #page:before,
	body.classic_portal #page:after,
	body.classic_synagogue #page:before,
	body.classic_synagogue #page:after,
	body.synagogue_classic_site_view #page:before,
	body.synagogue_classic_site_view #page:after,
	body.portal #page:before,
	body.portal #page:after{display:none}
}

/* =====================================================================
   SYNAGOGUES PAGE (body.synagogues) — the new "בתי כנסת בחריש" page.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal (same tokens, same paper board, same
   shell) but scoped to the new `body.synagogues` class only. Nothing above is
   modified, so every existing page keeps its original styling. The board-fill
   chain targets the page's own board module (.module_classic_synagogues_board)
   so the two pages stay independent.
   ===================================================================== */

/* Page shell */
body.synagogues{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.synagogues:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.synagogues #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.synagogues.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.synagogues.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.synagogues.is-fullscreen #page{zoom:1.35;}
}
body.synagogues.is-fullscreen *{scrollbar-width:none;}
body.synagogues.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.synagogues #page:before,
body.synagogues #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.synagogues #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.synagogues #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.synagogues #page .container{clear:both;width:100% !important;margin:0}
body.synagogues #page .columns_wrapper{width:100% !important}
body.synagogues #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.synagogues #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.synagogues #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the board row (last row) stretches to fill the leftover
   viewport height; the inner .synagogues grid owns the scrolling. */
body.synagogues #page > .container:has(.module_classic_synagogues_board){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.synagogues #page > .container:has(.module_classic_synagogues_board) > .columns_wrapper,
body.synagogues #page > .container:has(.module_classic_synagogues_board) > .columns_wrapper > .column,
body.synagogues #page > .container:has(.module_classic_synagogues_board) .module_wrapper.module_classic_synagogues_board,
body.synagogues #page > .container:has(.module_classic_synagogues_board) .module_wrapper.module_classic_synagogues_board > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.synagogues,
body.synagogues *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.synagogues .fa,
body.synagogues .fas,
body.synagogues .far,
body.synagogues .fal,
body.synagogues .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.synagogues .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.synagogues #page ul{margin:0;padding:0;list-style:none}
body.synagogues #page a{text-decoration:none}
body.synagogues #page h1,
body.synagogues #page h2,
body.synagogues #page h3,
body.synagogues #page h4,
body.synagogues #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.synagogues{padding:8px}
	body.synagogues #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow (the board module CSS
   switches its grid to a single column at the same breakpoint). */
@media(max-width:1000px){
	body.synagogues{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.synagogues #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.synagogues #page > .container:has(.module_classic_synagogues_board),
	body.synagogues #page > .container:has(.module_classic_synagogues_board) > .columns_wrapper,
	body.synagogues #page > .container:has(.module_classic_synagogues_board) > .columns_wrapper > .column,
	body.synagogues #page > .container:has(.module_classic_synagogues_board) .module_wrapper.module_classic_synagogues_board,
	body.synagogues #page > .container:has(.module_classic_synagogues_board) .module_wrapper.module_classic_synagogues_board > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.synagogues{padding:0}
	body.synagogues #page{border-width:5px;outline:0;padding:8px}
	body.synagogues #page:before,
	body.synagogues #page:after{display:none}
}

/* =====================================================================
   MINYANS PAGE (body.minyans) — the redesigned "מנייני השבוע בחריש" page.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Synagogues pages (same tokens, same
   paper board, same shell) but scoped to the `body.minyans` class only.
   Nothing above is modified, so every existing page keeps its original
   styling. The board-fill chain targets the page's own board module
   (.module_site_week_prayers) so this page stays independent.
   ===================================================================== */

/* Page shell */
body.minyans{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.minyans:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.minyans #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.minyans.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.minyans.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.minyans.is-fullscreen #page{zoom:1.35;}
}
body.minyans.is-fullscreen *{scrollbar-width:none;}
body.minyans.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.minyans #page:before,
body.minyans #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.minyans #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.minyans #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.minyans #page .container{clear:both;width:100% !important;margin:0}
body.minyans #page .columns_wrapper{width:100% !important}
body.minyans #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.minyans #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.minyans #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the board row (last row) stretches to fill the leftover
   viewport height; the inner .week-prayers grid owns the scrolling. */
body.minyans #page > .container:has(.module_site_week_prayers){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.minyans #page > .container:has(.module_site_week_prayers) > .columns_wrapper,
body.minyans #page > .container:has(.module_site_week_prayers) > .columns_wrapper > .column,
body.minyans #page > .container:has(.module_site_week_prayers) .module_wrapper.module_site_week_prayers,
body.minyans #page > .container:has(.module_site_week_prayers) .module_wrapper.module_site_week_prayers > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.minyans,
body.minyans *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.minyans .fa,
body.minyans .fas,
body.minyans .far,
body.minyans .fal,
body.minyans .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.minyans .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.minyans #page ul{margin:0;padding:0;list-style:none}
body.minyans #page a{text-decoration:none}
body.minyans #page h1,
body.minyans #page h2,
body.minyans #page h3,
body.minyans #page h4,
body.minyans #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.minyans{padding:8px}
	body.minyans #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow (the board module CSS
   switches its grid to a single column at the same breakpoint). */
@media(max-width:1000px){
	body.minyans{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.minyans #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.minyans #page > .container:has(.module_site_week_prayers),
	body.minyans #page > .container:has(.module_site_week_prayers) > .columns_wrapper,
	body.minyans #page > .container:has(.module_site_week_prayers) > .columns_wrapper > .column,
	body.minyans #page > .container:has(.module_site_week_prayers) .module_wrapper.module_site_week_prayers,
	body.minyans #page > .container:has(.module_site_week_prayers) .module_wrapper.module_site_week_prayers > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.minyans{padding:0}
	body.minyans #page{border-width:5px;outline:0;padding:8px}
	body.minyans #page:before,
	body.minyans #page:after{display:none}
}

/* =====================================================================
   LESSONS PAGE (body.lessons) — the redesigned "שיעורים השבוע בחריש" page.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Synagogues/Minyans pages (same
   tokens, same paper board, same shell) but scoped to the `body.lessons`
   class only. Nothing above is modified, so every existing page keeps its
   original styling. The board-fill chain targets the page's own board
   module (.module_site_week_lessons) so this page stays independent.
   ===================================================================== */

/* Page shell */
body.lessons{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.lessons:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.lessons #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.lessons.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.lessons.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.lessons.is-fullscreen #page{zoom:1.35;}
}
body.lessons.is-fullscreen *{scrollbar-width:none;}
body.lessons.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.lessons #page:before,
body.lessons #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.lessons #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.lessons #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.lessons #page .container{clear:both;width:100% !important;margin:0}
body.lessons #page .columns_wrapper{width:100% !important}
body.lessons #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.lessons #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.lessons #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the board row (last row) stretches to fill the leftover
   viewport height; the inner .week-lessons grid owns the scrolling. */
body.lessons #page > .container:has(.module_site_week_lessons){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.lessons #page > .container:has(.module_site_week_lessons) > .columns_wrapper,
body.lessons #page > .container:has(.module_site_week_lessons) > .columns_wrapper > .column,
body.lessons #page > .container:has(.module_site_week_lessons) .module_wrapper.module_site_week_lessons,
body.lessons #page > .container:has(.module_site_week_lessons) .module_wrapper.module_site_week_lessons > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.lessons,
body.lessons *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.lessons .fa,
body.lessons .fas,
body.lessons .far,
body.lessons .fal,
body.lessons .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.lessons .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.lessons #page ul{margin:0;padding:0;list-style:none}
body.lessons #page a{text-decoration:none}
body.lessons #page h1,
body.lessons #page h2,
body.lessons #page h3,
body.lessons #page h4,
body.lessons #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.lessons{padding:8px}
	body.lessons #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow (the board module CSS
   switches its grid to a single column at the same breakpoint). */
@media(max-width:1000px){
	body.lessons{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.lessons #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.lessons #page > .container:has(.module_site_week_lessons),
	body.lessons #page > .container:has(.module_site_week_lessons) > .columns_wrapper,
	body.lessons #page > .container:has(.module_site_week_lessons) > .columns_wrapper > .column,
	body.lessons #page > .container:has(.module_site_week_lessons) .module_wrapper.module_site_week_lessons,
	body.lessons #page > .container:has(.module_site_week_lessons) .module_wrapper.module_site_week_lessons > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.lessons{padding:0}
	body.lessons #page{border-width:5px;outline:0;padding:8px}
	body.lessons #page:before,
	body.lessons #page:after{display:none}
}

/* =====================================================================
   SYNAGOGUE → PRAYERS PAGE (body.synagogue_prayers_classic_site_view) —
   the "תפילות - <שם בית הכנסת>" sub-page of a single synagogue.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Synagogues/Minyans/Lessons pages
   (same tokens, same paper board, same shell, same page width, typography
   and responsive behavior) but scoped to the page's own body class
   (`synagogue_prayers_classic_site_view`, emitted from the page_key in
   model_page_structure_synagogue) only. Nothing above is modified, so every
   existing page keeps its original styling. The board-fill chain targets the
   page's own board module (.module_synagogue_week_prayers) so this page
   stays independent, exactly like the standalone Minyans page it mirrors.
   ===================================================================== */

/* Page shell */
body.synagogue_prayers_classic_site_view{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.synagogue_prayers_classic_site_view:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.synagogue_prayers_classic_site_view #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.synagogue_prayers_classic_site_view.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.synagogue_prayers_classic_site_view.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.synagogue_prayers_classic_site_view.is-fullscreen #page{zoom:1.35;}
}
body.synagogue_prayers_classic_site_view.is-fullscreen *{scrollbar-width:none;}
body.synagogue_prayers_classic_site_view.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.synagogue_prayers_classic_site_view #page:before,
body.synagogue_prayers_classic_site_view #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.synagogue_prayers_classic_site_view #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.synagogue_prayers_classic_site_view #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.synagogue_prayers_classic_site_view #page .container{clear:both;width:100% !important;margin:0}
body.synagogue_prayers_classic_site_view #page .columns_wrapper{width:100% !important}
body.synagogue_prayers_classic_site_view #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.synagogue_prayers_classic_site_view #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.synagogue_prayers_classic_site_view #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the board row (last row) stretches to fill the leftover
   viewport height; the inner .week-prayers grid owns the scrolling. */
body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) > .columns_wrapper,
body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) > .columns_wrapper > .column,
body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) .module_wrapper.module_synagogue_week_prayers,
body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) .module_wrapper.module_synagogue_week_prayers > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.synagogue_prayers_classic_site_view,
body.synagogue_prayers_classic_site_view *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.synagogue_prayers_classic_site_view .fa,
body.synagogue_prayers_classic_site_view .fas,
body.synagogue_prayers_classic_site_view .far,
body.synagogue_prayers_classic_site_view .fal,
body.synagogue_prayers_classic_site_view .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.synagogue_prayers_classic_site_view .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.synagogue_prayers_classic_site_view #page ul{margin:0;padding:0;list-style:none}
body.synagogue_prayers_classic_site_view #page a{text-decoration:none}
body.synagogue_prayers_classic_site_view #page h1,
body.synagogue_prayers_classic_site_view #page h2,
body.synagogue_prayers_classic_site_view #page h3,
body.synagogue_prayers_classic_site_view #page h4,
body.synagogue_prayers_classic_site_view #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.synagogue_prayers_classic_site_view{padding:8px}
	body.synagogue_prayers_classic_site_view #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow (the board module CSS
   switches its grid to a single column at the same breakpoint). */
@media(max-width:1000px){
	body.synagogue_prayers_classic_site_view{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.synagogue_prayers_classic_site_view #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers),
	body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) > .columns_wrapper,
	body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) > .columns_wrapper > .column,
	body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) .module_wrapper.module_synagogue_week_prayers,
	body.synagogue_prayers_classic_site_view #page > .container:has(.module_synagogue_week_prayers) .module_wrapper.module_synagogue_week_prayers > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.synagogue_prayers_classic_site_view{padding:0}
	body.synagogue_prayers_classic_site_view #page{border-width:5px;outline:0;padding:8px}
	body.synagogue_prayers_classic_site_view #page:before,
	body.synagogue_prayers_classic_site_view #page:after{display:none}
}

/* =====================================================================
   SYNAGOGUE → LESSONS PAGE (body.synagogue_lessons_classic_site_view) —
   the "שיעורים - <שם בית הכנסת>" sub-page of a single synagogue.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Synagogues/Minyans/Lessons pages and
   the sibling Synagogue → Prayers sub-page (same tokens, same paper board,
   same shell, same page width, typography and responsive behavior) but
   scoped to the page's own body class
   (`synagogue_lessons_classic_site_view`, emitted from the page_key in
   model_page_structure_synagogue) only. Nothing above is modified, so every
   existing page keeps its original styling. The board-fill chain targets the
   page's own board module (.module_synagogue_week_lessons) so this page
   stays independent, exactly like the standalone Lessons page it mirrors.
   ===================================================================== */

/* Page shell */
body.synagogue_lessons_classic_site_view{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.synagogue_lessons_classic_site_view:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.synagogue_lessons_classic_site_view #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.synagogue_lessons_classic_site_view.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.synagogue_lessons_classic_site_view.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.synagogue_lessons_classic_site_view.is-fullscreen #page{zoom:1.35;}
}
body.synagogue_lessons_classic_site_view.is-fullscreen *{scrollbar-width:none;}
body.synagogue_lessons_classic_site_view.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.synagogue_lessons_classic_site_view #page:before,
body.synagogue_lessons_classic_site_view #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.synagogue_lessons_classic_site_view #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.synagogue_lessons_classic_site_view #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.synagogue_lessons_classic_site_view #page .container{clear:both;width:100% !important;margin:0}
body.synagogue_lessons_classic_site_view #page .columns_wrapper{width:100% !important}
body.synagogue_lessons_classic_site_view #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.synagogue_lessons_classic_site_view #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.synagogue_lessons_classic_site_view #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the board row (last row) stretches to fill the leftover
   viewport height; the inner .week-lessons grid owns the scrolling. */
body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) > .columns_wrapper,
body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) > .columns_wrapper > .column,
body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) .module_wrapper.module_synagogue_week_lessons,
body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) .module_wrapper.module_synagogue_week_lessons > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.synagogue_lessons_classic_site_view,
body.synagogue_lessons_classic_site_view *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.synagogue_lessons_classic_site_view .fa,
body.synagogue_lessons_classic_site_view .fas,
body.synagogue_lessons_classic_site_view .far,
body.synagogue_lessons_classic_site_view .fal,
body.synagogue_lessons_classic_site_view .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.synagogue_lessons_classic_site_view .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.synagogue_lessons_classic_site_view #page ul{margin:0;padding:0;list-style:none}
body.synagogue_lessons_classic_site_view #page a{text-decoration:none}
body.synagogue_lessons_classic_site_view #page h1,
body.synagogue_lessons_classic_site_view #page h2,
body.synagogue_lessons_classic_site_view #page h3,
body.synagogue_lessons_classic_site_view #page h4,
body.synagogue_lessons_classic_site_view #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.synagogue_lessons_classic_site_view{padding:8px}
	body.synagogue_lessons_classic_site_view #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow (the board module CSS
   switches its grid to a single column at the same breakpoint). */
@media(max-width:1000px){
	body.synagogue_lessons_classic_site_view{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.synagogue_lessons_classic_site_view #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons),
	body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) > .columns_wrapper,
	body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) > .columns_wrapper > .column,
	body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) .module_wrapper.module_synagogue_week_lessons,
	body.synagogue_lessons_classic_site_view #page > .container:has(.module_synagogue_week_lessons) .module_wrapper.module_synagogue_week_lessons > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.synagogue_lessons_classic_site_view{padding:0}
	body.synagogue_lessons_classic_site_view #page{border-width:5px;outline:0;padding:8px}
	body.synagogue_lessons_classic_site_view #page:before,
	body.synagogue_lessons_classic_site_view #page:after{display:none}
}

/* =====================================================================
   REGISTER PAGE (body.register) — the redesigned "הרשמה" page.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Synagogues/Minyans/Lessons pages
   (same tokens, same paper board, same shell) but scoped to the new
   `body.register` class only. Nothing above is modified, so every existing
   page keeps its original styling. Unlike those pages there is no masthead
   row (module_classic_header is intentionally NOT used here), so the
   board-fill chain targets the registration module itself
   (.module_site_register) so it stretches to fill the leftover height.
   ===================================================================== */

/* Page shell */
body.register{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.register:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.register #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.register.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.register.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.register.is-fullscreen #page{zoom:1.35;}
}
body.register.is-fullscreen *{scrollbar-width:none;}
body.register.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.register #page:before,
body.register #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.register #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.register #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.register #page .container{clear:both;width:100% !important;margin:0}
body.register #page .columns_wrapper{width:100% !important}
body.register #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.register #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.register #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the registration row (last row before the footer)
   stretches to fill the leftover viewport height; the card's own content
   area owns the scrolling (see module_site_register.css). */
body.register #page > .container:has(.module_site_register){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.register #page > .container:has(.module_site_register) > .columns_wrapper,
body.register #page > .container:has(.module_site_register) > .columns_wrapper > .column,
body.register #page > .container:has(.module_site_register) .module_wrapper.module_site_register,
body.register #page > .container:has(.module_site_register) .module_wrapper.module_site_register > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.register,
body.register *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.register .fa,
body.register .fas,
body.register .far,
body.register .fal,
body.register .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.register .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.register #page ul{margin:0;padding:0;list-style:none}
body.register #page a{text-decoration:none}
body.register #page h1,
body.register #page h2,
body.register #page h3,
body.register #page h4,
body.register #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.register{padding:8px}
	body.register #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow so a taller form
   (with validation messages, etc.) is never clipped by the viewport-fit
   shell used on wider screens. */
@media(max-width:1000px){
	body.register{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.register #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.register #page > .container:has(.module_site_register),
	body.register #page > .container:has(.module_site_register) > .columns_wrapper,
	body.register #page > .container:has(.module_site_register) > .columns_wrapper > .column,
	body.register #page > .container:has(.module_site_register) .module_wrapper.module_site_register,
	body.register #page > .container:has(.module_site_register) .module_wrapper.module_site_register > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.register{padding:0}
	body.register #page{border-width:5px;outline:0;padding:8px}
	body.register #page:before,
	body.register #page:after{display:none}
}

/* =====================================================================
   LOGIN PAGE (body.login) — the redesigned "התחברות" page.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Register/Synagogues/Minyans/Lessons
   pages (same tokens, same paper board, same shell) but scoped to the new
   `body.login` class only. Nothing above is modified, so every existing
   page keeps its original styling. Like the register page, there is no
   masthead row (module_classic_header is intentionally NOT used here), so
   the board-fill chain targets the login module itself (.module_site_login)
   so it stretches to fill the leftover height.
   ===================================================================== */

/* Page shell */
body.login{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.login:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.login #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.login.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.login.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.login.is-fullscreen #page{zoom:1.35;}
}
body.login.is-fullscreen *{scrollbar-width:none;}
body.login.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.login #page:before,
body.login #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.login #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.login #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.login #page .container{clear:both;width:100% !important;margin:0}
body.login #page .columns_wrapper{width:100% !important}
body.login #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.login #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.login #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the login row (last row before the footer) stretches
   to fill the leftover viewport height; the card's own content area owns
   the scrolling (see module_site_login.css). */
body.login #page > .container:has(.module_site_login){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.login #page > .container:has(.module_site_login) > .columns_wrapper,
body.login #page > .container:has(.module_site_login) > .columns_wrapper > .column,
body.login #page > .container:has(.module_site_login) .module_wrapper.module_site_login,
body.login #page > .container:has(.module_site_login) .module_wrapper.module_site_login > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.login,
body.login *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.login .fa,
body.login .fas,
body.login .far,
body.login .fal,
body.login .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.login .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.login #page ul{margin:0;padding:0;list-style:none}
body.login #page a{text-decoration:none}
body.login #page h1,
body.login #page h2,
body.login #page h3,
body.login #page h4,
body.login #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.login{padding:8px}
	body.login #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow so a taller form
   (with validation messages, etc.) is never clipped by the viewport-fit
   shell used on wider screens. */
@media(max-width:1000px){
	body.login{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.login #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.login #page > .container:has(.module_site_login),
	body.login #page > .container:has(.module_site_login) > .columns_wrapper,
	body.login #page > .container:has(.module_site_login) > .columns_wrapper > .column,
	body.login #page > .container:has(.module_site_login) .module_wrapper.module_site_login,
	body.login #page > .container:has(.module_site_login) .module_wrapper.module_site_login > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.login{padding:0}
	body.login #page{border-width:5px;outline:0;padding:8px}
	body.login #page:before,
	body.login #page:after{display:none}
}

/* =====================================================================
   CREATE PAGE (body.create) — the redesigned creation page.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Register/Login/Synagogues/Minyans/Lessons
   pages (same tokens, same paper board, same shell) but scoped to the new
   `body.create` class only. Nothing above is modified, so every existing
   page keeps its original styling. Like the register and login pages, there is
   no masthead row (module_classic_header is intentionally NOT used here), so
   the board-fill chain targets the create module itself (.module_create)
   so it stretches to fill the leftover height.
   ===================================================================== */

/* Page shell */
body.create{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.create:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.create #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.create.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.create.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.create.is-fullscreen #page{zoom:1.35;}
}
body.create.is-fullscreen *{scrollbar-width:none;}
body.create.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.create #page:before,
body.create #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.create #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.create #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.create #page .container{clear:both;width:100% !important;margin:0}
body.create #page .columns_wrapper{width:100% !important}
body.create #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.create #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.create #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the create row (last row before the footer) stretches
   to fill the leftover viewport height; the card's own content area owns
   the scrolling (see module_create.css). */
body.create #page > .container:has(.module_create){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.create #page > .container:has(.module_create) > .columns_wrapper,
body.create #page > .container:has(.module_create) > .columns_wrapper > .column,
body.create #page > .container:has(.module_create) .module_wrapper.module_create,
body.create #page > .container:has(.module_create) .module_wrapper.module_create > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.create,
body.create *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.create .fa,
body.create .fas,
body.create .far,
body.create .fal,
body.create .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.create .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.create #page ul{margin:0;padding:0;list-style:none}
body.create #page a{text-decoration:none}
body.create #page h1,
body.create #page h2,
body.create #page h3,
body.create #page h4,
body.create #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.create{padding:8px}
	body.create #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow so a taller form
   (with validation messages, etc.) is never clipped by the viewport-fit
   shell used on wider screens. */
@media(max-width:1000px){
	body.create{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.create #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.create #page > .container:has(.module_create),
	body.create #page > .container:has(.module_create) > .columns_wrapper,
	body.create #page > .container:has(.module_create) > .columns_wrapper > .column,
	body.create #page > .container:has(.module_create) .module_wrapper.module_create,
	body.create #page > .container:has(.module_create) .module_wrapper.module_create > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.create{padding:0}
	body.create #page{border-width:5px;outline:0;padding:8px}
	body.create #page:before,
	body.create #page:after{display:none}
}

/* =====================================================================
   EDIT PAGE (body.edit) — the redesigned editing page.

   This is a fully SELF-CONTAINED, ADDITIVE block: it re-uses the exact same
   classic design system as the Portal/Register/Login/Create/Synagogues/
   Minyans/Lessons pages (same tokens, same paper board, same shell) but
   scoped to the new `body.edit` class only. Nothing above is modified,
   so every existing page keeps its original styling. Like the register,
   login, and create pages, there is no masthead row (module_classic_header
   is intentionally NOT used here), so the board-fill chain targets the
   edit module itself (.module_edit) so it stretches to fill the leftover height.
   ===================================================================== */

/* Page shell */
body.edit{
	color:var(--ink);
	font-family:"Assistant","Arial",sans-serif;
	background:#d9cfb7;
	padding:15px;
	overflow-x:hidden;
	box-sizing:border-box;
	height:100vh;
	height:100dvh;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}

/* Faint paper texture behind the board */
body.edit:before{
	content:"";
	position:fixed;inset:0;pointer-events:none;opacity:.22;z-index:0;
	background:
		radial-gradient(circle at 15% 20%, rgba(80,60,20,.10) 0 1px, transparent 1.5px),
		radial-gradient(circle at 80% 70%, rgba(80,60,20,.08) 0 1px, transparent 1.5px);
	background-size:17px 19px,23px 21px;
}

/* #page == the ".board": a centred, framed sheet of paper */
body.edit #page{
	max-width:1500px;
	width:100%;
	margin:0 auto;
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
	background:var(--paper);
	border:8px solid var(--blue);
	outline:1px solid var(--gold);
	box-shadow:0 10px 30px rgba(40,30,15,.22);
	position:relative;
	padding:15px;
	z-index:1;
	box-sizing:border-box;
}

/* Full-screen mode (toggled via module_classic_nav's fullscreen button) */
body.edit.is-fullscreen #page{
	max-width:none;
	width:90%;
}
@supports not (zoom:1){
	body.edit.is-fullscreen #page{font-size:1.35em;}
}
@supports (zoom:1){
	body.edit.is-fullscreen #page{zoom:1.35;}
}
body.edit.is-fullscreen *{scrollbar-width:none;}
body.edit.is-fullscreen *::-webkit-scrollbar{display:none;}

/* Decorative gold corners of the board */
body.edit #page:before,
body.edit #page:after{
	content:"";
	position:absolute;
	width:26px;height:26px;
	border:2px solid var(--gold);
	pointer-events:none;
}
body.edit #page:before{top:7px;right:7px;border-left:0;border-bottom:0}
body.edit #page:after{bottom:7px;left:7px;border-right:0;border-top:0}

/* Neutralise the framework's inline float/width per-row wrappers */
body.edit #page .container{clear:both;width:100% !important;margin:0}
body.edit #page .columns_wrapper{width:100% !important}
body.edit #page .container > .columns_wrapper > .column{float:none !important;width:100% !important}
body.edit #page .module_wrapper{float:none !important;width:100% !important;margin:0}
body.edit #page .module_wrapper > .content{width:100%}

/* Board-fill chain: the edit row (last row before the footer) stretches
   to fill the leftover viewport height; the card's own content area owns
   the scrolling (see module_edit.css). */
body.edit #page > .container:has(.module_edit){
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}
body.edit #page > .container:has(.module_edit) > .columns_wrapper,
body.edit #page > .container:has(.module_edit) > .columns_wrapper > .column,
body.edit #page > .container:has(.module_edit) .module_wrapper.module_edit,
body.edit #page > .container:has(.module_edit) .module_wrapper.module_edit > .content{
	flex:1 1 auto;
	min-height:0;
	display:flex;
	flex-direction:column;
}

/* Keep ALL text in Assistant (matches the classic typography) */
body.edit,
body.edit *{
	font-family:"Assistant","Arial",sans-serif !important;
}
/* ...but never override Font Awesome's own font on its icon glyphs. */
body.edit .fa,
body.edit .fas,
body.edit .far,
body.edit .fal,
body.edit .fab{
	font-family:"Font Awesome 5 Free","Font Awesome 5 Brands","FontAwesome" !important;
}
body.edit .fab{
	font-family:"Font Awesome 5 Brands","FontAwesome" !important;
}

/* Reset a few global list/link/heading rules so module markup starts clean */
body.edit #page ul{margin:0;padding:0;list-style:none}
body.edit #page a{text-decoration:none}
body.edit #page h1,
body.edit #page h2,
body.edit #page h3,
body.edit #page h4,
body.edit #page p{margin:0}

/* Responsive: shrink board padding on small screens */
@media(max-width:1100px){
	body.edit{padding:8px}
	body.edit #page{padding:12px}
}

/* Stacked/mobile layout: return to natural document flow so a taller form
   (with validation messages, etc.) is never clipped by the viewport-fit
   shell used on wider screens. */
@media(max-width:1000px){
	body.edit{
		height:auto;
		min-height:100vh;
		min-height:100dvh;
		display:block;
		overflow:visible;
	}
	body.edit #page{
		flex:none;
		min-height:0;
		display:block;
	}
	body.edit #page > .container:has(.module_edit),
	body.edit #page > .container:has(.module_edit) > .columns_wrapper,
	body.edit #page > .container:has(.module_edit) > .columns_wrapper > .column,
	body.edit #page > .container:has(.module_edit) .module_wrapper.module_edit,
	body.edit #page > .container:has(.module_edit) .module_wrapper.module_edit > .content{
		display:block;
		flex:none;
		min-height:0;
	}
}
@media(max-width:760px){
	body.edit{padding:0}
	body.edit #page{border-width:5px;outline:0;padding:8px}
	body.edit #page:before,
	body.edit #page:after{display:none}
}

