/* =====================================================================
   Marsh Harbour Marina — "Refined Nautical Chart" design layer
   A classy cartographic identity for the marina: chart-paper cream,
   deep nautical navy (dominant), brass accent, brand green (ties to the
   logo + the Jib Room). Spectral display, Figtree body, IBM Plex Mono for
   chart-style coordinates/labels. Compass rose, lat/long ticks, depth-
   contour dividers — used sparingly. Soft shadows, thin rules; no kitsch.
   Scoped to the front end; targets stable WP/Blocksy classes only.
   ===================================================================== */

/* Shared, non-color tokens (type, shadows, radius). */
:root {
	--mhm-display: "Spectral", "Spectral Fallback", Georgia, "Times New Roman", serif;
	--mhm-head:    "Figtree", "Figtree Fallback", "Segoe UI", system-ui, sans-serif;
	--mhm-body:    "Figtree", "Figtree Fallback", "Segoe UI", system-ui, sans-serif;
	--mhm-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
	--mhm-script:  "Spectral", "Spectral Fallback", Georgia, serif;  /* used italic for taglines */

	--mhm-hard:      0 8px 22px rgba(16,30,52,.12);
	--mhm-hard-sm:   0 3px 10px rgba(16,30,52,.10);
	--mhm-shadow:    0 16px 34px rgba(16,30,52,.15);
	--mhm-shadow-sm: 0 4px 12px rgba(16,30,52,.09);

	--mhm-radius: 8px;
}

/* ---- Palette: deep navy dominant + chart-paper neutral + brass accent +
   brand-green CTA (one dominant, neutral base, two restrained accents). ---- */
:root {
	--mhm-paper:    #f3ecdb;  /* chart-paper cream (base) */
	--mhm-paper-2:  #e9dcc0;  /* deeper sand band */
	--mhm-ink:      #15233a;  /* navy ink */
	--mhm-ink-soft: #4a5a70;
	--mhm-teal:     #173a5a;  /* HERO — deep nautical navy (dominant) */
	--mhm-teal-deep:#102a43;
	--mhm-green:    #1e7a4e;  /* brand green (secondary / CTA) */
	--mhm-green-deep:#155a39;
	--mhm-gold:     #c2912f;  /* brass accent */
	--mhm-coral:    #1e7a4e;  /* CTA = brand green (ties to the logo) */
	--mhm-coral-2:  #155a39;
	--mhm-line:     #ddd0b4;  /* sand keyline */
	--mhm-night:    #122c44;  /* dark navy band */
	--mhm-night-2:  #0c2236;
	--mhm-sand-tx:  #eee5d2;
}

/* ---------------------------------------------------------------------
   0. Paper + grain atmosphere
   --------------------------------------------------------------------- */
body.wp-theme-blocksy {
	font-family: var(--mhm-body);
	color: var(--mhm-ink);
	background-color: var(--mhm-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
/* Fixed paper grain across the whole page (subtle, multiply). */
body.wp-theme-blocksy::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 9998;
	pointer-events: none;
	mix-blend-mode: multiply;
	opacity: .025;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------------------
   1. Typography
   --------------------------------------------------------------------- */
.wp-theme-blocksy .entry-content {
	font-size: 1.075rem;
	line-height: 1.7;
	color: var(--mhm-ink-soft);
}
.wp-theme-blocksy h1,
.wp-theme-blocksy h2 {
	font-family: var(--mhm-display);
	color: var(--mhm-ink);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -0.01em;
}
.wp-theme-blocksy h3,
.wp-theme-blocksy h4 {
	font-family: var(--mhm-head);
	color: var(--mhm-ink);
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.15;
}
.wp-theme-blocksy .entry-content h2 {
	font-size: clamp(1.7rem, 1.1rem + 2.2vw, 2.75rem);
	margin-bottom: .5em;
}
.wp-theme-blocksy .entry-content h3 {
	font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem);
}
.wp-theme-blocksy .has-xx-large-font-size { font-size: clamp(2.4rem, 1.4rem + 3.6vw, 4rem) !important; }
.wp-theme-blocksy strong { color: var(--mhm-ink); }

/* Content links: gold highlighter sweep */
.wp-theme-blocksy .entry-content a:not(.wp-block-button__link):not(.mhm-docs a):not(.mhm-marquee__item) {
	color: var(--mhm-teal-deep);
	text-decoration: none;
	font-weight: 700;
	background-image: linear-gradient(var(--mhm-gold), var(--mhm-gold));
	background-size: 0% 35%;
	background-repeat: no-repeat;
	background-position: 0 88%;
	transition: background-size .25s ease, color .2s ease;
}
.wp-theme-blocksy .entry-content a:not(.wp-block-button__link):not(.mhm-docs a):not(.mhm-marquee__item):hover {
	color: var(--mhm-ink);
	background-size: 100% 35%;
}

/* Eyebrow — letter-spaced caps with a gold rule */
.wp-theme-blocksy .mhm-eyebrow {
	font-family: var(--mhm-head) !important;
	font-size: .8rem !important;
	font-weight: 800;
	letter-spacing: .2em !important;
	text-transform: uppercase;
	color: var(--mhm-gold) !important;
	display: inline-flex;
	align-items: center;
	gap: .7em;
	margin-bottom: 1rem;
}
.wp-theme-blocksy .mhm-eyebrow::before {
	content: "";
	width: 1.9rem; height: 3px;
	background: var(--mhm-gold);
	display: inline-block;
}
.wp-theme-blocksy .mhm-eyebrow--on-dark { color: var(--mhm-gold) !important; }

.wp-theme-blocksy .mhm-lead {
	font-size: 1.2rem;
	line-height: 1.6;
	max-width: 56ch;
	margin: 0 0 1.5rem;
	color: var(--mhm-ink-soft);
}

/* Section header (eyebrow + title + intro) — left-aligned, sharing the same
   content column as the section content below it. */
.wp-theme-blocksy .mhm-heading { margin-bottom: 2.25rem; }
.wp-theme-blocksy .mhm-heading h1,
.wp-theme-blocksy .mhm-heading h2 { margin: 0; }
.wp-theme-blocksy .mhm-heading__body {
	max-width: 70ch;
	margin: .8rem 0 0;
	font-size: 1.12rem;
	line-height: 1.6;
	color: var(--mhm-ink-soft);
}
.wp-theme-blocksy .mhm-script {
	font-family: var(--mhm-script);
	font-style: italic;
	color: var(--mhm-coral);
	font-weight: 500;
	line-height: 1.1;
}

/* ---------------------------------------------------------------------
   2. Marquee strip (injected via wp_body_open)
   --------------------------------------------------------------------- */
.mhm-marquee {
	background: var(--mhm-ink);
	color: var(--mhm-paper);
	overflow: hidden;
	border-bottom: 3px solid var(--mhm-gold);
}
.mhm-marquee__track {
	display: inline-flex;
	white-space: nowrap;
	will-change: transform;
	animation: mhm-marquee 38s linear infinite;
}
.mhm-marquee:hover .mhm-marquee__track { animation-play-state: paused; }
.mhm-marquee__seq { display: inline-flex; align-items: center; }
.mhm-marquee__item {
	font-family: var(--mhm-head);
	font-weight: 700;
	font-size: .82rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .55rem 0;
	color: var(--mhm-paper);
	text-decoration: none;
}
.mhm-marquee__item--strong { color: var(--mhm-gold); }
.mhm-marquee__item--link { color: var(--mhm-gold); }
.mhm-marquee__item--link:hover { color: #fff; text-decoration: underline; }
.mhm-marquee__star { color: var(--mhm-coral); margin: 0 1.15rem; font-size: .7rem; }
@keyframes mhm-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------------------------------------------------------------------
   3. Header + navigation (Blocksy)
   --------------------------------------------------------------------- */
.ct-header {
	background: var(--mhm-paper);
	box-shadow: none;
	border-bottom: 4px solid var(--mhm-ink);
}
/* ---------------------------------------------------------------------
   Header lockup — small crest badge + wordmark ("Marsh Harbour Marina").
   The full color crest is a busy heritage mark, so the bar leads with the
   NAME (Spectral) and keeps the crest small beside it; the big crest lives
   on the hero. Both Blocksy header rows (desktop + mobile) carry the logo
   <img> and the .site-title text, so one rule set covers both.
   --------------------------------------------------------------------- */
.ct-header [data-id="logo"] { display: flex; align-items: center; }
.ct-header .site-branding[data-id="logo"] {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	gap: .8rem;
}
.ct-header .site-logo-container { display: inline-flex; align-items: center; line-height: 0; flex: 0 0 auto; }
.ct-header .site-logo-container img,
.ct-header .site-logo-container img.default-logo {
	display: block;
	max-height: 68px !important;
	width: auto !important;
	height: auto !important;
}

/* Wordmark — the site title, revealed and set as the lockup's name. */
.ct-header .site-title-container {
	position: static !important;
	width: auto; height: auto; margin: 0; padding: 0;
	overflow: visible; clip: auto;
	display: flex; flex-direction: column; line-height: 1;
}
.ct-header .site-title { margin: 0; display: block; }
.ct-header .site-title a {
	font-family: var(--mhm-display);
	font-weight: 600;
	font-size: 1.4rem;
	letter-spacing: -.01em;
	line-height: 1;
	color: var(--mhm-ink);
	text-decoration: none;
	white-space: nowrap;
}
/* sub-label beneath the name */
.ct-header .site-title-container::after {
	content: "Abaco · Bahamas";
	font-family: var(--mhm-head);
	font-weight: 700;
	font-size: .56rem;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--mhm-ink-soft);
	margin-top: .32rem;
}
/* tagline (if Blocksy outputs one) stays hidden. */
.ct-header .site-description {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Mobile header (Blocksy's ~70px row, <=1000px): smaller crest + name. */
@media (max-width: 999.98px) {
	.ct-header .site-logo-container img,
	.ct-header .site-logo-container img.default-logo { max-height: 48px !important; }
	.ct-header .site-branding[data-id="logo"] { gap: .55rem; }
	.ct-header .site-title a { font-size: 1.05rem; }
	.ct-header .site-title-container::after { font-size: .5rem; letter-spacing: .2em; }
}
.ct-header .ct-menu-link {
	font-family: var(--mhm-head);
	font-weight: 800;
	font-size: .82rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mhm-ink);
	position: relative;
}
.ct-header .menu-item > .ct-menu-link::after {
	content: "";
	position: absolute;
	left: var(--mhm-link-pad, .8rem); right: var(--mhm-link-pad, .8rem);
	bottom: .3rem; height: 4px;
	background: var(--mhm-coral);
	transform: scaleX(0); transform-origin: left;
	transition: transform .25s ease;
	border-radius: 2px;
}
.ct-header .menu-item:hover > .ct-menu-link::after,
.ct-header .current-menu-item > .ct-menu-link::after { transform: scaleX(1); }
.ct-header .current-menu-item > .ct-menu-link { color: var(--mhm-coral-2); }

#offcanvas, #offcanvas .ct-panel-inner { background-color: var(--mhm-paper) !important; }
#offcanvas .ct-panel-content-inner { padding: 0 1.25rem 1.5rem; }
#offcanvas .ct-toggle-close { color: var(--mhm-ink); }
#offcanvas .ct-menu-link {
	color: var(--mhm-ink); font-family: var(--mhm-head); font-weight: 800;
	text-transform: uppercase; letter-spacing: .1em; padding: 1rem 0;
}
#offcanvas .menu-container > ul > li.menu-item { border-bottom: 2px dashed var(--mhm-line); }
#offcanvas .menu-item > .ct-menu-link::after { display: none !important; }
#offcanvas .current-menu-item > .ct-menu-link { color: var(--mhm-coral-2); }

/* Suppress Blocksy's default page-title hero band — every page provides its
   own heading (the poster h1 on the home page, a .mhm-band h1 elsewhere). */
.wp-theme-blocksy .hero-section { display: none !important; }

/* ---------------------------------------------------------------------
   4. Section bands + printer's rule divider
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-band { position: relative; }
.wp-theme-blocksy .mhm-band h1 {
	font-size: clamp(2rem, 1.3rem + 2.6vw, 3.1rem);
	line-height: 1.05;
	margin-bottom: .45em;
}
/* Give the whole content area ONE consistent width. Blocksy's
   --theme-block-max-width comes through empty here, which otherwise lets narrow
   text sections (~750) and full-bleed bands (~1100) disagree — the cause of the
   "some sections sit further left" look. Pin it so every section matches. */
.wp-theme-blocksy .entry-content { --wp--style--global--content-size: 1120px; }
.wp-theme-blocksy .mhm-band { padding-inline: 1.5rem; }
.wp-theme-blocksy .mhm-band > *:not(.alignfull) { max-width: 1120px; margin-inline: auto; }
.wp-theme-blocksy .mhm-band--sand {
	background: var(--mhm-paper-2);
	background-image: radial-gradient(rgba(22,36,30,.05) 1.4px, transparent 1.4px);
	background-size: 18px 18px;
	border-block: 1px solid var(--mhm-line);
}
.wp-theme-blocksy .mhm-rule {
	display: flex; gap: 8px; justify-content: center; align-items: center;
	padding: 1.1rem 0;
}
.wp-theme-blocksy .mhm-rule span { height: 6px; width: 34px; border-radius: 3px; }
.wp-theme-blocksy .mhm-rule span:nth-child(1) { background: var(--mhm-coral); }
.wp-theme-blocksy .mhm-rule span:nth-child(2) { background: var(--mhm-gold); }
.wp-theme-blocksy .mhm-rule span:nth-child(3) { background: var(--mhm-teal); }
.wp-theme-blocksy .mhm-rule span:nth-child(4) { background: var(--mhm-ink-soft); }

/* ---------------------------------------------------------------------
   5. Poster hero (wp:html)
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-poster {
	position: relative;
	overflow: hidden;
	background: var(--mhm-paper-2);
	border-bottom: 1px solid var(--mhm-line);
}
.wp-theme-blocksy .mhm-poster__sun {
	position: absolute;
	top: 50%; left: 64%;
	width: 150vmax; height: 150vmax;
	transform: translate(-50%, -50%);
	background: repeating-conic-gradient(from 0deg at 50% 50%,
		rgba(201,138,46,.13) 0deg 5deg, transparent 5deg 12deg);
	-webkit-mask: radial-gradient(closest-side, #000 0%, transparent 62%);
	        mask: radial-gradient(closest-side, #000 0%, transparent 62%);
	animation: mhm-spin 120s linear infinite;
	pointer-events: none;
}
@keyframes mhm-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
.wp-theme-blocksy .mhm-poster__inner {
	position: relative; z-index: 1;
	max-width: 1180px; margin: 0 auto;
	padding: clamp(2.5rem, 1rem + 5vw, 5rem) 1.5rem;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	align-items: center;
	gap: clamp(1.5rem, 1rem + 3vw, 3.5rem);
}
.wp-theme-blocksy .mhm-poster__title {
	font-family: var(--mhm-display);
	font-size: clamp(2.6rem, 1.4rem + 6vw, 5.2rem);
	font-weight: 600;
	line-height: .98;
	color: var(--mhm-ink);
	margin: .05em 0 .12em;
	letter-spacing: -0.015em;
	-webkit-font-smoothing: antialiased;
}
.wp-theme-blocksy .mhm-poster__script {
	font-family: var(--mhm-script);
	font-size: clamp(1.6rem, 1rem + 2.4vw, 2.6rem);
	color: var(--mhm-coral);
	margin: 0 0 1rem;
	transform: rotate(-3deg);
	display: inline-block;
}
.wp-theme-blocksy .mhm-poster__photo {
	position: relative;
	background: #fff;
	padding: .8rem .8rem 2.6rem;
	border: 1px solid var(--mhm-line);
	box-shadow: var(--mhm-shadow);
	transform: rotate(-2.2deg);
	justify-self: center;
}
.wp-theme-blocksy .mhm-poster__photo img {
	display: block; width: 100%; height: auto;
	max-width: 460px;
	filter: saturate(1.05) contrast(1.03);
}
.wp-theme-blocksy .mhm-poster__photo::before { /* warm print overlay */
	content: ""; position: absolute; inset: .8rem .8rem 2.6rem;
	background: linear-gradient(160deg, rgba(242,180,65,.12), rgba(240,85,45,.16));
	mix-blend-mode: soft-light; pointer-events: none;
}
.wp-theme-blocksy .mhm-poster__photo::after { /* tape */
	content: ""; position: absolute; top: -12px; left: 50%;
	width: 92px; height: 26px; transform: translateX(-50%) rotate(-4deg);
	background: rgba(201,138,46,.4);
	box-shadow: 0 1px 4px rgba(22,36,30,.15);
}
.wp-theme-blocksy .mhm-poster__cap {
	position: absolute; bottom: .65rem; left: 0; right: 0; text-align: center;
	font-family: var(--mhm-script); font-style: italic; color: var(--mhm-ink-soft); font-size: 1.15rem;
}
.wp-theme-blocksy .mhm-poster .wp-block-buttons { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.4rem; }
@media (max-width: 820px) {
	.wp-theme-blocksy .mhm-poster__inner { grid-template-columns: 1fr; }
	.wp-theme-blocksy .mhm-poster__photo { transform: rotate(-1.5deg); margin-top: 1rem; }
}

/* ---------------------------------------------------------------------
   6. Stamp ribbon (postmark badges)
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-stamps {
	display: flex; flex-wrap: wrap; gap: 1.25rem; justify-content: center;
	max-width: 1100px; margin: 0 auto; padding: 0 1.25rem;
}
.wp-theme-blocksy .mhm-stamp {
	flex: 1 1 200px; max-width: 250px;
	background: var(--mhm-paper);
	border: 1px dashed var(--mhm-ink-soft);
	border-radius: 10px;
	padding: 1.1rem 1rem;
	text-align: center;
	position: relative;
}
.wp-theme-blocksy .mhm-stamp:nth-child(odd) { transform: rotate(-1.4deg); }
.wp-theme-blocksy .mhm-stamp:nth-child(even) { transform: rotate(1.2deg); }
/* Single, calm accent for the stamp icons (no rainbow). */
.wp-theme-blocksy .mhm-stamp__icon { color: var(--mhm-teal); }
.wp-theme-blocksy .mhm-stamp__icon svg { width: 1.7rem; height: 1.7rem; }
.wp-theme-blocksy .mhm-stamp__title {
	font-family: var(--mhm-head); font-weight: 800; text-transform: uppercase;
	letter-spacing: .04em; color: var(--mhm-ink); font-size: 1rem; margin: .35rem 0 .1rem;
}
.wp-theme-blocksy .mhm-stamp__sub { font-size: .85rem; color: var(--mhm-ink-soft); }

/* ---------------------------------------------------------------------
   7. Ticket feature blocks (photo + color caption, alternating)
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-features { display: flex; flex-direction: column; gap: 2.5rem; max-width: 1100px; margin: 2.5rem auto 0; }
.wp-theme-blocksy .mhm-feature {
	display: grid; grid-template-columns: 1fr 1fr; align-items: center;
	gap: clamp(1.25rem, 1rem + 2vw, 3rem);
}
.wp-theme-blocksy .mhm-feature--flip { direction: rtl; }
.wp-theme-blocksy .mhm-feature--flip > * { direction: ltr; }
.wp-theme-blocksy .mhm-feature__photo {
	position: relative; background: #fff; padding: .7rem; border: 1px solid var(--mhm-line);
	box-shadow: var(--mhm-shadow); transform: rotate(-1.5deg);
}
.wp-theme-blocksy .mhm-feature--flip .mhm-feature__photo { transform: rotate(1.5deg); }
.wp-theme-blocksy .mhm-feature__photo img { display: block; width: 100%; height: 320px; object-fit: cover; }
.wp-theme-blocksy .mhm-feature__body h3 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); margin: .2rem 0 .5rem; }
.wp-theme-blocksy .mhm-feature__body p { color: var(--mhm-ink-soft); margin: 0 0 1.1rem; }
.wp-theme-blocksy .mhm-feature__kicker {
	font-family: var(--mhm-head); font-weight: 800; text-transform: uppercase;
	letter-spacing: .16em; font-size: .75rem; color: var(--mhm-teal-deep);
}
@media (max-width: 760px) {
	.wp-theme-blocksy .mhm-feature, .wp-theme-blocksy .mhm-feature--flip { grid-template-columns: 1fr; direction: ltr; }
	.wp-theme-blocksy .mhm-feature__photo img { height: 240px; }
}

/* ---------------------------------------------------------------------
   8. Ticket-stub menu cards
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-tickets {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1.6rem 1.4rem; margin-top: 2rem;
}
.wp-theme-blocksy .mhm-ticket {
	position: relative; background: #fff;
	border: 1px solid var(--mhm-line); border-radius: 10px;
	padding: 1.3rem 1.4rem 1.5rem;
	box-shadow: var(--mhm-shadow-sm);
}
/* side punch-holes (color = the sand band the cards sit on) */
.wp-theme-blocksy .mhm-ticket::before,
.wp-theme-blocksy .mhm-ticket::after {
	content: ""; position: absolute; top: 50px;
	width: 18px; height: 18px; border-radius: 50%;
	background: var(--mhm-paper); border: 1px solid var(--mhm-line);
}
.wp-theme-blocksy .mhm-ticket::before { left: -10px; }
.wp-theme-blocksy .mhm-ticket::after { right: -10px; }
.wp-theme-blocksy .mhm-ticket__head {
	font-family: var(--mhm-head); font-weight: 800; text-transform: uppercase;
	letter-spacing: .08em; color: var(--mhm-ink); font-size: 1.05rem;
	padding-bottom: .75rem; margin-bottom: .9rem;
	border-bottom: 2px dashed var(--mhm-line);
	display: flex; align-items: center; gap: .55rem;
}
.wp-theme-blocksy .mhm-ticket__head svg { width: 1.2rem; height: 1.2rem; color: var(--mhm-teal); }
.wp-theme-blocksy .mhm-ticket__row { display: flex; align-items: baseline; gap: .5rem; margin: .5rem 0; }
.wp-theme-blocksy .mhm-ticket__row .nm { color: var(--mhm-ink); font-weight: 600; font-size: .98rem; }
.wp-theme-blocksy .mhm-ticket__row .dots { flex: 1; border-bottom: 2px dotted var(--mhm-line); transform: translateY(-.18rem); min-width: 1rem; }
.wp-theme-blocksy .mhm-ticket__row .pr { font-family: var(--mhm-display); font-weight: 600; color: var(--mhm-teal); font-size: 1.02rem; white-space: nowrap; }

/* ---------------------------------------------------------------------
   9. Showtime callouts (Rib Night / Steak Night)
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-showtimes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin-top: 2rem; }
.wp-theme-blocksy .mhm-showtime {
	border: 1px solid rgba(0,0,0,.10); border-radius: 14px;
	padding: 1.7rem 1.6rem; box-shadow: var(--mhm-shadow-sm);
	position: relative; overflow: hidden;
}
.wp-theme-blocksy .mhm-showtime--rib { background: var(--mhm-coral); color: #fff; }
.wp-theme-blocksy .mhm-showtime--steak { background: var(--mhm-teal); color: #fff; }
.wp-theme-blocksy .mhm-showtime__day {
	font-family: var(--mhm-head); font-weight: 800; text-transform: uppercase;
	letter-spacing: .14em; font-size: .8rem; opacity: .95;
}
.wp-theme-blocksy .mhm-showtime__name { font-family: var(--mhm-display); font-weight: 600; font-size: clamp(1.8rem, 1.2rem + 2.4vw, 2.8rem); line-height: 1; margin: .25rem 0; }
.wp-theme-blocksy .mhm-showtime__time { font-family: var(--mhm-head); font-weight: 700; font-size: 1.05rem; }
@media (max-width: 620px) { .wp-theme-blocksy .mhm-showtimes { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------
   10. Dusk bar band (the dark "Happy Hour & Bar" moment)
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-duskbar {
	position: relative;
	background: var(--mhm-night);
	background-image:
		radial-gradient(120% 80% at 80% -10%, rgba(201,138,46,.18), transparent 55%),
		radial-gradient(90% 70% at 10% 110%, rgba(197,81,47,.14), transparent 55%),
		radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
	background-size: auto, auto, 16px 16px;
	color: var(--mhm-sand-tx);
	overflow: hidden;
	/* scalloped top + bottom edges */
	-webkit-mask:
		radial-gradient(14px at 14px 0, transparent 98%, #000) repeat-x top / 28px 14px,
		linear-gradient(#000 0 0) center / 100% calc(100% - 28px) no-repeat,
		radial-gradient(14px at 14px 100%, transparent 98%, #000) repeat-x bottom / 28px 14px;
}
.wp-theme-blocksy .mhm-duskbar__inner { max-width: 1100px; margin: 0 auto; padding: clamp(3rem, 2rem + 3vw, 4.5rem) 1.5rem; }
.wp-theme-blocksy .mhm-duskbar h2 { color: #fff; }
.wp-theme-blocksy .mhm-duskbar .mhm-eyebrow { color: var(--mhm-gold) !important; }
.wp-theme-blocksy .mhm-duskbar p { color: var(--mhm-sand-tx); }
.wp-theme-blocksy .mhm-duskbar .mhm-script { color: var(--mhm-gold); }
.wp-theme-blocksy .mhm-cocktails {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: .4rem 2rem; margin: 1.5rem 0 0;
}
.wp-theme-blocksy .mhm-cocktails .row {
	display: flex; align-items: baseline; gap: .5rem;
	padding: .5rem 0; border-bottom: 1px solid rgba(243,233,210,.16);
}
.wp-theme-blocksy .mhm-cocktails .nm { font-weight: 600; color: #fff; }
.wp-theme-blocksy .mhm-cocktails .dots { flex: 1; border-bottom: 2px dotted rgba(243,233,210,.3); transform: translateY(-.18rem); }
.wp-theme-blocksy .mhm-cocktails .pr { font-family: var(--mhm-display); font-weight: 600; color: var(--mhm-gold); }
.wp-theme-blocksy .mhm-duskbar .wp-block-button__link {
	background: var(--mhm-gold); color: #1a1a1a;
	box-shadow: var(--mhm-shadow);
}
.wp-theme-blocksy .mhm-duskbar .wp-block-button__link:hover { background: #dda64a; }
/* Secondary on the dark band: a solid light button (legible on night, pairs with the gold primary). */
.wp-theme-blocksy .mhm-duskbar .wp-block-button.is-style-outline .wp-block-button__link {
	background: var(--mhm-sand-tx); color: var(--mhm-ink);
	border: none; box-shadow: var(--mhm-shadow);
}
.wp-theme-blocksy .mhm-duskbar .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #fff; color: var(--mhm-ink);
}

/* ---------------------------------------------------------------------
   11. Polaroid gallery
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-polaroids {
	display: flex; flex-wrap: wrap; gap: 1.4rem; justify-content: center;
	margin-top: 2rem;
}
.wp-theme-blocksy .mhm-polaroid {
	background: #fff; padding: .6rem .6rem 2.4rem; border: 1px solid var(--mhm-line);
	box-shadow: var(--mhm-shadow); width: 260px; position: relative;
	transition: transform .3s ease, box-shadow .3s ease;
}
.wp-theme-blocksy .mhm-polaroid:nth-child(3n+1) { transform: rotate(-2.5deg); }
.wp-theme-blocksy .mhm-polaroid:nth-child(3n+2) { transform: rotate(1.8deg); }
.wp-theme-blocksy .mhm-polaroid:nth-child(3n+3) { transform: rotate(-.8deg); }
.wp-theme-blocksy .mhm-polaroid:hover { transform: rotate(0) translateY(-6px); box-shadow: var(--mhm-shadow), 0 22px 40px rgba(22,36,30,.18); z-index: 2; }
.wp-theme-blocksy .mhm-polaroid img { display: block; width: 100%; height: 200px; object-fit: cover; }
.wp-theme-blocksy .mhm-polaroid figcaption {
	position: absolute; bottom: .55rem; left: 0; right: 0; text-align: center;
	font-family: var(--mhm-script); font-style: italic; color: var(--mhm-ink-soft); font-size: 1.15rem;
}

/* ---------------------------------------------------------------------
   12. Buttons — coral "sticker" with hard ink shadow
   --------------------------------------------------------------------- */
.wp-theme-blocksy .wp-block-button__link {
	font-family: var(--mhm-head); font-weight: 800;
	text-transform: uppercase; letter-spacing: .04em; font-size: .88rem;
	border-radius: var(--mhm-radius);
	padding: .85rem 1.5rem;
	background: var(--mhm-coral); color: #fff;
	box-shadow: var(--mhm-hard);
	transition: transform .14s ease, box-shadow .14s ease, background-color .2s ease;
}
.wp-theme-blocksy .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: var(--mhm-shadow); background: var(--mhm-coral-2); }
/* Secondary buttons: filled in the brand navy so they read as solidly as the
   green primary (matched size + shadow) instead of a faint transparent outline. */
.wp-theme-blocksy .wp-block-button.is-style-outline .wp-block-button__link {
	background: var(--mhm-teal); color: #fff;
	border: none; box-shadow: var(--mhm-hard);
}
.wp-theme-blocksy .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--mhm-teal-deep); color: #fff; }
.wp-theme-blocksy .wp-block-buttons { gap: .85rem; }

/* ---------------------------------------------------------------------
   13. Lists — coral check in a gold chip
   --------------------------------------------------------------------- */
.wp-theme-blocksy .entry-content ul:not(.wp-block-buttons):not(.menu):not(.mhm-cocktails) { list-style: none; margin-left: 0; padding-left: 0; }
.wp-theme-blocksy .entry-content ul:not(.wp-block-buttons):not(.menu):not(.mhm-cocktails) li {
	position: relative; padding-left: 2.1rem; margin-bottom: .7rem; color: var(--mhm-ink);
}
.wp-theme-blocksy .entry-content ul:not(.wp-block-buttons):not(.menu):not(.mhm-cocktails) li::before {
	content: ""; position: absolute; left: 0; top: .12em;
	width: 1.35rem; height: 1.35rem; border-radius: 5px;
	background: var(--mhm-gold)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316241e' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")
		center / .85rem no-repeat;
}

/* ---------------------------------------------------------------------
   14. Document download buttons
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-docs { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1.5rem; }
.wp-theme-blocksy .mhm-docs a {
	display: inline-flex; align-items: center; gap: .55rem;
	background: #fff; border: 1px solid var(--mhm-line); border-radius: var(--mhm-radius);
	padding: .8rem 1.15rem; font-family: var(--mhm-head); font-weight: 700; color: var(--mhm-ink);
	box-shadow: var(--mhm-shadow-sm); text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
}
.wp-theme-blocksy .mhm-docs a:hover { transform: translateY(-2px); box-shadow: var(--mhm-shadow); }
.wp-theme-blocksy .mhm-docs svg { width: 1.1rem; height: 1.1rem; color: var(--mhm-teal); }

/* ---------------------------------------------------------------------
   15. Images / figures / map / pdf
   --------------------------------------------------------------------- */
.wp-theme-blocksy .entry-content .wp-block-image img { border-radius: var(--mhm-radius); }
.wp-theme-blocksy .entry-content .mhm-img-cap img { max-width: 620px; margin-inline: auto; display: block; border: 1px solid var(--mhm-line); }
.wp-theme-blocksy .entry-content .mhm-img-cap figcaption { text-align: center; font-family: var(--mhm-script); font-style: italic; color: var(--mhm-ink-soft); font-size: 1.05rem; margin-top: .5rem; }
.wp-theme-blocksy .mhm-contact-map {
	position: relative; height: 100%; min-height: 360px; border-radius: var(--mhm-radius);
	overflow: hidden; border: 1px solid var(--mhm-line); box-shadow: var(--mhm-shadow-sm);
}
.wp-theme-blocksy .mhm-contact-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.wp-theme-blocksy .mhm-pdf {
	display: block; width: 100%; max-width: 920px; height: 80vh; min-height: 520px;
	margin-inline: auto;
	border: 1px solid var(--mhm-line); border-radius: var(--mhm-radius); box-shadow: var(--mhm-shadow-sm); background: #fff;
}
/* Dock-layout figure (chart-styled), shown at the image's own size (never upscaled).
   Wrapped in a link that opens the image in the in-page lightbox overlay below. */
.wp-theme-blocksy .mhm-dock { margin: 1.5rem auto 0; text-align: center; }
.wp-theme-blocksy .mhm-dock a { display: inline-block; max-width: 100%; cursor: zoom-in; }
.wp-theme-blocksy .mhm-dock img {
	display: block; max-width: 100%; width: auto; height: auto; margin-inline: auto;
	border: 1px solid var(--mhm-line); border-radius: var(--mhm-radius);
	box-shadow: var(--mhm-shadow-sm); background: #fff;
}
.wp-theme-blocksy .mhm-dock figcaption {
	margin-top: .6rem; font-family: var(--mhm-mono); font-size: .72rem; letter-spacing: .12em;
	text-transform: uppercase; color: var(--mhm-ink-soft);
}

/* Front-end lightbox overlay (dependency-free; appended to <body>) */
#mhm-lightbox {
	position: fixed; inset: 0; z-index: 99999; display: none;
	align-items: center; justify-content: center; padding: clamp(1rem, 4vw, 3rem);
	background: rgba(16,30,52,.9); cursor: zoom-out;
}
#mhm-lightbox.is-open { display: flex; }
#mhm-lightbox img {
	max-width: 100%; max-height: 100%; width: auto; height: auto;
	border-radius: var(--mhm-radius); box-shadow: 0 24px 60px rgba(0,0,0,.5); background: #fff; cursor: default;
}
#mhm-lightbox .mhm-lightbox__close {
	position: absolute; top: clamp(.5rem, 2vw, 1.2rem); right: clamp(.5rem, 2vw, 1.2rem);
	width: 44px; height: 44px; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(255,255,255,.14); color: #fff; font-size: 1.5rem; line-height: 1;
}
#mhm-lightbox .mhm-lightbox__close:hover { background: rgba(255,255,255,.28); }
@media (prefers-reduced-motion: no-preference) { #mhm-lightbox.is-open { animation: mhm-fade .18s ease; } }
@keyframes mhm-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------------------------------------------------------------------
   16. FAQ accordion ([mhm_faq])
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-faq { max-width: 780px; margin: 2rem auto 0; }
.wp-theme-blocksy .mhm-faq__item {
	background: #fff; border: 1px solid var(--mhm-line); border-radius: 12px;
	box-shadow: var(--mhm-shadow-sm); margin-bottom: 1rem; overflow: hidden;
}
.wp-theme-blocksy .mhm-faq__q {
	cursor: pointer; list-style: none; font-family: var(--mhm-head); font-weight: 800;
	font-size: 1.05rem; color: var(--mhm-ink); padding: 1rem 2.75rem 1rem 1.25rem;
	position: relative;
}
.wp-theme-blocksy .mhm-faq__q::-webkit-details-marker { display: none; }
.wp-theme-blocksy .mhm-faq__q::after {
	content: "+"; position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%);
	font-family: var(--mhm-display); font-size: 1.3rem; line-height: 1; color: var(--mhm-coral);
}
.wp-theme-blocksy .mhm-faq__item[open] .mhm-faq__q { color: var(--mhm-coral-2); }
.wp-theme-blocksy .mhm-faq__item[open] .mhm-faq__q::after { content: "\2212"; }
.wp-theme-blocksy .mhm-faq__a { padding: 0 1.25rem 1.1rem; color: var(--mhm-ink-soft); line-height: 1.65; }
.wp-theme-blocksy .mhm-faq__a p { margin: 0; }

/* ---------------------------------------------------------------------
   17. Reservation forms
   --------------------------------------------------------------------- */
.wp-theme-blocksy .mhm-form { max-width: 820px; }
.wp-theme-blocksy .mhm-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
.wp-theme-blocksy .mhm-field { margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.wp-theme-blocksy .wpforms-field-label { font-family: var(--mhm-head); font-weight: 700; color: var(--mhm-ink); font-size: .9rem; }
.wp-theme-blocksy .wpforms-form input[type=text],
.wp-theme-blocksy .wpforms-form input[type=email],
.wp-theme-blocksy .wpforms-form input[type=tel],
.wp-theme-blocksy .wpforms-form input[type=number],
.wp-theme-blocksy .wpforms-form input[type=date],
.wp-theme-blocksy .wpforms-form input[type=time],
.wp-theme-blocksy .wpforms-form textarea,
.wp-theme-blocksy .wpforms-form select {
	width: 100%; border: 2px solid var(--mhm-ink); border-radius: var(--mhm-radius);
	padding: .7rem .85rem; font-family: var(--mhm-body); background: #fff; color: var(--mhm-ink);
	transition: box-shadow .15s ease, border-color .15s ease;
}
.wp-theme-blocksy .mhm-form textarea { margin-top: 1.1rem; }
/* Native <select> clips its value with our padding — drop the native control
   and use a custom chevron so "Choose…" is never cut off. */
.wp-theme-blocksy .wpforms-form select {
	-webkit-appearance: none; -moz-appearance: none; appearance: none;
	line-height: 1.5; min-height: 3rem; padding-right: 2.5rem; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315233a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .85rem center; background-size: 1.05rem;
}
.wp-theme-blocksy .wpforms-form input:focus,
.wp-theme-blocksy .wpforms-form textarea:focus,
.wp-theme-blocksy .wpforms-form select:focus { outline: none; border-color: var(--mhm-teal); box-shadow: 0 0 0 3px rgba(23,58,90,.18); }
.wp-theme-blocksy .wpforms-submit {
	margin-top: 1rem; background: var(--mhm-coral) !important; color: #fff !important;
	font-family: var(--mhm-head); font-weight: 800; text-transform: uppercase; letter-spacing: .04em;
	border: 0; border-radius: var(--mhm-radius); padding: .85rem 1.7rem !important; cursor: pointer;
	box-shadow: var(--mhm-hard); transition: transform .14s ease, box-shadow .14s ease, background-color .2s ease;
}
.wp-theme-blocksy .wpforms-submit:hover { transform: translateY(-2px); box-shadow: var(--mhm-shadow); background: var(--mhm-coral-2) !important; }
@media (max-width: 600px) { .wp-theme-blocksy .mhm-form__grid { grid-template-columns: 1fr; } }
.wp-theme-blocksy .mhm-form-notice { border-radius: 10px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: 1rem; line-height: 1.55; border: 2px solid; }
.wp-theme-blocksy .mhm-form-notice--ok { background: #eef7ec; border-color: var(--mhm-green); color: #14502f; }
.wp-theme-blocksy .mhm-form-notice--err { background: #fdeee7; border-color: var(--mhm-coral); color: #a23c12; }

/* ---------------------------------------------------------------------
   18. Footer
   --------------------------------------------------------------------- */
.ct-footer { background: var(--mhm-night) !important; color: var(--mhm-sand-tx); border-top: 5px solid var(--mhm-gold); position: relative; overflow: hidden; }
.ct-footer::before { /* faint sun-ray in a corner */
	content: ""; position: absolute; top: -40%; right: -10%; width: 60vmax; height: 60vmax;
	background: repeating-conic-gradient(from 0deg at 50% 50%, rgba(242,180,65,.06) 0deg 5deg, transparent 5deg 12deg);
	-webkit-mask: radial-gradient(closest-side, #000, transparent 65%); mask: radial-gradient(closest-side, #000, transparent 65%);
	pointer-events: none;
}
.ct-footer a, .ct-footer .ct-footer-cell, .ct-footer p { color: var(--mhm-sand-tx); }
.ct-footer a:hover { color: var(--mhm-gold); }
.ct-footer-copyright { font-family: var(--mhm-head); font-weight: 600; letter-spacing: .04em; font-size: .82rem; }

/* ---------------------------------------------------------------------
   19. Mobile conversion rail
   --------------------------------------------------------------------- */
.mhm-mobile-cta { display: none; }
@media (max-width: 782px) {
	body.wp-theme-blocksy { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
	.mhm-mobile-cta {
		position: fixed; z-index: 9999; left: 0; right: 0; bottom: 0;
		display: grid; grid-template-columns: 1fr 1fr; gap: .6rem;
		padding: .7rem .85rem calc(.7rem + env(safe-area-inset-bottom));
		background: var(--mhm-ink); border-top: 3px solid var(--mhm-gold);
		box-shadow: 0 -12px 30px rgba(14,42,40,.3);
	}
	.mhm-mobile-cta a {
		display: flex; align-items: center; justify-content: center; min-height: 46px;
		border-radius: var(--mhm-radius); font-family: var(--mhm-head); font-weight: 800;
		text-transform: uppercase; letter-spacing: .03em; text-decoration: none; font-size: .9rem;
	}
	.mhm-mobile-cta__call { background: var(--mhm-coral); color: #fff; }
	.mhm-mobile-cta__quote { background: var(--mhm-gold); color: var(--mhm-ink); }
}

/* ---------------------------------------------------------------------
   20. Scroll-reveal + accessibility + motion
   --------------------------------------------------------------------- */
.mhm-reveal-on .mhm-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.mhm-reveal-on .mhm-reveal.mhm-in { opacity: 1; transform: none; }

.wp-theme-blocksy a:focus-visible,
.wp-theme-blocksy .wp-block-button__link:focus-visible,
.wp-theme-blocksy button:focus-visible,
.wp-theme-blocksy input:focus-visible,
.wp-theme-blocksy textarea:focus-visible,
.wp-theme-blocksy select:focus-visible,
.wp-theme-blocksy .wpforms-submit:focus-visible,
.wp-theme-blocksy .mhm-mobile-cta a:focus-visible { outline: 3px solid var(--mhm-coral); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
	.wp-theme-blocksy *, .mhm-marquee__track, .mhm-poster__sun { animation: none !important; transition: none !important; }
	.mhm-reveal-on .mhm-reveal { opacity: 1 !important; transform: none !important; }
}

/* =====================================================================
   NAUTICAL CHART — overrides + additions (later cascade wins)
   ===================================================================== */

/* Eyebrows / small labels read as chart annotations (mono). */
.wp-theme-blocksy .mhm-eyebrow {
	font-family: var(--mhm-mono) !important;
	font-weight: 600;
	font-size: .74rem !important;
	letter-spacing: .22em !important;
	color: var(--mhm-teal) !important;
}
.wp-theme-blocksy .mhm-eyebrow::before { background: var(--mhm-gold); }
.wp-theme-blocksy .mhm-eyebrow--on-dark { color: var(--mhm-gold) !important; }

/* Subtle chart-grid on sand bands instead of the warm dot texture. */
.wp-theme-blocksy .mhm-band--sand {
	background: var(--mhm-paper-2);
	background-image:
		linear-gradient(rgba(21,35,58,.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(21,35,58,.045) 1px, transparent 1px);
	background-size: 26px 26px, 26px 26px;
	border-block: 1px solid var(--mhm-line);
}

/* Coordinate ticks (lat/long) — a thin mono rule used to frame sections. */
.wp-theme-blocksy .mhm-coords {
	display: flex; align-items: center; justify-content: center; gap: .9rem;
	font-family: var(--mhm-mono); font-size: .72rem; letter-spacing: .14em;
	color: var(--mhm-ink-soft); text-transform: uppercase;
}
.wp-theme-blocksy .mhm-coords::before,
.wp-theme-blocksy .mhm-coords::after { content: ""; height: 1px; width: 46px; background: var(--mhm-line); }
.wp-theme-blocksy .mhm-coords--on-dark { color: rgba(238,229,210,.7); }
.wp-theme-blocksy .mhm-coords--on-dark::before,
.wp-theme-blocksy .mhm-coords--on-dark::after { background: rgba(238,229,210,.28); }

/* Depth-contour divider (replaces the printer's rule). */
.wp-theme-blocksy .mhm-rule { gap: 0; }
.wp-theme-blocksy .mhm-rule span { display: none; }
.wp-theme-blocksy .mhm-rule::before {
	content: ""; width: min(560px, 80%); height: 14px;
	background:
		radial-gradient(circle at center, var(--mhm-gold) 0 3px, transparent 3.5px) center / 14px 14px no-repeat,
		repeating-linear-gradient(90deg, var(--mhm-line) 0 7px, transparent 7px 14px) left center / 100% 1px no-repeat;
}

/* Compass rose accent (inline SVG sized/positioned via markup). */
.wp-theme-blocksy .mhm-compass { color: var(--mhm-gold); opacity: .9; }
.wp-theme-blocksy .mhm-compass svg { width: 100%; height: 100%; display: block; }

/* --- Hero (reuse .mhm-poster structure, restyle to a clean chart hero) --- */
.wp-theme-blocksy .mhm-poster { background: var(--mhm-paper-2); border-bottom: 1px solid var(--mhm-line); }
.wp-theme-blocksy .mhm-poster__sun { display: none; }
.wp-theme-blocksy .mhm-poster__title { text-shadow: none; color: var(--mhm-ink); }
.wp-theme-blocksy .mhm-poster__script { transform: none; color: var(--mhm-green); font-size: clamp(1.4rem, 1rem + 1.8vw, 2.1rem); }
.wp-theme-blocksy .mhm-poster__photo { transform: none; border: 1px solid var(--mhm-line); padding: .55rem; }
.wp-theme-blocksy .mhm-poster__photo::after { display: none; }            /* drop the tape */
.wp-theme-blocksy .mhm-poster__photo::before {                           /* navy chart wash */
	inset: .55rem;
	background: linear-gradient(150deg, rgba(23,58,90,.10), rgba(16,30,52,.05));
	mix-blend-mode: normal;
}
.wp-theme-blocksy .mhm-poster__compass {
	position: absolute; top: 1.2rem; right: 1.2rem; width: 72px; height: 72px; z-index: 2;
}
/* Hero crest — the full heritage mark pinned as a "seal" on the photo's
   TOP-LEFT corner (homepage only), opposite the compass rose. The figure
   carries a <span class="mhm-poster__seal">; crest.png lives beside this file. */
.wp-theme-blocksy.home .mhm-poster__photo { overflow: visible; }
.wp-theme-blocksy.home .mhm-poster__seal {
	position: absolute;
	top: -40px;
	left: -40px;
	width: clamp(124px, 6vw + 84px, 200px);
	aspect-ratio: 1 / 1;
	z-index: 3;
	background: #fffdf7 url("crest.png") no-repeat center / 82%;
	border-radius: 50%;
	box-shadow: 0 8px 20px rgba(21, 35, 58, .22);
	transform: rotate(4deg);
}
@media (max-width: 820px) {
	.wp-theme-blocksy.home .mhm-poster__seal { top: -26px; left: -22px; width: clamp(100px, 28vw, 156px); }
}

/* --- Spec strip (reuse .mhm-stamps; restyle to clean instrument chips) --- */
.wp-theme-blocksy .mhm-stamp {
	background: #fff; border: 1px solid var(--mhm-line); border-radius: 10px;
	box-shadow: var(--mhm-shadow-sm); transform: none !important; text-align: left;
	display: flex; align-items: center; gap: .85rem; max-width: none;
}
.wp-theme-blocksy .mhm-stamp__icon { color: var(--mhm-teal); }
.wp-theme-blocksy .mhm-stamp__title { font-family: var(--mhm-display); font-weight: 600; font-size: 1.35rem; margin: 0; text-transform: none; letter-spacing: -.01em; }
.wp-theme-blocksy .mhm-stamp__sub { font-family: var(--mhm-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mhm-ink-soft); }

/* --- Seasonal rates table --- */
.wp-theme-blocksy .mhm-rates { width: 100%; border-collapse: collapse; margin-top: 1.5rem; background: #fff; border: 1px solid var(--mhm-line); border-radius: 10px; overflow: hidden; box-shadow: var(--mhm-shadow-sm); }
.wp-theme-blocksy .mhm-rates th, .wp-theme-blocksy .mhm-rates td { padding: .85rem 1.1rem; text-align: left; border-bottom: 1px solid var(--mhm-line); }
.wp-theme-blocksy .mhm-rates thead th { background: var(--mhm-teal); color: #fff; font-family: var(--mhm-mono); font-weight: 600; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.wp-theme-blocksy .mhm-rates tbody th { font-family: var(--mhm-head); font-weight: 700; color: var(--mhm-ink); }
.wp-theme-blocksy .mhm-rates td { font-family: var(--mhm-mono); color: var(--mhm-ink); }
.wp-theme-blocksy .mhm-rates tr:last-child th, .wp-theme-blocksy .mhm-rates tr:last-child td { border-bottom: 0; }
.wp-theme-blocksy .mhm-rates tbody tr:nth-child(even) { background: var(--mhm-paper); }

/* --- Cross-link band (reuse .mhm-duskbar; drop the scallop) --- */
.wp-theme-blocksy .mhm-duskbar { -webkit-mask: none; mask: none; background: var(--mhm-night); background-image: radial-gradient(120% 90% at 85% -20%, rgba(194,145,47,.16), transparent 55%); }
.wp-theme-blocksy .mhm-duskbar .mhm-script { color: var(--mhm-gold); }

/* --- Gallery: clean chart frames (reuse .mhm-polaroids; drop tape/rotation) --- */
.wp-theme-blocksy .mhm-polaroid { transform: none !important; padding: .5rem .5rem 2.1rem; border: 1px solid var(--mhm-line); }
.wp-theme-blocksy .mhm-polaroid:hover { transform: translateY(-5px) !important; }
.wp-theme-blocksy .mhm-polaroid figcaption { font-family: var(--mhm-mono); font-style: normal; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mhm-ink-soft); }

/* --- Dockwa embedded reservation widget --- */
/* The white-label iframe (#dockwa-embed) auto-resizes its OWN height via postMessage, so we
   only own the wrapper. We seat it in a branded "Refined Nautical Chart" panel, left-aligned
   under the page heading, so it reads as a designed booking module — we can't touch anything
   INSIDE the cross-origin Dockwa frame (its button colour / fonts / "powered by Dockwa" footer).
   Width: the Dockwa form reflows to a much taller single-column layout below ~460px, so the
   520px panel (≈485px inner) keeps it in the compact multi-column layout; left unconstrained
   (1120px) it ran ~150px too short and showed an inner scrollbar. The wrapper is a direct child
   of a constrained wp:group whose WP layout rule sets max-width:content-size (beaten here just by
   scoping under .mhm-band — higher specificity, no !important) and margin-inline:auto !important to
   centre it. That auto-centering is flagged !important, so the only way to pin the panel to the
   left edge under the heading is to override with !important too. The "Instant booking" header is a
   pure-CSS ::before (no page-content/DB edit). This class previously carried a stray inline-flex CTA
   rule that shrink-wrapped the iframe; nothing else uses .mhm-dockwa. */
.wp-theme-blocksy .mhm-band .mhm-dockwa {
	display: block;
	width: 100%;
	max-width: 520px;
	margin-inline: 0 !important;
	background: #fff;
	border: 1px solid var(--mhm-line);
	border-top: 3px solid var(--mhm-gold);
	border-radius: var(--mhm-radius);
	box-shadow: 0 18px 40px -24px rgba(10, 30, 45, .45);
	padding: 1.25rem 1.1rem 1.1rem;
}
.wp-theme-blocksy .mhm-band .mhm-dockwa::before {
	content: "Instant booking";
	display: block;
	font-family: var(--mhm-mono);
	text-transform: uppercase;
	letter-spacing: .16em;
	font-size: .66rem;
	font-weight: 600;
	color: var(--mhm-gold);
	padding-bottom: .6rem;
	margin-bottom: .5rem;
	border-bottom: 1px solid var(--mhm-line);
}
.wp-theme-blocksy .mhm-band .mhm-dockwa > iframe {
	display: block;
	width: 100%;
	border: 0;
}
/* Mobile: two-part fix for the internal scrollbar.
   1. Take the form OUT of the branded card — full width, no padding/border/shadow/header — so the
      Dockwa iframe gets the maximum possible width (a wider form is a shorter form).
   2. Floor the iframe height. The real cause is that Dockwa's white-label iframe UNDER-REPORTS its
      own content height once the form is narrow (e.g. at ~298px inner it reported 993px while the
      single-column form was taller), so the iframe scrolled internally. We can't read or set the
      true height from outside the cross-origin frame, but a min-height guarantees the iframe is
      tall enough to show the whole form. It's set generously (narrower phone = taller form), so on
      wider phones there's a little empty band space below the form — the trade for never scrolling.
      Tune these two numbers down if a target device leaves too much space. */
@media (max-width: 600px) {
	.wp-theme-blocksy .mhm-band .mhm-dockwa {
		max-width: none;
		padding: 0;
		background: none;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}
	.wp-theme-blocksy .mhm-band .mhm-dockwa::before {
		display: none;
	}
	.wp-theme-blocksy .mhm-band .mhm-dockwa > iframe {
		min-height: 1040px;
	}
}
/* Narrowest phones (≤340px) — the single-column form is taller still. */
@media (max-width: 340px) {
	.wp-theme-blocksy .mhm-band .mhm-dockwa > iframe {
		min-height: 1160px;
	}
}

/* --- Static top utility bar (this site does not scroll) --- */
.mhm-topbar { background: var(--mhm-ink); color: #fff; border-bottom: 3px solid var(--mhm-gold); }
.mhm-topbar__inner {
	max-width: 1200px; margin: 0 auto; padding: .55rem 1.5rem;
	display: flex; align-items: center; justify-content: center; gap: 1.6rem; flex-wrap: wrap;
	font-family: var(--mhm-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
}
.mhm-topbar__item { display: inline-flex; align-items: center; gap: .45rem; color: rgba(255,255,255,.82); text-decoration: none; white-space: nowrap; }
.mhm-topbar__item svg { width: 13px; height: 13px; }
.mhm-topbar a.mhm-topbar__item:hover { color: #fff; }
.mhm-topbar__phone { color: #fff; }
.mhm-topbar__cta { color: var(--mhm-gold); font-weight: 600; }
.mhm-topbar__cta:hover { color: #fff; }
@media (max-width: 720px) {
	.mhm-topbar__hours, .mhm-topbar__loc { display: none; }
	.mhm-topbar__inner { gap: 1.1rem; }
}

/* --- Full slip-reservation form (sections, radios, agreement, print) --- */
.wp-theme-blocksy .mhm-form--slip { max-width: 880px; }
.wp-theme-blocksy .mhm-fieldset { border: 1px solid var(--mhm-line); border-radius: 12px; padding: 0; margin: 0 0 1.5rem; background: #fff; overflow: hidden; box-shadow: var(--mhm-shadow-sm); }
.wp-theme-blocksy .mhm-fieldset__head {
	display: flex; align-items: center; gap: .6rem;
	background: var(--mhm-paper-2); border-bottom: 1px solid var(--mhm-line);
	padding: .72rem 1.3rem;
	font-family: var(--mhm-mono); font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--mhm-teal);
}
.wp-theme-blocksy .mhm-fieldset__head::before { content: ""; width: 1.2rem; height: 2px; background: var(--mhm-gold); flex: none; }
.wp-theme-blocksy .mhm-fieldset .mhm-form__grid { padding: 1.4rem 1.3rem; }
.wp-theme-blocksy .mhm-fieldset__body { padding: 1.3rem 1.3rem 1.4rem; }
.mhm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0; margin: -1px; }
.wp-theme-blocksy .mhm-field--full { grid-column: 1 / -1; }
.wp-theme-blocksy .mhm-req { color: var(--mhm-gold); }
.wp-theme-blocksy .mhm-muted { color: var(--mhm-ink-soft); font-size: .9rem; line-height: 1.55; }
.wp-theme-blocksy .mhm-radio { margin: .35rem 0; }
.wp-theme-blocksy .mhm-radio label,
.wp-theme-blocksy .mhm-agree label { display: flex; gap: .6rem; align-items: flex-start; line-height: 1.55; }
.wp-theme-blocksy .mhm-radio input,
.wp-theme-blocksy .mhm-agree input { margin-top: .3rem; flex: none; }
.wp-theme-blocksy .mhm-agree { background: var(--mhm-paper-2); border: 1px solid var(--mhm-line); border-radius: 10px; padding: 1rem 1.2rem; font-size: .95rem; line-height: 1.55; }
.wp-theme-blocksy .mhm-form__actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: stretch; margin-top: 1.6rem; }
/* Match the submit + print buttons exactly (same size, same baseline). */
.wp-theme-blocksy .mhm-form__actions .wpforms-submit,
.wp-theme-blocksy .mhm-form__actions .mhm-btn-print {
	margin: 0 !important;
	padding: .9rem 1.7rem !important;
	font-family: var(--mhm-head); font-weight: 800; text-transform: uppercase; letter-spacing: .04em;
	font-size: .9rem; line-height: 1.25;
	border-radius: var(--mhm-radius); border-width: 1.5px; border-style: solid;
}
.wp-theme-blocksy .mhm-form__actions .wpforms-submit { border-color: transparent; }
.wp-theme-blocksy .mhm-form__actions .mhm-btn-print { border-color: var(--mhm-ink); background: #fff; color: var(--mhm-ink); }
.wp-theme-blocksy .mhm-btn-print {
	background: #fff; border: 1.5px solid var(--mhm-ink); color: var(--mhm-ink);
	border-radius: var(--mhm-radius); padding: .85rem 1.6rem;
	font-family: var(--mhm-head); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .88rem;
	cursor: pointer; transition: transform .14s ease, box-shadow .14s ease;
}
.wp-theme-blocksy .mhm-btn-print:hover { transform: translateY(-2px); box-shadow: var(--mhm-shadow); }
.mhm-print-head { display: none; }

/* --- Wiring instructions table --- */
.wp-theme-blocksy .mhm-wire { width: 100%; max-width: 680px; border-collapse: collapse; margin-top: 1.5rem; background: #fff; border: 1px solid var(--mhm-line); border-radius: 10px; overflow: hidden; box-shadow: var(--mhm-shadow-sm); }
.wp-theme-blocksy .mhm-wire th, .wp-theme-blocksy .mhm-wire td { padding: .85rem 1.1rem; text-align: left; border-bottom: 1px solid var(--mhm-line); vertical-align: top; }
.wp-theme-blocksy .mhm-wire th { width: 40%; font-family: var(--mhm-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mhm-ink-soft); font-weight: 600; }
.wp-theme-blocksy .mhm-wire td { font-family: var(--mhm-mono); color: var(--mhm-ink); font-size: .95rem; }
.wp-theme-blocksy .mhm-wire tr:last-child th, .wp-theme-blocksy .mhm-wire tr:last-child td { border-bottom: 0; }

/* Print-only paper-form blocks (hand-fill CC + signature) — hidden on screen. */
.mhm-print-only { display: none; }
.mhm-line { display: inline-block; border-bottom: 1px solid #000; min-width: 150px; height: 1.05em; vertical-align: -.2em; }
.mhm-line--lg { min-width: 280px; }
.mhm-line--sm { min-width: 80px; }

/* --- Print: just the slip form, plain text on fill-in lines (no boxes) --- */
@page { size: letter portrait; margin: 14mm; }
@media print {
	.mhm-topbar, .ct-header, .ct-footer, .mhm-mobile-cta, #wpadminbar,
	.mhm-form-notice, .mhm-form__actions, .mhm-btn-print, .wpforms-submit,
	.mhm-docs, .wp-block-buttons, .mhm-screen-only, .mhm-muted, .mhm-noprint { display: none !important; }
	.mhm-print-only { display: block !important; }
	body.wp-theme-blocksy::after { display: none !important; }
	html, body, .wp-theme-blocksy { font-size: 10.5px !important; background: #fff !important; color: #000 !important; margin: 0 !important; padding: 0 !important; height: auto !important; min-height: 0 !important; }
	/* zero every Blocksy wrapper so nothing bleeds onto a blank 2nd page */
	.wp-theme-blocksy .site, .wp-theme-blocksy #main, .wp-theme-blocksy #content,
	.wp-theme-blocksy .ct-container, .wp-theme-blocksy .entry-content,
	.wp-theme-blocksy main, .wp-theme-blocksy article, .wp-theme-blocksy .site-main {
		margin: 0 !important; padding: 0 !important; min-height: 0 !important; height: auto !important; box-shadow: none !important;
	}
	.wp-theme-blocksy .mhm-band { padding: 0 !important; margin: 0 !important; background: #fff !important; }

	/* The reservations form band prints ONLY the form (no page heading/intro). */
	.wp-theme-blocksy .mhm-printform > * { display: none !important; }
	.wp-theme-blocksy .mhm-printform > .mhm-form { display: block !important; max-width: none !important; margin: 0 !important; }
	.wp-theme-blocksy .mhm-printform .mhm-terms { margin-bottom: 0 !important; }

	.mhm-print-head { display: block !important; text-align: center; margin: 0 0 .7rem; padding-bottom: .4rem; border-bottom: 2px solid #000; font-family: Arial, sans-serif; line-height: 1.4; }

	/* No outlines — sections become plain labels, fields become fill-in lines. */
	.wp-theme-blocksy .mhm-fieldset { border: 0 !important; box-shadow: none !important; border-radius: 0 !important; margin: 0 0 .35rem !important; padding: 0 !important; break-inside: avoid; }
	.wp-theme-blocksy .mhm-fieldset__head { background: none !important; border: 0 !important; color: #000 !important; padding: .4rem 0 .1rem !important; font-family: Arial, sans-serif; font-weight: 700; font-size: 10px !important; letter-spacing: .08em; }
	.wp-theme-blocksy .mhm-fieldset__head::before { display: none !important; }
	.wp-theme-blocksy .mhm-fieldset .mhm-form__grid { padding: 0 !important; gap: .45rem 1.2rem !important; }
	.wp-theme-blocksy .mhm-fieldset__body { padding: 0 !important; }
	.wp-theme-blocksy .mhm-field { gap: 0 !important; }
	.wp-theme-blocksy .wpforms-field-label { font-size: 9px !important; color: #000 !important; margin: 0 !important; }
	.wp-theme-blocksy .wpforms-form input:not([type=radio]):not([type=checkbox]),
	.wp-theme-blocksy .wpforms-form select,
	.wp-theme-blocksy .wpforms-form textarea {
		border: 0 !important; border-bottom: 1px solid #000 !important; border-radius: 0 !important;
		box-shadow: none !important; background: none !important; padding: .05rem .1rem !important;
		min-height: 0 !important; height: auto !important; font-size: 11px !important; -webkit-appearance: none !important; appearance: none !important;
	}
	/* keep radios/checkboxes as real controls so their checked state prints */
	.wp-theme-blocksy .wpforms-form input[type=radio],
	.wp-theme-blocksy .wpforms-form input[type=checkbox] {
		-webkit-appearance: auto !important; appearance: auto !important;
		width: 12px !important; height: 12px !important; min-height: 0 !important; margin: 0 .35rem 0 0 !important;
		border: 0 !important; opacity: 1 !important; vertical-align: -1px;
		-webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
	}
	.wp-theme-blocksy .wpforms-form select { background-image: none !important; padding-right: .1rem !important; }
	.wp-theme-blocksy .wpforms-form textarea { height: 1.6em !important; }
	.wp-theme-blocksy .mhm-radio { margin: .12rem 0 !important; }
	.mhm-cc__note { font-size: 9px; font-style: italic; color: #333; margin: .1rem 0 .45rem !important; }
	.mhm-cc__row, .mhm-sign__row { margin: .6rem 0 !important; font-size: 11px; }
	.mhm-cert { font-size: 9px; line-height: 1.35; margin: .45rem 0 !important; }
	.mhm-cert--note { font-weight: 700; }
	.mhm-terms { font-size: 8px; line-height: 1.3; margin-top: .45rem; border-top: 1px solid #999; padding-top: .25rem; }
	.mhm-line { border-bottom: 1px solid #000; }
	a[href]::after { content: ""; }
}

