/* Pisano’s NEW YORK PIZZA, Stonecrest (HRG) — app.css
 * Look matched to the live pisanospizzeria.com (client: "exact"). Values
 * are the computed ones from that site, captured 2026-09-24.
 * Colour names follow GeneratePress's global colour slugs (see functions.php).
 */

@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("fonts/montserrat-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("fonts/montserrat-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--contrast: #000000;
	--contrast-2: #212121;
	--contrast-3: #353638;
	--base: #F4F2EC;
	--base-2: #FFFFFF;
	--accent: #6D601A;
	--sand: #D1C99A;
	--menu-ink: #060807;
	--font: "Montserrat", -apple-system, "Segoe UI", Arial, sans-serif;
	--wrap: 1140px;
	--gutter: 16px;
	--header-h: 180px;
}

/* ---------- Base (our templates only; GP pages keep GP's CSS) ---------- */
.nyp-tpl {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--contrast);
	background: var(--base-2);
	-webkit-font-smoothing: antialiased;
}
.nyp-tpl *,
.nyp-tpl *::before,
.nyp-tpl *::after { box-sizing: border-box; }
.nyp-tpl img { max-width: 100%; height: auto; display: block; }
.nyp-tpl a { color: inherit; }
/* :where() keeps the reset at one class of weight, so component margins below win. */
.nyp-tpl :where(h1, h2, h3, p) { margin: 0; }
.nyp-tpl .site,
.nyp-tpl .site-content,
.nyp-tpl .content-area,
.nyp-tpl .site-main,
.nyp-tpl .inside-article,
.nyp-tpl .grid-container { max-width: none; padding: 0; margin: 0; display: block; background: none; }
/* GP ships a skip link and wrappers; our header and footer sit outside them. */
.nyp-masthead,
.nyp-footer,
.nyp-bottombar { font-family: var(--font); }
.nyp-brand { text-transform: none !important; }
/* GeneratePress's skip link: its CSS is not loaded on our templates. */
.nyp-tpl .skip-link { position: absolute; left: 8px; top: -100px; z-index: 10000; padding: 10px 16px; background: #fff; color: #000; }
.nyp-tpl .skip-link:focus { top: 8px; }

.nyp-wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
@media (min-width: 1180px) { .nyp-wrap { padding-inline: 0; } }
.nyp-center { text-align: center; }
.nyp-narrow { max-width: 900px; }

/* ---------- Header ---------- */
.nyp-masthead { position: sticky; top: 0; z-index: 999; }
.admin-bar .nyp-masthead { top: 32px; }

.nyp-topbar {
	display: flex; align-items: center; justify-content: center; gap: 25px;
	min-height: 40px; padding: 5.5px 20px;
	background: var(--contrast-3); color: #fff; font-size: 16px; line-height: 1.6;
}
.nyp-topbar__btn {
	display: inline-block; padding: 3px 20px; background: #fff; color: #000 !important;
	font-size: 12px; text-decoration: none; line-height: 22px;
}
.nyp-topbar__btn:hover { background: var(--sand); }
.nyp-topbar__mobile { display: none; color: #fff !important; text-decoration: none; text-align: center; font-size: 14px; line-height: 1.4; }

.nyp-header {
	display: flex; align-items: center;
	height: var(--header-h); padding: 0 25px 0 16px;
	background: #fff;
}
.nyp-header__logo { flex: 0 0 auto; }
/* New York Pizza logo1.jpg is 480×410: shown 140px tall at its own shape. */
.nyp-header__logo img { width: auto; height: 140px; }

.nyp-nav { flex: 1 1 auto; min-width: 0; display: flex; justify-content: center; padding: 0 20px; }
.nyp-nav__list {
	display: flex; flex-wrap: wrap; justify-content: center; row-gap: 0;
	max-width: 75.3vw; margin: 0; padding: 0; list-style: none;
}
.nyp-nav__list li { position: relative; margin: 0; }
.nyp-nav__list a {
	position: relative; display: block; padding: 0 clamp(8px, calc(9px + (100vw - 1440px) * .00625), 12px);
	font-size: clamp(10px, calc(11px + (100vw - 1440px) * .00625), 14px); font-weight: 700; line-height: 20px; text-transform: uppercase;
	color: #000; text-decoration: none;
	border-right: 1px solid #000;
}
.nyp-nav__list a:hover,
.nyp-nav__list a[aria-current="page"] { color: var(--accent); }
.nyp-nav__list a[aria-current="page"]::before {
	content: ""; position: absolute; left: 15px; right: 15px; bottom: -7px;
	height: 2px; background: var(--accent);
}
.nyp-nav__caret { width: 8px; height: 8px; margin-left: 6px; vertical-align: 1px; fill: currentColor; }
.nyp-nav__list li.has-sub > a { border-right: 0; }
/* Locations dropdown: black panel, white capitalised links (Pisano's sub-menu). */
.nyp-nav__sub {
	position: absolute; left: 0; top: 100%; z-index: 10; width: 200px; margin: 0; padding: 20px 0; list-style: none;
	background: #090909; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s, transform .2s, visibility .2s;
}
.nyp-nav__sub .nyp-nav__sub { left: 100%; top: -20px; }
.nyp-nav__list li:hover > .nyp-nav__sub,
.nyp-nav__list li:focus-within > .nyp-nav__sub { opacity: 1; visibility: visible; transform: none; }
.nyp-nav__sub a { padding: 6px 30px; border: 0; font-size: 14px; font-weight: 400; text-transform: capitalize; color: #fff; white-space: nowrap; }
.nyp-nav__sub a:hover { color: var(--sand); }

.nyp-header__side { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; margin-left: auto; }
.nyp-social { display: flex; align-items: center; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nyp-social a { display: flex; color: inherit; }
.nyp-social .nyp-ico { width: auto; height: 20px; fill: currentColor; }
.nyp-social--header { gap: 14.5px; } /* Pisano's: 10px margin + a space between 20px glyphs */
.nyp-social--header a { color: #000; }
.nyp-social--header a:hover { color: var(--accent); }

.nyp-nav-toggle {
	display: none; width: 44px; height: 44px; padding: 8px; border: 0; background: none;
	color: #000; cursor: pointer;
}
.nyp-nav-toggle svg { width: 28px; height: 28px; fill: currentColor; }
.nyp-nav-toggle__close { display: none; }
.nyp-nav-toggle[aria-expanded="true"] .nyp-nav-toggle__open { display: none; }
.nyp-nav-toggle[aria-expanded="true"] .nyp-nav-toggle__close { display: block; }

.nyp-ico { width: 1em; height: 1em; fill: currentColor; }

@media (max-width: 1100px) {
	:root { --header-h: 120px; }
	.nyp-header__logo img { width: auto; height: 100px; }
	.nyp-header { justify-content: space-between; }
	.nyp-header__side { gap: 6px; }
	.nyp-social--header { gap: 20px; margin-right: 6px; }
	.nyp-social--header .nyp-ico { height: 23px; }
	.nyp-nav-toggle { display: block; }
	.nyp-nav {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		padding: 10px 0 20px; background: #fff; box-shadow: 0 10px 20px rgba(0,0,0,.12);
		max-height: calc(100vh - 160px); overflow-y: auto;
	}
	.nyp-nav.is-open { display: block; }
	.nyp-nav__list { flex-direction: column; max-width: none; }
	.nyp-nav__list a { border-right: 0; padding: 12px 24px; font-size: 13px; text-align: center; }
	.nyp-nav__list a[aria-current="page"]::before { display: none; }
	.nyp-nav__sub { position: static; width: auto; padding: 0; background: none; opacity: 1; visibility: visible; transform: none; }
	.nyp-nav__sub a { color: #000; font-size: 13px; padding: 8px 24px; text-align: center; }
	.nyp-nav__caret { display: none; }
	.nyp-masthead { position: sticky; }
	.nyp-header { position: relative; }
}
@media (max-width: 767px) {
	:root { --header-h: 116px; }
	.nyp-topbar { padding: 8px 16px; }
	.nyp-topbar__text, .nyp-topbar__btn { display: none; }
	.nyp-topbar__mobile { display: block; }
	.nyp-header { padding: 0 8px 0 10px; }
}
@media (max-width: 400px) {
	.nyp-header__logo img { width: auto; height: 86px; }
	.nyp-social--header { gap: 10px; }
	.nyp-social--header .nyp-ico { height: 20px; }
}

/* ---------- Buttons ---------- */
.nyp-btn {
	position: relative; display: inline-flex; align-items: center;
	padding: 7px 55px 7px 40px;
	font-size: 15px; font-weight: 400; line-height: 21.43px; text-transform: uppercase;
	color: #000 !important; background: var(--sand); border: 2px solid var(--sand);
	text-decoration: none; transition: background-color .2s, color .2s;
}
.nyp-btn__ico { position: absolute; right: 20px; top: 50%; width: 8px; height: 12px; transform: translateY(-50%); fill: currentColor; }
.nyp-btn:hover { background: transparent; color: var(--sand) !important; }
.nyp-btn--dark { background: var(--accent); border-color: var(--accent); color: #fff !important; }
.nyp-btn--dark:hover { background: transparent; color: var(--accent) !important; }

/* ---------- Home: video hero ---------- */
.nyp-hero { position: relative; height: clamp(240px, 62.5vw, 900px); overflow: hidden; background: #000; }
/* Full screen: header + hero fill exactly one screen, no scrolling (Ron). --nyp-mast is the
   header height and --nyp-bar the mobile bottom bar, both measured by app.js. */
.nyp-hero { height: calc(100vh - var(--nyp-mast, 220px) - var(--nyp-bar, 0px)); height: calc(100svh - var(--nyp-mast, 220px) - var(--nyp-bar, 0px)); min-height: 240px; }
.nyp-hero .nyp-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; } /* keeps the sign and roofline in view */
/* Welcome without its photo panel (Ron): one column, text centred. */
.nyp-welcome.nyp-welcome--solo { grid-template-columns: 1fr; }
.nyp-welcome.nyp-welcome--solo .nyp-welcome__body { align-items: center; text-align: center; padding: 120px 30px 150px; }
.nyp-welcome.nyp-welcome--solo .nyp-welcome__text { max-width: 780px; }

.nyp-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Vertical reel (Ron): whole video centred at full height over a blurred, darkened copy that
   fills the width. On portrait screens the shapes match, so the video simply fills the hero. */
.nyp-hero--reel .nyp-hero__video { z-index: 1; object-fit: contain; }
.nyp-hero--reel .nyp-hero__back {
	position: absolute; left: -5%; top: -5%; width: 110%; height: 110%; object-fit: cover;
	filter: blur(28px) brightness(.45); pointer-events: none;
}
@media (orientation: portrait) {
	.nyp-hero--reel .nyp-hero__video { object-fit: cover; }
	.nyp-hero--reel .nyp-hero__back { display: none; }
}
.nyp-hero__btn {
	position: absolute; bottom: 24px; z-index: 2; display: flex; padding: 8px;
	background: none; border: 0; color: #fff; cursor: pointer;
}
.nyp-hero__btn .nyp-ico { width: 36px; height: 36px; filter: drop-shadow(0 1px 3px rgba(0,0,0,.5)); }
.nyp-hero__btn--pause { left: 32px; }
.nyp-hero__btn--mute { right: 32px; }
.nyp-ico--play, .nyp-ico--sound { display: none; }
.nyp-hero__btn[aria-pressed="true"] .nyp-ico--pause { display: none; }
.nyp-hero__btn[aria-pressed="true"] .nyp-ico--play { display: block; }
.nyp-hero__btn--mute[aria-pressed="false"] .nyp-ico--muted { display: none; }
.nyp-hero__btn--mute[aria-pressed="false"] .nyp-ico--sound { display: block; }
.nyp-hero__btn--mute[aria-pressed="true"] .nyp-ico--muted { display: block; }

.nyp-address {
	display: flex; align-items: center; justify-content: center; gap: 5px;
	min-height: 79px; padding: 20px var(--gutter);
	background: #000; color: #fff;
	font-size: 19.6px; font-weight: 300; line-height: 1.5; text-transform: uppercase; text-align: center;
}
.nyp-address .nyp-ico { flex: 0 0 auto; width: 15px; height: 20px; color: var(--sand); }

/* Torn paper edges */
.nyp-torn { position: absolute; left: 0; right: 0; z-index: 2; line-height: 0; pointer-events: none; overflow: hidden; }
.nyp-torn svg { display: block; width: calc(100% + 1.3px); height: auto; aspect-ratio: 1920 / 70; }
.nyp-torn--top { top: -4px; }
.nyp-torn--bottom { bottom: -1px; transform: rotate(180deg); }

/* ---------- Home: welcome ---------- */
.nyp-welcome { position: relative; display: grid; grid-template-columns: 1fr 2fr; min-height: 580px; }
.nyp-welcome__photo { position: relative; overflow: hidden; background: #efece4 url("img/sections_back.jpg") center / cover no-repeat; }
/* Photo as a card, like the gallery tiles (Ron): inset, white notched corners. */
.nyp-welcome__frame { position: absolute; inset: 70px 20px 80px; overflow: hidden; }
.nyp-welcome__frame::after {
	content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background:
		radial-gradient(circle at 0 0, #fff 10px, transparent 10.5px),
		radial-gradient(circle at 100% 0, #fff 10px, transparent 10.5px),
		radial-gradient(circle at 0 100%, #fff 10px, transparent 10.5px),
		radial-gradient(circle at 100% 100%, #fff 10px, transparent 10.5px);
}
.nyp-welcome__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nyp-welcome__caption {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
	padding: 18px 20px; background: rgba(0,0,0,.7); color: #fff; text-align: center;
	font-size: 15px; font-weight: 500; line-height: 1.64; text-transform: uppercase;
}
.nyp-welcome__body {
	display: flex; flex-direction: column; justify-content: center;
	padding: 137px 0 169px 60px;
	background: #efece4 url("img/sections_back.jpg") center / cover no-repeat;
}
.nyp-welcome__h { margin: 20px 0 15px; font-size: 40px; font-weight: 700; line-height: 1.5; letter-spacing: -1.6px; text-transform: uppercase; }
/* Pisano's cap: 65% of the text column (585px at 1440, 793px at 1920). */
.nyp-welcome__text { max-width: 65%; font-size: 16.8px; font-weight: 300; line-height: 1.7; }
.nyp-welcome__text + .nyp-welcome__text { margin-top: 15px; }

/* ---------- Home: about + catering ---------- */
.nyp-about { position: relative; background: #000 url("img/about_us_back.jpg") center / cover no-repeat; color: #fff; padding: 60px 0 80px; overflow: hidden; }
.nyp-about__row { display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 600px; }
.nyp-about__img img { width: 100%; max-width: 712px; }
.nyp-about__img--right img { margin-left: auto; }
/* No photo beside the copy (Ron removed about_us_left.png): copy centred across the row. */
.nyp-about__row--solo { grid-template-columns: 1fr; min-height: 0; }
.nyp-about__row--solo .nyp-about__copy { max-width: 760px; margin-inline: auto; padding: 60px 20px; }
/* No max-width: Pisano's copy fills its half column, padded 17% / 13% / 15% of the column width. */
.nyp-about__copy { padding: 17% 13% 15%; text-align: center; }
.nyp-about__big { font-size: 46px; font-weight: 700; line-height: 1.3; letter-spacing: -1.6px; text-transform: uppercase; margin-bottom: 12px; }
.nyp-about__sub { margin-bottom: 30px; font-size: 20px; font-weight: 400; line-height: 1; letter-spacing: -.5px; color: var(--sand); }
.nyp-about__copy p:not([class]) { font-size: 16.8px; font-weight: 300; line-height: 1.6; margin-bottom: 15px; }
.nyp-about__copy .nyp-btn { margin-top: 20px; }

/* ---------- Home: events ---------- */
.nyp-events { position: relative; padding: 80px 0 60px; background: #efece4 url("img/sections_back-1.jpg") center / cover no-repeat; }
.nyp-events__h { margin-bottom: 30px; font-size: 40px; font-weight: 700; line-height: 1.1; text-transform: uppercase; text-align: center; }
.nyp-events__h a { text-decoration: none; }

/* Carousel: one flyer at a time */
.nyp-carousel { position: relative; max-width: 1120px; margin: 0 auto; overflow: hidden; }
.nyp-carousel__track { display: flex; align-items: flex-start; transition: transform .5s ease; }
.nyp-carousel__slide { flex: 0 0 100%; display: flex; justify-content: center; }
.nyp-carousel__slide a { display: block; }
.nyp-carousel__slide .nyp-shot img { width: 355px; max-width: 100%; height: auto; }

/* ---------- Home: photo mosaic ---------- */
.nyp-mosaic { position: relative; padding: 20px 20px 90px; background: #fff; }
/* One big photo left, its small tiles in a grid to the right (Pisano's layout). */
.nyp-mosaic__group { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: stretch; margin-bottom: 30px; }
.nyp-mosaic__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.nyp-mosaic__group--wide4 .nyp-mosaic__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* Six-photo gallery (Ron): big photo two-thirds wide, two tiles stacked beside it. */
.nyp-mosaic__group--sq,
.nyp-mosaic__group--wide { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.nyp-mosaic__group--sq .nyp-mosaic__tiles,
.nyp-mosaic__group--wide .nyp-mosaic__tiles { grid-template-columns: minmax(0, 1fr); }
.nyp-mosaic__group--wide img { aspect-ratio: 3 / 2; }
.nyp-mosaic .nyp-shot { position: relative; display: block; overflow: hidden; }
/* Pisano's tiles have 20px white circle notches on their corners. */
.nyp-mosaic .nyp-shot::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		radial-gradient(circle at 0 0, #fff 10px, transparent 10.5px),
		radial-gradient(circle at 100% 0, #fff 10px, transparent 10.5px),
		radial-gradient(circle at 0 100%, #fff 10px, transparent 10.5px),
		radial-gradient(circle at 100% 100%, #fff 10px, transparent 10.5px);
}
/* The big photo is cropped to the height of its tiles. */
.nyp-mosaic__group > .nyp-shot:first-child img { position: absolute; inset: 0; aspect-ratio: auto; }
.nyp-mosaic .nyp-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.nyp-mosaic .nyp-shot:hover img { transform: scale(1.04); }
.nyp-mosaic__group--sq img { aspect-ratio: 1 / 1; }
.nyp-mosaic__group--wide6 img,
.nyp-mosaic__group--wide4 img { aspect-ratio: 3 / 2; }

/* ---------- Home: map ---------- */
.nyp-map iframe { display: block; width: 100%; height: 520px; border: 0; }

/* ---------- Inner pages ---------- */
.nyp-inner { position: relative; min-height: 50vh; padding-bottom: 80px; }
/* Pisano's inner pages: a faded full-screen photo behind everything. */
.nyp-tpl.nyp-page-food-menu::before,
.nyp-tpl.nyp-page-drink-menu::before,
.nyp-tpl.nyp-page-catering::before,
.nyp-tpl.nyp-page-party::before,
.nyp-tpl.nyp-page-gift-cards::before,
.nyp-tpl.nyp-page-delivery::before,
.nyp-tpl.nyp-page-retail::before,
.nyp-tpl.nyp-page-press::before {
	content: ""; position: fixed; inset: 0; z-index: -1;
	background: center / cover no-repeat;
	filter: grayscale(.8) opacity(.2);
}
.nyp-tpl.nyp-page-food-menu::before { background-image: url("img/food_back.jpg"); }
.nyp-tpl.nyp-page-drink-menu::before { background-image: url("img/drinks_back.jpg"); }
.nyp-tpl.nyp-page-catering::before { background-image: url("img/catering_back.jpg"); filter: grayscale(.6) opacity(.3); }
.nyp-tpl.nyp-page-party::before { background-image: url("img/party_back.jpg"); filter: grayscale(.8) opacity(.1); }
.nyp-tpl.nyp-page-gift-cards::before { background-image: url("img/gift_cards_back.jpg"); filter: opacity(.1); }
.nyp-tpl.nyp-page-delivery::before { background-image: url("img/delivery_back.jpg"); filter: none; }
.nyp-tpl.nyp-page-retail::before { background-image: url("img/retail_back.jpg"); filter: grayscale(.8) opacity(.3); }
/* Ron: Pisano's press_back.jpg shows the Pisano's Pizzeria sign; unbranded food photo instead. */
.nyp-tpl.nyp-page-press::before { background-image: url("img/catering_back.jpg"); filter: brightness(.3); }
.nyp-tpl.nyp-page-food-menu,
.nyp-tpl.nyp-page-drink-menu,
.nyp-tpl.nyp-page-catering,
.nyp-tpl.nyp-page-party,
.nyp-tpl.nyp-page-gift-cards,
.nyp-tpl.nyp-page-delivery,
.nyp-tpl.nyp-page-retail,
.nyp-tpl.nyp-page-press { background: transparent; }
/* Dark pages on Pisano's: black body under the faded photo, white text. */
.nyp-tpl.nyp-page-catering,
.nyp-tpl.nyp-page-retail,
.nyp-tpl.nyp-page-press { background: #000; }
.nyp-page-catering .nyp-title,
.nyp-page-catering .nyp-subtitle,
.nyp-page-retail .nyp-inner,
.nyp-page-press .nyp-inner { color: #fff; }
.nyp-page-catering .nyp-title__sub { color: #fff; }
.nyp-page-catering .nyp-title__sub a { color: var(--sand); }
.nyp-tpl.nyp-page-specials { background: linear-gradient(rgba(0,0,0,.7), rgba(0,0,0,.7)), url("img/specials_pg_back.jpg") center / cover fixed #111; }
.nyp-tpl.nyp-page-events { background: linear-gradient(rgba(0,0,0,.7), rgba(0,0,0,.7)), url("img/events_pg_back.jpg") center / cover fixed #111; }
.nyp-dark { color: #fff; }

.nyp-title { max-width: var(--wrap); margin: 60px auto 0; padding: 0 var(--gutter) 30px; text-align: center; }
.nyp-title__h { font-size: 54px; font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.nyp-title__sub { max-width: 1120px; margin: 18px auto 0; font-size: 18.2px; font-weight: 400; line-height: 1.6; color: #212121; }
.nyp-dark .nyp-title__sub { color: #fff; }
/* Title size and colour per page, as on Pisano's. */
.nyp-page-specials .nyp-title__h,
.nyp-page-events .nyp-title__h,
.nyp-page-catering .nyp-title__h,
.nyp-page-delivery .nyp-title__h,
.nyp-page-retail .nyp-title__h,
.nyp-page-press .nyp-title__h { font-size: 63px; color: #fff; }
.nyp-page-careers .nyp-title__h,
.nyp-page-gift-cards .nyp-title__h { font-size: 43px; }
.nyp-page-party .nyp-title__sub { max-width: 480px; font-size: 14px; }
.nyp-title__sub a { color: var(--accent); font-weight: 600; text-decoration: none; }
.nyp-dark .nyp-title__sub a { color: var(--sand); }
.nyp-subtitle { margin: 50px 0 20px; font-size: 40px; font-weight: 700; line-height: 1.1; text-transform: uppercase; text-align: center; }

/* Tabs */
.nyp-tabs__list { display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 30px; }
.nyp-tabs__tab {
	margin: 0 15px 10px; padding: 9px 25px 7px; border: 0; cursor: pointer;
	font-family: var(--font); font-size: 15px; font-weight: 600; line-height: 21px; text-transform: uppercase;
	background: var(--sand); color: #000;
}
.nyp-tabs__tab[aria-selected="true"] { background: var(--accent); color: #fff; }
.nyp-tabs__tab:hover { background: var(--accent); color: #fff; }

/* Menu cards: two columns, like Pisano's masonry grid */
.nyp-menu { column-count: 2; column-gap: 0; }
.nyp-menu__card {
	break-inside: avoid; display: inline-block; width: calc(100% - 40px);
	margin: 10px 20px; padding: 20px 30px;
	background: #fff; box-shadow: 0 0 10px rgba(0,0,0,.2);
	font-size: 15px; line-height: 1.66; color: #000;
}
.nyp-menu__head { text-align: center; margin: 15px 0 10px; }
.nyp-menu__head h2 { font-size: 25px; font-weight: 700; line-height: 1; text-transform: uppercase; color: var(--menu-ink); }
.nyp-menu__label { display: block; margin-top: 6px; font-size: 14px; font-weight: 400; color: var(--accent); }
.nyp-menu__note { text-align: center; font-size: 15px; line-height: 1.66; margin-bottom: 5px; }
.nyp-menu__item { padding: 10px 12px; }
.nyp-menu__item h3 { font-size: 19px; font-weight: 700; line-height: 1.35; text-transform: uppercase; }
.nyp-menu__item p { padding: 5px 20px 0 0; font-size: 15px; line-height: 1.66; }
.nyp-menu__tag {
	display: inline-block; margin-left: 6px; padding: 1px 8px; vertical-align: middle;
	font-size: 11px; font-weight: 600; line-height: 18px; background: var(--accent); color: #fff; text-transform: uppercase;
}
.nyp-menu__items--end { border-top: 1px solid rgba(0,0,0,.1); margin-top: 8px; }
/* New York Pizza menu (from Ron's PDF): same cards, plus prices and size rows. */
.nyp-menu__row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.nyp-menu__price { flex: 0 0 auto; font-size: 17px; font-weight: 700; color: var(--accent); }
.nyp-menu__sizes { margin: 6px 20px 0 0; padding: 0; list-style: none; font-size: 15px; line-height: 1.66; }
.nyp-menu__sizes li { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px dotted rgba(0,0,0,.2); }
.nyp-menu__sizes .nyp-menu__price { font-size: 15px; }
.nyp-menu__extra { margin-top: 4px; }
.nyp-menu__extra p { padding: 0; font-size: 13px; line-height: 1.5; font-style: italic; color: #444; }
.nyp-menu__notes { margin: 0 0 6px; }
.nyp-menu__notes .nyp-menu__note { font-size: 14px; line-height: 1.5; margin-bottom: 2px; }

/* Specials */
.nyp-specials { display: grid; grid-template-columns: minmax(0, 1fr); gap: 60px; align-items: start; padding-top: 20px; }
.nyp-specials__img[hidden] { display: none; }
.nyp-specials__day { margin-bottom: 45px; }
.nyp-specials__day h2 { margin-bottom: 18px; font-size: 26px; font-weight: 700; line-height: 1.2; text-transform: uppercase; }
.nyp-specials__day p { max-width: 730px; margin-bottom: 18px; font-size: 17px; line-height: 1.55; }
.nyp-specials__img img { width: 100%; }

/* Private parties slider */
.nyp-slider { position: relative; height: 550px; overflow: hidden; background: #000; }
.nyp-slider__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s; }
.nyp-slider__slide.is-active { opacity: 1; }
.nyp-slider__slide img { width: 100%; height: 100%; object-fit: cover; }
.nyp-slider::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.nyp-slider__copy { position: absolute; left: 0; right: 0; bottom: 30px; z-index: 2; text-align: center; color: #fff; padding: 0 var(--gutter); }
.nyp-slider__h { font-size: 48px; font-weight: 700; line-height: 1.2; }
.nyp-slider__sub { font-size: 20px; font-weight: 300; }
.nyp-slider__arrow { position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); display: flex; padding: 12px; border: 0; background: none; color: #fff; cursor: pointer; }
.nyp-slider__arrow svg { width: 20px; height: 34px; fill: currentColor; }
.nyp-slider__arrow--prev { left: 16px; }
.nyp-slider__arrow--next { right: 16px; }

/* Galleries */
.nyp-grid { display: grid; gap: 15px; }
.nyp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1080px; margin-inline: auto; }
.nyp-press { display: grid; gap: 30px; }
.nyp-press .nyp-shot { display: flex; justify-content: center; padding: 42px 0; background: rgba(255,255,255,.5); border: 2px solid #fff; }
.nyp-press .nyp-shot img { width: 300px; }
.nyp-shot { display: block; }
.nyp-shot img { width: 100%; }

/* Gift cards */
.nyp-prose p { margin-bottom: 8px; font-size: 18px; line-height: 1.75; text-align: center; color: #212121; }
.nyp-wrap.nyp-giftcard { max-width: 1232px; }
.nyp-giftcard img { max-width: 1200px; margin: 30px auto 0; width: 100%; }

/* Delivery partners */
.nyp-delivery .nyp-title__h,
.nyp-delivery .nyp-title__sub,
.nyp-delivery__h { color: #fff; text-shadow: 2px 2px 4px rgba(0,0,0,.85); }
.nyp-delivery .nyp-title__sub { font-size: 18px; max-width: none; }
.nyp-delivery__h { margin: 40px 0 30px; font-size: 40px; font-weight: 700; line-height: 1.1; text-transform: uppercase; text-align: center; }
.nyp-partners {
	display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px 30px;
	margin: 0; padding: 40px 30px; list-style: none; background: rgba(0,0,0,.5);
}
.nyp-partners img { height: 80px; width: auto; object-fit: contain; }
.nyp-partners--m img { height: 32px; }

/* Retail, careers */
.nyp-retail__line { padding: 10px var(--gutter) 280px; font-size: 24px; font-weight: 400; line-height: 1.3; text-align: center; }
.nyp-careers { min-height: 45vh; }

/* ---------- Footer ---------- */
.nyp-footer { background: #000; color: #fff; padding-top: 60px; }
.nyp-footer__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; padding-inline: 10px; }
.nyp-footer__h { margin: 0 0 20px; font-size: 21.56px; font-weight: 700; line-height: 1.1; text-transform: uppercase; color: #fff; }
.nyp-footer__h--next { margin-top: 40px; }
.nyp-footer__text { margin: 0; font-size: 14px; font-weight: 300; line-height: 20px; font-style: normal; }
.nyp-footer__text a { color: #fff; text-decoration: none; }
.nyp-footer__text a:hover { color: var(--sand); }
.nyp-footer__hours { margin: 0; padding: 0; list-style: none; font-size: 14px; font-weight: 400; line-height: 22px; text-transform: uppercase; }
.nyp-social--footer { gap: 20px; }
.nyp-social--footer a { color: #fff; }
.nyp-social--footer a:hover { color: var(--sand); }
.nyp-social--footer .nyp-ico { height: 18px; }
.nyp-footer__base { margin-top: 50px; border-top: 1px solid rgba(255,255,255,.1); padding-block: 40px 60px; }
.nyp-footer__copy { margin: 0; font-size: 13px; letter-spacing: 1px; text-align: center; color: rgba(255,255,255,.72); }

/* ---------- Mobile bottom bar + back to top ---------- */
.nyp-bottombar { display: none; }
.nyp-totop {
	position: fixed; right: 20px; bottom: 30px; z-index: 900;
	display: flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 50%;
	background: #fff; color: var(--accent); box-shadow: 0 2px 10px rgba(0,0,0,.2);
	opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
}
.nyp-totop.is-visible { opacity: 1; visibility: visible; }
.nyp-totop .nyp-ico { width: 18px; height: 18px; }

@media (max-width: 767px) {
	.nyp-bottombar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 950;
		display: flex; justify-content: space-around; align-items: center;
		height: 48px; background: #000;
	}
	.nyp-bottombar a { flex: 1 1 auto; padding: 0 2px; color: #fff; text-decoration: none; text-align: center; font-size: 12px; line-height: 48px; text-transform: uppercase; white-space: nowrap; }
	.nyp-tpl { padding-bottom: 48px; }
	.nyp-totop { bottom: 64px; right: 16px; }
}

/* ---------- Lightbox ---------- */
.nyp-lightbox { max-width: 92vw; max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.nyp-lightbox::backdrop { background: rgba(0,0,0,.85); }
.nyp-lightbox img { max-width: 92vw; max-height: 88vh; width: auto; height: auto; }
.nyp-lightbox__close { position: absolute; top: -44px; right: 0; width: 40px; height: 40px; border: 0; background: none; color: #fff; font-size: 36px; line-height: 1; cursor: pointer; }

/* ---------- Focus ---------- */
.nyp-tpl a:focus-visible,
.nyp-tpl button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ---------- Tablet / mobile layout ---------- */
@media (max-width: 1024px) {
	.nyp-welcome { grid-template-columns: 1fr; }
	.nyp-welcome__photo { min-height: 460px; }
	.nyp-welcome__frame { inset: 50px 16px 40px; }
	.nyp-welcome__body { padding: 60px 30px 80px; text-align: center; }
	.nyp-welcome__text { max-width: none; }
	.nyp-about__row { grid-template-columns: 1fr; min-height: 0; }
	.nyp-about__row--flip .nyp-about__copy { order: 0; }
	.nyp-about__big { font-size: 44px; }
	.nyp-mosaic__group { grid-template-columns: 1fr; gap: 12px; }
	/* One column on phones: the big photo keeps its own shape instead of the tiles' height. */
	.nyp-mosaic__group > .nyp-shot:first-child img { position: static; }
	.nyp-mosaic__group--sq .nyp-mosaic__tiles,
	.nyp-mosaic__group--wide .nyp-mosaic__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nyp-mosaic__tiles { gap: 12px; }
	.nyp-mosaic { padding-inline: 12px; }
	.nyp-mosaic__group { margin-bottom: 12px; }
	.nyp-specials { grid-template-columns: 1fr; }
	.nyp-specials__img { max-width: 360px; }
}
@media (max-width: 767px) {
	.nyp-title { margin-top: 36px; }
	.nyp-title__h { font-size: 36px; }
	.nyp-subtitle, .nyp-events__h, .nyp-delivery__h { font-size: 30px; }
	.nyp-welcome__h { font-size: 30px; letter-spacing: -1px; line-height: 1.3; }
	.nyp-welcome__caption { bottom: 30px; font-size: 14px; }
	.nyp-address { font-size: 16px; }
	.nyp-about { padding-top: 30px; }
	.nyp-about__copy { padding: 30px 20px; }
	.nyp-about__big { font-size: 36px; }
	.nyp-hero__btn { bottom: 12px; }
	.nyp-hero__btn .nyp-ico { width: 26px; height: 26px; }
	.nyp-hero__btn--pause { left: 12px; }
	.nyp-hero__btn--mute { right: 12px; }
	.nyp-menu { column-count: 1; }
	.nyp-menu__card { width: calc(100% - 20px); margin: 10px; padding: 20px; }
	.nyp-tabs__tab { margin: 0 6px 10px; padding: 9px 16px 7px; font-size: 14px; }
	.nyp-footer__grid { grid-template-columns: 1fr; gap: 40px; padding-inline: 24px; }
	.nyp-slider { height: 360px; }
	.nyp-slider__h { font-size: 34px; }
	.nyp-grid--2 { grid-template-columns: 1fr; }
	.nyp-partners img { height: 60px; }
	.nyp-map iframe { height: 380px; }
}

@media (prefers-reduced-motion: reduce) {
	.nyp-tpl *, .nyp-tpl *::before, .nyp-tpl *::after { transition: none !important; }
}

/* ---------- Coming Soon pages (Ron 2026-09-24) ---------- */
.nyp-soon { min-height: 60vh; }
.nyp-soon__text { padding: 10px var(--gutter) 200px; font-size: 28px; font-weight: 400; line-height: 1.3; letter-spacing: 1px; text-transform: uppercase; text-align: center; }
.nyp-page-catering .nyp-soon__text,
.nyp-page-press .nyp-soon__text,
.nyp-page-retail .nyp-soon__text { color: #fff; }
@media (max-width: 767px) { .nyp-soon__text { font-size: 22px; padding-bottom: 120px; } }

/* Delivery partners: one row now, spaced below the intro. */
.nyp-delivery .nyp-partners { margin-top: 40px; }
/* The Slice "Order online" button, at the 32px height Pisano's shows it (Marietta row). */
.nyp-partners img[src*="slice-marietta"] { height: 32px; }

/* ---------- Menu from "083026 Pisanos menu togo PROOF 3" (Ron 2026-09-25) ---------- */
.nyp-menu--priced .nyp-menu__extra p { font-style: normal; font-size: 14px; color: #222; }
.nyp-menu__was { color: #888; font-weight: 400; margin-right: 2px; }
.nyp-menu__small { font-size: 11px; font-weight: 600; letter-spacing: .5px; color: var(--accent); vertical-align: middle; }
.nyp-menu__sides { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 6px 0 10px; padding: 10px 12px; border: 1px solid rgba(0,0,0,.25); text-align: center; }
.nyp-menu__sides h4 { margin: 0 0 4px; font-size: 15px; font-weight: 700; color: var(--accent); }
.nyp-menu__sides p { margin: 0; font-size: 13px; line-height: 1.5; }
.nyp-menu__list { display: flex; flex-wrap: wrap; gap: 2px 14px; margin: 4px 0 0; padding: 0; list-style: none; font-size: 14px; }
.nyp-menu__footnotes { max-width: 1100px; margin: 30px auto 0; padding: 0 20px; text-align: center; }
.nyp-menu__footnotes p { margin: 0 0 6px; font-size: 12px; line-height: 1.5; font-weight: 600; }
@media (max-width: 767px) { .nyp-menu__sides { grid-template-columns: 1fr; } }
/* Show headings and item names with the PDF's own capitals (no forced uppercase). */
.nyp-menu--priced .nyp-menu__head h2,
.nyp-menu--priced .nyp-menu__item h3 { text-transform: none; }

/* Portrait photos (Ron's event photos): three to a row, at their own 2:3 shape. */
.nyp-mosaic__group--tall3 { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.nyp-mosaic__group--tall3 > .nyp-shot:first-child { grid-row: auto; }
.nyp-mosaic__group--tall3 > .nyp-shot:first-child img { position: static; }
.nyp-mosaic__group--tall3 img { aspect-ratio: 2 / 3; }
@media (max-width: 1024px) { .nyp-mosaic__group--tall3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Pisano's square gallery group (Ron 2026-09-25): big square left, 3×2 squares right,
   tiles centred on the big photo's height, as on pisanospizzeria.com (685 / 208, 30px gaps). */
.nyp-mosaic .nyp-mosaic__group--sq { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nyp-mosaic .nyp-mosaic__group--sq > .nyp-shot:first-child { grid-row: auto; }
.nyp-mosaic .nyp-mosaic__group--sq > .nyp-shot:first-child img { position: static; aspect-ratio: 1 / 1; }
.nyp-mosaic .nyp-mosaic__group--sq img { aspect-ratio: 1 / 1; object-position: 50% 30%; }
.nyp-mosaic .nyp-mosaic__group--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nyp-mosaic .nyp-mosaic__group--pair > .nyp-shot:first-child { grid-row: auto; }
.nyp-mosaic .nyp-mosaic__group--pair > .nyp-shot:first-child img { position: static; aspect-ratio: 3 / 2; }
.nyp-mosaic .nyp-mosaic__group--pair img { aspect-ratio: 3 / 2; }
@media (max-width: 1024px) { .nyp-mosaic .nyp-mosaic__group--sq { grid-template-columns: 1fr; } .nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* 50 / 50, no white space (Ron): the six tiles fill the right half to the big photo's height. */
.nyp-mosaic .nyp-mosaic__group--sq { align-items: stretch; }
.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles { grid-template-rows: 1fr 1fr; height: 100%; }
.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles .nyp-shot { height: 100%; }
.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles img { aspect-ratio: auto; height: 100%; }
@media (max-width: 1024px) {
	.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles { height: auto; grid-template-rows: none; }
	.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles img { aspect-ratio: 1 / 1; height: auto; }
}
/* Gallery 20% shorter (Ron): big photo 5:4 instead of square, the pair 15:8 instead of 3:2. */
.nyp-mosaic .nyp-mosaic__group--sq > .nyp-shot:first-child img { aspect-ratio: 5 / 4; }
.nyp-mosaic .nyp-mosaic__group--pair img,
.nyp-mosaic .nyp-mosaic__group--pair > .nyp-shot:first-child img { aspect-ratio: 15 / 8; }
/* Tiles never set the height: they fill the big photo's height (portraits no longer push it taller). */
@media (min-width: 1025px) {
	.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles { grid-template-rows: repeat(2, minmax(0, 1fr)); }
	.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles .nyp-shot { min-height: 0; }
	.nyp-mosaic .nyp-mosaic__group--sq .nyp-mosaic__tiles img { position: absolute; inset: 0; width: 100%; height: 100%; }
}
/* Meet New York Pizza (Ron): photo fills exactly its half at any width (was capped at 712px). */
.nyp-about__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.nyp-about__img--left { align-self: stretch; }
.nyp-about__img--left img { max-width: none; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1024px) { .nyp-about__row { grid-template-columns: 1fr; } .nyp-about__img--left img { height: auto; } }
/* Meet New York Pizza (Ron, like his reference): the pair sits in a centred 1140px container,
   photo left half, text right half — not stretched to the screen edges. */
.nyp-about .nyp-about__row { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); gap: 48px; min-height: 0; }
.nyp-about .nyp-about__img--left { align-self: center; }
.nyp-about .nyp-about__img--left img { aspect-ratio: 4 / 3; height: auto; }
.nyp-about .nyp-about__row .nyp-about__copy { max-width: none; margin: 0; padding: 20px 0; }
@media (max-width: 1024px) { .nyp-about .nyp-about__row { gap: 24px; } }
/* Specials: the 50% OFF banner (Ron's image, 513×144), shown at its own size, centred. */
.nyp-specials-banner { display: flex; justify-content: center; padding: 20px var(--gutter) 160px; }
.nyp-specials-banner img { width: 513px; max-width: 100%; height: auto; }
/* Specials offer as text (Ron): red brush-stroke band, white + yellow lettering, like the menu banner. */
.nyp-offer {
	position: relative; display: inline-flex; flex-direction: column; align-items: center;
	margin: 0; padding: 26px 70px 30px; transform: rotate(-3deg);
	background: #c8202f; color: #fff; text-align: center; line-height: 1;
	font-weight: 800; font-style: italic; letter-spacing: .5px;
	clip-path: polygon(3% 8%, 12% 2%, 30% 6%, 48% 0, 66% 5%, 84% 1%, 97% 7%, 100% 30%, 96% 52%, 100% 76%, 95% 96%, 76% 100%, 55% 95%, 35% 100%, 16% 95%, 2% 99%, 0 72%, 4% 50%, 0 26%);
}
.nyp-offer__big { font-size: 64px; font-style: normal; font-weight: 900; letter-spacing: 1px; }
.nyp-offer__line { margin-top: 8px; font-size: 26px; }
.nyp-offer__line--yellow { margin-top: 4px; color: #ffd400; }
@media (max-width: 767px) { .nyp-offer { padding: 20px 36px 24px; } .nyp-offer__big { font-size: 44px; } .nyp-offer__line { font-size: 18px; } }
/* Private Parties (Ron): one line of text with the inquiry number. */
.nyp-inquiry { padding: 10px var(--gutter) 200px; font-size: 24px; font-weight: 400; line-height: 1.4; text-align: center; }
.nyp-inquiry a { color: var(--accent); font-weight: 700; text-decoration: none; white-space: nowrap; }
@media (max-width: 767px) { .nyp-inquiry { font-size: 19px; padding-bottom: 120px; } }

/* ---------- Site-wide Coming Soon (templates/site-coming-soon.php, NYP_COMING_SOON) ---------- */
.nyp-cs__band {
	display: flex; align-items: center;
	min-height: clamp(420px, 62vh, 640px); padding: 80px 0;
	background: linear-gradient(rgba(0,0,0,.72), rgba(0,0,0,.82)), var(--nyp-cs-bg) 50% 30% / cover no-repeat #000;
	color: #fff; text-align: center;
}
.nyp-cs__inner { display: flex; flex-direction: column; align-items: center; width: 100%; }
.nyp-cs__label { margin-bottom: 14px; color: var(--sand); font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.nyp-cs .nyp-cs__title { font-size: clamp(40px, 7vw, 84px); font-weight: 700; line-height: 1.05; letter-spacing: 1px; text-transform: uppercase; }
.nyp-cs__lede { margin-top: 18px; font-size: clamp(17px, 1.8vw, 20px); font-weight: 400; line-height: 1.5; }
.nyp-cs__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 36px; }
.nyp-cs .nyp-btn--ghost { background: transparent; color: var(--sand) !important; }
.nyp-cs .nyp-btn--ghost:hover { background: var(--sand); color: #000 !important; }
@media (max-width: 767px) {
	.nyp-cs__band { padding: 60px 0; }
	.nyp-cs__actions { flex-direction: column; align-self: stretch; }
	.nyp-cs__actions .nyp-btn { justify-content: center; }
}

/* Home gallery after the move to ATL Social (Ron, 2026-10-07): 8 photos in an even grid,
   4 across, square, with the same 30px gaps and corner notches (2 across, 12px on phones). */
.nyp-mosaic .nyp-mosaic__group--grid4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
.nyp-mosaic .nyp-mosaic__group--grid4 > .nyp-shot:first-child { grid-row: auto; }
.nyp-mosaic .nyp-mosaic__group--grid4 img,
.nyp-mosaic .nyp-mosaic__group--grid4 > .nyp-shot:first-child img { position: static; aspect-ratio: 1 / 1; }
@media (max-width: 767px) { .nyp-mosaic .nyp-mosaic__group--grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

/* New logo (Ron, 2026-10-07) is wide (752×280): between 1101 and 1299px it would push the menu onto two
   lines at 140px tall, so it drops to the tablet size there. Desktop 140px, tablet 100px, phone 86px as before. */
@media (min-width: 1101px) and (max-width: 1299px) { .nyp-header__logo img { height: 100px; } }
@media (min-width: 1101px) and (max-width: 1159px) { .nyp-header__logo img { height: 86px; } }
@media (min-width: 1101px) and (max-width: 1120px) { .nyp-header__logo img { height: 70px; } }
