/*
Theme Name:        The Great Outdoors Subs
Theme URI:         https://greatoutdoorsubs.com
Author:            CKK
Author URI:        https://ckk.dev
Description:       Full-site-editing block theme for The Great Outdoors Subs — a DFW subs, salads & ice cream shop. Built entirely on WordPress core blocks with a unified design-token system.
Version:           0.1.0
Requires at least: 7.0
Tested up to:      7.0
Requires PHP:      8.1
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       ckk-greatoutdoorsubs
Tags:              full-site-editing, block-patterns, block-styles, block-templates, custom-colors, custom-logo, editor-style, featured-images, rtl-language-support, translation-ready, wide-blocks
*/

/* Prevent full-bleed sections / embedded maps from causing horizontal scroll on mobile. */
/* Use `clip`, not `hidden`: `hidden` turns html/body into a scroll container and breaks
   `position: sticky` (the menu category bar); `clip` stops horizontal scroll without that. */
html,
body {
	overflow-x: clip;
	max-width: 100%;
}

/* WordPress derives a top-level block gap from theme.json blockGap and applies it as
   :where(.wp-site-blocks) > * { margin-block-start: var(--wp--preset--spacing--40) },
   which pushes <main> (and the footer) down with a gap. Zero it so full-bleed heroes sit
   flush under the header. :where() is 0-specificity, so this class selector wins cleanly. */
.wp-site-blocks > * {
	margin-block-start: 0;
}

/* Header navigation — gold hover, matches the brand. */
header .wp-block-navigation .wp-block-navigation-item__content:hover,
header .wp-block-navigation .wp-block-navigation-item__content:focus,
header .wp-block-navigation .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent);
}

/* Sticky header — hide on scroll down, reveal on scroll up.
   The template-part wrapper is collapsed so .ckk-header sticks to the page root,
   not just its own (header-height) wrapper. */
header.wp-block-template-part { display: contents; }
.ckk-header {
	position: sticky;
	top: 0;
	z-index: 100;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.ckk-header.is-stuck { box-shadow: 0 2px 12px rgba( 0, 0, 0, 0.08 ); }
.ckk-header.is-hidden { transform: translateY( -100% ); }

/* A transform on the header would trap the mobile nav's position:fixed overlay
   inside the header box (cut off). Clear it whenever the overlay is open, and
   never hide the header in that state. */
.has-modal-open .ckk-header,
.ckk-header:has( .wp-block-navigation__responsive-container.is-menu-open ) {
	transform: none !important;
}

/* Collapse the nav to the hamburger below 875px (WordPress' overlay default is 600px).
   Below 875: hide the inline menu, show the hamburger. At/above 875: show inline, hide hamburger. */
@media ( max-width: 874.98px ) {
	.ckk-header .wp-block-navigation__responsive-container:not( .is-menu-open ) {
		display: none !important;
	}
	.ckk-header .wp-block-navigation__responsive-container-open {
		display: flex !important;
	}
}
@media ( min-width: 875px ) {
	.ckk-header .wp-block-navigation__responsive-container-open {
		display: none !important;
	}
}

/* Mobile nav overlay — centered (override the nav's justify-right), larger, cleaner.
   The X stays where core puts it (top-right). */
.ckk-header .wp-block-navigation__responsive-container.is-menu-open {
	align-items: center !important;
	justify-content: center !important;
}
.ckk-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	width: 100% !important;
	justify-content: center !important;
	align-items: center !important;
}
.ckk-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.ckk-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container.items-justified-right {
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 1.5rem;
	width: 100% !important;
}
.ckk-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100% !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
}
.ckk-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.55rem;
	letter-spacing: 0.04em;
}
/* Keep the close (X) pinned to the top-right corner, out of the centered flow. */
.ckk-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: fixed;
	top: 1.25rem;
	right: 1.25rem;
	z-index: 2;
}

/* Homepage section blocks sit flush — remove the default flow block-gap margin. */
.is-layout-flow > [class*="wp-block-ckk-greatoutdoorsubs-"] {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Footer — 4-column white footer: brand / locations / explore / contact. */
.ckk-footer a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ckk-footer a:hover { color: var(--wp--preset--color--accent); }

.ckk-footer__heading,
.ckk-footer .ckk-location-links__title {
	font-family: var(--wp--preset--font-family--josefin), system-ui, sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 700;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
	margin: 0 0 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--wp--preset--color--accent);
	display: inline-block;
}

.ckk-footer__tagline {
	color: var(--wp--preset--color--accent);
	font-size: 1.6rem;
	line-height: 1;
	margin: 0.5rem 0 1rem;
}

.ckk-footer__links { list-style: none; margin: 0; padding: 0; }
.ckk-footer__links li { margin-bottom: 0.5rem; }

/* Locations list inside the footer: single column, footer link colors. */
.ckk-footer .ckk-location-links__list { columns: 1; }
.ckk-footer .ckk-location-links__list a { color: var(--wp--preset--color--contrast); }
.ckk-footer .ckk-location-links__list a:hover { color: var(--wp--preset--color--accent); }

.ckk-footer__bar p { margin: 0; }

/* Consistent footer sizing — all column text/links at the header nav size (0.875rem). */
.ckk-footer .wp-block-column { font-size: 0.875rem; line-height: 1.6; }
.ckk-footer .wp-block-column p,
.ckk-footer .wp-block-column li,
.ckk-footer__links a,
.ckk-footer .ckk-location-links__list a,
.ckk-footer .wp-block-column a {
	font-size: 0.875rem;
	letter-spacing: 0;
}
.ckk-footer__links li,
.ckk-footer .ckk-location-links__list li { margin-bottom: 0.5rem; }
.ckk-footer .wp-block-column p { margin: 0 0 0.6rem; }

.ckk-footer__social.wp-block-social-links { gap: 10px; }
.ckk-footer__social.wp-block-social-links .wp-social-link {
	background-color: #1a1d20 !important;
	border-radius: 50% !important;
	width: 40px;
	height: 40px;
	margin: 0 !important;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s ease;
}
.ckk-footer__social.wp-block-social-links .wp-social-link .wp-block-social-link-anchor,
.ckk-footer__social.wp-block-social-links .wp-social-link a {
	width: 100%;
	height: 100%;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.ckk-footer__social.wp-block-social-links .wp-social-link svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}
.ckk-footer__social.wp-block-social-links .wp-social-link:hover { background-color: var(--wp--preset--color--accent) !important; }
.ckk-footer__social.wp-block-social-links .wp-social-link:hover svg { fill: #1a1d20; }

/* Single location — preserve the line breaks stored in the ACF store_hours field. */
.ckk-loc-hours { white-space: pre-line; line-height: 1.4; }

/* Locations archive — store cards. */
.ckk-loc-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--surface-alt);
	border-radius: 8px;
	padding: 1.5rem;
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ckk-loc-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); }
.ckk-loc-card .wp-block-post-title { margin-top: 0; }
.ckk-loc-card .wp-block-post-title a { text-decoration: none; }
.ckk-loc-card .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.ckk-loc-card .wp-block-buttons { margin-top: auto; }


div#sbi_images {
    padding: 0 !important;
}

div#sbi_mod_error {
    margin: 0;
}