/* Posh Atelier — base, header, widgets.
 * Colours and fonts are also set in Elementor → Site Settings; Elementor values win where set.
 */

:root {
	--posh-ink: #221A1D;
	--posh-merlot: #6B1F33;
	--posh-deep: #4F1526;
	--posh-text: #54474C;
	--posh-stone: #8A7E82;
	--posh-rose: #E5CBC6;
	--posh-veil: #F3ECEA;
	--posh-porc: #FBF9F8;
	--posh-white: #FFFFFF;
	--posh-line: rgba(34, 26, 29, .12);
	--posh-line-strong: rgba(34, 26, 29, .24);
	--posh-display: "Instrument Serif", "Bodoni Moda", Georgia, serif;
	--posh-sans: "Poppins", "Helvetica Neue", Arial, sans-serif;
	--posh-ease: cubic-bezier(.2, .7, .2, 1);
	--posh-gutter: clamp(16px, 3vw, 28px);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body.posh {
	margin: 0;
	background: var(--posh-porc);
	color: var(--posh-text);
	font-family: var(--posh-sans);
	font-weight: 300;
	font-size: 15px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--posh-merlot); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s; }
a:hover { color: var(--posh-ink); }
strong, b { font-weight: 500; color: var(--posh-ink); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--posh-display);
	font-weight: 400;
	color: var(--posh-ink);
	line-height: 1.15;
	letter-spacing: -.01em;
	margin: 0 0 .6em;
}

button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible { outline: 2px solid var(--posh-merlot); outline-offset: 3px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000;
	top: 8px; left: 8px; padding: 12px 18px; background: var(--posh-ink); color: #fff;
}

.posh-container { width: 100%; max-width: 1320px; margin: 0 auto; padding-left: var(--posh-gutter); padding-right: var(--posh-gutter); }
.posh-section { padding-top: clamp(48px, 7vw, 96px); padding-bottom: clamp(56px, 8vw, 112px); }
.posh-main { display: block; min-height: 40vh; }

.posh-measure { max-width: 34em; }
.posh-measure-sm { max-width: 26em; }
.posh-center { margin-left: auto; margin-right: auto; }

/* Buttons used outside Elementor */
.posh-btn,
.posh .button,
.posh button.button,
.posh input.button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	background: var(--posh-merlot); color: #fff; border: 1px solid var(--posh-merlot);
	padding: 14px 28px; border-radius: 0; font-family: var(--posh-sans); font-weight: 500;
	font-size: 14px; line-height: 1.2; letter-spacing: .02em; text-decoration: none; cursor: pointer;
	transition: background-color .25s var(--posh-ease), color .25s, border-color .25s;
}
.posh-btn:hover,
.posh .button:hover,
.posh button.button:hover { background: var(--posh-ink); border-color: var(--posh-ink); color: #fff; }

/* Hero: small label above the headline, accent words in merlot italic. */
.posh-hero .elementor-heading-title em,
.posh-accent em { font-style: italic; color: var(--posh-merlot); }
.posh-eyebrow .elementor-heading-title { text-transform: uppercase; letter-spacing: .22em; }

/* Side-by-side buttons: keep their tops aligned whatever the column alignment. */
.elementor-widget.posh-inline { align-self: flex-start; }

/* Elementor text-link buttons */
.posh-link-btn .elementor-button { position: relative; }
.posh-link-btn .elementor-button-text { background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 3px; transition: background-size .3s var(--posh-ease); }
.posh-link-btn .elementor-button:hover .elementor-button-text { background-size: 40% 1px; }

/* ------------------------------------------------------------------ Header */

.posh-site-header { position: relative; z-index: 60; }
.posh-sticky-header .posh-site-header { position: sticky; top: 0; }
.admin-bar.posh-sticky-header .posh-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar.posh-sticky-header .posh-site-header { top: 0; } }

.posh-site-header .posh-header-row { transition: box-shadow .3s; }
.posh-scrolled .posh-site-header .posh-header-row { box-shadow: 0 10px 30px -24px rgba(34, 26, 29, .5); }
.posh-announce-row { overflow: hidden; }

/* Fallback header when Elementor is inactive */
.posh-header--fallback { background: var(--posh-porc); border-bottom: 1px solid var(--posh-line); }
.posh-header__row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; min-height: 76px; }
.posh-header__right .posh-icons { justify-content: flex-end; }
.posh-header__center { text-align: center; }

/* Logo */
.posh-logo { display: inline-block; text-decoration: none; }
.posh-logo--text {
	font-family: var(--posh-display); font-size: 32px; line-height: 1; font-weight: 400;
	letter-spacing: .14em; text-transform: uppercase; color: var(--posh-ink); white-space: nowrap;
}
.posh-logo__img { max-height: 64px; width: auto; }
@media (max-width: 767px) { .posh-logo--text { font-size: 18px; letter-spacing: .08em; } }
@media (max-width: 360px) { .posh-logo--text { font-size: 16px; letter-spacing: .05em; } }

/* Navigation */
.posh-nav { display: flex; align-items: center; }
.posh-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; column-gap: 32px; row-gap: 8px; }
.posh-menu > li { position: relative; }
.posh-menu > li > a {
	position: relative; display: inline-block; padding: 10px 0; text-decoration: none;
	font-family: var(--posh-sans); font-size: 14px; font-weight: 500; color: var(--posh-ink); letter-spacing: .02em;
}
.posh-menu > li > a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 1px; background: var(--posh-merlot);
	transform: scaleX(0); transform-origin: left; transition: transform .3s var(--posh-ease);
}
.posh-menu > li > a:hover::after,
.posh-menu > li.current-menu-item > a::after,
.posh-menu > li:focus-within > a::after { transform: scaleX(1); }
.posh-menu > li.menu-item-has-children > a { padding-right: 16px; }
.posh-menu > li.menu-item-has-children > a::before {
	content: ""; position: absolute; right: 0; top: 50%; width: 6px; height: 6px; margin-top: -5px;
	border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg);
}
.posh-menu .sub-menu {
	position: absolute; top: 100%; left: -20px; min-width: 220px; list-style: none; margin: 0; padding: 14px 0;
	background: var(--posh-porc); border: 1px solid var(--posh-line); box-shadow: 0 24px 50px -30px rgba(34, 26, 29, .45);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s; z-index: 20;
}
.posh-menu li:hover > .sub-menu,
.posh-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.posh-menu .sub-menu a { display: block; padding: 7px 20px; font-size: 14px; color: var(--posh-text); text-decoration: none; }
.posh-menu .sub-menu a:hover { color: var(--posh-merlot); background: var(--posh-veil); }

.posh .posh-nav__toggle { display: none; background: none; border: 0; padding: 8px; margin-left: -8px; cursor: pointer; color: var(--posh-ink); }

@media (max-width: 1320px) { .posh-menu { column-gap: 22px; } .posh-menu > li > a { font-size: 13px; } }
@media (max-width: 1024px) {
	.posh-nav-bp-1024 .posh-nav__desktop, .posh-header--fallback .posh-nav__desktop { display: none; }
	.posh-nav-bp-1024 .posh-nav__toggle, .posh-header--fallback .posh-nav__toggle { display: inline-flex; }
}
@media (max-width: 767px) {
	.posh-nav-bp-767 .posh-nav__desktop { display: none; }
	.posh-nav-bp-767 .posh-nav__toggle { display: inline-flex; }
}

/* Drawers */
.posh-drawer { position: fixed; inset: 0; z-index: 9990; visibility: hidden; pointer-events: none; }
.posh-drawer.is-open { visibility: visible; pointer-events: auto; }
.posh-drawer__overlay { position: absolute; inset: 0; background: rgba(34, 26, 29, .45); opacity: 0; transition: opacity .3s; }
.posh-drawer.is-open .posh-drawer__overlay { opacity: 1; }
.posh-drawer__panel {
	position: absolute; top: 0; bottom: 0; width: min(420px, 92vw); background: var(--posh-porc);
	display: flex; flex-direction: column; overflow-y: auto; transition: transform .38s var(--posh-ease);
}
.posh-drawer--left .posh-drawer__panel { left: 0; transform: translateX(-102%); }
.posh-drawer--right .posh-drawer__panel { right: 0; transform: translateX(102%); }
.posh-drawer.is-open .posh-drawer__panel { transform: none; }
.posh-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 24px; border-bottom: 1px solid var(--posh-line); }
.posh-drawer__title { font-family: var(--posh-display); font-size: 30px; color: var(--posh-ink); }
.posh .posh-drawer__close { background: none; border: 0; padding: 6px; cursor: pointer; color: var(--posh-ink); }
.posh-drawer-menu { list-style: none; margin: 0; padding: 12px 24px 32px; }
.posh-drawer-menu > li { border-bottom: 1px solid var(--posh-line); }
.posh-drawer-menu a { display: block; padding: 14px 0; text-decoration: none; color: var(--posh-ink); font-family: var(--posh-display); font-size: 30px; line-height: 1.15; }
.posh-drawer-menu .sub-menu { list-style: none; margin: -6px 0 12px; padding: 0 0 0 2px; }
.posh-drawer-menu .sub-menu a { font-family: var(--posh-sans); font-size: 15px; padding: 6px 0; color: var(--posh-text); }
body.posh-lock { overflow: hidden; }

/* Header icons */
.posh-icons { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.posh .posh-icons__btn {
	position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
	background: none; border: 0; padding: 0; cursor: pointer; color: var(--posh-ink); text-decoration: none; transition: color .2s;
}
.posh-icons__btn svg { width: 20px; height: auto; }
.posh .posh-icons__btn:hover, .posh .posh-icons__btn:focus { color: var(--posh-merlot); background: none; }
.posh-count {
	position: absolute; top: 3px; right: 1px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px;
	background: var(--posh-merlot); color: #fff; font-size: 10px; font-weight: 500; line-height: 17px; text-align: center; font-family: var(--posh-sans);
}
.posh-count[hidden] { display: none; }
@media (max-width: 767px) {
	.posh-icons { gap: 0 !important; }
	.posh .posh-icons__btn { width: 36px; }
	.posh .posh-icons__account, .posh .posh-icons__wish { display: none; }
}
.posh-drawer-extra { list-style: none; margin: auto 0 0; padding: 20px 24px 32px; border-top: 1px solid var(--posh-line); }
.posh-drawer-extra a { display: flex; align-items: center; gap: 12px; padding: 8px 0; color: var(--posh-ink); text-decoration: none; font-size: 15px; }

/* Search overlay */
.posh-search { position: fixed; inset: 0; z-index: 9991; visibility: hidden; pointer-events: none; }
.posh-search.is-open { visibility: visible; pointer-events: auto; }
.posh-search__overlay { position: absolute; inset: 0; background: rgba(34, 26, 29, .45); opacity: 0; transition: opacity .3s; }
.posh-search.is-open .posh-search__overlay { opacity: 1; }
.posh-search__panel {
	position: absolute; top: 0; left: 0; right: 0; background: var(--posh-porc); padding: clamp(28px, 6vw, 64px) var(--posh-gutter);
	transform: translateY(-100%); transition: transform .38s var(--posh-ease);
}
.posh-search.is-open .posh-search__panel { transform: none; }
.posh-search__form { max-width: 820px; margin: 0 auto; display: flex; align-items: center; border-bottom: 1px solid var(--posh-ink); }
.posh-search__form input { flex: 1; border: 0; background: transparent; padding: 14px 0; font-family: var(--posh-display); font-size: clamp(26px, 3.6vw, 42px); color: var(--posh-ink); outline: none; }
.posh .posh-search__form button { background: none; border: 0; padding: 10px; cursor: pointer; color: var(--posh-ink); }
.posh .posh-search__close { position: absolute; top: 16px; right: 16px; background: none; border: 0; padding: 8px; cursor: pointer; color: var(--posh-ink); }

/* Announcement bar */
.posh-announce {
	position: relative; display: flex; align-items: center; justify-content: center; height: 36px; overflow: hidden;
	color: var(--posh-porc); font-family: var(--posh-sans);
}
.posh-announce__item,
.posh-announce__run span {
	font-size: 11.5px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; line-height: 1.2;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.posh-announce__track { position: relative; display: grid; align-items: center; justify-items: center; flex: 1; min-width: 0; height: 100%; }
.posh-announce__item { grid-area: 1 / 1; max-width: 100%; margin: 0; padding: 0 8px; opacity: 0; transform: translateY(5px); transition: opacity .45s, transform .45s var(--posh-ease); pointer-events: none; }
.posh-announce__item.is-active { opacity: 1; transform: none; pointer-events: auto; }
body .posh-announce a, body .posh-announce a:visited { color: inherit; text-decoration: none; }
body .posh-announce a:hover { text-decoration: underline; text-underline-offset: 3px; }
.posh .posh-announce__nav {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 100%;
	padding: 0; margin: 0; border: 0; background: none; color: inherit; opacity: .7; cursor: pointer; transition: opacity .2s;
}
.posh .posh-announce__nav:hover, .posh .posh-announce__nav:focus-visible { opacity: 1; background: none; color: inherit; }
.posh-announce--static .posh-announce__item { opacity: 1; transform: none; pointer-events: auto; }
.posh-announce--scroll { justify-content: flex-start; }
.posh-announce__run { display: flex; align-items: center; gap: 28px; padding-right: 28px; flex: 0 0 auto; animation: poshMarquee var(--posh-announce-speed, 40s) linear infinite; }
.posh-announce__run i { font-style: normal; font-size: 8px; opacity: .6; }
.posh-announce--scroll:hover .posh-announce__run { animation-play-state: paused; }
@keyframes poshMarquee { to { transform: translateX(-100%); } }
@media (max-width: 767px) {
	.posh-announce__item, .posh-announce__run span { font-size: 10px; letter-spacing: .06em; }
	.posh .posh-announce__nav { display: none; }
	.posh-announce__item { padding: 0 12px; }
}

/* "Edit header / footer" buttons, only visible while editing in Elementor */
.posh-site-header, .posh-site-footer { position: relative; }
.posh-edit-tpl {
	position: absolute; z-index: 9999; display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; background: #93003f; color: #fff !important; font: 500 12px/1.2 var(--posh-sans); letter-spacing: .02em;
	text-decoration: none !important; border-radius: 3px; box-shadow: 0 6px 18px -6px rgba(0,0,0,.45); opacity: .92;
}
.posh-edit-tpl:hover { opacity: 1; background: #6d002e; }
.posh-edit-tpl { right: auto; left: 16px; }
.posh-edit-tpl--header { bottom: -15px; }
.posh-edit-tpl--footer { top: -15px; }
.elementor-editor-active .posh-site-header:hover > .elementor,
.elementor-editor-active .posh-site-footer:hover > .elementor { outline: 2px dashed rgba(147, 0, 63, .55); outline-offset: -2px; }

/* ------------------------------------------------------------------ Hero widget */
.elementor-widget-posh-hero, .elementor-widget-posh-hero > .elementor-widget-container { width: 100%; }
.posh-hero {
	--posh-hero-panels: 3; --posh-hero-h: 88vh; --posh-hero-shade: .78;
	--posh-hero-align: left; --posh-hero-justify: flex-start; --posh-hero-mx: 0;
	position: relative; isolation: isolate; overflow: hidden; background: var(--posh-ink); color: var(--posh-porc);
	height: var(--posh-hero-h); min-height: 520px; max-height: 1100px;
}
.posh-hero__media { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--posh-hero-panels), minmax(0, 1fr)); gap: 3px; z-index: 0; }
.posh-hero__panel { position: relative; display: block; overflow: hidden; background: #2d2326; }
.posh-hero__panel.is-hidden { display: none; }
.posh-hero__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.posh-hero-zoom-yes .posh-hero__img { animation: poshHeroZoom 16s cubic-bezier(.2,.6,.3,1) both; }
@keyframes poshHeroZoom { from { transform: scale(1.09); } to { transform: scale(1); } }
.posh-hero__shade {
	position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(to top, rgba(26, 18, 21, var(--posh-hero-shade)) 0%, rgba(26, 18, 21, calc(var(--posh-hero-shade) * .72)) 30%, rgba(26, 18, 21, calc(var(--posh-hero-shade) * .3)) 52%, rgba(26, 18, 21, 0) 72%),
		linear-gradient(to bottom, rgba(26, 18, 21, calc(var(--posh-hero-shade) * .25)), rgba(26, 18, 21, 0) 22%);
}
@media (min-width: 768px) {
	/* Extra shade behind the text block so light photos never wash out the headline. */
	.posh-hero__shade::after {
		content: ""; position: absolute; inset: 0;
		background: radial-gradient(ellipse 70% 75% at var(--posh-hero-shade-x, 0%) 100%, rgba(26, 18, 21, calc(var(--posh-hero-shade) * .95)) 0%, rgba(26, 18, 21, calc(var(--posh-hero-shade) * .55)) 45%, rgba(26, 18, 21, 0) 78%);
	}
}
.posh-hero__inner {
	position: absolute; inset: 0; z-index: 2; pointer-events: none;
	display: flex; align-items: flex-end; justify-content: var(--posh-hero-justify);
	max-width: 1440px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 56px) clamp(36px, 6vh, 72px);
}
.posh-hero__content { pointer-events: auto; max-width: 760px; text-align: var(--posh-hero-align); margin-left: var(--posh-hero-mx); margin-right: var(--posh-hero-mx); }
.posh-hero .posh-hero__eyebrow {
	margin: 0 0 18px; font: 500 12px/1.3 var(--posh-sans); letter-spacing: .24em; text-transform: uppercase; color: var(--posh-rose);
}
.posh-hero .posh-hero__title {
	margin: 0; font-family: var(--posh-display); font-weight: 400; color: var(--posh-porc);
	font-size: clamp(44px, 7.4vw, 124px); line-height: .92; letter-spacing: -.012em; text-wrap: balance;
}
.posh-hero .posh-hero__title em { font-style: italic; color: var(--posh-rose); }
.posh-hero .posh-hero__text { margin: 22px 0 0; max-width: 32em; font: 300 16px/1.7 var(--posh-sans); color: rgba(251, 249, 248, .86); margin-left: var(--posh-hero-mx); margin-right: var(--posh-hero-mx); }
.posh-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; justify-content: var(--posh-hero-justify); }
.posh .posh-hero__btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 34px;
	font: 500 14px/1 var(--posh-sans); letter-spacing: .02em; text-decoration: none; border: 1px solid transparent; border-radius: 0;
	transition: background-color .25s, color .25s, border-color .25s;
}
.posh .posh-hero__btn--main { background: var(--posh-porc); color: var(--posh-ink); border-color: var(--posh-porc); }
.posh .posh-hero__btn--main:hover { background: var(--posh-merlot); color: #fff; border-color: var(--posh-merlot); }
.posh .posh-hero__btn--ghost { background: transparent; color: var(--posh-porc); border-color: rgba(251, 249, 248, .7); }
.posh .posh-hero__btn--ghost:hover { background: var(--posh-porc); color: var(--posh-ink); border-color: var(--posh-porc); }
.posh-hero__content > * { opacity: 0; transform: translateY(18px); animation: poshHeroIn .9s cubic-bezier(.2,.7,.2,1) forwards; }
.posh-hero__content > *:nth-child(2) { animation-delay: .12s; }
.posh-hero__content > *:nth-child(3) { animation-delay: .24s; }
.posh-hero__content > *:nth-child(4) { animation-delay: .36s; }
@keyframes poshHeroIn { to { opacity: 1; transform: none; } }
.elementor-editor-active .posh-hero__content > * { opacity: 1; transform: none; animation: none; }

/* One image at a time (phones, or when set to 1): crossfade */
.posh-hero.is-single .posh-hero__media { grid-template-columns: minmax(0, 1fr); gap: 0; }
.posh-hero.is-single .posh-hero__panel { grid-area: 1 / 1; opacity: 0; transition: opacity 1.2s ease; pointer-events: none; }
.posh-hero.is-single .posh-hero__panel.is-active { opacity: 1; pointer-events: auto; }
.posh-hero__dots { display: none; position: absolute; right: clamp(20px, 4vw, 56px); bottom: clamp(36px, 6vh, 72px); gap: 6px; pointer-events: auto; }
.posh-hero.is-single .posh-hero__dots { display: flex; }
.posh .posh-hero__dot { width: 26px; height: 18px; padding: 0; border: 0; background: none; cursor: pointer; display: flex; align-items: center; }
.posh .posh-hero__dot:hover, .posh .posh-hero__dot:focus { background: none; }
.posh-hero__dot span { display: block; width: 100%; height: 2px; background: rgba(251, 249, 248, .35); overflow: hidden; position: relative; }
.posh-hero__dot span::after { content: ""; position: absolute; inset: 0; background: var(--posh-porc); transform: scaleX(0); transform-origin: left; }
.posh-hero__dot.is-active span::after { animation: poshHeroDot var(--posh-hero-dur, 5s) linear forwards; }
.posh-hero.is-paused .posh-hero__dot.is-active span::after, .posh-hero[data-autoplay="0"] .posh-hero__dot.is-active span::after { animation: none; transform: scaleX(1); }
@keyframes poshHeroDot { to { transform: scaleX(1); } }

@media (max-width: 1024px) {
	.posh-hero { min-height: 480px; }
	.posh-hero__content { max-width: 620px; }
}
@media (max-width: 767px) {
	.posh-hero { min-height: 540px; height: var(--posh-hero-h, 86svh); }
	.posh-hero__media { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.posh-hero__panel { grid-area: 1 / 1; }
	.posh-hero__panel:not(.is-active) { opacity: 0; }
	.posh-hero__inner { padding: 0 20px 64px; }
	.posh-hero__dots { left: 20px; right: auto; bottom: 26px; }
	.posh-hero .posh-hero__eyebrow { font-size: 10.5px; letter-spacing: .2em; margin-bottom: 14px; }
	.posh-hero .posh-hero__text { font-size: 14.5px; margin-top: 16px; }
	.posh-hero__actions { margin-top: 22px; gap: 10px; }
	.posh .posh-hero__btn { min-height: 48px; padding: 0 22px; flex: 1 1 auto; }
	.posh-hero__shade { background: linear-gradient(to top, rgba(26, 18, 21, var(--posh-hero-shade)) 0%, rgba(26, 18, 21, calc(var(--posh-hero-shade) * .8)) 38%, rgba(26, 18, 21, calc(var(--posh-hero-shade) * .25)) 62%, rgba(26, 18, 21, 0) 78%); }
}
@media (prefers-reduced-motion: reduce) {
	.posh-hero__img, .posh-hero__content > * { animation: none !important; opacity: 1; transform: none; }
}

/* ------------------------------------------------------------------ Page sections */

.posh-hero-media > .elementor-widget-wrap { min-height: 86vh; }
.posh-hero .elementor-column.posh-hero-copy > .elementor-widget-wrap { max-width: 620px; margin-left: auto; }
@media (max-width: 1024px) {
	.posh-hero-media > .elementor-widget-wrap { min-height: 62vh; }
	.posh-hero .elementor-container { flex-wrap: wrap; }
}
@media (max-width: 767px) { .posh-hero-media > .elementor-widget-wrap { min-height: 58vh; } }

.posh-fill-img, .posh-fill-img .elementor-widget-container, .posh-fill-img img { height: 100%; }
.posh-fill-img img { object-fit: cover; width: 100%; min-height: 420px; }

/* Category tiles */
.posh-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.posh-tile { position: relative; display: block; text-decoration: none; color: inherit; }
.posh-tile__media { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5; background: var(--posh-veil); }
.posh-tile__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--posh-ease); }
.posh-tile:hover .posh-tile__media img { transform: scale(1.035); }
.posh-tile__text { display: flex; flex-direction: column; gap: 2px; }
.posh-tile__title { font-family: var(--posh-display); font-size: 32px; line-height: 1.05; color: var(--posh-ink); }
.posh-tile__sub { font-size: 13px; color: var(--posh-stone); }
.posh-tiles--over .posh-tile__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(34, 26, 29, 0) 45%, rgba(34, 26, 29, .55) 100%); }
.posh-tiles--over .posh-tile__text { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 24px; z-index: 1; }
.posh-tiles--over .posh-tile__title { color: #fff; }
.posh-tiles--over .posh-tile__sub { color: rgba(255, 255, 255, .82); }
.posh-tiles--below .posh-tile__text { padding-top: 14px; }
@media (max-width: 767px) {
	.posh-tile__title { font-size: 24px; }
	.posh-tiles--over .posh-tile__text { padding: 14px; }
	.posh-tile__sub { font-size: 12px; }
}

/* Countdown */
.posh-countdown { display: flex; flex-wrap: wrap; gap: 12px; }
.posh-countdown__unit { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 88px; padding: 18px 12px 14px; border: 1px solid var(--posh-line); }
.posh-countdown__num { font-family: var(--posh-display); font-size: 48px; line-height: 1; color: var(--posh-ink); font-variant-numeric: lining-nums tabular-nums; }
.posh-countdown__label { margin-top: 8px; font-size: 12px; line-height: 1; color: var(--posh-text); }
.posh-countdown--inline .posh-countdown__unit { border: 0; padding: 0 18px; min-width: 0; position: relative; }
.posh-countdown--inline .posh-countdown__unit + .posh-countdown__unit::before { content: ""; position: absolute; left: 0; top: 10%; bottom: 25%; width: 1px; background: currentColor; opacity: .25; }
.posh-countdown--inline .posh-countdown__unit:first-child { padding-left: 0; }
.posh-countdown[hidden], .posh-countdown.is-ended.is-hide { display: none; }
.posh-countdown__message { margin: 0; }
@media (max-width: 480px) {
	.posh-countdown__unit { min-width: 0; flex: 1; padding: 14px 6px 10px; }
	.posh-countdown__num { font-size: 30px; }
}

/* Newsletter */
.posh-news-wrap { display: flex; justify-content: center; }
.posh-news { width: 100%; max-width: 520px; }
.posh-news__row { display: flex; }
.posh-news input {
	flex: 1; min-width: 0; height: 54px; padding: 0 18px; border: 1px solid var(--posh-line-strong); border-right: 0;
	background: var(--posh-white); color: var(--posh-ink); border-radius: 0; outline: none;
}
.posh-news input:focus { border-color: var(--posh-ink); }
.posh .posh-news button {
	height: 54px; padding: 0 28px; border: 1px solid var(--posh-merlot); background: var(--posh-merlot); color: #fff;
	font-weight: 500; font-size: 14px; cursor: pointer; transition: background-color .25s, border-color .25s;
}
.posh .posh-news button:hover { background: var(--posh-ink); border-color: var(--posh-ink); }
.posh-news-stacked-yes .posh-news__row { flex-direction: column; gap: 10px; }
.posh-news-stacked-yes .posh-news input { border-right: 1px solid var(--posh-line-strong); }
.posh-news__note, .posh-news__msg { margin: 12px 0 0; font-size: 13px; color: var(--posh-stone); text-align: center; }
.posh-news__msg.is-error { color: #A12A2A; }
@media (max-width: 480px) {
	.posh-news__row { flex-direction: column; gap: 10px; }
	.posh-news input { border-right: 1px solid var(--posh-line-strong); }
}

/* Contact form */
.posh-form { display: grid; gap: 18px; }
.posh-form__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.posh-form__field { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.posh-form label { font-size: 13px; font-weight: 500; color: var(--posh-ink); }
.posh-form input, .posh-form textarea {
	width: 100%; padding: 13px 16px; border: 1px solid var(--posh-line-strong); background: var(--posh-white);
	color: var(--posh-ink); border-radius: 0; outline: none; transition: border-color .2s;
}
.posh-form input:focus, .posh-form textarea:focus { border-color: var(--posh-ink); }
.posh .posh-form button {
	padding: 16px 34px; background: var(--posh-merlot); color: #fff; border: 1px solid var(--posh-merlot);
	font-weight: 500; font-size: 14px; cursor: pointer; transition: background-color .25s, border-color .25s;
}
.posh .posh-form button:hover { background: var(--posh-ink); border-color: var(--posh-ink); }
.posh-form button[disabled], .posh-news button[disabled] { opacity: .6; cursor: wait; }
.posh-form__hp { position: absolute; left: -9999px; }
.posh-form__msg { margin: 0; font-size: 14px; color: var(--posh-merlot); }
.posh-form__msg.is-error { color: #A12A2A; }
@media (max-width: 600px) { .posh-form__row { grid-template-columns: minmax(0, 1fr); } }

/* Posts */
.posh-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; }
@media (max-width: 1024px) { .posh-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .posh-post-grid { grid-template-columns: minmax(0, 1fr); } }
.posh-post-card__media { display: block; overflow: hidden; aspect-ratio: 3 / 2; background: var(--posh-veil); margin-bottom: 18px; }
.posh-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--posh-ease); }
.posh-post-card:hover .posh-post-card__media img { transform: scale(1.03); }
.posh-post-card__placeholder { display: block; width: 100%; height: 100%; }
.posh-post-card__date { font-size: 13px; color: var(--posh-stone); }
.posh-post-card__title { font-size: 28px; line-height: 1.25; margin: 6px 0 8px; }
.posh-post-card__title a { color: var(--posh-ink); text-decoration: none; }
.posh-post-card__title a:hover { color: var(--posh-merlot); }
.posh-post-card__excerpt { margin: 0; }

.posh-pagination, .navigation.pagination { margin-top: 48px; }
.posh-pagination .page-numbers, .navigation.pagination .page-numbers {
	display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0 12px;
	margin-right: 6px; border: 1px solid var(--posh-line); color: var(--posh-ink); text-decoration: none; font-size: 14px;
}
.posh-pagination .page-numbers.current, .navigation.pagination .page-numbers.current { background: var(--posh-ink); color: #fff; border-color: var(--posh-ink); }

/* Page head (non-Elementor pages) */
.posh-page-head { background: var(--posh-veil); padding: clamp(48px, 7vw, 80px) 0 clamp(36px, 5vw, 56px); }
.posh-page-head__title { font-size: clamp(42px, 6vw, 64px); margin: 0; }
.posh-page-head__sub { margin: 10px 0 0; color: var(--posh-stone); max-width: 40em; }

/* Prose / policies */
.posh-prose-wrap { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(56px, 8vw, 104px); }
.posh-prose { max-width: 740px; font-size: 16px; line-height: 1.8; }
.posh-prose--narrow { margin: 0 auto; }
.posh-prose h2 { font-size: 34px; margin: 1.8em 0 .5em; }
.posh-prose h3 { font-size: 26px; margin: 1.6em 0 .4em; }
.posh-prose p { margin: 0 0 1.1em; }
.posh-prose ul, .posh-prose ol { padding-left: 1.2em; }
.posh-prose .posh-updated { font-size: 13px; color: var(--posh-stone); }
.posh-size-table { width: 100%; border-collapse: collapse; margin: 1em 0 1.5em; font-size: 15px; }
.posh-size-table th, .posh-size-table td { padding: 13px 14px; border-bottom: 1px solid var(--posh-line); text-align: left; }
.posh-size-table th { font-weight: 500; color: var(--posh-ink); background: var(--posh-veil); }
.posh-table-wrap { overflow-x: auto; }

/* Accordion */
.posh-accordion .elementor-accordion-item { border-left: 0 !important; border-right: 0 !important; }
.posh-accordion .elementor-accordion-item:first-child { border-top: 1px solid var(--posh-line) !important; }
.posh-accordion .elementor-tab-content { border-top: 0 !important; }
.posh-accordion .elementor-tab-title a { text-decoration: none; }

/* Article (single post) */
.posh-article__head { padding-top: clamp(48px, 7vw, 96px); text-align: center; }
.posh-article__meta { font-size: 13px; color: var(--posh-stone); margin: 0 0 12px; }
.posh-article__title { font-size: clamp(42px, 6vw, 72px); max-width: 16em; margin: 0 auto; }
.posh-article__media { margin-top: 40px; margin-bottom: 0; }
.posh-article__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.posh-article .posh-prose { margin: 0 auto; }
.post-navigation { max-width: 740px; margin: 56px auto 0; border-top: 1px solid var(--posh-line); padding-top: 24px; }
.post-navigation .nav-links { display: flex; justify-content: space-between; gap: 24px; }
.post-navigation a { text-decoration: none; color: var(--posh-ink); font-family: var(--posh-display); font-size: 24px; }
.post-navigation span { display: block; font-family: var(--posh-sans); font-size: 12px; color: var(--posh-stone); }

.posh-comments { max-width: 740px; margin: 56px auto 0; }

/* 404 fallback / empty states */
.posh-404 { text-align: center; padding: 120px var(--posh-gutter); }
.posh-404__title { font-size: clamp(48px, 7vw, 88px); }
.posh-empty { color: var(--posh-stone); }
.search-form { display: flex; max-width: 480px; margin: 24px auto; }
.search-form label { flex: 1; }
.search-form .search-field { width: 100%; height: 50px; padding: 0 16px; border: 1px solid var(--posh-line-strong); background: #fff; }
.search-form .search-submit { height: 50px; padding: 0 22px; border: 0; background: var(--posh-ink); color: #fff; cursor: pointer; }

/* Footer */
.posh .posh-footer-main a { color: inherit; text-decoration: none; }
.posh .posh-footer-main a:hover { color: #fff; }
.posh-footer-text p { margin: 0 0 1em; }
.posh-footer--fallback { background: var(--posh-ink); color: var(--posh-rose); padding: 48px 0; }
.posh-footer--fallback a { color: var(--posh-porc); }
.posh-footer__menu { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-wrap: wrap; gap: 20px; }

/* Toast */
.posh-toast {
	position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 16px); z-index: 99999;
	background: var(--posh-ink); color: #fff; padding: 12px 20px; font-size: 14px; opacity: 0;
	transition: opacity .25s, transform .25s var(--posh-ease); pointer-events: none;
}
.posh-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

/* Google map tint */
.posh-map iframe { filter: grayscale(.85) contrast(1.05); }

/* Elementor editor helpers */
.elementor-editor-active .posh-wishlist__empty[hidden] { display: block; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ==================================================================
 * Responsive safety net (2.2.4)
 * Nothing may be wider than the screen; long words wrap; type, padding
 * and spacing step down cleanly on tablet (≤1024px) and phone (≤767px).
 * ================================================================== */

html { overflow-x: clip; }
body.posh { overflow-x: clip; overflow-wrap: break-word; }
.posh h1, .posh h2, .posh h3, .posh h4, .posh h5, .posh h6,
.posh .elementor-heading-title, .posh p, .posh li, .posh dd, .posh td, .posh th, .posh label, .posh blockquote {
	overflow-wrap: break-word; word-wrap: break-word; min-width: 0;
}
.posh img, .posh video, .posh iframe, .posh embed, .posh object, .posh svg:not([width]) { max-width: 100%; }
.posh iframe, .posh video { height: auto; }
.posh .elementor-video-iframe, .posh .elementor-widget-google_maps iframe, .posh .posh-map iframe { height: 100%; }
.posh input, .posh select, .posh textarea, .posh button { max-width: 100%; }
.posh pre { white-space: pre-wrap; overflow-x: auto; }
.posh table { max-width: 100%; }
/* Flex and grid children may shrink below their content width. */
.posh .elementor-column, .posh .elementor-widget-wrap, .posh .e-con, .posh .e-con-inner, .posh .elementor-widget { min-width: 0; }

/* Tables in page content scroll sideways on their own instead of pushing the page. */
@media (max-width: 767px) {
	.posh .elementor-widget-text-editor table,
	.posh .posh-prose table:not(.posh-size-table),
	.posh .entry-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.posh-size-table { font-size: 13.5px; }
	.posh-size-table th, .posh-size-table td { padding: 10px 8px; }
}

/* Phones: 16px form text stops iPhone zooming in (and the page shifting sideways) on tap. */
@media (max-width: 767px) {
	.posh input[type="text"], .posh input[type="email"], .posh input[type="tel"], .posh input[type="number"],
	.posh input[type="password"], .posh input[type="search"], .posh input[type="url"], .posh input:not([type]),
	.posh select, .posh textarea { font-size: 16px !important; }
}

/* Type: headings outside Elementor widgets step down with the screen. */
@media (max-width: 1024px) {
	.posh-prose h2 { font-size: 30px; }
	.posh-post-card__title { font-size: 25px; }
}
@media (max-width: 767px) {
	body.posh { font-size: 15px; }
	body.posh .posh-page-head__title { font-size: clamp(34px, 9vw, 42px); line-height: 1.05; }
	body.posh .posh-article__title { font-size: clamp(34px, 9.5vw, 42px); line-height: 1.08; }
	body.posh .posh-404__title { font-size: clamp(40px, 11vw, 48px); }
	body.posh .posh-prose { font-size: 15.5px; }
	body.posh .posh-prose h2 { font-size: 26px; }
	body.posh .posh-prose h3 { font-size: 22px; }
	body.posh .posh-post-card__title { font-size: 23px; }
	.post-navigation .nav-links { flex-direction: column; }
	.post-navigation a { font-size: 20px; }
	.posh-404 { padding: 72px var(--posh-gutter); }
	.posh-countdown__num { font-size: 36px; }
}

/* Hero: headline fits narrow phones; buttons stack on very small screens. */
@media (max-width: 767px) {
	.posh-hero .posh-hero__title { font-size: clamp(38px, 11.5vw, 56px); line-height: .98; }
}
@media (max-width: 380px) {
	.posh-hero .posh-hero__title { font-size: 36px; }
	.posh-hero__actions { flex-direction: column; }
	.posh .posh-hero__btn { width: 100%; }
}

/* Category tiles: two across on phones stay readable. */
@media (max-width: 1024px) and (min-width: 768px) {
	.posh-tile__title { font-size: 27px; }
}
@media (max-width: 767px) {
	.posh-tiles { gap: 12px; }
	.posh-tile__title { font-size: 21px; line-height: 1.1; }
	.posh-tiles--over .posh-tile__text { padding: 12px 12px 14px; gap: 3px; }
	.posh-tiles--over .posh-tile__media::after { background: linear-gradient(180deg, rgba(34, 26, 29, 0) 35%, rgba(34, 26, 29, .72) 100%); }
	.posh-tile__sub { font-size: 11.5px; line-height: 1.35; }
}
@media (max-width: 380px) {
	.posh-tile__title { font-size: 19px; }
	.posh-tile__sub { display: none; }
}

/* Countdown: four boxes always share one row. */
@media (max-width: 480px) {
	.posh-countdown { gap: 8px; flex-wrap: nowrap; }
	.posh-countdown__num { font-size: 30px; }
	.posh-countdown__label { font-size: 11px; }
	.posh-countdown--inline .posh-countdown__unit { padding: 0 10px; }
}

/* Header: logo never pushes the icons off screen. */
@media (max-width: 767px) {
	.posh-header__row > * { min-width: 0; }
	.posh-logo, .posh-logo--text { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* Long button labels wrap instead of running off the screen. */
@media (max-width: 767px) {
	.posh .elementor-widget-button .elementor-button { white-space: normal; }
}

/* Newsletter: when the box and button stack, the box keeps its full height. */
.posh-news-stacked-yes .posh-news input { flex: 0 0 auto; width: 100%; }
.posh-news input { min-height: 54px; }
