/*
 * NailsbySam Studio — page styles (inc/heroes.php): a different hero and
 * motif on every page, photo cards, facts band, timeline, diagrams, split
 * shapes, video frames. Loaded after theme.css.
 *
 *  1. Grid resets          6. Facts band
 *  2. Hero base            7. Timeline
 *  3. Hero layouts         8. Diagrams
 *  4. Videos               9. Split shapes
 *  5. Photo cards         10. Home: services preview
 *                         11. Phones and tablets
 */

/* 1. Grid resets: spacing comes from the grid gap, not flow margins ---------- */
:is(.nbs-hero2__grid, .nbs-hero2__strip, .nbs-cards__grid, .nbs-factsband__grid, .nbs-timeline__grid, .nbs-timeline__steps, .nbs-diagram__grid, .nbs-hero2__media, .nbs-services__preview) > * {
	margin-block: 0 !important;
}

/* 2. Hero base ------------------------------------------------------------------- */
.nbs-main section.nbs-hero2 {
	padding-top: clamp(2rem, 5vw, 4.5rem);
	padding-bottom: clamp(3rem, 7vw, 6rem);
	overflow: hidden;
}

.nbs-hero2__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(2rem, 6vw, 5.5rem);
	align-items: center;
}

.nbs-hero2__title {
	margin: 0.75rem 0 1.25rem;
	font-size: clamp(2.6rem, 5.2vw, 4.8rem);
	line-height: 1.02;
	letter-spacing: -0.02em;
}

.nbs-hero2__lead {
	max-width: 34em;
}

.nbs-hero2__actions {
	margin-top: 1.75rem;
}

.nbs-hero2__photo {
	margin: 0;
}

.nbs-hero2__photo img {
	display: block;
	width: 100%;
}

.nbs-hero2 .nbs-pricebox {
	margin-top: 2rem;
	max-width: 30rem;
}

.nbs-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.nbs-chips li {
	margin: 0;
	padding: 0.45rem 0.95rem;
	border: 1px solid var(--nbs-line);
	border-radius: 999px;
	background: rgba(255, 253, 249, 0.75);
	font-size: 0.9375rem;
	color: var(--nbs-cocoa);
}

/* 3. Hero layouts ------------------------------------------------------------------ */

/* Oval (Gel-X): photo first, in a tall oval with a gold ring. */
.nbs-hero2--oval {
	background:
		radial-gradient(48% 70% at 18% 40%, rgba(235, 207, 156, 0.5), transparent 70%),
		radial-gradient(40% 50% at 100% 0%, #fff8ec, transparent 70%),
		var(--nbs-ivory);
}

.nbs-hero2--oval .nbs-hero2__grid {
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
}

.nbs-hero2--oval .nbs-hero2__media {
	position: relative;
	order: -1;
	justify-self: center;
	width: min(100%, 440px);
}

.nbs-hero2--oval .nbs-hero2__photo img {
	border-radius: 50% / 40% !important;
	box-shadow: var(--nbs-shadow-lift);
}

.nbs-hero2--oval .nbs-hero2__media::before {
	content: "";
	position: absolute;
	inset: -16px;
	border: 1px solid rgba(201, 154, 78, 0.6);
	border-radius: 50% / 40%;
	pointer-events: none;
}

.nbs-hero2--oval .nbs-hero2__media::after {
	content: "";
	position: absolute;
	top: 14%;
	right: -22px;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	background: linear-gradient(135deg, #f1d49b, #c99a4e);
	box-shadow: 0 0 0 6px rgba(201, 154, 78, 0.16);
}

/* Band (Builder gel, Contact): the photo fills half the screen, edge to edge. */
.nbs-main section.nbs-hero2--band {
	padding: 0;
	background: var(--nbs-linen);
}

.nbs-hero2--band > .nbs-hero2__grid {
	max-width: none !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	align-items: stretch;
	min-height: min(80vh, 720px);
}

.nbs-hero2--band .nbs-hero2__media {
	order: -1;
	min-height: 320px;
}

.nbs-hero2--band.nbs-hero2--right .nbs-hero2__media {
	order: 2;
}

.nbs-hero2--band .nbs-hero2__photo,
.nbs-hero2--band .nbs-hero2__photo img {
	height: 100%;
}

.nbs-hero2--band .nbs-hero2__photo img {
	aspect-ratio: auto !important;
	object-fit: cover;
	border-radius: 0 !important;
}

.nbs-hero2--band .nbs-hero2__copy {
	align-self: center;
	width: 100%;
	max-width: 660px;
	padding: clamp(2.5rem, 6vw, 5.5rem) var(--nbs-gutter);
}

.nbs-hero2--band:not(.nbs-hero2--right) .nbs-hero2__copy {
	padding-left: clamp(2rem, 5vw, 5rem);
}

.nbs-hero2--band.nbs-hero2--right .nbs-hero2__copy {
	justify-self: end;
	padding-right: clamp(2rem, 5vw, 5rem);
}

.nbs-hero2--band .nbs-pricebox {
	background: rgba(255, 253, 249, 0.92);
}

/* Night (Pedicure with candle video, Dual form with a framed photo). */
.nbs-hero2--night {
	background:
		radial-gradient(55% 70% at 85% 30%, rgba(201, 154, 78, 0.24), transparent 70%),
		radial-gradient(50% 60% at 0% 100%, rgba(90, 49, 26, 0.7), transparent 70%),
		var(--nbs-night);
}

.nbs-main section.nbs-hero2--night {
	padding-top: clamp(3rem, 8vw, 6.5rem);
	padding-bottom: clamp(3.5rem, 9vw, 7rem);
}

.nbs-hero2--night .nbs-crumbs,
.nbs-hero2--night .nbs-crumbs a {
	color: rgba(251, 247, 241, 0.78);
}

.nbs-hero2--night .nbs-crumbs .last {
	color: var(--nbs-ivory);
}

.nbs-hero2--night .nbs-chips li {
	border-color: rgba(251, 247, 241, 0.22);
	background: rgba(20, 12, 8, 0.35);
	color: rgba(251, 247, 241, 0.88);
}

.nbs-hero2--night .nbs-pricebox {
	background: rgba(255, 253, 249, 0.97);
	color: var(--nbs-ink);
}

.nbs-hero2--night .nbs-pricebox p {
	color: var(--nbs-cocoa);
}

.nbs-hero2--night .nbs-pricebox .nbs-pricebox__label {
	color: var(--nbs-bronze);
}

.nbs-hero2--night .nbs-hero2__media {
	position: relative;
	justify-self: end;
	width: min(100%, 430px);
}

.nbs-hero2--night .nbs-hero2__photo img {
	border-radius: 200px 200px var(--nbs-radius) var(--nbs-radius) !important;
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.7);
}

.nbs-hero2--night .nbs-hero2__media::before {
	content: "";
	position: absolute;
	inset: -14px -14px 24px 24px;
	border: 1px solid rgba(235, 207, 156, 0.45);
	border-radius: 210px 210px var(--nbs-radius) var(--nbs-radius);
	pointer-events: none;
}

/* With a background video: full screen behind the copy. */
.nbs-hero2:has(> .nbs-hero2__bg) {
	min-height: min(86vh, 760px);
	display: grid;
	align-content: center;
}

.nbs-hero2__bg {
	position: absolute !important;
	inset: 0;
	z-index: 0;
	max-width: none !important;
	margin: 0 !important;
}

.nbs-hero2__bg .wp-block-video {
	position: absolute;
	inset: 0;
	margin: 0;
}

.nbs-hero2__bg video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nbs-hero2__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(20, 12, 8, 0.9) 0%, rgba(20, 12, 8, 0.62) 50%, rgba(20, 12, 8, 0.28) 100%),
		linear-gradient(0deg, rgba(20, 12, 8, 0.55), rgba(20, 12, 8, 0) 45%);
	pointer-events: none;
}

.nbs-hero2:has(> .nbs-hero2__bg) .nbs-hero2__grid {
	grid-template-columns: minmax(0, 1fr);
}

.nbs-hero2:has(> .nbs-hero2__bg) .nbs-hero2__copy {
	max-width: 640px;
}

/* Centered (Services with a video band, Russian manicure with a photo strip). */
.nbs-hero2--centered {
	background:
		radial-gradient(60% 60% at 50% 0%, rgba(235, 207, 156, 0.4), transparent 70%),
		var(--nbs-ivory);
}

.nbs-hero2--centered .nbs-hero2__grid {
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	text-align: center;
}

.nbs-hero2--centered .nbs-hero2__copy {
	max-width: 820px;
}

.nbs-hero2--centered .nbs-hero2__lead {
	margin-inline: auto;
}

.nbs-hero2--centered .is-style-eyebrow,
.nbs-hero2--centered .wp-block-buttons,
.nbs-hero2--centered .nbs-chips {
	justify-content: center;
}

.nbs-hero2--centered .is-style-eyebrow::after {
	content: "";
	width: 2.25rem;
	height: 1px;
	background: currentColor;
	opacity: 0.6;
}

.nbs-hero2__band,
.nbs-hero2__strip {
	position: relative;
	z-index: 2;
	margin-top: clamp(2.5rem, 5vw, 4rem) !important;
}

.nbs-hero2__band .wp-block-video {
	margin: 0;
	aspect-ratio: 21 / 9;
	overflow: hidden;
	border-radius: var(--nbs-radius-lg);
	box-shadow: var(--nbs-shadow-lift);
}

.nbs-hero2__strip {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 1fr);
	gap: clamp(0.75rem, 2vw, 1.5rem);
	align-items: end;
}

.nbs-hero2__strip-photo {
	margin: 0;
}

.nbs-hero2__strip-photo img {
	border-radius: var(--nbs-radius) !important;
	box-shadow: var(--nbs-shadow);
}

.nbs-hero2__strip-photo:nth-child(2) img {
	border-radius: 999px 999px var(--nbs-radius) var(--nbs-radius) !important;
	box-shadow: var(--nbs-shadow-lift);
}

/* Russian manicure: fine guide lines, for precision. */
.nbs-page-russian-manicure .nbs-hero2--centered {
	background:
		radial-gradient(60% 55% at 50% 0%, rgba(251, 247, 241, 0) 0%, var(--nbs-ivory) 78%),
		linear-gradient(rgba(201, 154, 78, 0.13) 1px, transparent 1px) 0 0 / 34px 34px,
		linear-gradient(90deg, rgba(201, 154, 78, 0.13) 1px, transparent 1px) 0 0 / 34px 34px,
		var(--nbs-ivory);
}

/* Collage (Nail art): three prints, slightly turned. */
.nbs-hero2--collage {
	background:
		radial-gradient(55% 70% at 80% 35%, rgba(241, 222, 211, 0.95), transparent 70%),
		radial-gradient(40% 50% at 0% 100%, rgba(235, 207, 156, 0.35), transparent 70%),
		#fbf3ee;
}

.nbs-hero2--collage .nbs-hero2__media {
	position: relative;
	min-height: clamp(420px, 44vw, 580px);
}

.nbs-hero2__tile {
	position: absolute !important;
	margin: 0 !important;
	padding: 10px 10px 30px;
	border-radius: 6px;
	background: #fffdf9;
	box-shadow: var(--nbs-shadow-lift);
	transition: transform 0.6s var(--nbs-ease);
}

.nbs-hero2__tile img {
	border-radius: 3px !important;
}

.nbs-hero2__tile--1 {
	z-index: 2;
	top: 6%;
	left: 2%;
	width: 54%;
	transform: rotate(-4deg);
}

.nbs-hero2__tile--2 {
	z-index: 1;
	top: 0;
	right: 4%;
	width: 42%;
	transform: rotate(5deg);
}

.nbs-hero2__tile--3 {
	z-index: 3;
	right: 10%;
	bottom: 0;
	width: 40%;
	transform: rotate(-2deg);
}

.nbs-hero2__tile:hover {
	z-index: 4;
	transform: rotate(0) scale(1.02);
}

/* Phone (Gallery): the work reel in a phone. */
.nbs-hero2--phone {
	background:
		radial-gradient(45% 60% at 75% 45%, rgba(235, 207, 156, 0.55), transparent 70%),
		var(--nbs-cream);
}

.nbs-hero2--phone .nbs-hero2__grid {
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
}

.nbs-phone {
	position: relative;
	width: min(300px, 72vw);
	margin-inline: auto;
	padding: 11px;
	border-radius: 46px;
	background: linear-gradient(160deg, #3a281d, #160d08);
	box-shadow: var(--nbs-shadow-lift), inset 0 0 0 1.5px rgba(235, 207, 156, 0.35);
}

.nbs-phone::before {
	content: "";
	position: absolute;
	top: 22px;
	left: 50%;
	z-index: 4;
	width: 78px;
	height: 22px;
	border-radius: 20px;
	background: #0d0805;
	transform: translateX(-50%);
}

.nbs-phone .wp-block-video {
	margin: 0;
	aspect-ratio: 9 / 16;
	overflow: hidden;
	border-radius: 36px;
	background: #22150e;
}

/* Editorial (About): a large photo with a pull quote over its edge. */
.nbs-hero2--editorial {
	background:
		radial-gradient(50% 60% at 100% 0%, rgba(235, 207, 156, 0.4), transparent 70%),
		var(--nbs-ivory);
}

.nbs-hero2--editorial .nbs-hero2__grid {
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
}

.nbs-hero2--editorial .nbs-hero2__media {
	position: relative;
	order: -1;
	width: min(100%, 520px);
}

.nbs-hero2--editorial .nbs-hero2__photo img {
	border-radius: var(--nbs-radius-lg) !important;
	box-shadow: var(--nbs-shadow-lift);
}

.nbs-hero2--editorial .nbs-hero2__title {
	font-size: clamp(2.8rem, 6vw, 5.4rem);
}

.nbs-hero2__quote {
	position: absolute;
	right: -10%;
	bottom: 9%;
	z-index: 3;
	max-width: 68%;
	padding: 1.15rem 1.4rem;
	border-radius: var(--nbs-radius);
	background: var(--nbs-night);
	color: var(--nbs-glow);
	font-family: var(--nbs-serif);
	font-size: clamp(1.05rem, 1.5vw, 1.3rem);
	font-style: italic;
	line-height: 1.35;
	box-shadow: var(--nbs-shadow-lift);
}

/* Frame (FAQ, Journal): photo with an offset gold outline. */
.nbs-hero2--frame {
	background:
		radial-gradient(45% 60% at 90% 30%, rgba(235, 207, 156, 0.45), transparent 70%),
		var(--nbs-cream);
}

.nbs-hero2--frame .nbs-hero2__media {
	position: relative;
	justify-self: end;
	width: min(100%, 430px);
}

.nbs-hero2--frame .nbs-hero2__photo {
	position: relative;
	z-index: 1;
}

.nbs-hero2--frame .nbs-hero2__photo img {
	border-radius: var(--nbs-radius-lg) !important;
	box-shadow: var(--nbs-shadow-lift);
}

.nbs-hero2--frame .nbs-hero2__media::before {
	content: "";
	position: absolute;
	inset: 18px -18px -18px 18px;
	z-index: 0;
	border: 1px solid rgba(201, 154, 78, 0.6);
	border-radius: var(--nbs-radius-lg);
}

/* 4. Videos ---------------------------------------------------------------------------- */
.nbs-hero__video {
	margin: 0;
}

.nbs-hero__video video {
	aspect-ratio: 4 / 5;
	border-radius: 999px 999px var(--nbs-radius-lg) var(--nbs-radius-lg);
	box-shadow: var(--nbs-shadow-lift);
	background: var(--nbs-linen);
}

.nbs-hero__video .dsc-ambient__toggle {
	right: 1.25rem;
	bottom: 1.25rem;
}

/* 5. Photo cards ------------------------------------------------------------------------- */
.nbs-cards__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
	margin-top: clamp(2rem, 4vw, 3rem);
}

.nbs-card2 {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--nbs-line);
	border-radius: var(--nbs-radius-lg);
	background: #fffdf9;
	box-shadow: var(--nbs-shadow);
}

.nbs-card2 > * {
	margin-block: 0 !important;
}

.nbs-card2__photo {
	overflow: hidden;
}

.nbs-card2__photo img {
	border-radius: 0 !important;
	transition: transform 0.9s var(--nbs-ease);
}

.nbs-card2:hover .nbs-card2__photo img {
	transform: scale(1.035);
}

.nbs-card2__title {
	padding: 1.35rem 1.5rem 0;
	font-size: clamp(1.35rem, 1vw + 1rem, 1.6rem);
}

.nbs-card2__title a {
	color: inherit;
	text-decoration: none;
}

.nbs-card2__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.nbs-card2 {
	position: relative;
}

.nbs-card2__meta {
	padding: 0.35rem 1.5rem 0;
	font-family: var(--nbs-serif);
	font-size: 1.05rem;
	color: var(--nbs-bronze);
}

.nbs-card2__text {
	padding: 0.65rem 1.5rem 0;
	color: var(--nbs-cocoa);
}

.nbs-card2__list {
	padding: 0.85rem 1.5rem 0 3.1rem !important;
	font-size: 0.97rem;
}

.nbs-card2 > :last-child {
	padding-bottom: 1.6rem;
}

.nbs-cards.is-style-night .nbs-card2 {
	border-color: rgba(251, 247, 241, 0.12);
	background: rgba(255, 253, 249, 0.04);
	box-shadow: none;
}

.nbs-cards.is-style-night .nbs-card2__meta {
	color: var(--nbs-glow);
}

.nbs-cards.is-style-night .nbs-card2__text,
.nbs-cards.is-style-night .nbs-card2__list {
	color: rgba(251, 247, 241, 0.8);
}

/* 6. Facts band ----------------------------------------------------------------------------- */
.nbs-factsband {
	background:
		radial-gradient(50% 80% at 100% 0%, rgba(201, 154, 78, 0.22), transparent 70%),
		var(--nbs-night);
	color: var(--nbs-ivory);
}

.nbs-main section.nbs-factsband {
	padding-block: clamp(3rem, 6vw, 5rem);
}

.nbs-factsband__head h2 {
	color: var(--nbs-ivory);
}

.nbs-factsband__head .is-style-eyebrow {
	color: var(--nbs-gold);
}

.nbs-factsband__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 2rem;
	border-top: 1px solid rgba(251, 247, 241, 0.16);
}

.nbs-factsband__item {
	padding: 1.75rem 1.5rem 0.25rem 0;
}

.nbs-factsband__item + .nbs-factsband__item {
	padding-left: 1.5rem;
	border-left: 1px solid rgba(251, 247, 241, 0.16);
}

.nbs-factsband__value {
	margin: 0;
	font-family: var(--nbs-serif);
	font-size: clamp(1.75rem, 2.8vw, 2.6rem);
	line-height: 1.08;
	color: var(--nbs-glow);
}

.nbs-factsband__label {
	margin: 0.55rem 0 0 !important;
	font-size: 0.97rem;
	color: rgba(251, 247, 241, 0.78);
}

.nbs-factsband__note {
	margin-top: 1.75rem !important;
	color: rgba(251, 247, 241, 0.74);
	font-size: 0.95rem;
}

/* 7. Timeline --------------------------------------------------------------------------------- */
.nbs-timeline__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(2rem, 6vw, 5.5rem);
	align-items: start;
}

.nbs-timeline__media {
	position: sticky;
	top: calc(var(--nbs-header-h) + 2rem);
}

.nbs-timeline__photo {
	margin: 0;
}

.nbs-timeline__photo img {
	border-radius: var(--nbs-radius-lg) var(--nbs-radius-lg) 160px var(--nbs-radius-lg) !important;
	box-shadow: var(--nbs-shadow-lift);
}

.nbs-timeline__body > h2 {
	margin-top: 0;
}

.nbs-timeline__steps {
	position: relative;
	margin-top: 2.25rem !important;
	padding-left: 3.4rem;
}

.nbs-timeline__steps::before {
	content: "";
	position: absolute;
	top: 0.6rem;
	bottom: 0.6rem;
	left: 1.1rem;
	width: 1px;
	background: linear-gradient(var(--nbs-gold), rgba(201, 154, 78, 0.12));
}

.nbs-timeline__step {
	position: relative;
	padding-bottom: 2rem;
}

.nbs-timeline__step:last-child {
	padding-bottom: 0;
}

.nbs-timeline__step > * {
	margin-block: 0 !important;
}

.nbs-timeline__num {
	position: absolute;
	top: -0.1rem;
	left: -3.4rem;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid var(--nbs-gold);
	border-radius: 50%;
	background: var(--nbs-ivory);
	font-family: var(--nbs-serif);
	font-size: 0.9375rem;
	color: var(--nbs-bronze);
}

.is-style-cream .nbs-timeline__num {
	background: var(--nbs-cream);
}

.nbs-timeline__title {
	margin-bottom: 0.4rem !important;
	font-size: clamp(1.25rem, 0.8vw + 1rem, 1.45rem);
}

.nbs-timeline__text {
	color: var(--nbs-cocoa);
}

/* 8. Diagrams ------------------------------------------------------------------------------------ */
.nbs-diagram__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}

.nbs-diagram__copy > h2 {
	margin-top: 0;
}

.nbs-diagram__art {
	margin: 0;
	padding: clamp(1.25rem, 3vw, 2.5rem);
	border: 1px solid var(--nbs-line);
	border-radius: var(--nbs-radius-lg);
	background:
		radial-gradient(70% 60% at 50% 0%, #fff9ef, transparent 75%),
		#fffdf9;
	box-shadow: var(--nbs-shadow);
}

.nbs-dg {
	display: block;
	width: 100%;
	height: auto;
}

.nbs-dg--layers {
	max-width: 440px;
	margin-inline: auto;
}

.nbs-dg__badge circle {
	fill: var(--nbs-night);
}

.nbs-dg__badge text {
	fill: var(--nbs-glow);
	font-family: var(--nbs-serif);
	font-size: 18px;
	font-weight: 600;
}

.nbs-diagram__legend {
	display: grid;
	gap: 1rem;
	margin: 1.75rem 0 0 !important;
	padding: 0 !important;
	list-style: none;
	counter-reset: nbs-dg;
}

.nbs-diagram__legend li {
	position: relative;
	margin: 0;
	padding-left: 2.85rem;
	color: var(--nbs-cocoa);
	counter-increment: nbs-dg;
}

.nbs-diagram__legend li::before {
	content: counter(nbs-dg);
	position: absolute;
	top: 0.05rem;
	left: 0;
	display: grid;
	place-items: center;
	width: 1.95rem;
	height: 1.95rem;
	border-radius: 50%;
	background: var(--nbs-night);
	color: var(--nbs-glow);
	font-family: var(--nbs-serif);
	font-size: 0.95rem;
	font-weight: 600;
}

.nbs-diagram__legend strong {
	display: block;
	color: var(--nbs-ink);
	font-weight: 650;
}

/* 9. Split shapes ---------------------------------------------------------------------------------- */
.nbs-split--round .nbs-split__photo img,
.nbs-split--wide .nbs-split__photo img {
	border-radius: var(--nbs-radius-lg) !important;
}

.nbs-split--frame .nbs-split__media {
	position: relative;
}

.nbs-split--frame .nbs-split__photo {
	position: relative;
	z-index: 1;
}

.nbs-split--frame .nbs-split__photo img {
	border-radius: var(--nbs-radius) !important;
}

.nbs-split--frame .nbs-split__media::before {
	content: "";
	position: absolute;
	inset: -16px 16px 16px -16px;
	z-index: 0;
	border: 1px solid rgba(201, 154, 78, 0.6);
	border-radius: var(--nbs-radius);
}

.nbs-split--reverse.nbs-split--frame .nbs-split__media::before {
	inset: -16px -16px 16px 16px;
}

.nbs-split--circle .nbs-split__media {
	position: relative;
	justify-self: center;
	width: min(100%, 500px);
}

.nbs-split--circle .nbs-split__photo img {
	border-radius: 50% !important;
}

.nbs-split--circle .nbs-split__media::after {
	content: "";
	position: absolute;
	inset: -14px;
	border: 1px solid rgba(201, 154, 78, 0.55);
	border-radius: 50%;
	pointer-events: none;
}

.nbs-split--duo .nbs-split__media {
	position: relative;
	padding-bottom: 14%;
}

.nbs-split--duo .nbs-split__photo {
	width: 80%;
}

.nbs-split--reverse.nbs-split--duo .nbs-split__photo {
	margin-left: auto;
}

.nbs-split--duo .nbs-split__photo img {
	border-radius: var(--nbs-radius-lg) !important;
}

.nbs-split__photo2 {
	position: absolute !important;
	right: 0;
	bottom: 0;
	width: 44%;
	margin: 0 !important;
	border: 8px solid var(--nbs-ivory);
	border-radius: var(--nbs-radius);
	box-shadow: var(--nbs-shadow-lift);
}

.nbs-split--reverse .nbs-split__photo2 {
	right: auto;
	left: 0;
}

.is-style-cream .nbs-split__photo2 {
	border-color: var(--nbs-cream);
}

.nbs-split__photo2 img {
	border-radius: calc(var(--nbs-radius) - 6px) !important;
}

/* 10. Home: services preview ------------------------------------------------------------------------- */
.nbs-services__preview {
	position: relative;
	margin-top: 2.5rem !important;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 999px 999px var(--nbs-radius-lg) var(--nbs-radius-lg);
	box-shadow: var(--nbs-shadow-lift);
	background: var(--nbs-linen);
}

.nbs-services__pv {
	position: absolute !important;
	inset: 0;
	opacity: 0;
	transform: scale(1.04);
	transition: opacity 0.6s var(--nbs-ease), transform 1.4s var(--nbs-ease);
}

.nbs-services__pv img {
	width: 100%;
	height: 100% !important;
	aspect-ratio: auto !important;
	object-fit: cover;
}

.nbs-services__pv--1 {
	opacity: 1;
	transform: none;
}

.nbs-services__grid:has(.nbs-service:hover, .nbs-service:focus-within) .nbs-services__pv--1 {
	opacity: 0;
	transform: scale(1.04);
}

.nbs-services__grid:has(.nbs-service:nth-child(1):is(:hover, :focus-within)) .nbs-services__pv--1,
.nbs-services__grid:has(.nbs-service:nth-child(2):is(:hover, :focus-within)) .nbs-services__pv--2,
.nbs-services__grid:has(.nbs-service:nth-child(3):is(:hover, :focus-within)) .nbs-services__pv--3,
.nbs-services__grid:has(.nbs-service:nth-child(4):is(:hover, :focus-within)) .nbs-services__pv--4,
.nbs-services__grid:has(.nbs-service:nth-child(5):is(:hover, :focus-within)) .nbs-services__pv--5 {
	opacity: 1;
	transform: none;
}

/* 11. Phones and tablets ------------------------------------------------------------------------------- */
@media (max-width: 1099px) {
	.nbs-factsband__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nbs-factsband__item:nth-child(3) {
		padding-left: 0;
		border-left: 0;
	}

	.nbs-factsband__item:nth-child(n + 3) {
		border-top: 1px solid rgba(251, 247, 241, 0.16);
		margin-top: 1.5rem !important;
	}
}

@media (max-width: 899px) {
	.nbs-hero2__grid,
	.nbs-hero2--oval .nbs-hero2__grid,
	.nbs-hero2--phone .nbs-hero2__grid,
	.nbs-hero2--editorial .nbs-hero2__grid,
	.nbs-timeline__grid,
	.nbs-diagram__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nbs-hero2--band > .nbs-hero2__grid {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.nbs-hero2--band .nbs-hero2__media,
	.nbs-hero2--band.nbs-hero2--right .nbs-hero2__media {
		order: -1;
		height: 62vw;
		max-height: 460px;
	}

	.nbs-hero2--band .nbs-hero2__copy,
	.nbs-hero2--band:not(.nbs-hero2--right) .nbs-hero2__copy,
	.nbs-hero2--band.nbs-hero2--right .nbs-hero2__copy {
		max-width: none;
		padding: 2.25rem var(--nbs-gutter) 3rem;
	}

	.nbs-hero2--oval .nbs-hero2__media {
		order: 2;
		width: min(78%, 360px);
		margin-top: 1rem !important;
	}

	.nbs-hero2--night .nbs-hero2__media,
	.nbs-hero2--frame .nbs-hero2__media {
		justify-self: center;
		width: min(86%, 380px);
		margin-top: 0.5rem !important;
	}

	.nbs-hero2--editorial .nbs-hero2__media {
		order: 2;
		justify-self: center;
	}

	.nbs-hero2__quote {
		right: -4%;
		max-width: 80%;
	}

	.nbs-hero2--collage .nbs-hero2__media {
		min-height: 108vw;
		max-height: 560px;
	}

	.nbs-hero2__strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nbs-hero2__strip-photo:nth-child(2) {
		grid-row: span 2;
		order: -1;
	}

	.nbs-hero2__band .wp-block-video {
		aspect-ratio: 4 / 3;
	}

	.nbs-hero2:has(> .nbs-hero2__bg) {
		min-height: 0;
	}

	.nbs-hero2__bg::after {
		background:
			linear-gradient(0deg, rgba(20, 12, 8, 0.92) 0%, rgba(20, 12, 8, 0.7) 55%, rgba(20, 12, 8, 0.45) 100%);
	}

	.nbs-cards__grid {
		grid-template-columns: minmax(0, 1fr);
		max-width: 480px;
	}

	.nbs-timeline__media {
		position: static;
		width: min(100%, 420px);
	}

	.nbs-services__preview {
		aspect-ratio: 16 / 10;
		border-radius: var(--nbs-radius-lg);
		margin-top: 1.75rem !important;
	}
}

@media (min-width: 900px) and (max-width: 1199px) {
	.nbs-cards__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.nbs-factsband__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nbs-factsband__item + .nbs-factsband__item,
	.nbs-factsband__item:nth-child(3) {
		padding-left: 0;
		border-left: 0;
		border-top: 1px solid rgba(251, 247, 241, 0.16);
		margin-top: 1.25rem !important;
	}
}

html.nbs-calm .nbs-hero2__tile,
html.nbs-calm .nbs-card2__photo img,
html.nbs-calm .nbs-services__pv {
	transition: none;
}

/* Booking page photo */
.nbs-book__photo {
	margin: 0;
}

.nbs-book__photo img {
	border-radius: 999px 999px var(--nbs-radius-lg) var(--nbs-radius-lg) !important;
	box-shadow: var(--nbs-shadow);
}

/* Process sections without the cream band (pages alternate backgrounds). */
.nbs-process--plain {
	background: var(--nbs-ivory);
}

.nbs-hero2 .nbs-chips a {
	color: inherit;
	text-decoration: none;
}

.nbs-hero2 .nbs-chips li:has(a):hover {
	border-color: var(--nbs-gold);
}

/* Full menu: each group card opens with its photo, edge to edge. */
.nbs-fullmenu .dsc-menu__group.has-photo {
	overflow: hidden;
	padding-top: 0;
}

.nbs-fullmenu .dsc-menu__media {
	margin: 0 calc(-1 * clamp(1.5rem, 3.5vw, 2.75rem)) clamp(1.5rem, 3vw, 2.25rem);
}

.nbs-fullmenu .dsc-menu__photo {
	aspect-ratio: 16 / 9;
	border-radius: 0;
	transition: transform 1.2s var(--nbs-ease);
}

.nbs-fullmenu .dsc-menu__group:hover .dsc-menu__photo {
	transform: scale(1.03);
}

html.nbs-calm .nbs-fullmenu .dsc-menu__photo {
	transition: none;
}

/* Instagram feed (gallery): small square tiles at the photos' own size. */
.nbs-igfeed {
	background: var(--nbs-ivory);
}

.nbs-igfeed__profile {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.25rem;
	max-width: 780px;
	margin: 0 auto 1.75rem !important;
	padding-bottom: 1.75rem;
	border-bottom: 1px solid var(--nbs-line);
}

.nbs-igfeed__profile > * {
	margin: 0 !important;
}

.nbs-igfeed__avatar img {
	display: block;
	width: 68px;
	height: 68px;
	border-radius: 50%;
	box-shadow: 0 0 0 3px var(--nbs-ivory), 0 0 0 4.5px var(--nbs-gold);
}

.nbs-igfeed__handle {
	font-size: 1.15rem;
	color: var(--nbs-ink);
}

.nbs-igfeed__bio {
	margin-top: 0.15rem !important;
	font-size: 0.95rem;
	color: var(--nbs-cocoa);
}

.nbs-igfeed__grid.dsc-gallery {
	max-width: 780px;
	margin-inline: auto;
}

.nbs-igfeed__grid--wide.dsc-gallery {
	max-width: 1000px;
}

/* Sharp camera originals (Core adds dsc-gallery--hires when every photo is
   1000 px or wider): the feed opens up to the full content width. */
.nbs-igfeed__grid.dsc-gallery--hires {
	max-width: var(--nbs-wide);
}

.nbs-igfeed__grid.dsc-gallery--hires .dsc-gallery__list {
	gap: 12px;
}

.nbs-igfeed__grid.dsc-gallery--hires .dsc-gallery__img {
	border-radius: var(--nbs-radius-sm);
}

.nbs-igfeed__grid .dsc-gallery__filters {
	justify-content: center;
}

.nbs-igfeed__grid .dsc-gallery__list {
	gap: 6px;
}

.nbs-igfeed__grid .dsc-gallery__img {
	aspect-ratio: 1;
	border-radius: 6px;
}

/* Small real photos: never shown larger than their own pixels. */
.nbs-split--native .nbs-split__media {
	justify-self: center;
	width: min(100%, 440px);
}

.nbs-hero2--native .nbs-hero2__media {
	width: min(100%, 430px);
	justify-self: center;
}

/* Section intros on dark sections stay readable (≥ 7:1). */
.is-style-night .nbs-section-head > p:not(.is-style-eyebrow),
.nbs-cards.is-style-night .nbs-cards__head p:not(.is-style-eyebrow) {
	color: rgba(251, 247, 241, 0.8);
}

/* Price box on dark heroes: dark text on the light card. */
.nbs-hero2--night .nbs-pricebox :is(h2, h3, h4, h5, .dsc-menu__name, .dsc-menu__name a, .dsc-menu__price, .dsc-menu__option-name) {
	color: var(--nbs-ink);
}

.nbs-hero2--night .nbs-pricebox .dsc-menu__option-price {
	color: var(--nbs-bronze);
}

@media (max-width: 899px) {
	/* Photo strip: one even row on phones. */
	.nbs-hero2__strip {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.5rem;
	}

	.nbs-hero2__strip-photo:nth-child(2) {
		grid-row: auto;
		order: 0;
	}

	.nbs-hero2__strip-photo img {
		aspect-ratio: 3 / 4 !important;
		object-fit: cover;
		border-radius: var(--nbs-radius-sm) !important;
	}

	.nbs-hero2__strip-photo:nth-child(2) img {
		border-radius: 999px 999px var(--nbs-radius-sm) var(--nbs-radius-sm) !important;
	}
}
