/* ========================================================================
   Regency — responsive overrides
   Loaded site-wide AFTER styles-logo.css so these rules win on source order.
   Fixes: mobile nav (adds a working hamburger menu), footer collapse,
   and a clean stacked hero on small screens.
   ======================================================================== */

/* Guard against accidental horizontal scroll from full-bleed/rotated bits. */
html, body { overflow-x: hidden; }

/* Hamburger button is desktop-hidden by default. */
.nav-toggle { display: none; }

/* ---------------- Tablet ( <= 1180px ) ---------------- */
@media (max-width: 1180px) {
	.nav-phone { display: none; }
}

/* ---------------- Mobile nav ( <= 900px ) ---------------- */
@media (max-width: 900px) {
	.nav-inner {
		grid-template-columns: 1fr auto;
		align-items: center;
		gap: 16px;
	}

	/* Hamburger */
	.nav-toggle {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		padding: 11px 9px;
		background: transparent;
		border: none;
		cursor: pointer;
	}
	.nav-toggle span {
		display: block;
		width: 100%;
		height: 2px;
		background: #fff;
		transition: transform .25s ease, opacity .2s ease, background .3s ease;
	}
	/* Keep white bars legible over bright areas of the hero photo. */
	.nav.transparent .nav-toggle span { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55)); }
	/* Dark bars when the bar is solid or the menu is open (light background). */
	.nav.solid .nav-toggle span,
	.nav.open .nav-toggle span { background: var(--ink-deep); filter: none; }

	/* Animate bars into an X when open. */
	.nav.open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.nav.open .nav-toggle span:nth-child(2) { opacity: 0; }
	.nav.open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

	/* Collapse the desktop link row and CTA cluster into a dropdown panel. */
	.nav-links,
	.nav-right {
		display: none;
		grid-column: 1 / -1;
	}
	.nav.open .nav-links {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		margin-top: 8px;
	}
	.nav.open .nav-links a {
		color: var(--ink-deep);
		font-size: 14px;
		letter-spacing: 0.14em;
		padding: 14px 2px;
		width: 100%;
		border-bottom: 1px solid var(--line);
	}
	.nav.open .nav-links a:hover,
	.nav.open .nav-links a.active { border-bottom-color: var(--lime-500); }

	.nav.open .nav-right {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 14px;
		margin-top: 16px;
	}
	.nav.open .nav-phone {
		display: block;
		color: var(--ink-deep);
		font-size: 14px;
	}
	.nav.open .nav-cta {
		text-align: center;
		padding: 14px 22px;
		font-size: 11px;
	}

	/* Menu open → force a solid, readable background regardless of scroll state. */
	.nav.open {
		background: var(--off-white);
		border-bottom-color: var(--line);
	}
	.nav.open .nav-logo img { filter: none; }

	/* Prevent body scroll bleed feel: allow the open nav to scroll if very tall. */
	.nav.open .nav-inner { max-height: calc(100vh - 20px); overflow-y: auto; }
}

/* ---------------- Footer collapse ---------------- */
@media (max-width: 900px) {
	.footer { padding: 64px 0 40px; margin-top: 80px; }
	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 40px 32px;
	}
	.footer-brand { grid-column: 1 / -1; }
	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		text-align: left;
	}
}
@media (max-width: 560px) {
	.footer-grid { grid-template-columns: 1fr; }
}

/* NOTE: home-hero mobile rules live at the end of home.css, because home.css
   loads after this file and would otherwise win on source order. */




