/* =====================================================================
   Japan Luxury Lifestyle · v3 design for Kadence
   Every value comes from the approved prototype
   (00_source_design/Japan Luxury Lifestyle v3.dc.html).

   Structure
   01 Tokens            08 Featured residence   15 Single property
   02 Base + isolation  09 Property listings    16 Journal index
   03 Utilities         10 Property cards       17 Single article
   04 Buttons + links   11 Ad slots             18 Partner with Us
   05 Header            12 Consultation         19 Gravity Forms
   06 Mega menu         13 Home Journal         20 Accessibility
   07 Drawer + modal    14 Archive listings     21 Kadence overrides

   Convention: every selector starts with ".jll" (the class on each
   section root) so it outranks Kadence's content styles without
   !important.
   ===================================================================== */

/* 01 · TOKENS --------------------------------------------------------- */
:root {
	--jll-gold: #8C6A24;
	--jll-gold-hover: #725619;
	--jll-gold-dark: #D4B26A;
	--jll-ink: #1A1814;
	--jll-body: #3F3A33;
	--jll-article: #2C2823;
	--jll-muted: #5E584F;
	--jll-subtle: #8E887E;
	--jll-tab: #6B655B;
	--jll-line: #D9D3C8;
	--jll-line-light: #E3DDD2;
	--jll-line-input: #CFC8BB;
	--jll-white: #FFFFFF;
	--jll-beige: #F3EEE6;
	--jll-imgbg: #EDE8DF;
	--jll-black: #16181B;
	--jll-black-2: #24272B;
	--jll-dline: #34373B;
	--jll-dborder: #6B6E73;
	--jll-dmuted: #A39D92;
	--jll-dbody: #C9C3B8;
	--jll-light: #F5F2EC;
	--jll-overlay: rgba(22, 24, 27, .55);
	/* Gallery caption chip text. The prototype inherits ink (#1A1814) here,
	   which is unreadable on the dark chip; light text is used instead.
	   Set to #1A1814 to match the prototype literally. */
	--jll-chip-text: #F5F2EC;
	--jll-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
	--jll-sans: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--jll-pad: clamp(48px, 6vw, 72px);
	--jll-pad-top: clamp(32px, 5vw, 56px);
	--jll-sticky-top: 150px;
	--jll-stripes-light: repeating-linear-gradient(135deg, #DDD5C8 0 1px, #E7E1D6 1px 10px);
	--jll-stripes-dark: repeating-linear-gradient(135deg, #24272B 0 1px, #1D2023 1px 10px);
}

/* 02 · BASE + ISOLATION ---------------------------------------------- */
body.jll-site {
	background: var(--jll-white);
	color: var(--jll-ink);
	font-family: var(--jll-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
html.jll-lock { overflow: hidden; }

.jll {
	font-family: var(--jll-sans);
	font-size: 16px;
	line-height: normal;
	color: var(--jll-ink);
	letter-spacing: normal;
}
.jll,
.jll *,
.jll *::before,
.jll *::after { box-sizing: border-box; }

.jll h1, .jll h2, .jll h3, .jll h4, .jll h5, .jll h6,
.jll p, .jll ul, .jll ol, .jll li, .jll dl, .jll dt, .jll dd,
.jll figure, .jll blockquote, .jll table { margin: 0; }
.jll h1, .jll h2, .jll h3, .jll h4, .jll h5, .jll h6 {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	text-transform: none;
	padding: 0;
}
.jll img { max-width: 100%; height: auto; border: 0; }
.jll a { color: inherit; text-decoration: none; box-shadow: none; }
.jll a:hover { color: var(--jll-gold); }
.jll button {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
	cursor: pointer;
	text-shadow: none;
	min-height: 0;
	line-height: normal;
}
.jll input, .jll select, .jll textarea { font: inherit; color: inherit; }
.jll [hidden], .jll[hidden] { display: none !important; }

/* 03 · UTILITIES ------------------------------------------------------ */
.jll .jll-container {
	width: 100%;
	max-width: 1290px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}
.jll .jll-eyebrow {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--jll-gold);
	font-weight: 600;
}
.jll .jll-label-h2 {
	font-size: 13px;
	letter-spacing: .22em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--jll-light);
}
.jll .jll-display-sub {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(28px, 3vw, 40px);
	color: var(--jll-light);
}
.jll .jll-h2 {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(30px, 3.2vw, 44px);
	line-height: 1.08;
	letter-spacing: -.01em;
	color: var(--jll-ink);
}
.jll .jll-crumb {
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--jll-muted);
}
.jll .jll-crumb .jll-crumb__gold,
.jll .jll-crumb .jll-crumb__gold:hover { color: var(--jll-gold); }
.jll .jll-empty {
	padding: 48px 0;
	font-family: var(--jll-serif);
	font-size: 22px;
	color: var(--jll-muted);
}
.jll .jll-admin-note {
	padding: 12px 14px;
	border: 1px dashed var(--jll-gold);
	font-size: 13px;
	color: var(--jll-muted);
	background: var(--jll-white);
}
/* Image boxes: fixed ratio, cover. */
.jll .jll-pcard__media img,
.jll .jll-feature__media img,
.jll .jll-consult__media img,
.jll .jll-hlead__media img,
.jll .jll-hrow__thumb img,
.jll .jll-acard__media img,
.jll .jll-jlead__media img,
.jll .jll-mega__photo img,
.jll .jll-drawer__thumb img,
.jll .jll-phead__media img,
.jll .jll-opps__media img,
.jll .jll-amen__img img,
.jll .jll-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	max-width: none;
}

/* 04 · BUTTONS + LINKS ------------------------------------------------ */
.jll .jll-btnrow { display: flex; gap: 12px; flex-wrap: wrap; }
.jll .jll-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 26px;
	font-family: var(--jll-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: normal;
	text-align: center;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.jll .jll-btn--primary,
.jll .jll-btn--primary:hover,
.jll .jll-btn--primary:focus { color: var(--jll-white); }
.jll .jll-btn--primary { background: var(--jll-gold); }
.jll .jll-btn--primary:hover { background: var(--jll-gold-hover); }
.jll .jll-btn--secondary {
	background: transparent;
	color: var(--jll-ink);
	border: 1px solid var(--jll-ink);
}
.jll .jll-btn--secondary:hover { background: var(--jll-ink); color: var(--jll-white); }
.jll .jll-btn--header { padding: 12px 20px; flex: none; }
.jll .jll-btn--block { width: 100%; padding: 16px; }
.jll .jll-btn--dark-outline,
.jll .jll-btn--dark-outline:hover {
	background: transparent;
	color: var(--jll-light);
	border: 1px solid var(--jll-dborder);
	padding: 14px;
}
.jll .jll-textlink {
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
	border-bottom: 1px solid var(--jll-ink);
	padding-bottom: 2px;
}
.jll .jll-textlink--light,
.jll .jll-textlink--light:hover {
	color: var(--jll-light);
	border-bottom-color: var(--jll-light);
}

/* 05 · HEADER --------------------------------------------------------- */
.jll.jll-header {
	position: sticky;
	top: 0;
	z-index: 30;
	background: var(--jll-white);
	border-bottom: 1px solid var(--jll-line-light);
}
body.admin-bar .jll.jll-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .jll.jll-header { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .jll.jll-header { top: 0; } }
.jll.jll-header--part { position: static; border: 0; width: 100%; }

.jll .jll-header__top {
	border-bottom: 1px solid var(--jll-line-light);
	font-size: 12px;
	letter-spacing: .04em;
	color: var(--jll-muted);
}
.jll .jll-header__top-inner {
	max-width: 1290px;
	margin: 0 auto;
	padding: 8px 24px;
	display: flex;
	justify-content: flex-end;
	gap: 18px;
	flex-wrap: wrap;
}
.jll .jll-header__main-inner {
	max-width: 1290px;
	margin: 0 auto;
	padding: 14px 24px;
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
	position: relative;
}
.jll .jll-header__logo { display: block; width: 220px; height: 52px; flex: none; }
.jll .jll-header__logo img { width: 220px; height: auto; display: block; max-width: none; }
.jll .jll-header__nav {
	display: flex;
	align-items: center;
	gap: 22px;
	flex-wrap: wrap;
	flex: 1;
	justify-content: center;
}
.jll .jll-header__listings,
.jll .jll-header__listings:hover {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--jll-black);
	color: var(--jll-light);
	padding: 11px 18px;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 600;
}
.jll .jll-header__chev { font-size: 9px; }
.jll .jll-header__divider { width: 1px; height: 22px; background: var(--jll-line-input); }
.jll .jll-header__link { font-size: 14px; }

.jll .jll-header__mobile {
	display: none;
	padding: 12px 20px;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.jll .jll-header__mlogo { display: block; width: 160px; flex: none; }
.jll .jll-header__mlogo img { width: 160px; height: auto; display: block; max-width: none; }
.jll .jll-header__mactions { display: flex; align-items: center; gap: 8px; }
.jll .jll-header__mlistings,
.jll .jll-header__mlistings:hover {
	background: var(--jll-black);
	color: var(--jll-light);
	padding: 0 14px;
	height: 44px;
	display: flex;
	align-items: center;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 600;
}
.jll .jll-header__toggle {
	width: 44px;
	height: 44px;
	border: 1px solid var(--jll-line-input);
	background: var(--jll-white);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 0;
}
.jll .jll-header__toggle span { display: block; width: 18px; height: 1.5px; background: var(--jll-ink); }

@media (max-width: 1023px) {
	.jll .jll-header__top,
	.jll .jll-header__main { display: none; }
	.jll .jll-header__mobile { display: flex; }
}

/* 06 · MEGA MENU ------------------------------------------------------ */
.jll .jll-mega {
	position: absolute;
	top: 100%;
	left: 24px;
	right: 24px;
	z-index: 40;
	display: flex;
	justify-content: center;
}
.jll .jll-mega__panel {
	width: 100%;
	max-width: 960px;
	background: var(--jll-black);
	color: #EDE8DF;
	padding: 24px;
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 28px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, .25);
}
.jll .jll-mega__list { display: flex; flex-direction: column; }
.jll .jll-mega__eyebrow {
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--jll-dmuted);
	padding-bottom: 10px;
	border-bottom: 1px solid var(--jll-dline);
}
.jll .jll-mega__row,
.jll .jll-mega__row:hover {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 0 12px 12px;
	border-bottom: 1px solid var(--jll-dline);
	border-left: 2px solid transparent;
	color: var(--jll-dbody);
}
.jll .jll-mega__row.is-active,
.jll .jll-mega__row.is-active:hover { border-left-color: var(--jll-gold-dark); color: var(--jll-white); }
.jll .jll-mega__meta {
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--jll-gold-dark);
}
.jll .jll-mega__title { font-family: var(--jll-serif); font-size: 16px; line-height: 1.3; }
.jll .jll-mega__all,
.jll .jll-mega__all:hover {
	padding-top: 14px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--jll-light);
}
.jll .jll-mega__feature,
.jll .jll-mega__feature:hover { display: flex; flex-direction: column; gap: 10px; color: #EDE8DF; }
.jll .jll-mega__photo {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--jll-black-2);
	position: relative;
}
.jll .jll-mega__facts { font-size: 13px; color: var(--jll-dmuted); }

/* 07 · DRAWER + MODAL ------------------------------------------------- */
.jll.jll-drawer,
.jll.jll-modal {
	position: fixed;
	inset: 0;
	display: flex;
	justify-content: flex-end;
}
.jll.jll-drawer { z-index: 99990; }
.jll.jll-modal { z-index: 99995; }
.jll .jll-drawer__overlay,
.jll .jll-modal__overlay { position: absolute; inset: 0; background: var(--jll-overlay); }

.jll .jll-drawer__panel {
	position: relative;
	width: min(400px, 100%);
	height: 100%;
	overflow-y: auto;
	background: var(--jll-white);
	display: flex;
	flex-direction: column;
}
.jll .jll-drawer__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 20px;
	border-bottom: 1px solid var(--jll-line-light);
}
.jll .jll-drawer__head img { width: 140px; height: auto; display: block; }
.jll .jll-drawer__close,
.jll .jll-modal__close { width: 44px; height: 44px; font-size: 22px; display: flex; align-items: center; justify-content: center; }
.jll .jll-drawer__listings {
	background: var(--jll-black);
	color: var(--jll-light);
	padding: 24px 20px;
	display: flex;
	flex-direction: column;
}
.jll .jll-drawer__eyebrow {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--jll-dmuted);
	padding-bottom: 6px;
}
.jll .jll-drawer__eyebrow--light { color: var(--jll-muted); }
.jll .jll-drawer__row,
.jll .jll-drawer__row:hover {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid var(--jll-dline);
	color: var(--jll-light);
}
.jll .jll-drawer__thumb { display: block; aspect-ratio: 1; overflow: hidden; background: var(--jll-black-2); }
.jll .jll-drawer__text { display: flex; flex-direction: column; gap: 4px; }
.jll .jll-drawer__meta { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--jll-gold-dark); }
.jll .jll-drawer__title { font-family: var(--jll-serif); font-size: 16px; line-height: 1.3; }
.jll .jll-drawer__all,
.jll .jll-drawer__all:hover {
	padding-top: 16px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--jll-light);
}
.jll .jll-drawer__journal { padding: 24px 20px; display: flex; flex-direction: column; }
.jll .jll-drawer__link {
	padding: 14px 0;
	border-bottom: 1px solid var(--jll-line-light);
	font-family: var(--jll-serif);
	font-size: 20px;
}
.jll .jll-drawer__foot {
	padding: 0 20px 28px;
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.jll .jll-drawer__small { display: flex; gap: 20px; font-size: 13px; color: var(--jll-muted); }

.jll .jll-modal__panel {
	position: relative;
	width: min(520px, 100%);
	height: 100%;
	overflow-y: auto;
	background: var(--jll-white);
	padding: 40px clamp(20px, 5vw, 36px);
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.jll .jll-modal__close { position: absolute; top: 16px; right: 16px; }
.jll .jll-modal__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: 36px;
	line-height: 1.08;
}
.jll .jll-modal__chip {
	display: flex;
	gap: 14px;
	align-items: center;
	border: 1px solid var(--jll-line);
	padding: 10px;
}
.jll .jll-modal__chip img { width: 72px; height: 54px; object-fit: cover; display: block; flex: none; }
.jll .jll-modal__chip span { font-size: 14px; line-height: 1.4; }
.jll .jll-modal__note { font-size: 12px; color: var(--jll-muted); text-align: center; margin-top: 18px; }
.jll .jll-modal__intro { font-size: 15px; line-height: 1.6; color: var(--jll-body); margin: 0 0 12px; }
.jll .jll-modal__form.is-sent .jll-modal__note { display: none; }

/* 08 · FEATURED RESIDENCE (Home) ------------------------------------- */
.jll.jll-feature { background: var(--jll-white); color: var(--jll-ink); position: relative; }
.jll .jll-feature__grid {
	padding-top: var(--jll-pad-top);
	padding-bottom: var(--jll-pad);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 48px;
	align-items: center;
}
.jll .jll-feature__media { grid-column: span 1; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--jll-imgbg); }
.jll .jll-feature__body { display: flex; flex-direction: column; gap: 22px; }
.jll .jll-feature__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(34px, 3.6vw, 52px);
	line-height: 1.06;
	letter-spacing: -.015em;
	text-wrap: balance;
	color: var(--jll-ink);
}
.jll .jll-feature__intro { font-size: 16px; line-height: 1.65; color: var(--jll-body); max-width: 52ch; }
.jll .jll-feature__facts { font-size: 13px; color: var(--jll-muted); letter-spacing: .04em; }
.jll.jll-feature .jll-btnrow { padding-top: 6px; }

/* 09 · PROPERTY LISTINGS (Home, black) -------------------------------- */
.jll.jll-listings { background: var(--jll-black); color: #EDE8DF; position: relative; }
.jll .jll-listings__inner {
	padding-top: var(--jll-pad);
	padding-bottom: var(--jll-pad);
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.jll .jll-listings__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	flex-wrap: wrap;
}
.jll .jll-listings__titles { display: flex; flex-direction: column; gap: 8px; }
.jll .jll-listings__tools { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.jll .jll-listings__tools .jll-textlink { margin-left: 12px; }

.jll .jll-chips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.jll .jll-chip,
.jll .jll-chip:hover,
.jll .jll-chip:focus {
	border: 1px solid var(--jll-dborder);
	padding: 8px 16px;
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 400;
	cursor: pointer;
	background: transparent;
	color: #EDE8DF;
}
.jll .jll-chip.is-active,
.jll .jll-chip.is-active:hover { background: var(--jll-light); color: var(--jll-black); }

/* 10 · PROPERTY CARDS ------------------------------------------------- */
.jll .jll-pgrid { display: grid; }
.jll .jll-pgrid--compact { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 40px 24px; }
.jll .jll-pgrid--large { grid-template-columns: repeat(auto-fill, minmax(min(100%, 400px), 1fr)); gap: 56px 32px; }
.jll .jll-pgrid--promo { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 24px; }

/* One link per card: image, location, title. */
.jll .jll-pcard { display: flex; flex-direction: column; gap: 12px; color: var(--jll-light); text-decoration: none; }
.jll .jll-pcard__media {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--jll-black-2);
	position: relative;
}
.jll .jll-pcard__media img { transition: transform .5s ease, opacity .25s ease; }
.jll .jll-pcard__meta {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--jll-gold-dark);
	font-weight: 600;
}
.jll .jll-pcard__title {
	font-family: var(--jll-serif);
	font-weight: 400;
	font-size: 21px;
	line-height: 1.24;
	color: var(--jll-light);
	text-wrap: pretty;
	margin: 0;
	transition: color .15s ease;
}
.jll .jll-pcard:hover .jll-pcard__title { color: var(--jll-gold-dark); }
.jll .jll-pcard:hover .jll-pcard__media img { transform: scale(1.02); opacity: .92; }
.jll .jll-pcard:focus-visible { outline: 2px solid var(--jll-gold-dark); outline-offset: 6px; }
@media (prefers-reduced-motion: reduce) { .jll .jll-pcard__media img { transition: none; } .jll .jll-pcard:hover .jll-pcard__media img { transform: none; } }
/* Large (archive) */
.jll .jll-pcard--large .jll-pcard__title { font-size: 26px; line-height: 1.2; }
/* Promo (article band) */
.jll .jll-pcard--promo { gap: 10px; }
.jll .jll-pcard--promo .jll-pcard__title { font-size: 19px; line-height: 1.25; }

/* 11 · ADVERTISING ---------------------------------------------------- */
/* Creatives keep their own proportions (600 × 500 = 6:5, or any other size):
   width scales, height follows; never cropped or stretched. Layout responds to the
   placement's own width (container queries). */
.jll.jll-adsec { background: var(--jll-white); position: relative; }
.jll .jll-adsec__inner { padding-top: 24px; padding-bottom: 24px; display: flex; flex-direction: column; align-items: center; }
.jll .jll-ad {
	container: jllad / inline-size;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: 100%;
	position: relative;
}
.jll .jll-ad__label {
	font-family: var(--jll-sans);
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--jll-subtle);
	line-height: normal;
}
.jll .jll-ad__items { display: grid; grid-template-columns: minmax(0, var(--jll-ad-max, 440px)); gap: 16px; justify-content: center; width: 100%; }
.jll .jll-ad__item { min-width: 0; }
.jll .jll-ad__creative { display: block; width: 100%; position: relative; }
.jll .jll-ad__creative img { display: block; width: 100%; height: auto; max-width: 100%; object-fit: contain; border: 0; }
.jll .jll-ad__code { overflow: hidden; display: flex; justify-content: center; }
.jll .jll-ad__code > * { max-width: 100%; }
.jll .jll-ad__img--mobile { display: none; }

/* Wide areas (home, listings, Journal): secondary to the photography, so 320 px max each
   (a 600 × 500 creative shows at 320 × 267); two side by side or one, centred. */
.jll .jll-ad--wide { --jll-ad-max: 320px; }
@container jllad (min-width: 640px) {
	.jll .jll-ad--wide.jll-ad--n2 .jll-ad__items { grid-template-columns: repeat(2, minmax(0, var(--jll-ad-max))); gap: 28px; }
}
@container jllad (max-width: 639px) {
	.jll .jll-ad--wide { --jll-ad-max: 360px; }
	.jll .jll-ad__img--mobile { display: block; }
	.jll .jll-ad__img--desktop { display: none; }
}

/* Inside articles: framed by hairlines; two side by side in the text column, one on phones.
   320 px max keeps creative text legible at reading distance (see the rc10 notes). */
.jll .jll-ad--inline { --jll-ad-max: 320px; margin: 14px 0; padding: 18px 0; border-top: 1px solid var(--jll-line-light); border-bottom: 1px solid var(--jll-line-light); }
@container jllad (min-width: 560px) {
	.jll .jll-ad--inline.jll-ad--n2 .jll-ad__items { grid-template-columns: repeat(2, minmax(0, var(--jll-ad-max))); gap: 20px; }
}
@container jllad (max-width: 559px) {
	.jll .jll-ad--inline { --jll-ad-max: 340px; }
	.jll .jll-ad--inline .jll-ad__items { gap: 16px; }
}

/* Sidebar: stacked, full sidebar width (like the newsletter panel above). */
.jll .jll-ad--stack { --jll-ad-max: 100%; padding-top: 24px; align-items: stretch; }
.jll .jll-ad--stack .jll-ad__label { align-self: flex-start; }
.jll .jll-ad--stack .jll-ad__items { justify-content: start; }

/* Dark band (property listings page). */
.jll .jll-ad--dark { padding-top: 20px; border-top: 1px solid var(--jll-dline); }
.jll .jll-ad--dark .jll-ad__label { color: var(--jll-dmuted); }

.jll .jll-ad__placeholder {
	aspect-ratio: 6 / 5;
	background: var(--jll-stripes-light);
	display: flex;
	align-items: flex-end;
	padding: 12px;
	font-family: ui-monospace, Menlo, monospace;
	font-size: 11px;
	color: var(--jll-muted);
}
.jll .jll-ad--dark .jll-ad__placeholder { background: var(--jll-stripes-dark); color: var(--jll-dmuted); }

/* 12 · PRIVATE CONSULTATION (Home) ------------------------------------ */
.jll.jll-consult { background: var(--jll-beige); position: relative; }
.jll .jll-consult__grid {
	padding-top: var(--jll-pad);
	padding-bottom: var(--jll-pad);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	gap: 56px;
	align-items: center;
}
.jll .jll-consult__media { aspect-ratio: 5 / 4; width: 100%; overflow: hidden; background: var(--jll-imgbg); }
.jll .jll-consult__media--empty { background: var(--jll-stripes-light); }
.jll .jll-consult__media--empty img { display: none; }
.jll .jll-consult__body { display: flex; flex-direction: column; gap: 22px; }
.jll .jll-consult__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(32px, 3.4vw, 48px);
	line-height: 1.08;
	letter-spacing: -.01em;
	text-wrap: balance;
}
.jll .jll-consult__text { font-size: 16px; line-height: 1.65; color: var(--jll-body); max-width: 54ch; }
.jll.jll-consult .jll-btnrow { gap: 16px; align-items: center; }
.jll .jll-intents { display: flex; flex-direction: column; border-top: 1px solid var(--jll-line-input); }
.jll .jll-intent {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	background: none;
	border: none;
	border-bottom: 1px solid var(--jll-line-input);
	padding: 16px 0;
	cursor: pointer;
	text-align: left;
	font-family: var(--jll-serif);
	font-size: 21px;
	color: var(--jll-ink);
	text-transform: none;
	letter-spacing: normal;
	transition: color .15s ease;
}
.jll .jll-intent:hover { color: var(--jll-gold); background: none; }
.jll .jll-intent__arrow { font-family: var(--jll-sans); font-size: 18px; color: var(--jll-gold); }

/* 13 · HOME JOURNAL (tabs) -------------------------------------------- */
.jll.jll-journal-home { background: var(--jll-white); position: relative; }
.jll .jll-journal-home__inner {
	padding-top: var(--jll-pad);
	padding-bottom: var(--jll-pad);
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.jll .jll-jtabs { display: flex; flex-direction: column; gap: 32px; }
.jll .jll-jtabs__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--jll-ink);
	padding-bottom: 16px;
}
.jll .jll-jtabs__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(34px, 3.6vw, 50px);
	letter-spacing: -.01em;
}
.jll .jll-jtabs__list { display: flex; gap: 26px; flex-wrap: wrap; }
.jll .jll-jtabs__tab,
.jll .jll-jtabs__tab:hover {
	background: none;
	border: none;
	border-bottom: 1px solid transparent;
	padding: 0 0 4px;
	cursor: pointer;
	font-size: 14px;
	color: var(--jll-tab);
	text-transform: none;
	letter-spacing: normal;
}
.jll .jll-jtabs__tab.is-active { color: var(--jll-ink); border-bottom-color: var(--jll-ink); }
.jll .jll-jtabs__panel { display: flex; flex-direction: column; gap: 32px; }
.jll .jll-jtabs__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 48px;
}
.jll .jll-jtabs__rows { display: flex; flex-direction: column; }
.jll .jll-jtabs__more { display: flex; justify-content: flex-end; }
.jll .jll-jtabs__empty { padding: 48px 0; font-family: var(--jll-serif); font-size: 22px; color: var(--jll-muted); }

.jll .jll-hlead { display: flex; flex-direction: column; gap: 16px; }
.jll .jll-hlead__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--jll-imgbg); }
.jll .jll-hlead__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(28px, 2.6vw, 38px);
	line-height: 1.1;
	letter-spacing: -.01em;
	text-wrap: balance;
}
.jll .jll-hlead__dek {
	font-family: var(--jll-serif);
	font-size: 18px;
	line-height: 1.5;
	color: var(--jll-body);
	text-wrap: pretty;
}
.jll .jll-hrow {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 120px;
	gap: 24px;
	padding: 22px 0;
	border-bottom: 1px solid var(--jll-line);
}
.jll .jll-hrow__text { display: flex; flex-direction: column; gap: 8px; }
.jll .jll-hrow__title { font-family: var(--jll-serif); font-size: 21px; line-height: 1.22; text-wrap: pretty; }
.jll .jll-hrow__thumb { aspect-ratio: 1; overflow: hidden; background: var(--jll-imgbg); display: block; }

/* Shared article card bits */
.jll .jll-acard__cat { font-size: 13px; font-family: var(--jll-serif); color: var(--jll-gold); }
.jll .jll-acard__date { font-size: 12px; color: var(--jll-muted); }

/* 14 · PROPERTY LISTINGS ARCHIVE -------------------------------------- */
.jll.jll-plist { background: var(--jll-black); color: #EDE8DF; position: relative; }
.jll .jll-plist__inner {
	padding-top: 48px;
	padding-bottom: 96px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}
.jll .jll-plist__head { display: flex; flex-direction: column; gap: 12px; max-width: 760px; }
.jll.jll-plist .jll-crumb { color: var(--jll-dmuted); }
.jll .jll-plist__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(40px, 5vw, 68px);
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--jll-light);
}
.jll .jll-plist__intro { font-size: 16px; line-height: 1.65; color: var(--jll-dbody); }
.jll .jll-plist__filter {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
	border-top: 1px solid var(--jll-dline);
	border-bottom: 1px solid var(--jll-dline);
	padding: 16px 0;
}
.jll .jll-count { margin-left: auto; font-size: 13px; color: var(--jll-dmuted); }

/* 15 · SINGLE PROPERTY ------------------------------------------------ */
.jll.jll-property { background: var(--jll-white); }
.jll .jll-phero { background: var(--jll-white); color: var(--jll-ink); position: relative; }
.jll .jll-phero__inner { padding-top: 24px; padding-bottom: 40px; display: flex; flex-direction: column; gap: 16px; }

.jll .jll-gallery { display: flex; flex-direction: column; gap: 16px; }
.jll .jll-gallery__stage {
	position: relative;
	aspect-ratio: 16 / 8;
	background: var(--jll-black-2);
	overflow: hidden;
}
@media (max-width: 767px) { .jll .jll-gallery__stage { aspect-ratio: 4 / 3; } }
.jll .jll-gallery__img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
.jll .jll-gallery__nav,
.jll .jll-gallery__nav:hover {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: none;
	background: var(--jll-light);
	color: var(--jll-ink);
	cursor: pointer;
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jll .jll-gallery__nav--prev { left: 16px; }
.jll .jll-gallery__nav--next { right: 16px; }
.jll .jll-gallery__caption {
	position: absolute;
	right: 16px;
	bottom: 16px;
	background: rgba(22, 24, 27, .75);
	padding: 6px 10px;
	font-size: 12px;
	letter-spacing: .12em;
	color: var(--jll-chip-text);
}
.jll .jll-gallery__thumbs { display: flex; gap: 8px; overflow-x: auto; }
.jll .jll-gallery__thumb {
	flex: 0 0 clamp(88px, 11.6%, 152px);
	padding: 0;
	border: none;
	cursor: pointer;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	opacity: .5;
	background: var(--jll-black-2);
	transition: opacity .15s ease;
}
.jll .jll-gallery__thumb.is-active { opacity: 1; }

.jll .jll-phero__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 32px;
	flex-wrap: wrap;
	padding-top: 20px;
}
.jll .jll-phero__text { display: flex; flex-direction: column; gap: 14px; max-width: 820px; }
.jll .jll-phero__tags { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.jll .jll-badge {
	border: 1px solid var(--jll-ink);
	padding: 4px 10px;
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 600;
}
.jll .jll-phero__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(32px, 3.6vw, 50px);
	line-height: 1.08;
	letter-spacing: -.015em;
	text-wrap: balance;
	color: var(--jll-ink);
}
.jll .jll-phero__facts { font-size: 14px; color: var(--jll-muted); }

.jll .jll-plyt {
	padding-top: 56px;
	display: flex;
	flex-wrap: wrap;
	gap: 56px;
	align-items: flex-start;
	position: relative;
}
.jll .jll-plyt__main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 40px; }
.jll .jll-plyt__aside {
	flex: 1 1 320px;
	position: sticky;
	top: var(--jll-sticky-top);
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.jll .jll-pdesc {
	font-family: var(--jll-serif);
	font-size: 19px;
	line-height: 1.65;
	color: var(--jll-article);
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 68ch;
}
.jll .jll-pdesc > p:first-child { font-size: 23px; line-height: 1.5; color: var(--jll-ink); }
.jll .jll-pdesc h2,
.jll .jll-pdesc h3 { font-family: var(--jll-sans); font-weight: 600; font-size: 19px; line-height: 1.4; color: var(--jll-ink); }
.jll .jll-pdesc ul:not(:where(.wp-block-kadence-advancedgallery, .splide) *),
.jll .jll-pdesc ol:not(:where(.wp-block-kadence-advancedgallery, .splide) *) { padding-left: 1.2em; }

.jll .jll-psec { display: flex; flex-direction: column; gap: 16px; }
.jll .jll-psec__title {
	font-family: var(--jll-sans);
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-weight: 600;
	border-bottom: 1px solid var(--jll-ink);
	padding-bottom: 12px;
	color: var(--jll-ink);
}
/* Space between the property content / sidebar and the newsletter band below. */
.jll .jll-plyt { padding-bottom: clamp(64px, 7vw, 104px); }
@media (max-width: 1023px) { .jll .jll-plyt { padding-bottom: 40px; } }
.jll .jll-pdesc--cont > p:first-child { font-size: 19px; line-height: 1.65; color: var(--jll-article); }

/* Overview (acf/features): bullet intro + label / value rows */
.jll .jll-ov__intro { font-size: 16px; line-height: 1.6; color: var(--jll-body); max-width: 68ch; }
.jll .jll-ov__intro p { margin: 0 0 10px; }
.jll .jll-ov__intro p:last-child { margin-bottom: 0; }
.jll .jll-ov__intro ul,
.jll .jll-ov__intro ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.jll .jll-ov__intro li { position: relative; padding-left: 20px; }
.jll .jll-ov__intro li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .62em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--jll-gold);
}
.jll .jll-ov { margin: 0; display: flex; flex-direction: column; }
.jll .jll-ov__intro + .jll-ov { margin-top: 8px; border-top: 1px solid var(--jll-line); }
.jll .jll-ov__row {
	display: grid;
	grid-template-columns: minmax(140px, 200px) minmax(0, 1fr);
	gap: 24px;
	padding: 14px 0;
	border-bottom: 1px solid var(--jll-line);
}
.jll .jll-ov__label {
	font-size: 11px;
	line-height: 1.6;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--jll-ink);
	padding-top: 2px;
}
.jll .jll-ov__value { margin: 0; font-size: 15px; line-height: 1.6; color: var(--jll-body); }
.jll .jll-ov__value p { margin: 0 0 6px; }
.jll .jll-ov__value p:last-child { margin-bottom: 0; }
.jll .jll-ov__value strong,
.jll .jll-ov__value b { color: var(--jll-ink); font-weight: 600; }
@media (max-width: 600px) {
	.jll .jll-ov__row { grid-template-columns: 1fr; gap: 4px; }
}

/* Amenities carousel (acf/amenities) */
.jll .jll-acar { position: relative; }
.jll .jll-acar__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.jll .jll-acar__track::-webkit-scrollbar { display: none; }
.jll .jll-acar__track:focus-visible { outline: 2px solid var(--jll-gold); outline-offset: 2px; }
.jll .jll-acar__slide {
	flex: 0 0 100%;
	min-width: 0;
	margin: 0;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.jll .jll-acar__img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--jll-imgbg); }
.jll .jll-acar__img img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; }
.jll .jll-acar__cap { display: flex; flex-direction: column; gap: 4px; }
.jll .jll-acar__title { font-family: var(--jll-serif); font-size: 20px; line-height: 1.3; color: var(--jll-ink); }
.jll .jll-acar__text { font-size: 14px; line-height: 1.55; color: var(--jll-muted); }
.jll .jll-acar__ui {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	aspect-ratio: 16 / 9;
	pointer-events: none;
}
.jll .jll-acar__nav,
.jll .jll-acar__nav:hover,
.jll .jll-acar__nav:focus {
	pointer-events: auto;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 50%;
	border: none;
	box-shadow: none;
	background: var(--jll-light);
	color: var(--jll-ink);
	cursor: pointer;
	font-size: 17px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: flex;
	align-items: center;
	justify-content: center;
}
.jll .jll-acar__nav--prev { left: 16px; }
.jll .jll-acar__nav--next { right: 16px; }
.jll .jll-acar__count {
	position: absolute;
	right: 16px;
	bottom: 16px;
	background: rgba(22, 24, 27, .75);
	padding: 6px 10px;
	font-size: 12px;
	letter-spacing: .12em;
	color: var(--jll-chip-text);
}
@media (max-width: 600px) {
	.jll .jll-acar__img,
	.jll .jll-acar__ui { aspect-ratio: 4 / 3; }
	.jll .jll-acar__nav,
	.jll .jll-acar__nav:hover,
	.jll .jll-acar__nav:focus { width: 38px; height: 38px; }
	.jll .jll-acar__nav--prev { left: 10px; }
	.jll .jll-acar__nav--next { right: 10px; }
}

/* Available units (acf/unit): cards with floorplan thumbnail, specs and price */
.jll .jll-units-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.jll .jll-unit { display: flex; flex-direction: column; border: 1px solid var(--jll-line); background: var(--jll-white); min-width: 0; }
.jll .jll-unit__plan,
.jll .jll-unit__plan:hover,
.jll .jll-unit__plan:focus {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	padding: 14px;
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--jll-line);
	border-radius: 0;
	box-shadow: none;
	background: var(--jll-white);
	color: var(--jll-ink);
	cursor: zoom-in;
}
.jll .jll-unit__plan:last-child,
.jll .jll-unit__plan:last-child:hover,
.jll .jll-unit__plan:last-child:focus { border-bottom: 0; }
.jll .jll-unit__plan img { width: 100%; height: 100%; object-fit: contain; display: block; max-width: none; }
.jll .jll-unit__zoom {
	position: absolute;
	right: 10px;
	bottom: 10px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--jll-light);
	border: 1px solid var(--jll-line);
	display: flex; /* centre the icon geometrically, not by font metrics */
	align-items: center;
	justify-content: center;
	font-size: 17px;
	line-height: 1;
	color: var(--jll-ink);
	transition: background .15s ease, color .15s ease;
}
.jll .jll-unit__plan:hover .jll-unit__zoom,
.jll .jll-unit__plan:focus-visible .jll-unit__zoom { background: var(--jll-gold); border-color: var(--jll-gold); color: var(--jll-white); }
.jll .jll-unit__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; }
.jll .jll-unit__name { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--jll-ink); }
.jll .jll-unit__specs { font-size: 13px; line-height: 1.5; color: var(--jll-muted); }
.jll .jll-unit__price { font-family: var(--jll-serif); font-size: 19px; line-height: 1.3; color: var(--jll-ink); margin-top: 2px; }
@media (max-width: 480px) {
	.jll .jll-units-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.jll .jll-unit__body { padding: 12px; }
	.jll .jll-unit__price { font-size: 16px; }
}

/* Floorplan lightbox */
.jll.jll-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99996;
	background: rgba(22, 24, 27, .9);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(16px, 4vw, 56px);
}
.jll .jll-lightbox__inner { position: relative; max-width: min(1200px, 100%); max-height: 100%; display: flex; flex-direction: column; gap: 10px; }
.jll .jll-lightbox__img { display: block; max-width: 100%; max-height: calc(100vh - 140px); width: auto; height: auto; background: var(--jll-white); padding: 16px; }
.jll .jll-lightbox__title { font-size: 12px; letter-spacing: .12em; color: var(--jll-chip-text); }
.jll .jll-lightbox__close,
.jll .jll-lightbox__close:hover,
.jll .jll-lightbox__close:focus {
	position: absolute;
	top: -48px;
	right: 0;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	box-shadow: none;
	background: var(--jll-light);
	color: var(--jll-ink);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.jll .jll-loc { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 32px; }
.jll .jll-loc__info { display: flex; flex-direction: column; gap: 14px; }
.jll .jll-loc__text { font-size: 15px; line-height: 1.6; color: var(--jll-body); }
.jll .jll-loc__station {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid var(--jll-line);
	font-size: 14px;
}
.jll .jll-loc__station span:last-child { color: var(--jll-muted); text-align: right; }
.jll .jll-loc__map { aspect-ratio: 4 / 3; background: var(--jll-stripes-light); overflow: hidden; }
.jll .jll-loc__map iframe { width: 100%; height: 100%; border: 0; display: block; }

.jll .jll-legal {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 16px;
	border-top: 1px solid var(--jll-line);
	font-size: 12px;
	line-height: 1.6;
	color: var(--jll-muted);
}
.jll .jll-legal__label { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--jll-ink); }
.jll .jll-legal__text { max-width: 80ch; }

.jll .jll-inquiry {
	background: var(--jll-black);
	color: #EDE8DF;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.jll .jll-inquiry .jll-eyebrow { color: var(--jll-gold-dark); }
.jll .jll-inquiry__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: 28px;
	line-height: 1.15;
	color: var(--jll-light);
}
.jll .jll-inquiry__text { font-size: 14px; line-height: 1.55; color: var(--jll-dbody); margin: 0; }
.jll .jll-inquiry__link,
.jll .jll-inquiry__link:hover,
.jll .jll-inquiry__link:focus {
	align-self: center;
	padding: 2px 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: none;
	color: inherit;
	font-size: 13px;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-color: currentColor;
	cursor: pointer;
}
.jll .jll-inquiry__link:hover { text-decoration-color: var(--jll-gold); }
.jll .jll-inquiry--light { background: var(--jll-beige); color: var(--jll-ink); gap: 14px; }
.jll .jll-inquiry--light .jll-eyebrow { color: var(--jll-gold); }
.jll .jll-inquiry--light .jll-inquiry__title { color: var(--jll-ink); font-size: 26px; }
.jll .jll-inquiry--light .jll-inquiry__text { color: var(--jll-body); }
.jll .jll-facts { display: flex; flex-direction: column; border-top: 1px solid var(--jll-ink); }
.jll .jll-facts__row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 0;
	border-bottom: 1px solid var(--jll-line);
	font-size: 14px;
}
.jll .jll-facts dt { color: var(--jll-muted); font-weight: 400; }
.jll .jll-facts dd { text-align: right; }
/* Price: a quiet last row, never more prominent than the facts or the enquiry panel. */
.jll .jll-facts__row--price { font-size: 13px; }
.jll .jll-facts__row--price dd { color: var(--jll-muted); }
/* Main column (price entered only in the JLL fields, no sidebar facts): one hairline row. */
.jll .jll-facts--note { border-top-color: var(--jll-line); max-width: 420px; }

/* 16 · JOURNAL INDEX -------------------------------------------------- */
.jll.jll-jindex { background: var(--jll-white); }
.jll .jll-jindex__inner {
	padding-top: var(--jll-pad-top);
	padding-bottom: var(--jll-pad);
	display: flex;
	flex-direction: column;
	gap: 40px;
	position: relative;
}
.jll .jll-jindex__head {
	display: flex;
	flex-direction: column;
	gap: 18px;
	border-bottom: 1px solid var(--jll-ink);
	padding-bottom: 16px;
}
.jll .jll-jindex__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(40px, 5vw, 68px);
	line-height: 1;
	letter-spacing: -.02em;
}
.jll .jll-catnav {
	display: flex;
	gap: clamp(16px, 4vw, 26px);
	flex-wrap: nowrap;
	white-space: nowrap;
	overflow-x: auto;
	padding-top: 8px;
}
.jll .jll-catnav__link,
.jll .jll-catnav__link:hover {
	font-size: 14px;
	padding-bottom: 4px;
	color: var(--jll-tab);
	border-bottom: 1px solid transparent;
}
.jll .jll-catnav__link.is-active,
.jll .jll-catnav__link.is-active:hover { color: var(--jll-ink); border-bottom-color: var(--jll-ink); }

.jll .jll-jlead {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 40px;
	align-items: center;
	padding-bottom: 40px;
	border-bottom: 1px solid var(--jll-line);
}
.jll .jll-jlead__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--jll-imgbg); }
.jll .jll-jlead__body { display: flex; flex-direction: column; gap: 16px; }
.jll .jll-jlead__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(30px, 3vw, 44px);
	line-height: 1.08;
	letter-spacing: -.01em;
	text-wrap: balance;
}
.jll .jll-jlead__dek { font-family: var(--jll-serif); font-size: 19px; line-height: 1.5; color: var(--jll-body); text-wrap: pretty; }
.jll .jll-jlead__meta { font-size: 12px; color: var(--jll-muted); }

.jll .jll-agrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 48px 24px; }
.jll .jll-acard { display: flex; flex-direction: column; gap: 12px; }
.jll .jll-acard__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--jll-imgbg); }
.jll .jll-acard__title { font-family: var(--jll-serif); font-weight: 400; font-size: 21px; line-height: 1.24; text-wrap: pretty; }

.jll .jll-pager {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	border-top: 1px solid var(--jll-line);
	padding-top: 24px;
}
.jll .jll-pager .page-numbers,
.jll .jll-pager a.page-numbers:hover {
	min-width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	background: transparent;
	color: var(--jll-ink);
	border: 0;
	border-radius: 0;
	padding: 0;
}
.jll .jll-pager .page-numbers.current { background: var(--jll-ink); color: var(--jll-white); }
.jll .jll-pager .page-numbers.prev,
.jll .jll-pager .page-numbers.next {
	min-width: 0;
	height: auto;
	padding: 10px 14px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
}
.jll .jll-pager .page-numbers.prev:hover,
.jll .jll-pager .page-numbers.next:hover { color: var(--jll-gold); }

/* 17 · SINGLE ARTICLE ------------------------------------------------- */
.jll.jll-article { background: var(--jll-white); }
.jll .jll-article__post { position: relative; }
.jll .jll-ahead {
	max-width: 820px;
	margin: 0 auto;
	padding: 40px 24px 32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 18px;
}
.jll .jll-ahead__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(34px, 4.4vw, 58px);
	line-height: 1.06;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.jll .jll-ahead__dek {
	font-family: var(--jll-serif);
	font-size: 21px;
	line-height: 1.5;
	color: var(--jll-body);
	max-width: 40ch;
	text-wrap: pretty;
}
.jll .jll-ahead__byline {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
	font-size: 13px;
	line-height: 1.4;
	padding-top: 6px;
	color: var(--jll-muted);
}
.jll .jll-ahead__author { font-weight: 600; color: var(--jll-ink); }
.jll .jll-article__hero { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.jll .jll-ahero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; height: auto; max-width: none; }
.jll .jll-ahero__ph { display: block; aspect-ratio: 16 / 9; background: var(--jll-stripes-light); }
.jll .jll-article__wrap {
	max-width: 1160px;
	margin: 0 auto;
	padding: 40px 24px 0;
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	align-items: flex-start;
	justify-content: center;
}
.jll .jll-article__body {
	flex: 1 1 520px;
	max-width: 680px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 22px;
	font-family: var(--jll-serif);
	font-size: 20px;
	line-height: 1.7;
	color: var(--jll-article);
}
.jll .jll-article__aside {
	flex: 1 1 240px;
	max-width: 680px;
	position: sticky;
	top: var(--jll-sticky-top);
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	border-top: 1px solid var(--jll-ink);
	padding-top: 14px;
}

.jll .jll-share {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--jll-line);
	font-family: var(--jll-sans);
	font-size: 12px;
	letter-spacing: .08em;
	color: var(--jll-muted);
	line-height: 1.4;
}
.jll .jll-share__label {
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--jll-ink);
	margin-right: 6px;
}
.jll .jll-share__btn,
.jll .jll-share__btn:visited {
	width: 36px;
	height: 36px;
	border: 1px solid var(--jll-line-input);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--jll-ink);
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.jll .jll-share__btn:hover { background: var(--jll-ink); color: var(--jll-white); border-color: var(--jll-ink); }
.jll .jll-share__btn svg { display: block; }

/* Article content (existing posts) */
.jll .jll-acontent { display: flex; flex-direction: column; gap: 22px; }
.jll .jll-acontent > * { margin: 0; max-width: 100%; }
.jll .jll-acontent > .jll-ad--inline { margin: 14px 0; }
.jll .jll-acontent > figure,
.jll .jll-acontent > .wp-block-image,
.jll .jll-acontent > .wp-block-embed { margin: 14px 0; }
.jll .jll-acontent > blockquote,
.jll .jll-acontent > .wp-block-quote { margin: 16px 0; }
.jll .jll-acontent > h2,
.jll .jll-acontent > h3,
.jll .jll-acontent > h4 { margin: 20px 0 0; }
.jll .jll-acontent p { margin: 0; text-wrap: pretty; }
.jll .jll-acontent h2,
.jll .jll-acontent h3,
.jll .jll-acontent h4 {
	margin: 20px 0 0;
	font-family: var(--jll-sans);
	font-weight: 600;
	font-size: 19px;
	line-height: 1.4;
	color: var(--jll-ink);
	text-wrap: balance;
}
.jll .jll-acontent blockquote,
.jll .jll-acontent .wp-block-quote,
.jll .jll-acontent .wp-block-pullquote blockquote {
	margin: 16px 0;
	padding: 28px 12px;
	border: 0;
	border-top: 1px solid var(--jll-gold);
	border-bottom: 1px solid var(--jll-gold);
	font-family: var(--jll-serif);
	font-weight: 300;
	font-style: normal;
	font-size: 28px;
	line-height: 1.3;
	color: var(--jll-ink);
	text-align: center;
	text-wrap: balance;
	background: none;
}
.jll .jll-acontent .wp-block-pullquote { padding: 0; border: 0; margin: 0; }
.jll .jll-acontent blockquote p { font: inherit; margin: 0; }
.jll .jll-acontent blockquote cite {
	display: block;
	margin-top: 12px;
	font-family: var(--jll-sans);
	font-size: 13px;
	font-style: normal;
	color: var(--jll-muted);
}
/* Editorial figures, images and lists. Third-party components that build their own layout
   from these elements (Kadence Advanced Gallery, any Splide slider) are left alone:
   :not(:where(…) *) adds no specificity, so everything else is styled exactly as before.
   Without it, display:flex on the gallery's <figure> collapsed Kadence's image box to 0 × 0. */
.jll .jll-acontent figure:not(:where(.wp-block-kadence-advancedgallery, .splide) *),
.jll .jll-acontent .wp-block-image,
.jll .jll-acontent .wp-block-embed {
	margin: 14px 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.jll .jll-acontent figure:not(:where(.wp-block-kadence-advancedgallery, .splide) *) img,
.jll .jll-acontent > img,
.jll .jll-acontent p img { width: 100%; height: auto; display: block; }
.jll .jll-acontent figcaption,
.jll .jll-acontent .wp-element-caption {
	margin: 0;
	font-family: var(--jll-sans);
	font-size: 13px;
	line-height: 1.5;
	color: var(--jll-muted);
	text-align: left;
}
.jll .jll-acontent ul:not(:where(.wp-block-kadence-advancedgallery, .splide) *),
.jll .jll-acontent ol:not(:where(.wp-block-kadence-advancedgallery, .splide) *) { padding-left: 1.2em; }
.jll .jll-acontent li + li:not(:where(.wp-block-kadence-advancedgallery, .splide) *) { margin-top: .35em; }
.jll .jll-acontent a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: rgba(140, 106, 36, .55);
}
.jll .jll-acontent iframe,
.jll .jll-acontent video { max-width: 100%; }
.jll .jll-acontent .wp-block-embed__wrapper iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }
.jll .jll-acontent table { width: 100%; border-collapse: collapse; font-family: var(--jll-sans); font-size: 15px; line-height: 1.5; }
.jll .jll-acontent th,
.jll .jll-acontent td { border: 0; border-bottom: 1px solid var(--jll-line); padding: 10px 12px 10px 0; text-align: left; }
.jll .jll-acontent hr { border: 0; border-top: 1px solid var(--jll-line); margin: 8px 0; }

.jll .jll-anews {
	margin-top: 16px;
	background: var(--jll-beige);
	border-top: 2px solid var(--jll-gold);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	font-family: var(--jll-sans);
	position: relative;
	line-height: 1.7;
}
.jll .jll-anews__title { font-family: var(--jll-serif); font-weight: 300; font-size: 28px; line-height: 1.15; color: var(--jll-ink); }
.jll .jll-atags {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	padding-top: 12px;
	border-top: 1px solid var(--jll-line);
	font-family: var(--jll-sans);
	line-height: normal;
}
.jll .jll-atags__tag { border: 1px solid var(--jll-line-input); padding: 6px 12px; font-size: 12px; letter-spacing: .06em; }

.jll .jll-morein { display: flex; flex-direction: column; gap: 14px; }
.jll .jll-morein__title { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.jll .jll-morein__link {
	font-family: var(--jll-serif);
	font-size: 17px;
	line-height: 1.3;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--jll-line-light);
}

.jll .jll-fres { background: var(--jll-black); color: #EDE8DF; margin-top: 72px; position: relative; }
.jll .jll-fres__inner { padding-top: var(--jll-pad); padding-bottom: var(--jll-pad); display: flex; flex-direction: column; gap: 28px; }
.jll .jll-fres__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.jll .jll-fres__titles { display: flex; flex-direction: column; gap: 6px; }
.jll .jll-fres__title { font-family: var(--jll-serif); font-weight: 300; font-size: 30px; color: var(--jll-light); }

/* 18 · PARTNER WITH US ------------------------------------------------ */
.jll.jll-phead { background: var(--jll-white); position: relative; }
.jll .jll-phead__grid {
	padding-top: var(--jll-pad-top);
	padding-bottom: var(--jll-pad);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 48px;
	align-items: center;
}
.jll .jll-phead__body { display: flex; flex-direction: column; gap: 22px; }
.jll .jll-phead__title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(34px, 3.6vw, 52px);
	line-height: 1.06;
	letter-spacing: -.015em;
	text-wrap: balance;
}
.jll .jll-phead__text { font-size: 16px; line-height: 1.65; color: var(--jll-body); max-width: 56ch; }
.jll.jll-phead .jll-btnrow { gap: 0; }
.jll .jll-phead__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--jll-imgbg); }

.jll.jll-why { background: var(--jll-beige); position: relative; }
.jll .jll-why__inner { padding-top: var(--jll-pad); padding-bottom: var(--jll-pad); display: flex; flex-direction: column; gap: 32px; }
.jll .jll-why__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 24px; }
.jll .jll-why__item {
	border-top: 1px solid var(--jll-ink);
	padding-top: 16px;
	font-size: 16px;
	line-height: 1.55;
	color: var(--jll-body);
	text-wrap: pretty;
}
.jll .jll-why__item strong {
	display: block;
	font-family: var(--jll-serif);
	font-weight: 400;
	font-size: 22px;
	line-height: 1.2;
	color: var(--jll-ink);
	padding-bottom: 6px;
}

.jll.jll-opps { background: var(--jll-white); position: relative; }
.jll .jll-opps__inner { padding-top: var(--jll-pad); padding-bottom: var(--jll-pad); display: flex; flex-direction: column; gap: 32px; }
.jll .jll-opps__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 40px 24px; }
.jll .jll-opps__card { display: flex; flex-direction: column; gap: 12px; }
.jll .jll-opps__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--jll-imgbg); }
.jll .jll-opps__title { font-family: var(--jll-serif); font-weight: 400; font-size: 24px; line-height: 1.2; }
.jll .jll-opps__text { font-size: 16px; line-height: 1.6; color: var(--jll-body); }

.jll.jll-mediakit { background: var(--jll-beige); position: relative; }
.jll .jll-mediakit__grid {
	padding-top: var(--jll-pad);
	padding-bottom: var(--jll-pad);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
	gap: 48px;
	align-items: start;
}
.jll .jll-mediakit__body { display: flex; flex-direction: column; gap: 28px; }
.jll .jll-mediakit__intro { display: flex; flex-direction: column; gap: 14px; }
.jll .jll-mediakit__text { font-size: 16px; line-height: 1.65; color: var(--jll-body); max-width: 52ch; }
.jll .jll-benefit { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--jll-line-input); padding-top: 14px; }
.jll .jll-benefit__title { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--jll-ink); }
.jll .jll-benefit ul {
	margin: 0;
	padding-left: 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--jll-body);
	list-style: disc;
}
.jll .jll-mediakit__card { background: var(--jll-white); padding: clamp(24px, 4vw, 36px); display: flex; flex-direction: column; gap: 18px; }

/* Newsletter band + footer */
.jll.jll-newsband { background: var(--jll-beige); color: var(--jll-ink); position: relative; }
.jll .jll-newsband__grid {
	padding-top: var(--jll-pad);
	padding-bottom: var(--jll-pad);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
	gap: 40px;
	align-items: end;
}
.jll .jll-newsband__text { display: flex; flex-direction: column; gap: 12px; }
.jll .jll-newsband__title { font-family: var(--jll-serif); font-weight: 300; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.05; }

.jll.jll-footer { background: var(--jll-white); position: relative; }
.jll .jll-footer__inner { padding-top: 48px; padding-bottom: 28px; display: flex; flex-direction: column; gap: 36px; }
.jll .jll-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 32px; font-size: 14px; }
.jll .jll-footer__col { display: flex; flex-direction: column; gap: 10px; }
.jll .jll-footer__brand { gap: 12px; }
.jll .jll-footer__brand img { width: 200px; height: auto; display: block; }
.jll .jll-footer__brand span { color: var(--jll-muted); line-height: 1.5; }
.jll .jll-footer__head { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--jll-gold); } /* gold on white: 5.0:1 */
.jll .jll-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	border-top: 1px solid var(--jll-line);
	padding-top: 18px;
	font-size: 12px;
	color: var(--jll-muted);
}
.jll .jll-footer__legal { display: flex; gap: 20px; }

/* 19 · GRAVITY FORMS -------------------------------------------------- */
/* Shared: works with the "Gravity Forms 2.5" theme (shortcode passes theme="gravity-theme"). */
.jll .jll-form .gform_wrapper { margin: 0; padding: 0; max-width: none; }
.jll .jll-form .gform_wrapper form { margin: 0; }
.jll .jll-form .gform_wrapper .gform_heading,
.jll .jll-form .gform_wrapper .gform_required_legend,
.jll .jll-form .gform_wrapper .gfield_required { display: none; }
.jll .jll-form .gform_wrapper .gfield--type-hidden,
.jll .jll-form .gform_wrapper .gform_hidden,
.jll .jll-form .gform_wrapper .gform_validation_container { display: none !important; }
.jll .jll-form .gform_wrapper .hidden_label > .gfield_label,
.jll .jll-form .gform_wrapper .gfield--type-consent > .gfield_label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.jll .jll-form .gform_wrapper.gravity-theme .gform_fields { row-gap: 18px; column-gap: 12px; }
.jll .jll-form .gform_wrapper.gravity-theme .gfield { margin: 0; padding: 0; }
.jll .jll-form .gform_wrapper.gravity-theme .gfield_label,
.jll .jll-form .gform_wrapper.gravity-theme .gform-field-label:not(.gform-field-label--type-inline) {
	display: block;
	margin: 0 0 6px;
	padding: 0;
	font-family: var(--jll-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--jll-muted);
	line-height: normal;
}
.jll .jll-form .gform_wrapper.gravity-theme .ginput_container { margin: 0; }
.jll .jll-form .gform_wrapper.gravity-theme :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"]),
.jll .jll-form .gform_wrapper.gravity-theme select,
.jll .jll-form .gform_wrapper.gravity-theme textarea {
	width: 100%;
	font-family: var(--jll-sans);
	font-size: 16px;
	line-height: normal;
	color: var(--jll-ink);
	border-radius: 0;
	box-shadow: none;
	outline: none;
	margin: 0;
	text-transform: none;
	letter-spacing: 0;
	min-height: 0;
}
.jll .jll-form .gform_wrapper.gravity-theme .gform_footer,
.jll .jll-form .gform_wrapper.gravity-theme .gform_page_footer { margin: 0; padding: 0; }
.jll .jll-form .gform_wrapper.gravity-theme input[type="submit"],
.jll .jll-form .gform_wrapper.gravity-theme button[type="submit"] {
	width: 100%;
	margin: 0;
	background: var(--jll-gold);
	color: var(--jll-white);
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 16px 26px;
	font-family: var(--jll-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: normal;
	cursor: pointer;
	transition: background-color .15s ease;
}
.jll .jll-form .gform_wrapper.gravity-theme input[type="submit"]:hover,
.jll .jll-form .gform_wrapper.gravity-theme button[type="submit"]:hover { background: var(--jll-gold-hover); color: var(--jll-white); }
.jll .jll-form .gform_wrapper.gravity-theme .gfield_description,
.jll .jll-form .gform_wrapper.gravity-theme .instruction { font-size: 12px; color: var(--jll-muted); padding-top: 6px; }
.jll .jll-form .gform_wrapper.gravity-theme .gfield_validation_message,
.jll .jll-form .gform_wrapper.gravity-theme .validation_message {
	background: none;
	border: 0;
	padding: 6px 0 0;
	margin: 0;
	font-size: 12px;
	color: #9B2C1F;
}
.jll .jll-form .gform_wrapper.gravity-theme .gform_validation_errors {
	margin: 0 0 18px;
	padding: 10px 12px;
	border: 1px solid #9B2C1F;
	border-radius: 0;
	box-shadow: none;
	background: var(--jll-white);
}
.jll .jll-form .gform_wrapper.gravity-theme .gform_validation_errors > h2 { font-family: var(--jll-sans); font-size: 13px; color: #9B2C1F; margin: 0; }
.jll .jll-form .gform_wrapper.gravity-theme .gfield_error input,
.jll .jll-form .gform_wrapper.gravity-theme .gfield_error select,
.jll .jll-form .gform_wrapper.gravity-theme .gfield_error textarea { border-color: #9B2C1F; }
.jll .jll-form .gform_wrapper.gravity-theme ::placeholder { color: var(--jll-tab); opacity: 1; } /* same in every browser; 5.6:1 on white */
.jll .jll-form .gform_confirmation_message { font-size: 15px; line-height: 1.6; color: var(--jll-body); }
.jll .jll-thanks__title { display: block; font-family: var(--jll-serif); font-size: 26px; line-height: 1.2; color: var(--jll-ink); }
.jll .jll-thanks__text { display: block; font-size: 15px; line-height: 1.6; color: var(--jll-body); margin-top: 8px; }

/* F1 Underline (modal) */
.jll .jll-form--underline .gform_wrapper.gravity-theme :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"]),
.jll .jll-form--underline .gform_wrapper.gravity-theme select,
.jll .jll-form--underline .gform_wrapper.gravity-theme textarea {
	background: transparent;
	border: none;
	border-bottom: 1px solid var(--jll-dmuted);
	padding: 8px 0;
}
.jll .jll-form--underline .gform_wrapper.gravity-theme textarea { resize: vertical; height: auto; min-height: 0; }
.jll .jll-form--underline .gform_wrapper.gravity-theme textarea.small,
.jll .jll-form--underline .gform_wrapper.gravity-theme textarea.medium,
.jll .jll-form--underline .gform_wrapper.gravity-theme textarea.large { height: 80px; }
.jll .jll-form--underline .gform_wrapper.gravity-theme .gform_footer { margin-top: 24px; }
.jll .jll-form--underline .gform_wrapper.gravity-theme input[type="submit"] { padding: 18px; }
.jll .jll-form--underline .gform_confirmation_message { border-top: 1px solid var(--jll-ink); padding-top: 20px; }
.jll .jll-form--underline .gform_wrapper.gravity-theme input:focus,
.jll .jll-form--underline .gform_wrapper.gravity-theme select:focus,
.jll .jll-form--underline .gform_wrapper.gravity-theme textarea:focus { border-bottom-color: var(--jll-ink); }

/* F2 Boxed (media kit) */
.jll .jll-form--boxed .gform_wrapper.gravity-theme :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"]),
.jll .jll-form--boxed .gform_wrapper.gravity-theme select,
.jll .jll-form--boxed .gform_wrapper.gravity-theme textarea {
	background: var(--jll-white);
	border: 1px solid var(--jll-line-input);
	padding: 12px;
}
.jll .jll-form--boxed .gform_wrapper.gravity-theme input:focus,
.jll .jll-form--boxed .gform_wrapper.gravity-theme textarea:focus { border-color: var(--jll-ink); }
.jll .jll-form--boxed .gform_wrapper.gravity-theme .gform_fields { row-gap: 16px; }
.jll .jll-form--boxed .gform_wrapper.gravity-theme .gform_footer { margin-top: 16px; }
.jll .jll-form--boxed .gform_wrapper.gravity-theme .ginput_container_consent,
.jll .jll-form--boxed .gform_wrapper.gravity-theme .gfield--type-consent .ginput_container {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 14px;
	line-height: 1.5;
	color: var(--jll-body);
}
.jll .jll-form--boxed .gform_wrapper.gravity-theme .ginput_container_consent input[type="checkbox"] {
	margin: 4px 0 0;
	width: 18px;
	height: 18px;
	flex: none;
	accent-color: var(--jll-gold);
}
.jll .jll-form--boxed .gform_wrapper.gravity-theme .gfield_consent_label { font-size: 14px; line-height: 1.5; color: var(--jll-body); letter-spacing: 0; text-transform: none; margin: 0; }
.jll .jll-form--boxed .gform_wrapper.gravity-theme .gfield_consent_label a { color: var(--jll-gold); text-decoration: underline; }
.jll .jll-form--boxed .gform_confirmation_message .jll-thanks__title { font-size: 26px; }

/* F3 Inline underline (newsletter band) */
.jll .jll-form--inline .gform_wrapper.gravity-theme form {
	display: flex;
	align-items: stretch;
	border-bottom: 1px solid var(--jll-ink);
}
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform_body,
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform-body { flex: 1; min-width: 0; }
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform_fields { display: block; }
.jll .jll-form--inline .gform_wrapper.gravity-theme .gfield_label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.jll .jll-form--inline .gform_wrapper.gravity-theme input[type="email"],
.jll .jll-form--inline .gform_wrapper.gravity-theme input[type="text"] {
	background: transparent;
	border: none;
	padding: 14px 0;
	font-size: 17px;
}
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform_footer { display: flex; align-items: center; }
.jll .jll-form--inline .gform_wrapper.gravity-theme input[type="submit"],
.jll .jll-form--inline .gform_wrapper.gravity-theme input[type="submit"]:hover {
	width: auto;
	background: none;
	color: var(--jll-gold);
	padding: 0 0 0 16px;
	font-size: 12px;
	letter-spacing: .16em;
}
.jll .jll-form--inline .gform_wrapper.gravity-theme input[type="submit"]:hover { color: var(--jll-gold-hover); }
.jll .jll-form--inline .gform_confirmation_message {
	font-family: var(--jll-serif);
	font-size: 24px;
	line-height: 1.3;
	color: var(--jll-ink);
	border-bottom: 1px solid var(--jll-dmuted);
	padding-bottom: 14px;
}
.jll .jll-form--inline .gform_validation_errors { display: none; }

/* F4 Boxed inline (article newsletter) */
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme form { display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; }
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme .gform_footer { display: flex; align-items: stretch; }
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme .gform_body,
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme .gform-body { flex: 1 1 220px; min-width: 0; }
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme .gform_fields { display: block; }
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme .gfield_label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme input[type="email"],
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme input[type="text"] {
	line-height: 1.7;
	background: var(--jll-white);
	border: 1px solid var(--jll-line-input);
	padding: 14px;
	font-size: 15px;
}
.jll .jll-form--boxed-inline .gform_wrapper.gravity-theme input[type="submit"] { width: auto; padding: 14px 22px; line-height: 1.7; }
.jll .jll-form--boxed-inline .gform_validation_errors { display: none; }

/* 20 · ACCESSIBILITY -------------------------------------------------- */
.jll :focus { outline: none; }
.jll :focus-visible { outline: 2px solid var(--jll-gold); outline-offset: 2px; }
.jll.jll-listings :focus-visible,
.jll.jll-plist :focus-visible,
.jll .jll-fres :focus-visible,
.jll .jll-mega :focus-visible,
.jll .jll-drawer__listings :focus-visible,
.jll .jll-inquiry :focus-visible { outline-color: var(--jll-gold-dark); }
.jll .jll-form .gform_wrapper input:focus-visible,
.jll .jll-form .gform_wrapper select:focus-visible,
.jll .jll-form .gform_wrapper textarea:focus-visible { outline: none; }
.jll .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
	.jll *, .jll *::before, .jll *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* 21 · KADENCE OVERRIDES ---------------------------------------------- */
/* Sticky header needs an ancestor without overflow:hidden. */
body.jll-site #wrapper,
body.jll-site .site { overflow-x: clip; overflow-y: visible; }
/* Design templates are full-bleed (no Kadence content padding). */
body.jll-fullbleed #inner-wrap { padding: 0; }
body.jll-fullbleed .jll-main { display: block; margin: 0; padding: 0; }
/* If pages are rendered by Kadence (JLL_PHP_TEMPLATES = false). */
body.jll-fullbleed .content-area { margin-top: 0; margin-bottom: 0; }
body.jll-fullbleed .entry-hero,
body.jll-fullbleed .entry-content-wrap > .entry-header { display: none; }
body.jll-fullbleed .content-container.site-container { max-width: none; padding-left: 0; padding-right: 0; }
body.jll-fullbleed .entry.content-bg,
body.jll-fullbleed .entry-content-wrap { padding: 0; background: none; box-shadow: none; border-radius: 0; }
body.jll-fullbleed .entry-content > .jll,
body.jll-fullbleed .entry-content > section.jll { margin-top: 0; margin-bottom: 0; max-width: none; }
/* Header Builder alternative: let the HTML element span the full row. */
#masthead .site-container:has(.jll-header--part) { max-width: none; padding-left: 0; padding-right: 0; }
#masthead .site-header-row:has(.jll-header--part) { display: flex; }
#masthead .site-header-section:has(.jll-header--part),
#masthead .site-header-item:has(.jll-header--part) { flex: 1 1 auto; margin: 0; position: static; }
#masthead .site-header-row-container-inner:has(.jll-header--part) { position: relative; }

/* 22 · GUTENBERG BLOCKS ----------------------------------------------- */
/* Classic themes wrap group content in an extra div: make it transparent to flex/grid. */
.jll .wp-block-group__inner-container,
.jll.wp-block-group > .wp-block-group__inner-container { display: contents; }
/* Block layout adds margins between children; the design uses gap. */
.jll :where(.wp-block-group, [class*="is-layout-"], .wp-block-group__inner-container) > *,
.jll:where(.wp-block-group) > * { margin-block-start: 0; margin-block-end: 0; }
.jll.jll-container.wp-block-group,
.jll .jll-container.wp-block-group { padding-left: 24px; padding-right: 24px; }
.jll .wp-block-image { margin: 0; }
.jll .wp-block-image img { border-radius: 0; box-shadow: none; }
/* Image blocks used as fixed-ratio image boxes. */
.jll .wp-block-image.jll-consult__media img,
.jll .wp-block-image.jll-phead__media img,
.jll .wp-block-image.jll-opps__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jll .wp-block-image.jll-img-empty,
.jll .wp-block-image.jll-consult__media:not(:has(img[src])),
.jll .wp-block-image.jll-consult__media:has(img[src=""]) { background: var(--jll-stripes-light); }
.jll .wp-block-image.jll-consult__media:not(:has(img[src])) img,
.jll .wp-block-image.jll-consult__media:has(img[src=""]) img { display: none; }
/* Rows of buttons */
.jll .wp-block-buttons.jll-btnrow { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.jll.jll-consult .wp-block-buttons.jll-btnrow { gap: 16px; align-items: center; }
.jll .wp-block-buttons > .wp-block-button { margin: 0; }
/* Button block styles (Button → Styles in the editor) */
.jll .wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 26px;
	font-family: var(--jll-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: normal;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	text-decoration: none;
	background: var(--jll-gold);
	color: var(--jll-white);
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.jll .wp-block-button .wp-block-button__link:hover { background: var(--jll-gold-hover); color: var(--jll-white); }
.jll .wp-block-button.is-style-jll-secondary .wp-block-button__link { background: transparent; color: var(--jll-ink); border: 1px solid var(--jll-ink); }
.jll .wp-block-button.is-style-jll-secondary .wp-block-button__link:hover { background: var(--jll-ink); color: var(--jll-white); }
.jll .wp-block-button.is-style-jll-dark-outline .wp-block-button__link,
.jll .wp-block-button.is-style-jll-dark-outline .wp-block-button__link:hover { background: transparent; color: var(--jll-light); border: 1px solid var(--jll-dborder); padding: 14px; }
.jll .wp-block-button.is-style-jll-textlink .wp-block-button__link,
.jll .wp-block-button.is-style-jll-textlink-light .wp-block-button__link {
	background: none;
	padding: 0 0 2px;
	border-bottom: 1px solid var(--jll-ink);
	color: var(--jll-ink);
}
.jll .wp-block-button.is-style-jll-textlink .wp-block-button__link:hover { background: none; color: var(--jll-gold); }
.jll .wp-block-button.is-style-jll-textlink-light .wp-block-button__link,
.jll .wp-block-button.is-style-jll-textlink-light .wp-block-button__link:hover { color: var(--jll-light); border-bottom-color: var(--jll-light); background: none; }
.jll .jll-listings__tools .wp-block-buttons { margin-left: 12px; }
/* Consultation rows */
.jll .wp-block-buttons.jll-intents { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--jll-line-input); }
.jll .wp-block-buttons.jll-intents > .wp-block-button { width: 100%; }
.jll .wp-block-button.is-style-jll-intent .wp-block-button__link,
.jll .wp-block-button.is-style-jll-intent .wp-block-button__link:hover {
	display: flex;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: 0;
	border-bottom: 1px solid var(--jll-line-input);
	padding: 16px 0;
	font-family: var(--jll-serif);
	font-size: 21px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	text-align: left;
	color: var(--jll-ink);
}
.jll .wp-block-button.is-style-jll-intent .wp-block-button__link:hover { color: var(--jll-gold); }
.jll .wp-block-button.is-style-jll-intent .wp-block-button__link::after { content: "→"; font-family: var(--jll-sans); font-size: 18px; color: var(--jll-gold); }
/* Lists inside partner benefits */
.jll .jll-benefit .wp-block-list { margin: 0; }
/* Article newsletter box parts */
.jll .jll-anews > .jll-form { margin: 0; }
/* Editor: make empty shortcode blocks readable on dark sections. */
.editor-styles-wrapper .jll .wp-block-shortcode { color: inherit; }

/* ---- Original ACF blocks (rendered by JLL Core) ---- */
.jll-block { margin: 32px 0; }
.jll-block > .jll-psec { margin: 0; }
.jll-embed { margin: 32px 0; }
.jll-embed iframe, .jll-embed video { display: block; width: 100%; max-width: 100%; border: 0; }
.jll-embed iframe[src*="youtube"], .jll-embed iframe[src*="vimeo"] { aspect-ratio: 16 / 9; height: auto; }
.jll-embed figcaption { font-family: var(--jll-sans); font-size: 13px; color: var(--jll-muted); margin-top: 8px; }
.jll-related { display: flex; gap: 16px; align-items: center; margin: 32px 0; padding: 16px 0; border-top: 1px solid var(--jll-line); border-bottom: 1px solid var(--jll-line); text-decoration: none; color: var(--jll-ink); }
.jll-related__media { flex: 0 0 96px; aspect-ratio: 1; overflow: hidden; background: var(--jll-imgbg); }
.jll-related__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jll-related__text { display: flex; flex-direction: column; gap: 4px; }
.jll-related__label { font-family: var(--jll-sans); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--jll-gold); }
.jll-related__title { font-family: var(--jll-serif); font-size: 20px; line-height: 1.3; }
.jll-related:hover .jll-related__title { color: var(--jll-gold); }
.jll-anchor { display: block; height: 0; scroll-margin-top: var(--jll-sticky-top); }
.jll-admin-note { font: 13px/1.4 var(--jll-sans); color: var(--jll-muted); border: 1px dashed var(--jll-line-input); padding: 8px 12px; }

/* ---- 2.0.0-rc4: navigation, CTAs and responsive refinements ---- */

/* Mobile menu: Properties (one link), Journal, Newsletter / Partner with Us */
.jll .jll-drawer__nav { display: flex; flex-direction: column; padding: 4px 20px 28px; }
.jll .jll-drawer__group { display: flex; flex-direction: column; padding-top: 20px; }
.jll .jll-drawer__group .jll-drawer__eyebrow { padding-bottom: 2px; }
.jll .jll-drawer__foot { padding-top: 8px; }

/* Home listings: on phones, the featured property (shown above) + 2 cards, then "View all properties". */
.jll .jll-pgrid__more { display: none; }
@media (max-width: 767px) {
	.jll .jll-pgrid[class*="jll-pgrid--mobile-"] > .jll-pcard--featured-dup { display: none; }
	.jll .jll-pgrid--mobile-1 > :nth-child(n+2 of .jll-pcard:not([hidden]):not(.jll-pcard--featured-dup)),
	.jll .jll-pgrid--mobile-2 > :nth-child(n+3 of .jll-pcard:not([hidden]):not(.jll-pcard--featured-dup)),
	.jll .jll-pgrid--mobile-3 > :nth-child(n+4 of .jll-pcard:not([hidden]):not(.jll-pcard--featured-dup)) { display: none; }
	.jll .jll-pgrid__more,
	.jll .jll-pgrid__more:hover {
		display: inline-block;
		align-self: flex-start;
		margin-top: 32px;
		padding-bottom: 2px;
		border-bottom: 1px solid currentColor;
		font-size: 12px;
		letter-spacing: .14em;
		text-transform: uppercase;
		font-weight: 600;
		color: var(--jll-light);
	}
}

/* Article sidebar: newsletter panel above "More in …" (desktop; the article has its own box on mobile). */
.jll .jll-ncta {
	background: var(--jll-beige);
	border-top: 2px solid var(--jll-gold);
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-family: var(--jll-sans);
	color: var(--jll-ink);
}
.jll .jll-ncta__title { font-family: var(--jll-serif); font-weight: 300; font-size: 22px; line-height: 1.2; color: var(--jll-ink); }
.jll .jll-ncta .jll-btn--block { padding: 14px; }
.jll .jll-article__aside:has(.jll-ncta) { border-top: 0; padding-top: 0; }
.jll .jll-article__aside .jll-ncta + .jll-morein { border-top: 1px solid var(--jll-ink); padding-top: 14px; margin-top: 18px; }
@media (max-width: 899px) {
	.jll .jll-article__aside .jll-ncta { display: none; }
}

/* Mobile sticky property enquiry bar */
.jll.jll-sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99980;
	background: var(--jll-white);
	border-top: 1px solid var(--jll-line);
	box-shadow: 0 -6px 24px rgba(22, 24, 27, .08);
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	transform: translateY(110%);
	visibility: hidden;
	transition: transform .25s ease, visibility 0s linear .25s;
}
.jll.jll-sticky.is-visible { transform: none; visibility: visible; transition: transform .25s ease, visibility 0s; }
.jll .jll-sticky__inner { display: flex; align-items: center; gap: 12px; max-width: 720px; margin: 0 auto; }
.jll .jll-sticky__title {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--jll-serif);
	font-size: 15px;
	line-height: 1.3;
	color: var(--jll-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.jll .jll-sticky__btn { flex: 0 0 auto; padding: 12px 20px; min-height: 44px; }
@media (min-width: 1024px) { .jll.jll-sticky { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .jll.jll-sticky, .jll.jll-sticky.is-visible { transition: none; } }

/* ---- 2.0.0-rc5: header fit and simple page content ---- */

/* Desktop header: never wraps. When the full navigation no longer fits the header's
   own width (measured: logo 220 + nav 581 + CTA 207 + gaps ≈ 1064 px), the three
   Journal categories collapse into one "Journal" link. Below 1024 px the mobile header takes over. */
.jll .jll-header__main-inner { container: jllhead / inline-size; flex-wrap: nowrap; }
.jll .jll-header__nav { flex-wrap: nowrap; min-width: 0; }
.jll .jll-header__link,
.jll .jll-header__listings { white-space: nowrap; }
.jll .jll-header__journal { display: none; }
@container jllhead (max-width: 1119px) {
	.jll .jll-header__cat { display: none; }
	.jll .jll-header__journal { display: inline; }
}
@supports not (container-type: inline-size) {
	@media (max-width: 1167px) {
		.jll .jll-header__cat { display: none; }
		.jll .jll-header__journal { display: inline; }
	}
}

/* Simple content on design pages (e.g. thank-you pages): centred 900 px column. */
.jll.jll-page-flow {
	box-sizing: content-box;
	max-width: 900px;
	margin: 0 auto;
	padding: clamp(48px, 7vw, 96px) clamp(20px, 5vw, 40px) clamp(56px, 8vw, 112px);
	display: flex;
	flex-direction: column;
	gap: 22px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--jll-body);
}
.jll.jll-page-flow + .jll.jll-page-flow { padding-top: 0; }
.jll.jll-page-flow h1 {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(34px, 4.2vw, 52px);
	line-height: 1.1;
	letter-spacing: -.015em;
	color: var(--jll-ink);
	text-wrap: balance;
	margin-bottom: 6px;
}
.jll.jll-page-flow h2 { font-family: var(--jll-serif); font-weight: 300; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.2; color: var(--jll-ink); margin-top: 14px; }
.jll.jll-page-flow h3 { font-family: var(--jll-sans); font-weight: 600; font-size: 19px; line-height: 1.4; color: var(--jll-ink); margin-top: 10px; }
.jll.jll-page-flow h4 { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--jll-ink); }
.jll.jll-page-flow p a,
.jll.jll-page-flow li a,
.jll.jll-page-flow td a {
	color: var(--jll-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}
.jll.jll-page-flow p a:hover,
.jll.jll-page-flow li a:hover { color: var(--jll-gold-hover); }
.jll.jll-page-flow ul:not(:where(.wp-block-kadence-advancedgallery, .splide) *),
.jll.jll-page-flow ol:not(:where(.wp-block-kadence-advancedgallery, .splide) *) { padding-left: 1.2em; display: flex; flex-direction: column; gap: 8px; }
.jll.jll-page-flow li::marker { color: var(--jll-gold); }
.jll.jll-page-flow .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0; }
.jll.jll-page-flow .wp-block-button { margin: 0; }
.jll.jll-page-flow hr,
.jll.jll-page-flow .wp-block-separator { border: 0; border-top: 1px solid var(--jll-line); width: 100%; margin: 10px 0; opacity: 1; }
.jll.jll-page-flow figure:not(:where(.wp-block-kadence-advancedgallery, .splide) *),
.jll.jll-page-flow img:not(:where(.wp-block-kadence-advancedgallery, .splide) *) { max-width: 100%; height: auto; }
.jll.jll-page-flow blockquote { border-left: 2px solid var(--jll-gold); padding-left: 20px; font-family: var(--jll-serif); font-size: 21px; color: var(--jll-ink); }
@media (max-width: 600px) {
	.jll.jll-page-flow { font-size: 16px; }
	.jll.jll-page-flow .wp-block-buttons .wp-block-button { flex: 1 1 100%; }
	.jll.jll-page-flow .wp-block-buttons .wp-block-button__link { display: block; width: 100%; }
}

/* ---- 2.0.0-rc6: standard WordPress pages (Kadence page template) ---- */

/* Default content column: 900 px, only while the page uses Kadence's default layout and that
   default is "Normal". Narrow / Fullwidth / sidebar layouts chosen in Kadence are left alone. */
body.jll-page-width-auto.content-width-normal .content-container.site-container {
	max-width: calc(900px + 2 * var(--global-content-edge-padding, 1.5rem));
}

/* JLL typography inside Kadence's page content (standard pages only). */
body.jll-standard-page .entry-header .entry-title {
	font-family: var(--jll-serif);
	font-weight: 300;
	font-size: clamp(34px, 4.2vw, 52px);
	line-height: 1.1;
	letter-spacing: -.015em;
	color: var(--jll-ink);
	text-wrap: balance;
}
body.jll-standard-page .entry-content {
	font-family: var(--jll-sans);
	font-size: 17px;
	line-height: 1.7;
	color: var(--jll-body);
}
body.jll-standard-page .entry-content h1,
body.jll-standard-page .entry-content h2 {
	font-family: var(--jll-serif);
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: -.01em;
	color: var(--jll-ink);
}
body.jll-standard-page .entry-content h1 { font-size: clamp(32px, 3.8vw, 46px); }
body.jll-standard-page .entry-content h2 { font-size: clamp(26px, 2.6vw, 34px); }
body.jll-standard-page .entry-content h3 { font-family: var(--jll-sans); font-weight: 600; font-size: 19px; line-height: 1.4; color: var(--jll-ink); }
body.jll-standard-page .entry-content h4 { font-family: var(--jll-sans); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--jll-ink); }
body.jll-standard-page .entry-content :is(p, li, td, dd) a:not(.wp-block-button__link) {
	color: var(--jll-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}
body.jll-standard-page .entry-content :is(p, li, td, dd) a:not(.wp-block-button__link):hover { color: var(--jll-gold-hover); }
body.jll-standard-page .entry-content li::marker { color: var(--jll-gold); }
body.jll-standard-page .entry-content .wp-block-buttons { margin-top: 1.75em; margin-bottom: 1.75em; gap: 12px; }
body.jll-standard-page .entry-content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 26px;
	font-family: var(--jll-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: normal;
	border: 1px solid var(--jll-gold);
	border-radius: 0;
	box-shadow: none;
	text-decoration: none;
	background: var(--jll-gold);
	color: var(--jll-white);
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
body.jll-standard-page .entry-content .wp-block-button__link:hover { background: var(--jll-gold-hover); border-color: var(--jll-gold-hover); color: var(--jll-white); }
body.jll-standard-page .entry-content :is(.is-style-outline, .is-style-jll-secondary) > .wp-block-button__link { background: transparent; color: var(--jll-ink); border-color: var(--jll-ink); }
body.jll-standard-page .entry-content :is(.is-style-outline, .is-style-jll-secondary) > .wp-block-button__link:hover { background: var(--jll-ink); color: var(--jll-white); }
body.jll-standard-page .entry-content .is-style-jll-textlink > .wp-block-button__link { background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 2px; color: var(--jll-ink); }
body.jll-standard-page .entry-content blockquote { border-left: 2px solid var(--jll-gold); padding-left: 20px; font-family: var(--jll-serif); font-size: 21px; color: var(--jll-ink); }
@media (max-width: 600px) {
	body.jll-standard-page .entry-content { font-size: 16px; }
	body.jll-standard-page .entry-content .wp-block-buttons > .wp-block-button { flex: 1 1 100%; }
	body.jll-standard-page .entry-content .wp-block-buttons .wp-block-button__link { width: 100%; }
}
body.jll-standard-page .entry-content .jll.jll-component { margin-top: 1.75em; margin-bottom: 1.75em; font-family: var(--jll-sans); }

/* ---- 2.0.0-rc7 ---- */

/* Article sidebar: two stacked ads would make a sticky sidebar taller than the screen → let it scroll. */
.jll .jll-article__aside:has(.jll-ad--n2) { position: static; }
/* On phones the sidebar follows the article: both ads stacked, centred, 340 px max. */
@media (max-width: 899px) {
	.jll .jll-ad--stack { --jll-ad-max: 340px; align-items: center; }
	.jll .jll-ad--stack .jll-ad__label { align-self: center; }
	.jll .jll-ad--stack .jll-ad__items { justify-content: center; }
}

/* Newsletter band (inline form, Form 12 only): the underline belongs to the email field
   and ends before the button with a clear gap; a gold JLL button, vertically centred on the field. */
.jll .jll-form--inline .gform_wrapper.gravity-theme form { border-bottom: 0; align-items: center; gap: 28px; }
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform_body,
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform-body { border-bottom: 1px solid var(--jll-ink); }
.jll .jll-form--inline .gform_wrapper.gravity-theme .gfield { margin: 0; padding: 0; }
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform_footer,
.jll .jll-form--inline .gform_wrapper.gravity-theme .gform-footer { margin: 0; padding: 0; flex: none; display: flex; align-items: center; }
.jll .jll-form--inline .gform_wrapper.gravity-theme :is(input[type="submit"], button[type="submit"], .gform_button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 48px;
	margin: 0;
	padding: 0 28px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: var(--jll-gold);
	color: var(--jll-white);
	font-family: var(--jll-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s ease;
}
.jll .jll-form--inline .gform_wrapper.gravity-theme :is(input[type="submit"], button[type="submit"], .gform_button):is(:hover, :focus-visible) { background: var(--jll-gold-hover); color: var(--jll-white); }
@media (max-width: 480px) {
	.jll .jll-form--inline .gform_wrapper.gravity-theme form { gap: 16px; }
	.jll .jll-form--inline .gform_wrapper.gravity-theme :is(input[type="submit"], button[type="submit"], .gform_button) { min-height: 44px; padding: 0 18px; letter-spacing: .12em; }
}

/* Kadence content box on standard pages: Kadence draws a soft drop shadow under the
   page's content box (.entry), which shows as a grey line above the newsletter band.
   Remove only that shadow; Boxed keeps its background, width and padding, Unboxed stays
   unboxed. Other components' shadows are untouched. */
body.jll-standard-page #main > .entry,
body.jll-standard-page .site-main > .entry.content-bg { box-shadow: none; }

/* Mobile sticky enquiry bar: fixed wording instead of the property title. */
.jll .jll-sticky__text {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--jll-serif);
	font-size: 15px;
	line-height: 1.25;
	color: var(--jll-ink);
	text-wrap: balance;
}
@media (max-width: 359px) { .jll .jll-sticky__text { font-size: 14px; } }

/* Home · Private Consultation without a photograph: text-led, compact.
   (Applies whenever the section's image block has no image.) */
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
	padding-top: clamp(48px, 6vw, 72px);
	padding-bottom: clamp(48px, 6vw, 72px);
}
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__media { display: none; }
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: subgrid;
	row-gap: 18px;
	align-items: start;
}
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body > .wp-block-group__inner-container { display: contents; }
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body :is(.jll-eyebrow, .jll-consult__title, .jll-consult__text) { grid-column: 1; }
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body .jll-eyebrow { grid-row: 1; }
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body .jll-consult__title { grid-row: 2; font-size: clamp(30px, 3vw, 42px); }
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body .jll-consult__text { grid-row: 3; }
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body .jll-intents { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body .jll-btnrow { grid-column: 2; grid-row: 3; align-self: start; }

/* Enquiry categories: compact row of three with small line icons (still open the consultation form). */
.jll.jll-consult .wp-block-buttons.jll-intents {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	border-top: 0;
}
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link,
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link:hover {
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 14px;
	height: 100%;
	padding: 18px 18px 16px;
	border: 1px solid var(--jll-line-input);
	background: var(--jll-white);
	font-size: 19px;
	line-height: 1.25;
	transition: border-color .15s ease, color .15s ease;
}
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link:hover { border-color: var(--jll-gold); color: var(--jll-ink); }
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link::before {
	content: "";
	width: 24px;
	height: 24px;
	background: var(--jll-gold);
	-webkit-mask: var(--jll-intent-icon) center / contain no-repeat;
	mask: var(--jll-intent-icon) center / contain no-repeat;
	--jll-intent-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M3 12h18'/%3E%3C/svg%3E");
}
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link[href*="Purchas"]::before {
	--jll-intent-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 11 12 4l8.5 7'/%3E%3Cpath d='M5.5 9.5V20h13V9.5'/%3E%3Cpath d='M10 20v-5.5h4V20'/%3E%3C/svg%3E");
}
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link[href*="Invest"]::before {
	--jll-intent-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='M6 20v-6M10.5 20v-9M15 20v-5M19.5 20V8'/%3E%3Cpath d='M5 10.5 10 6l4 3 6-5'/%3E%3C/svg%3E");
}
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link[href*="Relocat"]::before {
	--jll-intent-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E");
}
.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link::after { content: none; }

@media (max-width: 900px) {
	.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) { grid-template-columns: minmax(0, 1fr); }
	.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body { grid-template-columns: minmax(0, 1fr); }
	.jll .jll-consult__grid:not(:has(.jll-consult__media img[src]:not([src=""]))) .jll-consult__body :is(.jll-eyebrow, .jll-consult__title, .jll-consult__text, .jll-intents, .jll-btnrow) { grid-column: 1; grid-row: auto; }
}
@media (max-width: 600px) {
	.jll.jll-consult .wp-block-buttons.jll-intents { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--jll-line-input); }
	.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link,
	.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link:hover {
		flex-direction: row;
		align-items: center;
		gap: 14px;
		padding: 14px 2px;
		border: 0;
		border-bottom: 1px solid var(--jll-line-input);
		background: none;
		font-size: 18px;
	}
	.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link::before { width: 20px; height: 20px; flex: none; }
	.jll.jll-consult .wp-block-button.is-style-jll-intent .wp-block-button__link::after { content: "→"; margin-left: auto; font-family: var(--jll-sans); font-size: 16px; color: var(--jll-gold); }
	.jll.jll-consult .wp-block-buttons.jll-btnrow .wp-block-button { width: 100%; }
	.jll.jll-consult .wp-block-buttons.jll-btnrow .wp-block-button__link { width: 100%; justify-content: center; }
}

/* Partner with Us · enquiry section without the benefit lists: copy column aligns with the form card. */
.jll .jll-mediakit__body:not(:has(.jll-benefit)) { gap: 18px; }
.jll .jll-mediakit__text + .jll-mediakit__note,
.jll .jll-mediakit__note { font-size: 14px; line-height: 1.6; color: var(--jll-muted); }
