/* NCAN Photography — small enhancements on top of theme.json */

html { scroll-behavior: smooth; }
img { display: block; }

/* Eyebrow labels ("ROOTED IN THE SOUTH · MADE TO REMEMBER") */
.is-style-ncan-eyebrow {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--wp--preset--color--taupe);
	margin-bottom: 0.25rem !important;
}

/* Sticky header.
   NOTE: no backdrop-filter/transform/filter on the header itself — those trap the
   full-screen mobile menu inside the header box. The blur lives on a pseudo-element. */
/* The sticky element must be the template-part wrapper (direct child of .wp-site-blocks),
   otherwise it can only "stick" inside its own box. */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > .wp-block-template-part:has(> .ncan-header) {
	position: sticky;
	top: 0;
	z-index: 50;
}
.ncan-header {
	position: relative;
	background: transparent;
}
.ncan-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: color-mix(in srgb, var(--wp--preset--color--cream) 94%, transparent);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	pointer-events: none;
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }

.ncan-logo a { color: inherit; text-decoration: none; }
.ncan-logo__mark {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.9rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1;
	margin: 0 !important;
}
.ncan-logo__sub {
	font-size: 0.62rem;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--wp--preset--color--taupe);
	margin: 0.3rem 0 0 !important;
	line-height: 1;
}

/* Client login button in the header */
.ncan-login .wp-block-button__link {
	padding: 0.6rem 1.1rem !important;
	font-size: 0.68rem !important;
	background: transparent !important;
	color: var(--wp--preset--color--espresso) !important;
	border: 1px solid var(--wp--preset--color--taupe) !important;
}
.ncan-login .wp-block-button__link:hover {
	background: var(--wp--preset--color--espresso) !important;
	color: var(--wp--preset--color--cream) !important;
}

/* Mobile menu overlay */
.wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	inset: 0 !important;
	z-index: 100000 !important;
	background: var(--wp--preset--color--cream) !important;
	color: var(--wp--preset--color--ink) !important;
	padding: 1.25rem 1.5rem 2rem !important;
	overflow-y: auto;
}
.admin-bar .wp-block-navigation__responsive-container.is-menu-open { top: 46px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem !important;
	align-items: center !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	flex-direction: column !important;
	align-items: center !important;
	gap: 1.1rem !important;
	width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.45rem !important;
	letter-spacing: 0.04em;
	text-transform: none;
	line-height: 1.3;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.ncan-hide-desktop {
	margin-top: 0.75rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.78rem !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	border: 1px solid var(--wp--preset--color--taupe);
	padding: 0.7rem 1.3rem;
}
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.wp-block-navigation__responsive-container-close { top: 1.1rem !important; right: 1.25rem !important; }

/* Hero */
.ncan-hero { border-radius: 18px; overflow: hidden; }
.ncan-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(47,43,39,0) 45%, rgba(47,43,39,.55) 100%) !important; opacity: 1 !important; }

/* Collection cards */
.ncan-card { position: relative; overflow: hidden; border-radius: 14px; }
.ncan-card .wp-block-cover { border-radius: 14px; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.ncan-card:hover .wp-block-cover { transform: scale(1.025); }
.ncan-card .wp-block-cover__background { background: linear-gradient(180deg, rgba(47,43,39,0) 50%, rgba(47,43,39,.6) 100%) !important; opacity: 1 !important; }
.ncan-card h3 a { color: inherit; }
.ncan-card h3 a::after { content: ""; position: absolute; inset: 0; } /* whole card clickable */

/* Hover zoom image style */
.is-style-ncan-zoom { overflow: hidden; border-radius: 14px; }
.is-style-ncan-zoom img { transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.is-style-ncan-zoom:hover img { transform: scale(1.04); }

/* Masonry-style gallery for the Portfolio page */
.ncan-masonry.wp-block-gallery { display: block !important; columns: 3 280px; column-gap: 1rem; }
.ncan-masonry.wp-block-gallery > .wp-block-image { width: 100% !important; margin: 0 0 1rem !important; break-inside: avoid; }
.ncan-masonry.wp-block-gallery img { border-radius: 12px; height: auto !important; object-fit: cover; }

/* Testimonial */
.ncan-quote { border: 0 !important; padding: 0 !important; }
.ncan-quote p { font-family: var(--wp--preset--font-family--serif); font-style: italic; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.35; }
.ncan-quote cite { font-style: normal; font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; color: var(--wp--preset--color--taupe); }

/* Service tiles */
.ncan-service { background: var(--wp--preset--color--cream); border-radius: 14px; height: 100%; }

/* Footer */
.ncan-footer a { color: var(--wp--preset--color--linen); }
.ncan-footer a:hover { color: var(--wp--preset--color--white); }

/* Tablet / phone tweaks */
@media (max-width: 781px) {
	.wp-block-columns.ncan-stack-tight { gap: 1rem !important; }
	.ncan-hero { border-radius: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; scroll-behavior: auto !important; }
}
/* "Client Galleries" link only appears inside the mobile menu */
@media (min-width: 600px) { .ncan-hide-desktop { display: none !important; } }
.wp-block-navigation__responsive-container.is-menu-open .ncan-hide-desktop { display: flex !important; }
@media (max-width: 599px) { .ncan-hide-mobile { display: none !important; } }

/* Safety net: alignment helpers (normally from core's common styles) */
.has-text-align-center { text-align: center; }
.has-text-align-left { text-align: left; }
.has-text-align-right { text-align: right; }
.is-style-logos-only .wp-block-social-link-label { clip: rect(0 0 0 0); position: absolute; width: 1px; height: 1px; overflow: hidden; }

/* Logo */
.ncan-header-logo { margin: 0 !important; }
.ncan-header-logo img { height: 58px; width: auto; border-radius: 0 !important; }
.ncan-footer-logo { margin: 0 0 1rem !important; }
.ncan-footer-logo img { height: 64px; width: auto; border-radius: 0 !important; }
@media (max-width: 781px) { .ncan-header-logo img { height: 48px; } }
@media (max-width: 400px) { .ncan-header-logo img { height: 44px; } }
.wp-site-blocks > footer, .wp-site-blocks > .wp-block-template-part:last-child { margin-block-start: 0 !important; }
