/* =====================================================================
   iLinkPro POS – site styles
   Palette: orange #FF6501 · charcoal #242425 · text #302F2E · light #F6F6F6
   Fonts:   Roboto (headings, nav, buttons) · Poppins (body)
   ===================================================================== */
:root {
	--ipos-orange: #ff6501;
	--ipos-orange-dark: #e05600;
	--ipos-charcoal: #242425;
	--ipos-black: #111111;
	--ipos-text: #302f2e;
	--ipos-muted: #5f5e5c;
	--ipos-light: #f6f6f6;
	--ipos-mid: #e5e5e5;
	--ipos-radius: 14px;
	--ipos-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	--ipos-shadow-lg: 0 25px 60px rgba(0, 0, 0, 0.18);
	--ipos-max: 1200px;
	--ipos-roboto: var(--wp--preset--font-family--roboto, Roboto, sans-serif);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
img { height: auto; }
.ipos-main { padding: 0; }
.ipos-main--padded { padding: 3rem 1rem; }

/* Twenty Twenty-Five adds a gap between every block in a constrained group.
   Sections manage their own spacing, so reset it at the section boundary. */
.ipos-main > .wp-block-post-content > * + * { margin-block-start: 0; }

/* ---------------------------------------------------------------- header */
.ipos-header {
	position: sticky;
	top: env(safe-area-inset-top, 0px);
	z-index: 100;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.ipos-header__inner {
	max-width: var(--ipos-max);
	margin: 0 auto;
	padding: 0.3rem 1rem;
	align-items: center;
	gap: 0.5rem 1.25rem;
}
.ipos-header .ipos-logo { margin: 0; }
.ipos-header .ipos-logo a { display: inline-block; background: #111111; border-radius: 8px; padding: 0.3rem 0.55rem; line-height: 0; }
.ipos-header .ipos-logo img { width: auto !important; height: 56px !important; max-height: none; display: block; }
/* phone bar */
.ipos-header .ipos-topbar { background: #111111; color: #fff; }
.ipos-header .ipos-topbar .ipos-topbar__inner {
	max-width: var(--ipos-max);
	margin: 0 auto;
	padding: 0.28rem 1rem;
	font-family: var(--ipos-roboto);
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-align: right;
	color: #d9d9d9;
}
.ipos-header .ipos-topbar .ipos-topbar__inner::before {
	content: "";
	display: inline-block;
	width: 0.9em; height: 0.9em; margin-right: 0.45em; vertical-align: -0.1em;
	background: var(--ipos-orange);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1L6.6 10.8z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1L6.6 10.8z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ipos-header .ipos-topbar a { color: #fff; text-decoration: none; font-weight: 700; }
.ipos-header .ipos-topbar a:hover { color: var(--ipos-orange); }
.ipos-header .ipos-topbar .ipos-topbar__sep { color: var(--ipos-orange); margin: 0 0.35rem; }
@media (max-width: 781px) {
	.ipos-header .ipos-topbar .ipos-topbar__inner { text-align: center; font-size: 0.78rem; padding: 0.3rem 0.5rem; }
	.ipos-header .ipos-topbar .ipos-topbar__sep { display: block; height: 0; overflow: hidden; margin: 0; }
}
.ipos-header .ipos-nav { flex: 1 1 auto; }
.ipos-nav .wp-block-navigation-item__content { padding: 0.45rem 0.15rem; color: var(--ipos-charcoal); }
.ipos-nav .wp-block-navigation-item__content:hover,
.ipos-nav .current-menu-item > .wp-block-navigation-item__content,
.ipos-nav .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--ipos-orange); }
.ipos-nav .wp-block-navigation__submenu-icon { margin-left: 0.15rem; }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__submenu-container {
	border: 0;
	border-top: 3px solid var(--ipos-orange);
	border-bottom: 3px solid var(--ipos-orange);
	border-radius: 0;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
	padding: 0.35rem 0;
	min-width: 300px;
	background: #111111 !important;
	color: #fff !important;
	border-left: 0 !important;
	border-right: 0 !important;
}
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.92rem;
	font-weight: 500;
	padding: 0.6rem 1.1rem;
	color: #fff;
}
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item:not(:last-child) .wp-block-navigation-item__content { border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content { color: var(--ipos-orange); background: rgba(255, 255, 255, 0.05); }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible { outline: 2px solid var(--ipos-orange); outline-offset: -2px; }
/* the phone menu (hamburger): dark panel, white text, orange accents */
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open { background: #111111 !important; color: #fff !important; padding: 2rem 1.5rem; }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff; padding: 0.55rem 0; font-size: 1.05rem; }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover { color: var(--ipos-orange); }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; border: 0 !important; box-shadow: none; color: #fff !important; padding: 0 0 0 1rem; margin-top: 0.25rem; border-left: 2px solid var(--ipos-orange) !important; }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: #e6e6e6; border: 0; font-size: 0.95rem; padding: 0.4rem 0; }
.ipos-header .ipos-nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { color: #fff; }
.ipos-header .ipos-header__cta { margin: 0; }
.ipos-header .ipos-btn-sm .wp-block-button__link { padding: 0.6rem 1.2rem; font-size: 0.8rem; white-space: nowrap; }
@media (max-width: 599px) {
	.ipos-header .ipos-logo img { height: 46px !important; }
	.ipos-header .ipos-btn-sm .wp-block-button__link { padding: 0.5rem 0.9rem; font-size: 0.72rem; }
}

/* ---------------------------------------------------------------- hero */
.ipos-hero {
	--ipos-wave: #ffffff;
	position: relative;
	background:
		radial-gradient(900px 500px at 88% 10%, rgba(255, 101, 1, 0.26), transparent 60%),
		linear-gradient(135deg, rgba(26, 26, 27, 0.955) 0%, rgba(36, 36, 37, 0.95) 55%, rgba(44, 44, 46, 0.945) 100%),
		url("hero-bg.jpg") center / cover no-repeat #242425;
	color: #fff;
	padding: clamp(2.5rem, 5vw, 4.5rem) 1rem calc(clamp(3rem, 6vw, 5rem) + 70px);
	overflow: hidden;
}
.ipos-hero--compact { padding: clamp(2.5rem, 5vw, 4rem) 1rem calc(clamp(2.5rem, 5vw, 4rem) + 70px); }
.ipos-hero--wave-alt { --ipos-wave: #f6f6f6; }
/* the curve: a wave-shaped mask filled with the colour of the section that follows */
.ipos-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 80px;
	background: var(--ipos-wave);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,44 C240,84 480,84 720,50 C960,16 1200,10 1440,48 L1440,80 L0,80 Z'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,44 C240,84 480,84 720,50 C960,16 1200,10 1440,48 L1440,80 L0,80 Z'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
	pointer-events: none;
	z-index: 1;
}
.ipos-hero > * { position: relative; z-index: 2; }
@media (max-width: 599px) { .ipos-hero::after { height: 44px; } .ipos-hero { padding-bottom: calc(3rem + 44px); } }
/* the home/about stats card sits on the wave */
.ipos-stats .ipos-stats__grid { margin-top: -4.5rem; position: relative; z-index: 3; }
.ipos-hero h1, .ipos-hero h2, .ipos-hero h3 { color: #fff; }
.ipos-hero p { color: rgba(255, 255, 255, 0.86); }
.ipos-hero .ipos-eyebrow { color: var(--ipos-orange); }
.ipos-hero mark { background: none; color: var(--ipos-orange); }
.ipos-hero .wp-block-columns { align-items: center; gap: 2.5rem; }
.ipos-hero .ipos-hero__lead { font-size: 1.1rem; max-width: 620px; }
.ipos-hero .ipos-hero__btns { margin-top: 1.75rem; gap: 0.75rem; }
.ipos-hero .wp-block-image img,
.ipos-hero .wp-block-gallery img {
	border-radius: var(--ipos-radius);
	box-shadow: var(--ipos-shadow-lg);
}
.ipos-hero .ipos-hero__caption { font-size: 0.85rem; text-align: center; opacity: 0.8; margin-top: 0.75rem; }
.ipos-hero .ipos-hero__center { text-align: center; max-width: 820px; margin: 0 auto; }
.ipos-hero .ipos-hero__center .ipos-hero__lead { margin-left: auto; margin-right: auto; }
.ipos-hero .ipos-hero__center .wp-block-buttons { justify-content: center; }
.ipos-hero .is-style-outline .wp-block-button__link { color: #fff; border: 2px solid rgba(255, 255, 255, 0.75); background: transparent; }
.ipos-hero .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--ipos-charcoal); border-color: #fff; }
.ipos-hero .ipos-langbar { display: flex; flex-wrap: wrap; gap: 0.6rem; justify-content: center; margin-top: 1.5rem; }
.ipos-hero .ipos-pill {
	display: inline-block;
	padding: 0.35rem 0.95rem;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 999px;
	font-family: var(--ipos-roboto);
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ---------------------------------------------------------------- generic section */
.ipos-section { padding: clamp(3rem, 6vw, 5rem) 1rem; }
.ipos-section--alt { background: var(--ipos-light); }
.ipos-section--tight { padding-top: 2rem; padding-bottom: 2rem; }
.ipos-section--dark { background: var(--ipos-charcoal); color: #fff; }
.ipos-section--dark h2, .ipos-section--dark h3 { color: #fff; }
.ipos-section .ipos-section__head { text-align: center; max-width: 780px; margin: 0 auto 2.5rem; }
.ipos-section .ipos-section__head > * { margin-block-start: 0; }
.ipos-section .ipos-section__head h2 { margin: 0 0 0.75rem; }
.ipos-eyebrow,
.ipos-section .ipos-eyebrow,
.ipos-hero .ipos-eyebrow {
	display: block;
	font-family: var(--ipos-roboto);
	font-weight: 600;
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ipos-orange);
	margin: 0 0 0.6rem;
}
.ipos-section .ipos-lead { font-size: 1.08rem; color: var(--ipos-muted); }
.ipos-section .ipos-note { font-size: 1.05rem; text-align: center; max-width: 900px; margin: 2rem auto 0; color: var(--ipos-charcoal); font-weight: 500; }

/* ---------------------------------------------------------------- stats band */
.ipos-stats { padding: 0 1rem; position: relative; z-index: 2; }
.ipos-stats .ipos-stats__grid {
	max-width: var(--ipos-max);
	margin: -2.75rem auto 0;
	background: #fff;
	border-radius: var(--ipos-radius);
	box-shadow: var(--ipos-shadow);
	padding: 1.5rem 1rem;
	border: 1px solid #eee;
}
.ipos-stats .wp-block-columns { gap: 1rem; margin: 0; }
.ipos-stats .ipos-stat { text-align: center; }
.ipos-stats .ipos-stat__num {
	font-family: var(--ipos-roboto);
	font-size: 2.4rem;
	font-weight: 700;
	color: var(--ipos-orange);
	line-height: 1;
	margin: 0 0 0.35rem;
}
.ipos-stats .ipos-stat__label { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ipos-muted); margin: 0; }
@media (max-width: 781px) {
	.ipos-stats .wp-block-columns.ipos-stats__row { flex-wrap: wrap !important; flex-direction: row; }
	.ipos-stats .wp-block-columns.ipos-stats__row > .wp-block-column.ipos-stat { flex-basis: calc(50% - 0.5rem) !important; margin-bottom: 1rem; }
}

/* ---------------------------------------------------------------- cards */
.ipos-section .ipos-cards { gap: 1.5rem; }
.ipos-card {
	background: #fff;
	border-radius: var(--ipos-radius);
	box-shadow: var(--ipos-shadow);
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	border: 1px solid #ececec;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ipos-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(255, 101, 1, 0.14); border-color: var(--ipos-orange); background: #fff7f2; }
.ipos-card .ipos-carousel__wrap { margin-bottom: 1rem; }
.ipos-card .wp-block-gallery.ipos-carousel.is-ready > .wp-block-image img { aspect-ratio: auto; object-fit: contain; width: 100%; max-height: 240px; border: 0; border-radius: 0; box-shadow: none; }
.ipos-card .ipos-carousel__dots { margin-top: 0.5rem; }
.ipos-card .ipos-carousel__arrow { width: 32px; height: 32px; line-height: 32px; font-size: 0.9rem; }
.ipos-card > * { margin-block-start: 0 !important; }
.ipos-card .wp-block-image { margin: 0 0 1.1rem; }
.ipos-card .wp-block-image img { border-radius: 10px; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border: 1px solid #eee; }
.ipos-card h3 { font-size: 1.2rem; margin: 0 0 0.5rem; }
.ipos-card p { font-size: 0.95rem; color: var(--ipos-muted); margin: 0 0 0.75rem; }
.ipos-card p:last-of-type { flex: 1; }
.ipos-card .wp-block-buttons { margin-top: 0.75rem; gap: 0.5rem; }
.ipos-card .wp-block-button__link { padding: 0.6rem 1.1rem; font-size: 0.78rem; }
.ipos-card--plain { border-top: 4px solid var(--ipos-orange); }
.ipos-card--plain h3 { font-size: 1.1rem; }
.ipos-card--form { padding: 2rem; }

/* ---------------------------------------------------------------- feature rows (text + screenshot) */
.ipos-section .ipos-feature { gap: 3rem; margin-top: 3.5rem !important; }
.ipos-section .ipos-feature:first-of-type { margin-top: 1rem !important; }
.ipos-feature h3 { font-size: 1.55rem; margin: 0 0 0.75rem; }
.ipos-feature p { color: var(--ipos-muted); }
.ipos-feature .wp-block-image img,
.ipos-feature .wp-block-gallery img { border-radius: 12px; box-shadow: var(--ipos-shadow); border: 1px solid #eee; }
@media (min-width: 782px) {
	.ipos-feature--rev { flex-direction: row-reverse; }
}

/* ---------------------------------------------------------------- illustrated feature grid */
.ipos-section .ipos-illus { gap: 1.5rem; flex-wrap: wrap !important; }
.ipos-illus .ipos-illus__item {
	text-align: center;
	background: #fff;
	border-radius: var(--ipos-radius);
	padding: 1.75rem 1.25rem 1.25rem;
	box-shadow: var(--ipos-shadow);
	border: 1px solid #ececec;
	flex-basis: calc(33.333% - 1.1rem) !important;
	flex-grow: 0;
}
.ipos-illus .ipos-illus__item > * { margin-block-start: 0 !important; }
.ipos-illus .ipos-illus__item .wp-block-image { margin: 0 auto 1rem; }
.ipos-illus .ipos-illus__item img { width: 150px; height: 130px; object-fit: contain; border-radius: 0; box-shadow: none; }
.ipos-illus .ipos-illus__item h3 { font-size: 1.05rem; margin: 0 0 0.4rem; }
.ipos-illus .ipos-illus__item p { font-size: 0.9rem; color: var(--ipos-muted); margin: 0; }
.ipos-illus--4 .ipos-illus__item { flex-basis: calc(25% - 1.2rem) !important; }
@media (max-width: 1000px) { .ipos-illus .ipos-illus__item, .ipos-illus--4 .ipos-illus__item { flex-basis: calc(50% - 0.75rem) !important; } }
@media (max-width: 599px) { .ipos-illus .ipos-illus__item, .ipos-illus--4 .ipos-illus__item { flex-basis: 100% !important; } }

/* ---------------------------------------------------------------- feature check-list */
ul.ipos-checklist { list-style: none; padding: 0; margin: 1.5rem 0 0; columns: 3; column-gap: 2.5rem; }
ul.ipos-checklist li { break-inside: avoid; padding: 0.35rem 0 0.35rem 1.8rem; position: relative; font-size: 0.95rem; }
ul.ipos-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62rem;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: var(--ipos-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M4 12.5l5 5 11-11'/%3E%3C/svg%3E") center / 62% no-repeat;
}
@media (max-width: 1000px) { ul.ipos-checklist { columns: 2; } }
@media (max-width: 600px) { ul.ipos-checklist { columns: 1; } }

/* ---------------------------------------------------------------- FAQ (core Details block) */
.ipos-faq .wp-block-details {
	background: #fff;
	border: 1px solid #e6e6e6;
	border-radius: 12px;
	padding: 0;
	margin-top: 0.8rem !important;
	overflow: hidden;
}
.ipos-faq summary {
	cursor: pointer;
	padding: 1rem 3rem 1rem 1.25rem;
	font-family: var(--ipos-roboto);
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--ipos-charcoal);
	list-style: none;
	position: relative;
}
.ipos-faq summary::-webkit-details-marker { display: none; }
.ipos-faq summary::after {
	content: "+";
	position: absolute;
	right: 1.1rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.6rem;
	color: var(--ipos-orange);
	font-weight: 400;
	line-height: 1;
}
.ipos-faq .wp-block-details[open] summary::after { content: "–"; }
.ipos-faq .wp-block-details > :not(summary) { padding: 0 1.25rem 1.1rem; margin: 0; }
.ipos-faq .wp-block-details p { color: var(--ipos-muted); }

/* ---------------------------------------------------------------- tutorials */
.ipos-tutorials .ipos-topics { counter-reset: topic; }
.ipos-tutorials .ipos-topic { margin-top: 3.5rem !important; }
.ipos-tutorials .ipos-topic:first-child { margin-top: 0 !important; }
.ipos-tutorials .ipos-topic h2 {
	border-left: 5px solid var(--ipos-orange);
	padding-left: 1rem;
	margin: 0 0 0.6rem;
}
.ipos-tutorials .ipos-topic h2::before {
	counter-increment: topic;
	content: "0" counter(topic);
	font-family: var(--ipos-roboto);
	font-weight: 700;
	color: var(--ipos-orange);
	margin-right: 0.6rem;
	font-size: 0.85em;
}
.ipos-tutorials .ipos-topic .ipos-topic__desc { color: var(--ipos-muted); max-width: 820px; margin: 0; }
.ipos-tutorials .ipos-videos { gap: 1.5rem; margin-top: 1.5rem !important; }
.ipos-tutorials .ipos-videos .wp-block-column {
	background: #fff;
	border-radius: var(--ipos-radius);
	box-shadow: var(--ipos-shadow);
	padding: 0.9rem;
	border: 1px solid #ececec;
}
.ipos-tutorials .ipos-videos .wp-block-column > * { margin-block-start: 0; }
.ipos-tutorials .ipos-lang {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--ipos-roboto);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.85rem;
	color: var(--ipos-charcoal);
	margin: 0 0 0.7rem !important;
}
.ipos-tutorials .ipos-lang::before {
	content: "LIVE";
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: #e53935;
	color: #fff;
	font-size: 0.62rem;
	padding: 0.18rem 0.55rem;
	border-radius: 999px;
	letter-spacing: 0.12em;
}
.ipos-tutorials .wp-block-video { margin: 0; }
.ipos-tutorials .wp-block-video video {
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 10px;
	display: block;
}


/* ---------------------------------------------------------------- hero media rows + captions */
.ipos-hero .ipos-hero__media { margin-top: 2.5rem; }
.ipos-hero figcaption,
.ipos-hero .wp-element-caption { color: rgba(255, 255, 255, 0.82); text-align: center; font-size: 0.85rem; margin: 0.6rem 0 0; }
.ipos-hero .wp-block-gallery .wp-block-image figcaption { position: static; background: none; color: rgba(255, 255, 255, 0.82); padding: 0.6rem 0 0; text-shadow: none; }
.ipos-hero .wp-block-gallery.is-cropped .wp-block-image { align-items: flex-start; }
.ipos-media-row { gap: 1.5rem; align-items: center; }
.ipos-media-row .wp-block-column > * { margin-block-start: 0; }
.ipos-media-row .wp-block-image { margin: 0; text-align: center; }
.ipos-media-row .wp-block-image img { border-radius: 12px; box-shadow: var(--ipos-shadow); border: 1px solid rgba(0, 0, 0, 0.06); width: 100%; }
.ipos-media-row .ipos-mockup img { width: 100%; max-width: 420px; }
.ipos-media-row .wp-block-column.ipos-media-row__phone { flex-basis: 20%; }
.ipos-media-row .ipos-media-row__phone img { width: auto; max-height: 420px; }
.ipos-media-row figcaption, .ipos-media-row .wp-element-caption { text-align: center; font-size: 0.85rem; color: var(--ipos-muted); margin: 0.6rem 0 0; }
.ipos-hero .ipos-media-row figcaption { color: rgba(255, 255, 255, 0.82); }
.ipos-hero .ipos-media-row img { box-shadow: var(--ipos-shadow-lg); border-color: rgba(255, 255, 255, 0.08); }
.ipos-mockup img { box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
.wp-block-gallery.ipos-shots .wp-block-image figcaption { position: static; background: none; color: var(--ipos-muted); padding: 0.5rem 0 0; font-size: 0.85rem; text-align: center; text-shadow: none; }
.ipos-backoffice .wp-block-gallery { margin-top: 1rem; }
.ipos-backoffice .ipos-media-row .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; object-position: left top; width: 100%; }

/* ---------------------------------------------------------------- galleries / screenshots */
.ipos-section--tight .wp-block-gallery { margin: 0 auto; }
.wp-block-gallery.ipos-shots { gap: 1rem; }
.wp-block-gallery.ipos-shots img { border-radius: 12px; box-shadow: var(--ipos-shadow); border: 1px solid #eee; }
.ipos-shot img { border-radius: 12px; box-shadow: var(--ipos-shadow); border: 1px solid #eee; }

/* ---------------------------------------------------------------- CTA band */
.ipos-cta {
	background: linear-gradient(120deg, var(--ipos-orange) 0%, #ff8a3d 100%);
	color: #fff;
	padding: clamp(2.75rem, 5vw, 4rem) 1rem;
	text-align: center;
}
.ipos-cta h2 { color: #fff; margin: 0 0 0.6rem; }
.ipos-cta p { color: rgba(255, 255, 255, 0.92); max-width: 720px; margin: 0 auto; font-size: 1.05rem; }
.ipos-cta .wp-block-buttons { margin-top: 1.5rem; gap: 0.75rem; }
.ipos-cta .wp-block-button__link { background: #fff; color: var(--ipos-charcoal); }
.ipos-cta .wp-block-button__link:hover { background: var(--ipos-charcoal); color: #fff; }
.ipos-cta .is-style-outline .wp-block-button__link { background: transparent; color: #fff; border: 2px solid #fff; }
.ipos-cta .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--ipos-charcoal); }

/* ---------------------------------------------------------------- contact */
.ipos-section .ipos-contact { gap: 3rem; }
.ipos-contact .ipos-contact__info h2, .ipos-contact .ipos-contact__form h2 { margin: 0 0 1rem; }
.ipos-contact .ipos-contact__info h3 { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ipos-orange); margin: 1.25rem 0 0.2rem; }
.ipos-contact .ipos-contact__info p { margin: 0; }
.ipos-contact .ipos-contact__info a { color: var(--ipos-charcoal); text-decoration: none; font-weight: 500; }
.ipos-contact .ipos-contact__info a:hover { color: var(--ipos-orange); }
.ipos-contact .wp-block-social-links { margin-top: 0.5rem; }
.ipos-map iframe { width: 100%; height: 400px; border: 0; border-radius: var(--ipos-radius); box-shadow: var(--ipos-shadow); display: block; }

/* ---------------------------------------------------------------- Contact Form 7 */
.wpcf7 .ipos-form-row { margin-bottom: 0.85rem; }
.wpcf7 .ipos-form-row label { display: block; font-size: 0.85rem; font-weight: 500; color: var(--ipos-muted); margin-bottom: 0.2rem; }
.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	padding: 0.72rem 0.95rem;
	border: 1px solid #d9d9d9;
	border-radius: 8px;
	font: inherit;
	font-size: 0.95rem;
	background: #fff;
	color: var(--ipos-text);
	box-sizing: border-box;
}
.wpcf7 textarea { min-height: 110px; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
	outline: none;
	border-color: var(--ipos-orange);
	box-shadow: 0 0 0 3px rgba(255, 101, 1, 0.18);
}
.wpcf7 input[type="submit"] {
	background: var(--ipos-orange);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 0.85rem 1.8rem;
	font-family: var(--ipos-roboto);
	font-weight: 600;
	font-size: 0.92rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	cursor: pointer;
	width: 100%;
	transition: background 0.2s;
}
.wpcf7 input[type="submit"]:hover { background: var(--ipos-charcoal); }
.wpcf7 .wpcf7-spinner { display: block; margin: 0.5rem auto 0; }
.wpcf7 .wpcf7-not-valid-tip { font-size: 0.8rem; }
.wpcf7 .wpcf7-response-output { border-radius: 8px; font-size: 0.9rem; margin: 1rem 0 0; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #2e7d32; background: #edf7ee; color: #1b5e20; }

/* ---------------------------------------------------------------- footer */
.ipos-footer { background: var(--ipos-charcoal); color: #d8d8d8; padding: 3.5rem 1rem 0; }
.ipos-footer .ipos-footer__cols { gap: 2.5rem; }
.ipos-footer h3 { color: #fff; font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 1rem; }
.ipos-footer p { color: #c9c9c9; font-size: 0.93rem; }
.ipos-footer a { color: #ececec; text-decoration: none; }
.ipos-footer a:hover { color: var(--ipos-orange); }
.ipos-footer .ipos-footer__brand { font-family: var(--ipos-roboto); font-size: 1.6rem; font-weight: 700; color: #fff; margin: 0 0 0.75rem; letter-spacing: -0.01em; }
.ipos-footer .ipos-footer__brand span { color: var(--ipos-orange); }
.ipos-footer .ipos-footer__address strong { color: #fff; }
.ipos-footer .ipos-footer__nav .wp-block-navigation-item__content {
	padding: 0.18rem 0;
	font-family: var(--wp--preset--font-family--poppins, Poppins, sans-serif);
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.93rem;
	font-weight: 400;
	color: #ececec;
}
.ipos-footer .ipos-footer__nav .wp-block-navigation-item__content:hover { color: var(--ipos-orange); }
.ipos-footer .wp-block-social-links { margin-top: 1rem; gap: 0.6rem; }
.ipos-footer .wp-block-social-links .wp-social-link { background: rgba(255, 255, 255, 0.08); border-radius: 50%; padding: 0.35rem; }
.ipos-footer .wp-block-social-links .wp-social-link:hover { background: var(--ipos-orange); }
.ipos-footer .ipos-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	margin-top: 2.5rem;
	padding: 1.2rem 0;
	font-size: 0.83rem;
	color: #9a9a9a;
}

/* ---------------------------------------------------------------- Demo Request modal (CSS-only, opened by any link to #demo-request) */
.ipos-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(17, 17, 17, 0.78);
	overflow-y: auto;
	padding: 2rem 1rem;
	margin: 0 !important;
}
.ipos-modal:target { display: block; }
.ipos-modal .ipos-modal__box {
	position: relative;
	background: #fff;
	color: var(--ipos-text);
	max-width: 560px;
	margin: 2vh auto;
	border-radius: var(--ipos-radius);
	padding: 2.25rem 2rem 1.5rem;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
}
.ipos-modal .ipos-modal__box > * { margin-block-start: 0; }
.ipos-modal .ipos-modal__box h3 { color: var(--ipos-charcoal); margin: 0 0 0.5rem; }
.ipos-modal .ipos-modal__box p { color: var(--ipos-muted); font-size: 0.95rem; margin: 0 0 1rem; }
.ipos-modal .ipos-modal__close { position: absolute; top: 0.35rem; right: 1rem; margin: 0 !important; }
.ipos-modal .ipos-modal__close a { font-size: 2rem; line-height: 1; text-decoration: none; color: #999; }
.ipos-modal .ipos-modal__close a:hover { color: var(--ipos-charcoal); }
.ipos-modal .ipos-modal__nothanks { text-align: center; margin: 0.9rem 0 0 !important; }
.ipos-modal .ipos-modal__nothanks a { color: #888; text-decoration: underline; font-size: 0.88rem; }
@media (max-width: 599px) { .ipos-modal { padding: 0.75rem; } .ipos-modal .ipos-modal__box { padding: 2rem 1.25rem 1.25rem; } }

/* ---------------------------------------------------------------- editor niceties */
.editor-styles-wrapper .ipos-modal { display: block; position: static; background: #f3f3f3; padding: 1rem; }

/* ---------------------------------------------------------------- carousel (Gallery block with class ipos-carousel) */
.ipos-carousel__wrap { position: relative; }
.wp-block-gallery.ipos-carousel.is-ready { display: block; position: relative; }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image { display: none; width: 100% !important; margin: 0; flex-direction: column; align-items: center; }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image.is-active { display: flex; animation: ipos-fade 0.7s ease; }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image img { height: auto !important; flex: none !important; }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image img { width: auto; max-width: 100%; height: auto; max-height: 460px; object-fit: contain; border-radius: 0; box-shadow: none; border: 0; }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image.ipos-shot img { border-radius: 12px; box-shadow: var(--ipos-shadow-lg); }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image figcaption { position: static; background: none; padding: 0.75rem 0 0; color: rgba(255, 255, 255, 0.85); text-align: center; font-size: 0.9rem; text-shadow: none; }
.ipos-carousel__dots { display: flex; justify-content: center; gap: 0.5rem; margin-top: 1rem; }
.ipos-carousel__dot { width: 10px; height: 10px; border-radius: 50%; border: 0; padding: 0; background: rgba(255, 255, 255, 0.35); cursor: pointer; transition: background 0.2s, transform 0.2s; }
.ipos-carousel__dot.is-active { background: var(--ipos-orange); transform: scale(1.25); }
.ipos-carousel__arrow {
	position: absolute; top: 45%; transform: translateY(-50%);
	width: 40px; height: 40px; border-radius: 50%; border: 0;
	background: rgba(255, 255, 255, 0.12); color: #fff; font-size: 1.1rem; line-height: 40px; text-align: center;
	cursor: pointer; opacity: 0; transition: opacity 0.2s, background 0.2s; z-index: 3;
}
.ipos-carousel__arrow--prev { left: -6px; } .ipos-carousel__arrow--next { right: -6px; }
.ipos-carousel__wrap:hover .ipos-carousel__arrow, .ipos-carousel__arrow:focus-visible { opacity: 1; }
.ipos-carousel__arrow:hover { background: var(--ipos-orange); }
/* first slide shows instantly (no fade-in) */
.wp-block-gallery.ipos-carousel.is-initial > .wp-block-image.is-active { animation: none; }
@keyframes ipos-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 781px) { .wp-block-gallery.ipos-carousel.is-ready > .wp-block-image img { max-height: 320px; } }

/* ---------------------------------------------------------------- linked images */
.ipos-main .wp-block-image a { display: inline-block; transition: transform 0.2s ease; }
.ipos-main .wp-block-image a:hover { transform: translateY(-3px); }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image a { display: block; text-align: center; }

/* ---------------------------------------------------------------- carousel on light backgrounds */
.wp-block-gallery.ipos-carousel--light.is-ready > .wp-block-image img { border-radius: 12px; box-shadow: var(--ipos-shadow); border: 1px solid #eee; }
.wp-block-gallery.ipos-carousel--light.is-ready > .wp-block-image figcaption { color: var(--ipos-muted); }
.ipos-carousel__wrap .ipos-carousel--light ~ .ipos-carousel__dots .ipos-carousel__dot,
.ipos-carousel__wrap:has(.ipos-carousel--light) .ipos-carousel__dot { background: rgba(0, 0, 0, 0.18); }
.ipos-carousel__wrap:has(.ipos-carousel--light) .ipos-carousel__dot.is-active { background: var(--ipos-orange); }
.ipos-carousel__wrap:has(.ipos-carousel--light) .ipos-carousel__arrow { background: rgba(0, 0, 0, 0.45); }
.ipos-carousel__wrap:has(.ipos-carousel--light) .ipos-carousel__arrow:hover { background: var(--ipos-orange); }
.ipos-feature .ipos-carousel__wrap { margin: 0; }
/* phone renders inside the hero carousel stay upright and centred */
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image.ipos-carousel__phone img { max-height: 440px; width: auto; }
.wp-block-gallery.ipos-carousel.is-ready > .wp-block-image.ipos-shot img,
.ipos-hero .wp-block-gallery.ipos-carousel.is-ready > .wp-block-image:not(.ipos-mockup) img[src*="/2025/01/"],
.ipos-hero .wp-block-gallery.ipos-carousel.is-ready > .wp-block-image:not(.ipos-mockup) img[src*="/2026/07/"] { border-radius: 12px; box-shadow: var(--ipos-shadow-lg); }
