/* Shared public presentation. Content, forms and commerce behaviour stay in their source plugins. */
body.n2-site {
	--n2-ink: #182a40;
	--n2-muted: #556577;
	--n2-line: #dfe5eb;
	--n2-paper: #f5f7fa;
	--n2-accent: #21518a;
	color: var(--n2-ink);
	background: #fff;
	font-size: 15px;
	line-height: 1.65;
}
body.n2-site #masthead {
	position: relative !important;
	top: auto !important;
	background: #fff;
	border-bottom: 1px solid var(--n2-line);
}
body.n2-site #masthead .ast-primary-header-bar {
	background: #fff !important;
	border: 0;
}
body.n2-site #masthead .site-primary-header-wrap {
	max-width: 1160px;
	min-height: 90px;
	padding: 8px 24px;
}
body.n2-site #masthead .custom-logo-link img {
	width: 72px !important;
	max-width: 72px !important;
	height: auto;
}
body.n2-site #masthead .site-branding { padding: 0; }
body.n2-site #masthead .main-header-menu > .menu-item { line-height: 1.5; }
body.n2-site #masthead .main-header-menu .menu-link {
	color: var(--n2-ink) !important;
	font-size: 14px;
	font-weight: 500;
	padding: 12px 11px;
}
body.n2-site #masthead .main-header-menu .current-menu-item > .menu-link,
body.n2-site #masthead .main-header-menu .menu-link:hover {
	color: var(--n2-accent) !important;
	text-decoration: underline;
	text-underline-offset: 7px;
}
body.n2-site #masthead .menu-toggle { color: var(--n2-accent); border-color: var(--n2-line); border-radius: 5px; }
body.n2-site h1, body.n2-site .entry-content h1 { font-size: clamp(30px, 3.4vw, 42px); line-height: 1.17; }
body.n2-site h2, body.n2-site .entry-content h2 { font-size: clamp(24px, 2.6vw, 30px); line-height: 1.25; }
body.n2-site h3, body.n2-site .entry-content h3 { font-size: 22px; line-height: 1.3; }
body.n2-site .entry-content :is(h1,h2,h3,h4,h5,h6,.uagb-heading-text,.uagb-ifb-title) { color: var(--n2-ink) !important; }
body.n2-site .entry-content :is(.uagb-desc-text,.uagb-ifb-desc) { color: var(--n2-muted) !important; }
body.n2-site .entry-content > .wp-block-uagb-container {
	padding: 42px 24px !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	min-height: 0 !important;
	background: #fff !important;
	color: var(--n2-ink);
}
body.n2-site .entry-content > .wp-block-uagb-container::before { display: none !important; }
body.n2-site .entry-content > .wp-block-uagb-container > .uagb-container-inner-blocks-wrap {
	max-width: 1112px !important;
	gap: 28px !important;
}
body.n2-site .entry-content > .wp-block-uagb-container:nth-of-type(even) { background: var(--n2-paper) !important; }
body.n2-site .entry-content > .wp-block-spacer { display: none; }
body.n2-site .entry-content .uagb-block-4625a592 {
	background: var(--n2-paper) !important;
	border-bottom: 1px solid var(--n2-line);
}
body.n2-site .entry-content .uagb-block-d0dd14dc { text-align: left !important; width: 100%; }
body.n2-site .entry-content .uagb-block-d0dd14dc .uagb-heading-text { margin: 0 0 8px; font-size: clamp(30px, 3.4vw, 42px); line-height: 1.17; }
body.n2-site .entry-content .uagb-block-d0dd14dc .uagb-desc-text { font-size: 15px; margin: 0; }
body.n2-site .entry-content .wp-block-uagb-image img { border-radius: 6px !important; box-shadow: none !important; }
body.n2-site .entry-content .wp-block-uagb-image { margin-top: 0 !important; margin-bottom: 0 !important; }
body.n2-site .entry-content a:focus-visible, body.n2-site button:focus-visible { outline: 2px solid var(--n2-accent); outline-offset: 4px; }
body.n2-site :is(.ast-button,.button,.wp-block-button__link,.uagb-infobox-cta-link) { border-radius: 5px !important; box-shadow: none !important; }
body.n2-site :is(.woocommerce a.button,.woocommerce button.button,.woocommerce .button,.uagb-infobox-cta-link,.srfm-form button[type=submit],.wp-block-button__link) {
	color: #fff !important;
	background: var(--n2-accent) !important;
	border-color: var(--n2-accent) !important;
	border-radius: 5px !important;
	box-shadow: none !important;
	font-size: 13px;
	line-height: 1.5;
	min-height: 44px;
	padding: 11px 18px;
}
body.n2-site .uagb-infobox-cta-link * { color: inherit !important; fill: currentColor; }

/* Home: keep the photo carousel, with a restrained heading and full photographs. */
body.n2-site.home .entry-content > .uagb-block-d3766248 { background: var(--n2-paper) !important; }
body.n2-site.home .uagb-block-d3766248 > .uagb-container-inner-blocks-wrap { row-gap: 20px !important; }
body.n2-site.home .uagb-block-d3766248 > .uagb-container-inner-blocks-wrap { display: grid; grid-template-columns: .85fr 1.15fr; grid-template-rows: 1fr 1fr; column-gap: 40px !important; }
body.n2-site.home .uagb-block-c1148fa4 { grid-column: 1; grid-row: 1; align-self: end; text-align: left; }
body.n2-site.home .uagb-block-c1148fa4 .uagb-heading-text { font-size: clamp(30px, 3vw, 40px); line-height: 1.2; }
body.n2-site.home .uagb-block-bad16a02 { grid-column: 1; grid-row: 2; align-self: start; text-align: left; }
body.n2-site.home .uagb-block-bad16a02 .uagb-heading-text { font-size: 18px; font-weight: 400; color: var(--n2-muted) !important; }
body.n2-site.home .uagb-block-d99d10d7 { display: none; }
body.n2-site.home .uagb-block-c1428dd6 { grid-column: 2; grid-row: 1 / span 2; width: 100%; min-width: 0; padding: 0 !important; }
body.n2-site.home .uagb-block-d3766248 .wp-block-uagb-container { padding: 0 !important; background: transparent !important; }
body.n2-site.home .uagb-block-d3766248 .wp-block-uagb-container::before { display: none; }
body.n2-site.home .uagb-block-d3766248 .wp-block-uagb-image img { width: 100% !important; height: 360px !important; object-fit: contain; }
body.n2-site.home .uagb-block-d3766248 .wp-block-uagb-slider { max-width: 900px; margin: 0 auto; border: 0 !important; border-radius: 6px !important; }
body.n2-site.home .uagb-block-d3766248 .wp-block-uagb-slider .swiper { border: 0 !important; }
body.n2-site.home .uagb-block-7431efbe { grid-template-columns: 1fr 180px !important; gap: 40px !important; padding: 0 !important; }
body.n2-site.home .uagb-block-95e5220e, body.n2-site.home .uagb-block-95e5220e .uagb-ifb-content { text-align: left !important; }
body.n2-site.home .uagb-block-95e5220e .uagb-ifb-button-wrapper { justify-content: flex-start !important; }
body.n2-site.home .uagb-block-60727b4e img { max-width: 150px; }

/* Officers: one compact directory with an uncropped photograph beside it. */
body.n2-site .entry-content > .n2-officers {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr);
	grid-template-rows: max-content 1fr;
	column-gap: 40px;
	row-gap: 20px;
	width: calc(100% - 48px);
	max-width: 1112px;
	margin: 36px auto 48px;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	align-items: start;
}
body.n2-site .n2-officers > * { width: 100%; margin-left: 0 !important; margin-right: 0 !important; }
body.n2-site .n2-officers__heading { grid-column: 1; text-align: left; margin: 0; }
body.n2-site .n2-officers__eyebrow { display: none; }
body.n2-site .n2-officers__heading h2 { font-size: 25px; margin: 0; }
body.n2-site .n2-officers__photo { grid-column: 1; grid-row: 2; margin: 0; }
body.n2-site .n2-officers__photo img { width: 100%; height: auto; border-radius: 6px; }
body.n2-site .n2-officers__list { grid-column: 2; grid-row: 1 / span 2; border-top: 2px solid var(--n2-accent); }
body.n2-site .n2-officers__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; padding: 9px 0; border-color: var(--n2-line); }
body.n2-site .n2-officers__office { gap: 10px; }
body.n2-site .n2-officers__abbr { min-width: 44px; font-size: 12px; font-weight: 700; }
body.n2-site .n2-officers__office-name { font-size: 12px; color: var(--n2-muted); line-height: 1.45; }
body.n2-site .n2-officers__name { font-size: 13px; font-weight: 500; }

/* Past Masters: a readable historical register, with two columns on wide screens. */
body.n2-site.page-id-1858 .uagb-block-4625a592 > .uagb-container-inner-blocks-wrap { display: grid; grid-template-columns: 1fr 300px; align-items: center; }
body.n2-site.page-id-1858 .uagb-block-4625a592 img { width: 300px !important; height: 180px !important; object-fit: cover; }
body.n2-site.page-id-1858 .wp-block-query { width: 100%; }
body.n2-site.page-id-1858 .wp-block-post-template { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; margin: 0; }
body.n2-site.page-id-1858 .wp-block-post { padding: 11px 0; margin: 0; border-bottom: 1px solid var(--n2-line); }
body.n2-site.page-id-1858 .wp-block-post .wp-block-columns { display: grid; grid-template-columns: 1fr 96px; gap: 16px; margin: 0; align-items: center; }
body.n2-site.page-id-1858 .wp-block-post h2 { margin: 0; text-align: left; font-family: inherit; font-size: 14px; font-weight: 500; }
body.n2-site.page-id-1858 .wp-block-post .uagb-heading-text { text-align: right; color: var(--n2-muted) !important; font-size: 13px; }
body.n2-site.page-id-1858 .wp-block-uagb-separator { display: none; }

/* Events: reduce the previous large hero, cards and reservation panel. */
body.n2-site.page-id-1812 .uagb-block-4625a592 > .uagb-container-inner-blocks-wrap { grid-template-columns: 1fr 300px; }
body.n2-site.page-id-1812 .uagb-block-d0dd14dc::before { display: none; }
body.n2-site.page-id-1812 .uagb-block-fce0962e .wp-block-uagb-image__figure img { height: 180px !important; object-position: 50% 45%; border: 0; }
body.n2-site.page-id-1812 .simcal-calendar-head { padding: 8px 0; margin-bottom: 20px !important; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
body.n2-site.page-id-1812 .simcal-current-label { font-size: 24px; }
body.n2-site.page-id-1812 .simcal-nav-button { width: 36px; height: 36px; border-radius: 5px !important; }
body.n2-site.page-id-1812 .simcal-events-list-container { grid-template-columns: 150px minmax(0, 1fr); gap: 0 24px; }
body.n2-site.page-id-1812 .simcal-day-label > span { align-items: flex-start; justify-content: flex-start; padding: 18px 0 !important; color: var(--n2-accent) !important; font-size: 13px; background: transparent !important; border-radius: 0; text-align: left; }
body.n2-site.page-id-1812 .simcal-day { padding: 16px 0 !important; background: transparent; border: 0; border-bottom: 1px solid var(--n2-line); border-radius: 0; box-shadow: none; }
body.n2-site.page-id-1812 .simcal-event { margin-bottom: 0 !important; }
body.n2-site.page-id-1812 .simcal-event-title { font-size: 19px; }
body.n2-site.page-id-1812 .simcal-event-details > p { font-size: 13px; }
body.n2-site.page-id-1812 .simcal-event-details > p:last-child a { background: transparent; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
body.n2-site .entry-content > .n2-reservations { width: calc(100% - 48px); max-width: 1112px; padding: 36px 0 48px; margin: 0 auto; }
body.n2-site .n2-reservations__heading { max-width: none; margin: 0 0 24px; text-align: left; }
body.n2-site .n2-reservations__heading > p:last-child { font-size: 14px; }
body.n2-site .n2-reservations__eyebrow, body.n2-site .n2-reservation-card__eyebrow { display: none; }
body.n2-site .n2-reservation-card { grid-template-columns: 180px minmax(0, 1fr); border-radius: 6px; box-shadow: none; }
body.n2-site .n2-reservation-card__image-wrap { padding: 24px; background: var(--n2-paper); align-items: flex-start; }
body.n2-site .n2-reservation-card__image { filter: none; max-height: 150px; }
body.n2-site .n2-reservation-card__content { padding: 24px; }
body.n2-site .n2-reservation-card__content h3 { font-size: 24px; margin: 0 0 16px; }
body.n2-site .n2-reservation-card__meta, body.n2-site .n2-reservation-card__description { font-size: 13px; }
body.n2-site .n2-reservation-card__choices { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; }
body.n2-site .n2-reservation-card__button { padding: 12px 14px; border-radius: 5px; box-shadow: none; font-size: 13px; }
body.n2-site .n2-reservation-card__button:hover { transform: none; box-shadow: none; }
body.n2-site .n2-reservation-card__choice-meta { font-size: 11px; }

/* About and gallery: consistent reading width, smaller images and quieter sections. */
body.n2-site .entry-content .uagb-desc-text p { color: inherit; }
body.n2-site .entry-content .uagb-block-e35f1e1b img { max-height: 350px; width: 100%; object-fit: contain; }
body.n2-site.page-id-1771 .entry-content > .wp-block-uagb-container { padding-top: 30px !important; padding-bottom: 30px !important; }
body.n2-site.page-id-1771 .entry-content > .wp-block-uagb-container > .uagb-container-inner-blocks-wrap { gap: 18px !important; }
body.n2-site.page-id-1771 .entry-content .wp-block-uagb-image img { width: 100% !important; max-height: 360px; object-fit: contain; }
body.n2-site.page-id-1771 .spectra-image-gallery__media--carousel { height: 330px !important; padding-bottom: 0 !important; background: #eef1f5; }
body.n2-site.page-id-1771 .spectra-image-gallery__media-thumbnail--carousel { height: 330px !important; max-height: 330px; object-fit: contain !important; }
body.n2-site.page-id-1771 .spectra-image-gallery__control-arrows { border-radius: 4px; }
body.n2-site.page-id-1771 .spectra-image-gallery .slick-next { right: 0 !important; }
body.n2-site.page-id-1771 .spectra-image-gallery .slick-prev { left: 0 !important; }

/* Contact: readable labels and conventional form controls. */
body.n2-site .srfm-form-container, body.n2-site .srfm-form { background: transparent !important; color: var(--n2-ink) !important; }
body.n2-site .srfm-form :is(label,.srfm-block-label) { color: var(--n2-ink) !important; font-size: 13px !important; }
body.n2-site .srfm-form :is(input:not([type=submit]):not([type=checkbox]):not([type=radio]),textarea,select) { background: #fff !important; color: var(--n2-ink) !important; border: 1px solid #bbc6d3 !important; border-radius: 5px !important; }
body.n2-site .srfm-form .srfm-block { margin-bottom: 0 !important; }
body.n2-site .srfm-form .srfm-block :is(input,textarea,select) { margin-bottom: 0 !important; }
body.n2-site .srfm-form textarea { min-height: 120px; }
body.n2-site .srfm-form button[type=submit] { padding: 11px 20px; border-radius: 5px; }

/* Commerce shares the same type scale and contained page width. */
body.n2-site.woocommerce .site-content > .ast-container,
body.n2-site.woocommerce-page .site-content > .ast-container { max-width: 1160px; padding-right: 24px; padding-left: 24px; }
body.n2-site.woocommerce #primary { margin-top: 32px; margin-bottom: 40px; }
body.n2-site.woocommerce h1.page-title { font-size: 36px; margin-bottom: 20px; }
body.n2-site.woocommerce .woocommerce-breadcrumb { margin-bottom: 14px; font-size: 12px; }
body.n2-site.woocommerce .ast-shop-toolbar-container { margin-bottom: 22px; }
body.n2-site.woocommerce ul.products li.product { border-radius: 6px; box-shadow: none; }
body.n2-site.woocommerce ul.products li.product img { height: 230px; object-fit: contain; background: var(--n2-paper); border-radius: 5px; }
body.n2-site.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 16px; line-height: 1.4; }
body.n2-site.woocommerce div.product .product_title { font-size: 30px; line-height: 1.25; }
body.n2-site.woocommerce .related.products h2 { font-size: 26px; }
body.n2-site.woocommerce .related.products { margin-top: 36px; }
body.n2-site.woocommerce-cart #primary, body.n2-site.woocommerce-checkout #primary { padding-top: 30px; padding-bottom: 40px; }
body.n2-site .entry-content > :is(.wp-block-woocommerce-checkout,.wp-block-woocommerce-cart) { width: 100%; max-width: 100%; margin-left: 0 !important; margin-right: 0 !important; }
body.n2-site .tc-wb-block-component { margin-bottom: 12px; }
/* Custom Forms wraps each name field; keep legacy inner floats from overlapping the next input. */
body.n2-site .tc-cf-field-first_name .tc-wb-block-component,
body.n2-site .tc-cf-field-last_name .tc-wb-block-component { float: none; display: block; width: 100%; }
body.n2-site .tc-wb-conditional-field { clear: both; }
@media (min-width: 601px) {
	body.n2-site .tc-cf-field-first_name,
	body.n2-site .tc-cf-field-last_name { display: inline-block; vertical-align: top; width: calc(50% - 6px); }
	body.n2-site .tc-cf-field-first_name { margin-right: 6px; }
	body.n2-site .tc-cf-field-last_name { margin-left: 6px; }
}
body.n2-site .wc-block-checkout h2 { font-size: 22px; }

/* Compact footer: useful navigation without another full screen of spacing. */
body.n2-site .site-primary-footer-wrap { padding: 28px 24px !important; background: var(--n2-paper); border-top: 1px solid var(--n2-line); }
body.n2-site .site-primary-footer-inner-wrap { max-width: 1112px; gap: 24px; }
body.n2-site .site-footer h6 { font-size: 17px; margin-bottom: 12px; }
body.n2-site .site-footer .widget { margin-bottom: 0; }
body.n2-site .site-footer .menu { display: flex; flex-wrap: wrap; gap: 8px 18px; }
body.n2-site .site-footer .menu a { font-size: 12px; color: var(--n2-muted); }
body.n2-site .site-below-footer-wrap { padding: 16px 24px !important; min-height: 0 !important; background: var(--n2-paper); border-top: 1px solid var(--n2-line); font-size: 11px; }
body.n2-site .site-footer .ast-builder-layout-element { margin: 0; }

@media (max-width: 921px) {
	body.n2-site #masthead .site-primary-header-wrap { min-height: 76px; padding: 8px 20px; }
	body.n2-site #masthead .custom-logo-link img { width: 58px !important; max-width: 58px !important; }
	body.n2-site .entry-content > .n2-officers { gap: 20px; grid-template-columns: 1fr; }
	body.n2-site .n2-officers__heading, body.n2-site .n2-officers__photo, body.n2-site .n2-officers__list { grid-column: 1; grid-row: auto; }
	body.n2-site .n2-officers__photo { max-width: 560px; }
	body.n2-site .n2-reservation-card { grid-template-columns: 140px minmax(0, 1fr); }
	body.n2-site .n2-reservation-card__choices { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	body.n2-site .entry-content > .wp-block-uagb-container { padding: 28px 20px !important; }
	body.n2-site .entry-content > .wp-block-uagb-container > .uagb-container-inner-blocks-wrap { gap: 20px !important; }
	body.n2-site .entry-content > .n2-officers, body.n2-site .entry-content > .n2-reservations { width: calc(100% - 40px); margin-top: 24px; }
	body.n2-site .n2-officers__row { grid-template-columns: .95fr 1.05fr; gap: 12px; padding: 10px 0; }
	body.n2-site .n2-officers__office { display: grid; gap: 2px; }
	body.n2-site .n2-officers__office-name::before { content: none; }
	body.n2-site .n2-officers__name { font-size: 13px; }
	body.n2-site.page-id-1858 .wp-block-post-template { grid-template-columns: 1fr; }
	body.n2-site.home .uagb-block-d3766248 .wp-block-uagb-image img { height: 230px !important; }
	body.n2-site.home .uagb-block-d3766248 > .uagb-container-inner-blocks-wrap { display: flex; flex-direction: column; align-items: stretch; }
	body.n2-site.home .uagb-block-c1148fa4, body.n2-site.home .uagb-block-bad16a02 { align-self: stretch; }
	body.n2-site.page-id-1858 .uagb-block-4625a592 > .uagb-container-inner-blocks-wrap { grid-template-columns: 1fr; }
	body.n2-site.page-id-1858 .uagb-block-4625a592 img { width: 100% !important; height: 160px !important; }
	body.n2-site.home .uagb-block-7431efbe { grid-template-columns: 1fr !important; gap: 20px !important; }
	body.n2-site.home .uagb-block-60727b4e { display: none; }
	body.n2-site.page-id-1812 .uagb-block-4625a592 > .uagb-container-inner-blocks-wrap { grid-template-columns: 1fr; }
	body.n2-site.page-id-1812 .uagb-block-fce0962e .wp-block-uagb-image__figure img { height: 180px !important; }
	body.n2-site.page-id-1812 .simcal-calendar-head { grid-template-columns: 36px 1fr 36px; gap: 6px; }
	body.n2-site.page-id-1812 .simcal-current-label { font-size: 20px; }
	body.n2-site.page-id-1812 .simcal-day-label { margin-top: 12px !important; }
	body.n2-site.page-id-1812 .simcal-day-label > span { padding: 6px 0 !important; }
	body.n2-site.page-id-1812 .simcal-day { padding-top: 4px !important; }
	body.n2-site .n2-reservation-card { grid-template-columns: 1fr; }
	body.n2-site .n2-reservation-card__image-wrap { padding: 16px; }
	body.n2-site .n2-reservation-card__image { width: 90px; height: 90px; }
	body.n2-site .n2-reservation-card__content { padding: 20px; }
	body.n2-site .n2-reservation-card__meta div { grid-template-columns: 48px 1fr; gap: 10px; }
	body.n2-site.page-id-1771 .spectra-image-gallery__media--carousel, body.n2-site.page-id-1771 .spectra-image-gallery__media-thumbnail--carousel { height: 220px !important; }
	body.n2-site.woocommerce ul.products li.product img { height: 160px; }
	body.n2-site .site-footer .menu { justify-content: center; }
	body.n2-site .site-primary-footer-inner-wrap { gap: 14px; }
}
