/* ============================================================
   IMS Machine product page  (single-machine.php)
   v1.0
   ============================================================ */

.ims-machine{
	--navy:#0d1b2a;
	--red:#cc0000;
	--ink:#1f2733;
	--mut:#5a6675;
	--line:#e3e7ec;
	width:100vw;
	max-width:100vw;
	margin-left:calc(50% - 50vw);
	margin-right:calc(50% - 50vw);
	color:var(--ink);
	font-size:16px;
}
.ims-machine img{max-width:100%;height:auto;display:block;}

/* inner width constraint */
.ims-m-wrap{max-width:1180px;margin:0 auto;padding:0 24px;}

/* full-bleed bands */
.ims-m-band{padding:54px 0;}
.ims-specs-band{background:#f5f5f5;}
.ims-related-band{background:#f5f5f5;}
.ims-enquire-band{background:var(--navy);color:#fff;}

/* section headings */
/* Section headings carry a short red rule beneath them. The rule is drawn on
   the heading itself rather than a wrapper, so every ims-h picks it up
   wherever it appears — machine pages, category archives, brand pages. */
.ims-h{font-family:'Montserrat',sans-serif;font-weight:800;color:var(--navy);font-size:26px;line-height:1.2;margin:0 0 22px;}
.ims-h::after{content:"";display:block;width:56px;height:3px;background:var(--red);margin:14px 0 0;}
.ims-h--center::after{margin-left:auto;margin-right:auto;}
.ims-enquire-band .ims-h::after{background:#fff;}
.ims-h--center{text-align:center;}
.ims-enquire-band .ims-h{color:#fff;}

/* buttons */
.ims-btn{display:inline-block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;line-height:1;letter-spacing:.2px;padding:14px 26px;border-radius:8px;text-decoration:none;cursor:pointer;border:2px solid transparent;transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;}
.ims-btn--red{background:var(--red);color:#fff;border-color:var(--red);}
.ims-btn--red:hover{background:#a80000;border-color:#a80000;color:#fff;transform:translateY(-2px);}
.ims-btn--ghost{background:transparent;color:var(--navy);border-color:var(--navy);}
.ims-btn--ghost:hover{background:var(--navy);color:#fff;transform:translateY(-2px);}
.ims-hero--banner .ims-btn--ghost,.ims-enquire-band .ims-btn--ghost{color:#fff;border-color:#fff;}
.ims-hero--banner .ims-btn--ghost:hover,.ims-enquire-band .ims-btn--ghost:hover{background:#fff;color:var(--navy);}
.ims-btn--block{display:block;width:100%;text-align:center;padding:16px;font-size:16px;}

/* badges + meta */
.ims-badge{display:inline-block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;letter-spacing:.6px;text-transform:uppercase;padding:6px 12px;border-radius:999px;}
.ims-badge--stock{background:#1a7f37;color:#fff;}
.ims-hero-brand{display:inline-block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--red);text-decoration:none;margin:0 0 10px;}
.ims-hero--banner .ims-hero-brand{color:#fff;opacity:.9;}
.ims-hero-title{font-family:'Montserrat',sans-serif;font-weight:800;color:var(--navy);font-size:40px;line-height:1.08;margin:0 0 12px;}
.ims-hero--banner .ims-hero-title{color:#fff;}
.ims-hero-tagline{font-size:19px;color:var(--mut);margin:0 0 18px;max-width:46ch;}
.ims-hero--banner .ims-hero-tagline{color:#e6eaf0;}
.ims-hero-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px;}
.ims-hero-price{font-family:'Montserrat',sans-serif;font-weight:800;font-size:22px;color:var(--navy);}
.ims-hero--banner .ims-hero-price{color:#fff;}
.ims-hero-specline{font-size:15px;color:var(--mut);margin:0 0 20px;}
.ims-hero--banner .ims-hero-specline{color:#dfe4ec;}
.ims-hero-cta{display:flex;gap:14px;flex-wrap:wrap;}

/* HERO — split (half image / half info) */
.ims-hero--split{padding:48px 0 8px;}
.ims-hero-split-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
/* Photos square, interactive things rounded.

   The site uses rounding to mean "you can act on this" — buttons, the brand
   pill, the enquiry fields. Applying it to imagery as well made the signal
   meaningless and, on machine shots with a pale studio background, drew a
   visible box around the photo so it read as a card rather than a picture.
   Cards, tables and video thumbnails keep their radius: those genuinely are
   contained objects. */
.ims-hero-media img{width:100%;border-radius:0;box-shadow:0 10px 30px rgba(13,27,42,.13);}

/* HERO — banner (full-width image + overlaid text) */
.ims-hero--banner{position:relative;min-height:480px;display:flex;align-items:flex-end;background-size:cover;background-position:center;}
.ims-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,27,42,.15) 0%,rgba(13,27,42,.35) 45%,rgba(13,27,42,.86) 100%);}
.ims-hero-banner-inner{position:relative;width:100%;padding-top:60px;padding-bottom:48px;}
.ims-hero-banner-inner .ims-hero-tagline{max-width:54ch;}

/* INTRO + SPEC two-column (banner layout) */
.ims-two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:44px;padding-top:44px;padding-bottom:8px;align-items:start;}
.ims-intro{padding-top:34px;font-size:17px;line-height:1.7;color:var(--ink);}
.ims-two-col .ims-intro{padding-top:0;}
.ims-intro p{margin:0 0 14px;}

/* spec card (sidebar) */
.ims-spec-card{background:#f5f5f5;border:1px solid var(--line);border-radius:12px;padding:24px;}
.ims-spec-card .ims-h{font-size:20px;margin-bottom:14px;}

/* features — alternating image / text rows */
.ims-features{padding:56px 0 8px;}
.ims-feature{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:56px;}
.ims-feature--flip .ims-feature-media{order:2;}
.ims-feature--notext-img{grid-template-columns:1fr;max-width:760px;}
.ims-feature-media img{width:100%;height:auto;display:block;border-radius:6px;border:1px solid var(--line);}
.ims-feature-head{font-family:'Montserrat',sans-serif;font-size:22px;font-weight:700;color:var(--navy);margin:0 0 12px;line-height:1.25;}
.ims-feature-text{font-size:16px;line-height:1.7;color:#4a5560;}
.ims-feature-text p{margin:0 0 12px;}
.ims-feature-text p:last-child{margin-bottom:0;}
@media(max-width:800px){
	.ims-feature{grid-template-columns:1fr;gap:20px;margin-bottom:40px;}
	.ims-feature--flip .ims-feature-media{order:0;}
	.ims-feature-head{font-size:19px;}
	.ims-features{padding:36px 0 4px;}
}

/* more features / options — plain bullet lists under the picture features */
.ims-m-more{padding:8px 0 64px;background:#f7f8fa;}
.ims-more-grid{display:grid;grid-template-columns:1fr;gap:32px;margin:0 0 48px;}
.ims-more-grid--2{grid-template-columns:1fr 1fr;gap:48px;}
.ims-more-head{margin:0 0 12px;}
.ims-more-list{list-style:none;margin:0;padding:0;}
.ims-more-list li{position:relative;padding:3px 0 3px 18px;font-size:16px;line-height:1.7;color:#4a5560;}
.ims-more-list li::before{content:"";position:absolute;left:2px;top:14px;width:6px;height:6px;border-radius:50%;background:var(--red);}
.ims-more-list li strong{color:var(--navy);font-weight:600;}
@media(max-width:800px){
	.ims-more-grid--2{grid-template-columns:1fr;gap:28px;}
	.ims-m-more{padding:4px 0 36px;}
}

/* service band — installation and support, site-wide */
.ims-service-band{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);color:#fff;min-height:420px;}
.ims-service-band--noimg{grid-template-columns:1fr;}
.ims-service-img{background-size:cover;background-position:center;min-height:320px;}
.ims-service-body{padding:56px 64px;display:flex;flex-direction:column;justify-content:center;max-width:680px;}
.ims-service-band--noimg .ims-service-body{margin:0 auto;max-width:900px;}
.ims-service-h{font-family:'Montserrat',sans-serif;font-size:28px;font-weight:700;color:#fff;margin:0 0 12px;line-height:1.2;}
.ims-service-lead{font-size:17px;line-height:1.6;color:rgba(255,255,255,.85);margin:0 0 20px;}
.ims-service-list{list-style:none;margin:0;padding:0;}
.ims-service-list li{position:relative;padding:6px 0 6px 26px;font-size:16px;line-height:1.5;color:#fff;}
.ims-service-list li::before{content:"";position:absolute;left:0;top:11px;width:14px;height:8px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(-45deg);}
@media(max-width:900px){
	.ims-service-band{grid-template-columns:1fr;}
	.ims-service-body{padding:40px 24px;}
	.ims-service-h{font-size:23px;}
}

/* hero spec pills */
.ims-hero-speclist{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;padding:0;}
.ims-hero-speclist li{
	background:#f2f4f7;border:1px solid #e4e8ed;border-radius:3px;
	padding:7px 12px;font-family:'Inter',sans-serif;font-size:13px;
	font-weight:500;color:#3f4b57;line-height:1.2;margin:0;
}
.ims-hero--banner .ims-hero-speclist li{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#eef2f7;}

/* larger machine title */
.ims-machine .ims-hero-title{font-size:56px !important;line-height:1.05 !important;margin:0 0 12px !important;letter-spacing:-0.015em !important;}
@media(max-width:900px){.ims-machine .ims-hero-title{font-size:38px !important;}}
@media(max-width:600px){.ims-machine .ims-hero-title{font-size:30px !important;}}

/* Copy above the form is gone — the "Enquiring about" bar names the machine. */
.ims-enquire-grid{display:block;}
.ims-enquire-copy{max-width:640px;margin:0 auto;text-align:center;}
.ims-enquire-copy:empty{display:none;}
.ims-enquire-formwrap{max-width:940px;margin:0 auto;}

/* enquiry form.

   This used to be a two-column grid with every field pinned to a named
   cell — Name at row 2 column 1, the message spanning rows 3 to 6 of
   column 2, and so on. That kind of placement only holds while the field
   list never changes, and it fought every later attempt to restyle the
   form: the fields kept landing in a narrow left-hand column no matter
   what the newer rules said. Flow order now, with the pairs handled by
   .ims-field-row further down. */
.ims-enquire-form{display:block;}
.ims-field-machine{margin:0 0 22px;}
.ims-enquire-form > button{margin-top:14px;}
@media(max-width:760px){
	.ims-enquire-form{grid-template-columns:1fr;}
	.ims-enquire-form > *{grid-area:auto !important;}
	.ims-enquire-form > label:nth-of-type(2) textarea{min-height:110px !important;}
	.ims-enquire-form > button{justify-self:stretch;width:100% !important;}
}

/* brand panel — copy on a gradient, image alongside */
.ims-brand-panel{
	display:grid;grid-template-columns:1fr 1fr;align-items:stretch;
	max-width:1180px;margin:56px auto;border-radius:8px;overflow:hidden;
	background:linear-gradient(135deg,#0d1b2a 0%,#16283d 55%,#1d3a5c 100%);
}
.ims-brand-panel--noimg{grid-template-columns:1fr;}
.ims-brand-panel-copy{padding:46px 48px;}
.ims-brand-panel-logo{max-height:38px;width:auto;margin:0 0 18px;filter:brightness(0) invert(1);opacity:.9;}
.ims-brand-panel-title{
	color:#fff !important;font-family:'Montserrat',sans-serif !important;
	font-size:28px !important;font-weight:700 !important;margin:0 0 8px !important;line-height:1.2 !important;
}
.ims-brand-panel-line{color:#ff8f84 !important;font-size:15px !important;font-weight:600 !important;margin:0 0 14px !important;}
.ims-brand-panel-desc{color:rgba(255,255,255,.78) !important;font-size:15px !important;line-height:1.65 !important;margin:0 0 24px !important;}
.ims-brand-panel-btn{
	display:inline-block;border:2px solid rgba(255,255,255,.45);color:#fff !important;
	padding:12px 24px;border-radius:3px;text-decoration:none !important;
	font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;letter-spacing:.03em;
	transition:background .2s,border-color .2s;
}
.ims-brand-panel-btn:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff !important;}
.ims-brand-panel-media{
	background-size:cover;background-position:center;min-height:320px;
	-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 18%);
	mask-image:linear-gradient(to right,transparent 0%,#000 18%);
}
@media(max-width:820px){
	.ims-brand-panel{grid-template-columns:1fr;margin:36px 16px;}
	.ims-brand-panel-media{order:-1;min-height:200px;-webkit-mask-image:none;mask-image:none;}
	.ims-brand-panel-copy{padding:32px 26px;}
	.ims-brand-panel-title{font-size:23px !important;}
}

/* The hero used to carry a bottom rule to divide it from what follows.
   That was written when the section below it was the same white, so a
   line was the only thing marking the join. Key features now sits on a
   tinted band, which does that job on its own — the rule was a second
   divider on top of a divider. */
.ims-hero--split{background:#ffffff;padding-bottom:44px;}

/* Mobile: stack the hero — image full width first, details underneath. Two
   narrow columns squeeze the machine photo and force the heading to wrap
   every second word. */
@media(max-width:900px){
	.ims-hero--split .ims-hero-split-grid{
		display:flex !important;
		flex-direction:column !important;
		gap:0 !important;
	}
	.ims-hero--split .ims-hero-media{
		order:1 !important;margin:0 0 24px !important;width:100% !important;
	}
	.ims-hero--split .ims-hero-media img{width:100% !important;height:auto !important;}
	.ims-hero--split .ims-hero-info{order:2 !important;width:100% !important;}
	.ims-hero--split{padding-bottom:34px;}
	.ims-features{padding-top:44px !important;}
}
@media(max-width:600px){
	.ims-hero--split{padding-bottom:28px;}
	.ims-features{padding-top:36px !important;}
}

/* features — separated by a hairline rule rather than alternating panels */
.ims-features{padding:72px 0 8px;}
.ims-feature{padding:40px 0;border-radius:0;}
.ims-feature + .ims-feature{border-top:1px solid #e4e8ec;}
.ims-feature:last-of-type{padding-bottom:8px;}
.ims-feature-media img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;border-radius:0;border:1px solid var(--line);}
/* Panoramic rows: image across the full column, copy underneath.

   The 4:3 crop above is what makes the ordinary rows line up, but applied to a
   wide image it cuts both ends off. Here the frame is released entirely so the
   image keeps whatever shape it was given, and the heading and text sit below
   rather than beside it — at full width there is no room alongside. */
.ims-machine .ims-feature--wide{
	grid-template-columns:1fr !important;
	gap:22px !important;
	max-width:none !important;
}
.ims-machine .ims-feature--wide .ims-feature-media{order:0 !important;}
.ims-machine .ims-feature--wide .ims-feature-media img{
	aspect-ratio:auto !important;
	object-fit:contain !important;
	height:auto !important;
}
.ims-machine .ims-feature--wide .ims-feature-copy{max-width:none;}

/* A feature with no image would otherwise sit adrift in a wide empty row.
   The accent rule anchors it and keeps the measure readable. */
.ims-feature--notext-img{max-width:720px;padding-left:22px;border-left:3px solid var(--red);}
.ims-feature--notext-img + .ims-feature{border-top:1px solid #e4e8ec;}
@media(max-width:800px){.ims-feature{padding:28px 0;}.ims-feature--notext-img{padding-left:16px;}}

/* The "slimmer fields" overrides that used to sit here have gone. They set
   7px padding and 3px corners with !important, which the new rounded field
   styling further down could only have beaten by escalating again. */

/* breadcrumb — flat band, no gradient, sized to be read rather than squinted at.

   Matches the live site: a plain light-grey strip, mid-grey type at a normal
   reading size, slash separators. The previous version was 11-12px in a pale
   grey that read as disabled text, and the tinted band under it made the top
   of the page look like it was fading in. */
.ims-breadcrumb{
	background:#f2f3f4;
	border-bottom:0;
	padding:14px 0;
	font-family:'Inter',sans-serif;
	font-size:14px;
	color:#5a6672;
}
.ims-crumbs{font-size:14px;}
/* The global `li` rule sets its own font-size, so inheriting from the list is
   not enough — the items have to be targeted directly. */
.ims-crumbs li,
.ims-crumbs li a,
.ims-crumbs li span{font-size:14px !important;line-height:1.4 !important;}
.ims-crumbs li:not(:last-child)::after{margin:0 8px;font-size:14px !important;}
.ims-breadcrumb a{color:#5a6672;text-decoration:none;}
.ims-breadcrumb a:hover{color:var(--red);text-decoration:underline;}
.ims-breadcrumb .separator{margin:0 8px;color:#b9c0c7;}
.ims-breadcrumb .last{color:#6b7681;font-weight:500;}

/* hero meta row — category, brand and stock badge all to one scale */
.ims-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;}
.ims-hero-cattag,.ims-hero-brandtag,.ims-hero-meta .ims-badge{
	font-family:'Montserrat',sans-serif !important;
	font-size:11px !important;
	font-weight:700 !important;
	letter-spacing:.08em !important;
	text-transform:uppercase !important;
	line-height:1 !important;
	padding:6px 12px !important;
	border-radius:3px !important;
	margin:0 !important;
	display:inline-flex !important;
	align-items:center !important;
}
.ims-hero-cattag{background:#f2f4f7 !important;color:#5a6672 !important;text-decoration:none !important;}
.ims-hero-brandtag{background:#fdeaea !important;color:var(--red) !important;text-decoration:none !important;}
.ims-hero-meta .ims-badge--stock{background:#127a3d !important;color:#fff !important;}
.ims-hero-cattag:hover,.ims-hero-brandtag:hover{text-decoration:none !important;opacity:.85;}

.ims-crumbs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;}
.ims-crumbs li{display:flex;align-items:center;margin:0;}
.ims-crumbs li:not(:last-child)::after{content:'/';margin:0 10px;color:#9aa1a9;font-size:14px;line-height:1;}
.ims-crumbs a{color:#5a6672;text-decoration:none;}
.ims-crumbs a:hover{color:var(--red);text-decoration:underline;}
@media(max-width:600px){
	.ims-breadcrumb{font-size:13px;padding:12px 0;}
	.ims-breadcrumb .ims-m-wrap{white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}

/* ------------------------------------------------------------------
   Montserrat on short strings only.

   AORE run Montserrat for everything, and the bit that reads well on
   their site is exactly where the strings are short — spec values,
   captions, single figures. It is a geometric display face: wide, even,
   drawn for signage. Over a four-line intro paragraph it reads slower
   and eats horizontal room, which in a two-column layout means more
   wrapping. So it goes on the specifications, the spec strip, the
   availability line and the breadcrumb, and prose stays on Inter.
   ------------------------------------------------------------------ */
/* ---------- details (plain text section) ----------
   For machines with things worth saying and no photography to hang them
   on. Prose measure is capped so a long options list does not run the
   full band width and become hard to scan. */
/* ---------- TICK LISTS ---------- */
/* Intro and specification side by side. The intro alone in a 1180px block
   left a large empty column to its right; the specification panel fills it
   and gives a reader after numbers somewhere to look immediately. */
.ims-machine .ims-desc-grid{
	display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
	gap:40px 56px;align-items:start;
}
.ims-machine .ims-desc-grid--one{grid-template-columns:1fr;}
.ims-machine .ims-desc-grid .ims-intro p{max-width:64ch;}
.ims-machine .ims-desc-side{
	background:#fbfbfc;border:1px solid #e4e8ec;border-radius:6px;padding:22px 24px;
}
.ims-machine .ims-side-h{
	font-family:'Montserrat',sans-serif;font-weight:700;
	font-size:13px;letter-spacing:.08em;text-transform:uppercase;
	color:#1a1a1a;margin:0 0 14px;padding-bottom:12px;
	border-bottom:2px solid #c1272d;
}
.ims-machine .ims-desc-side .ims-ticks li{font-size:15px;padding:8px 0;}
@media(max-width:900px){
	.ims-machine .ims-desc-grid{grid-template-columns:1fr;gap:28px;}
}

.ims-machine .ims-ticks-grid{
	display:grid;grid-template-columns:1fr 1fr;gap:48px 64px;
	max-width:1180px;margin:0 auto;
}
/* The shop-outcomes list is one column of items but reads better across two
   at desktop width, so the column itself splits rather than the grid. */
.ims-machine .ims-ticks-grid--split{grid-template-columns:1fr;}
.ims-machine .ims-ticks-grid--split .ims-ticks{
	columns:2;column-gap:56px;
}
.ims-machine .ims-ticks-grid--split .ims-ticks li{
	break-inside:avoid;-webkit-column-break-inside:avoid;
}
@media(max-width:800px){
	.ims-machine .ims-ticks-grid--split .ims-ticks{columns:1;}
}
.ims-machine .ims-ticks-grid--one{grid-template-columns:1fr;max-width:820px;}
.ims-machine .ims-ticks-h{
	font-family:'Montserrat',sans-serif;font-weight:700;
	font-size:15px;letter-spacing:.06em;text-transform:uppercase;
	color:#1a1a1a;margin:0 0 20px;padding-bottom:14px;
	border-bottom:2px solid #c1272d;
}
.ims-machine .ims-ticks{margin:0;padding:0;list-style:none;}
.ims-machine .ims-ticks li{
	display:flex;align-items:flex-start;gap:12px;
	font-size:16px;line-height:1.55;color:#40484f;
	padding:9px 0;border-bottom:1px solid #e8ecef;
}
.ims-machine .ims-ticks li:last-child{border-bottom:0;}
.ims-machine .ims-ticks li strong{color:#1a1a1a;font-weight:700;}
/* The tick is the scanning aid, so it stays red and the same size on every
   row regardless of how long the line wraps. flex-shrink:0 stops it being
   squeezed to an oval by a long item. */
.ims-machine .ims-tick{
	flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
	width:22px;height:22px;margin-top:1px;border-radius:50%;
	background:rgba(193,39,45,.10);color:#c1272d;
}
/* The benefits column is the one a fabricator is actually buying, so it gets
   a tinted plate to pull the eye right rather than reading as a footnote to
   the specification list beside it. */
.ims-machine .ims-ticks-col--benefit{
	background:transparent;border:0;border-radius:0;
	padding:0;margin:0;
}
@media(max-width:900px){
	.ims-machine .ims-ticks-grid{grid-template-columns:1fr;gap:36px;}
	.ims-machine .ims-ticks-col--benefit{margin:0;padding:22px;}
}

/* ---------- DETAILS ---------- */
.ims-machine .ims-details{max-width:880px;margin:0 auto;}
.ims-machine .ims-details p{
	font-size:16px;line-height:1.7;color:#40484f;margin:0 0 16px;
}
/* The opening paragraph carries the summary of the whole range, so it is set
   larger and darker. Without it the section opened at the same weight as
   every line below and read as an undifferentiated slab of prose. */
.ims-machine .ims-details > p:first-child{
	font-size:19px;line-height:1.6;color:#1a1a1a;margin-bottom:26px;
}
/* Sub-headings had 17px and nothing else marking them, which at this measure
   barely separated from the body. A rule above and a little more weight give
   the section the steps it was missing. */
.ims-machine .ims-details-h{
	font-family:'Montserrat',sans-serif;font-weight:700;
	font-size:15px;letter-spacing:.06em;text-transform:uppercase;
	color:#1a1a1a;margin:38px 0 14px;padding-top:18px;
	border-top:1px solid #e4e8ec;
}
.ims-machine .ims-details-h:first-child{border-top:0;padding-top:0;margin-top:0;}
.ims-machine .ims-details-list{
	margin:0 0 18px;padding:0;list-style:none;
}
/* The model rows are the thing a fabricator actually scans, so they get a
   tinted plate rather than sitting as loose bullets in the prose. */
.ims-machine .ims-details-list li{
	position:relative;padding:11px 14px 11px 32px;margin:0 0 6px;
	font-size:16px;line-height:1.55;color:#40484f;
	background:#f6f7f9;border-radius:4px;
}
.ims-machine .ims-details-list li::before{
	content:"";position:absolute;left:14px;top:19px;
	width:7px;height:7px;border-radius:50%;background:#c1272d;
}
.ims-machine .ims-details-list li strong{color:#1a1a1a;font-weight:700;}
@media(max-width:600px){
	.ims-machine .ims-details > p:first-child{font-size:17px;}
	.ims-machine .ims-details-h{margin-top:28px;}
}

.ims-machine .ims-spec-parsed td{
	font-family:'Montserrat',sans-serif;
	font-size:14px;letter-spacing:-.005em;
}
.ims-machine .ims-spec-parsed td:first-child{font-weight:600;}
.ims-machine .ims-spec-parsed td:last-child{font-weight:500;}
.ims-machine .ims-hero-speclist li{
	font-family:'Montserrat',sans-serif !important;
	font-size:13px !important;font-weight:600 !important;
}
.ims-machine .ims-availability{
	font-family:'Montserrat',sans-serif !important;
	font-size:14px !important;font-weight:700 !important;
}
.ims-machine .ims-hero-specline{
	font-family:'Montserrat',sans-serif !important;
	font-size:14px !important;font-weight:600 !important;
}
/* Breadcrumb stays on Inter. It was swapped to Montserrat with the other
   short strings, but it is a row of link text rather than a spec value,
   and the wider letterforms made it heavier than a breadcrumb should be. */

/* Prose stays on Inter — these are the runs long enough for it to matter. */
.ims-machine .ims-intro,
.ims-machine .ims-intro p,
.ims-machine .ims-feature-text,
.ims-machine .ims-feature-text p,
.ims-machine .ims-enquire-copy p,
.ims-machine .ims-brand-body p{font-family:'Inter',sans-serif !important;}

/* The spec card in the two-column layout sits in a narrow sidebar, so it
   keeps a smaller heading — 34px there would wrap "Specifications" and
   crowd the column. */
.ims-machine .ims-spec-card .ims-h{font-size:22px !important;margin-bottom:14px !important;}

@media(max-width:700px){
	.ims-machine .ims-h{font-size:26px !important;}
	.ims-machine .ims-spec-card .ims-h{font-size:20px !important;}
}

/* ------------------------------------------------------------------
   Spec card in the sidebar.

   Two columns do not fit here. The card sits in a ~35% column, and the
   label column is sized by its longest label — "Section Size for Profile
   Processing" — which left the value column so narrow that "H-ALS" broke
   across two lines and "300 × 150 mm – 800 × 500 mm" ran to six. The
   width:42% rule could not hold because the table is auto-layout and the
   label text refuses to compress past its longest word.

   Stacked instead: label above value, the way the table already behaves
   on a phone. Same reason in both cases — not enough horizontal room for
   two columns of real text. The full-width Specifications band keeps its
   two columns, where there is room for them.
   ------------------------------------------------------------------ */
.ims-machine .ims-spec-card .ims-spec-parsed td{
	display:block;width:auto !important;
	border-bottom:0;padding:0;
	text-align:left;
}
.ims-machine .ims-spec-card .ims-spec-parsed tr{
	display:block;
	padding:11px 0;
	border-bottom:1px solid var(--line);
}
.ims-machine .ims-spec-card .ims-spec-parsed tr:last-child{border-bottom:0;}
.ims-machine .ims-spec-card .ims-spec-parsed tr:nth-child(even) td{background:none;}
.ims-machine .ims-spec-card .ims-spec-parsed td:first-child{
	font-size:11px !important;font-weight:600 !important;
	letter-spacing:.06em;text-transform:uppercase;
	color:#8a929c !important;margin-bottom:3px;
}
.ims-machine .ims-spec-card .ims-spec-parsed td:last-child{
	font-size:15px !important;font-weight:600 !important;
	color:var(--navy) !important;line-height:1.4;
}

/* The full-width band has the room, so it stays two-column — but fixed
   layout, so one long label can no longer starve the value column. */
.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi){table-layout:fixed;}
.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td:first-child{width:45%;}
.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td{overflow-wrap:break-word;}

/* ------------------------------------------------------------------
   No rounded corners on images, and no panel behind them.

   The 4:3 box on the split hero exists to keep every machine page the
   same height whatever shape the supplier photo is. That job needs the
   box, not the decoration — so the grey fill, the hairline and the
   corner radius all come off and the photo sits on the page.
   ------------------------------------------------------------------ */
.ims-machine .ims-hero--split .ims-hero-media{
	background:none !important;border:0 !important;
	border-radius:0 !important;padding:0 !important;
}
.ims-machine img,
.ims-machine .ims-hero--split .ims-hero-media img,
.ims-machine .ims-feature-media img,
.ims-machine .ims-hero-wide-media img,
.ims-machine .ims-gallery-grid img,
.ims-machine .ims-related-img img,
.ims-machine .ims-feature-text img{border-radius:0 !important;}
.ims-machine .ims-hero-wide-media{background:none !important;}
.ims-machine .ims-spec-card{border-radius:0 !important;}
.ims-machine .ims-feature-text img{border:0 !important;}

/* ------------------------------------------------------------------
   The two hero buttons, matched.

   They were drawn by different rules: .ims-btn at 8px radius, 15px
   Montserrat 700 with .2px tracking, and the brochure link at 3px
   radius, 14px Montserrat 700 with .03em. Side by side that reads as
   two different button styles rather than a primary and a secondary.
   Same family, same size, same tracking, same corner — only the fill
   and the border separate them.
   ------------------------------------------------------------------ */
.ims-machine .ims-hero-cta .ims-btn,
.ims-machine .ims-hero-broch{
	font-family:'Montserrat',sans-serif !important;
	font-size:14px !important;
	font-weight:700 !important;
	letter-spacing:.02em !important;
	line-height:1 !important;
	border-radius:3px !important;
	padding:15px 26px !important;
	display:inline-flex !important;
	align-items:center !important;
	text-decoration:none !important;
}

/* ==================================================================
   SECTION RHYTHM

   Every band on a machine page was setting its own background and its
   own padding, decided at the time that section was written. The result
   was three white sections running together with no boundary, two tinted
   ones touching so they read as one, and gaps that varied from 40px to
   90px depending on which rule happened to win.

   One scheme instead: identical padding everywhere, and the background
   alternates strictly down the page. Adjacent sections can never share a
   colour, so every join is visible without needing a rule drawn on it.
   The order below is the order they appear in the template — change the
   template order and these have to be re-paired.
   ================================================================== */
.ims-machine .ims-m-band{padding:64px 0 !important;margin:0 !important;}

/* Which band is which colour is decided at render time by
   ims_band_class(), not listed here — see the note on that function. */
/* Which band is which colour is decided at render time by
   ims_band_class(), not listed here — see the note on that function. */
.ims-machine .ims-band--tint{background:#f7f8fa !important;}
.ims-machine .ims-band--plain{background:#ffffff !important;}

/* Where two bands of the same colour meet, a red rule marks the boundary
   instead of a colour change. 80% wide and centred so it reads as a divider
   rather than a border on the section. */
.ims-machine .ims-band--sep{position:relative;}
.ims-machine .ims-band--sep::before{
	content:"";position:absolute;top:0;left:10%;
	width:80%;height:2px;background:var(--red,#b81f1f);
}
.ims-machine .ims-related-band{background:#ffffff !important;}

/* ------------------------------------------------------------------
   Importer note.

   A bare red rule with text beside it, floating in the same white as
   everything around it, read as something left behind rather than a
   deliberate statement. It is also the one piece of copy on the page
   that is about IMS rather than the machine, so it earns a different
   surface: a navy panel that separates it from the specifications above
   and the section below without needing either of them to change.
   ------------------------------------------------------------------ */
.ims-machine .ims-finance{
	background:var(--navy) !important;
	color:#e7ecf4 !important;
	border-left:0 !important;
	border-radius:4px !important;
	padding:30px 34px !important;
	margin:8px 0 0 !important;
	font-size:16px !important;line-height:1.7 !important;
}
.ims-machine .ims-finance p{color:#c9d3e2 !important;margin:0 0 12px !important;font-size:16px !important;}
.ims-machine .ims-finance p:last-child{margin-bottom:0 !important;}
.ims-machine .ims-finance strong,
.ims-machine .ims-finance h2,
.ims-machine .ims-finance h3,
.ims-machine .ims-finance h4{
	color:#ffffff !important;
	font-family:'Montserrat',sans-serif !important;
	font-weight:700 !important;
}
@media(max-width:700px){
	.ims-machine .ims-finance{padding:22px 20px !important;}
}

/* The intro closes the white hero block, so it needs the space under it
   rather than a colour of its own. */
.ims-machine .ims-intro{padding-top:0 !important;padding-bottom:56px !important;}
.ims-machine .ims-hero--split{padding-bottom:72px !important;}
.ims-machine .ims-hero--wide{padding-bottom:72px !important;}

/* The importer note sat directly against the specifications heading with
   nothing between them. It belongs to the intro above it, not to the
   band below. */
/* The importer note is styled as a panel further up; nothing to add here. */

@media(max-width:700px){
	.ims-machine .ims-m-band{padding:42px 0 !important;}
	.ims-machine .ims-intro{padding-bottom:36px !important;}
	.ims-machine .ims-hero--split{padding-bottom:44px !important;}
	.ims-machine .ims-hero--wide{padding-bottom:44px !important;}
}

/* ------------------------------------------------------------------
   Feature row spacing.

   Rows were spaced twice: a 56px bottom margin from the original grid
   rule and 40px padding from a later one. Only the padding applied on
   both sides of the divider, so each line had 96px above it and 40px
   below and the rows looked as though they belonged to the row beneath.
   Padding alone now, equal top and bottom.
   ------------------------------------------------------------------ */
.ims-machine .ims-feature{
	margin-bottom:0 !important;
	padding:48px 0 !important;
}
/* The no-image rows carry a red rule down their left edge and 22px of
   padding to clear it. The shorthand above resets that padding to zero, so
   the copy ended up printed hard against the rule. Restating it here keeps
   the vertical rhythm from the shorthand and gives the text its gutter back. */
.ims-machine .ims-feature--notext-img{
	padding-left:26px !important;
	max-width:820px;
}
@media(max-width:800px){
	.ims-machine .ims-feature--notext-img{padding-left:18px !important;}
}
/* Targeted by position after the heading rather than with :first-of-type.

   :first-of-type counts elements of the same tag among their siblings, not
   the first element matching the class. Once the optional banner div was
   added inside this section it became the first div, so this rule silently
   stopped matching anything and the opening feature fell back to the full
   48px of top padding. Keying off the heading instead means it holds
   whether or not a banner is present. */
.ims-machine .ims-features > .ims-h + .ims-feature{padding-top:8px !important;}
.ims-machine .ims-feature:last-of-type{padding-bottom:8px !important;}
@media(max-width:800px){
	.ims-machine .ims-feature{padding:32px 0 !important;}
}

/* ------------------------------------------------------------------
   Description and specifications, equal halves.

   The first attempt at this gave the prose 1.4fr and the table 1fr,
   which starved the spec column — long labels forced its values into a
   sliver and "H-ALS" broke across two lines. Equal halves give the table
   room for two real columns and leave the description a measure that is
   still comfortable to read.
   ------------------------------------------------------------------ */
.ims-machine .ims-desc-spec{
	display:grid;grid-template-columns:1fr 1fr;gap:56px;
	align-items:start;padding-bottom:8px;
}
.ims-machine .ims-desc-spec .ims-intro{padding:0 0 26px !important;}
.ims-machine .ims-desc-spec .ims-hero-cta{margin:0;}
.ims-machine .ims-spec-col .ims-h{margin-bottom:16px !important;}
@media(max-width:900px){
	.ims-machine .ims-desc-spec{grid-template-columns:1fr;gap:38px;}
}

/* spec table — auto-style any pasted table */
/* NOTE: the rules further down this file set text-align on td, and several
   carry .ims-machine specificity. Anything added here that touches the same
   property must out-specify them or it silently loses — see the colspan
   centring at the foot of this file, which had to be moved there for exactly
   that reason. */
.ims-spec-parsed{width:100%;border-collapse:collapse;}
.ims-spec-parsed td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top;font-size:15px;line-height:1.5;}
.ims-spec-parsed tr:nth-child(even) td{background:rgba(13,27,42,.025);}
.ims-spec-parsed td:first-child{font-weight:600;color:var(--navy);width:42%;}
.ims-spec-parsed td:last-child{font-variant-numeric:tabular-nums;}
.ims-spec-parsed tr.ims-spec-section td{background:var(--navy);color:#fff;font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;width:auto;}
/* Stacked label-over-value layout for narrow screens. Multi-model tables are
   excluded: they scroll sideways with a pinned first column instead, and
   display:block here was collapsing every cell of a row into its own line. */
@media(max-width:600px){
	.ims-spec-parsed:not(.ims-spec-cols-multi) td{display:block;width:100%;border-bottom:0;padding:2px 0;}
	.ims-spec-parsed:not(.ims-spec-cols-multi) td:first-child{width:100%;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#7a7a7a;font-weight:500;padding-top:12px;}
	.ims-spec-parsed:not(.ims-spec-cols-multi) td:last-child{border-bottom:1px solid var(--line);padding-bottom:12px;font-weight:600;}
	.ims-spec-parsed:not(.ims-spec-cols-multi) tr:nth-child(even) td{background:none;}
	.ims-spec-parsed:not(.ims-spec-cols-multi) tr.ims-spec-section td{padding:10px 12px;margin-top:8px;}
}
.ims-spec-table{overflow-x:auto;}
.ims-spec-table table{width:100%;border-collapse:collapse;font-size:15px;}
.ims-spec-table th,.ims-spec-table td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top;}
.ims-spec-table tr:nth-child(even) td{background:rgba(13,27,42,.025);}
.ims-spec-table td:first-child{font-weight:600;color:var(--navy);white-space:nowrap;}
.ims-spec-table thead th,.ims-spec-table tr:first-child th{background:var(--navy);color:#fff;font-family:'Montserrat',sans-serif;font-weight:700;border-bottom:none;}
.ims-spec-table--wide{max-width:920px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.ims-spec-table--wide table{font-size:15.5px;}

/* BODY — editor content */
.ims-m-body{padding-top:40px;padding-bottom:8px;font-size:17px;line-height:1.75;}
.ims-m-body h2{font-family:'Montserrat',sans-serif;font-weight:800;color:var(--navy);font-size:27px;line-height:1.2;margin:38px 0 14px;}
.ims-m-body h3{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--navy);font-size:21px;margin:28px 0 10px;}
.ims-m-body h4{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--ink);font-size:18px;margin:22px 0 8px;}
.ims-m-body p{margin:0 0 16px;}
.ims-m-body ul,.ims-m-body ol{margin:0 0 18px;padding-left:22px;}
.ims-m-body li{margin:0 0 8px;}
.ims-m-body img{border-radius:10px;margin:8px 0;}
.ims-m-body a{color:var(--red);}
.ims-m-body figure{margin:18px 0;}

/* VIDEOS
   No padding-top here. This carried 46px from when it was a plain
   section rather than a band, and it stacked on the band's own padding —
   which is why the space above the heading was roughly double the space
   below the captions. Spacing comes from the band. */
.ims-videos{padding-top:0;}
.ims-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
.ims-video{position:relative;display:block;border-radius:12px;overflow:hidden;aspect-ratio:16/9;background:#000;box-shadow:0 6px 18px rgba(13,27,42,.12);}
.ims-video img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .3s ease;opacity:.92;}
.ims-video:hover img{transform:scale(1.05);opacity:.8;}
.ims-video-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.ims-video-play svg{filter:drop-shadow(0 3px 8px rgba(0,0,0,.4));transition:transform .2s ease;}
.ims-video:hover .ims-video-play svg{transform:scale(1.12);}

/* GALLERY — spacing comes from the band, as with videos. */
.ims-gallery-sec{padding-top:0;}
.ims-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;}
.ims-gimg{display:block;border-radius:0;overflow:hidden;aspect-ratio:4/3;box-shadow:0 3px 10px rgba(13,27,42,.1);}
.ims-gimg img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.ims-gimg:hover img{transform:scale(1.06);}

/* ENQUIRE band — spacing from the shared scale. */
.ims-enquire-band{margin-top:0;}
.ims-enquire-grid{display:block;}
.ims-enquire-copy > p{font-size:16px;line-height:1.7;margin:0 0 16px;max-width:46ch;}
.ims-broch-note{font-style:italic;}
.ims-enquire-formwrap{background:#fff;border-radius:14px;padding:28px;color:var(--ink);box-shadow:0 14px 40px rgba(0,0,0,.25);}
.ims-field-machine{display:flex;flex-direction:column;gap:2px;background:#f5f5f5;border-radius:8px;padding:10px 14px;margin:0 0 16px;}
.ims-field-machine span{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--mut);}
.ims-field-machine strong{font-family:'Montserrat',sans-serif;color:var(--navy);font-size:16px;}
.ims-enquire-form label{display:block;font-size:13px;font-weight:600;color:var(--navy);margin:0 0 14px;}
.ims-field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ims-enquire-form input,.ims-enquire-form select,.ims-enquire-form textarea{width:100%;margin-top:5px;padding:11px 12px;border:1px solid #cdd4dd;border-radius:7px;font-size:15px;font-weight:400;font-family:inherit;color:var(--ink);background:#fff;}
.ims-enquire-form input:focus,.ims-enquire-form select:focus,.ims-enquire-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(204,0,0,.12);}
.ims-enquire-form button{margin-top:6px;}
.ims-form-thanks{text-align:center;padding:24px 8px;}
.ims-form-thanks strong{display:block;font-family:'Montserrat',sans-serif;font-size:20px;color:var(--navy);margin:0 0 10px;}
.ims-form-thanks p{color:var(--mut);margin:0 0 16px;}

/* BRAND */
.ims-brand-sec{padding-top:52px;padding-bottom:8px;}
.ims-brand-card{display:flex;gap:30px;align-items:center;background:#f5f5f5;border:1px solid var(--line);border-radius:14px;padding:30px 34px;}
.ims-brand-logo{flex:0 0 170px;display:flex;align-items:center;justify-content:center;}
.ims-brand-logo img{max-height:90px;width:auto;object-fit:contain;}
.ims-brand-body .ims-h{margin-bottom:10px;}
.ims-brand-body p{font-size:16px;line-height:1.7;color:var(--mut);margin:0 0 16px;max-width:62ch;}

/* RELATED */
.ims-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.ims-related-card{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease;}
.ims-related-card:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(13,27,42,.14);}
.ims-related-img{aspect-ratio:4/3;background:#eef1f4;overflow:hidden;}
.ims-related-img img{width:100%;height:100%;object-fit:cover;}
.ims-related-title{display:block;padding:14px 16px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;color:var(--navy);line-height:1.3;}

/* RESPONSIVE */
@media(max-width:960px){
	.ims-hero-split-grid{grid-template-columns:1fr;gap:28px;}
	.ims-two-col{grid-template-columns:1fr;gap:28px;}
	.ims-enquire-grid{grid-template-columns:1fr;gap:30px;}
	.ims-related-grid{grid-template-columns:repeat(2,1fr);}
	.ims-hero-title{font-size:32px;}
	.ims-hero--banner{min-height:400px;}
}
@media(max-width:560px){
	.ims-m-wrap{padding:0 18px;}
	.ims-m-band{padding:40px 0;}
	.ims-field-row{grid-template-columns:1fr;}
	.ims-brand-card{flex-direction:column;text-align:center;gap:18px;}
	.ims-hero-cta .ims-btn{flex:1;text-align:center;}
	.ims-h{font-size:23px;}
}

/* ============================================================
   OVERRIDES — beat the site-wide !important globals + polish
   (global sheet forces h1 52px, h2/h3 colours, p/td #444, etc.)
   ============================================================ */

/* section + hero headings */
.ims-machine .ims-related-img--empty{display:flex !important;align-items:center !important;justify-content:center !important;background:#e7ebef !important;color:rgba(13,27,42,.28) !important;}
.ims-machine .ims-related-img--empty .ims-card-icon{width:38% !important;height:auto !important;max-width:96px !important;}
.ims-machine .ims-related-card:hover .ims-related-img--empty{color:rgba(193,39,45,.45) !important;}
.ims-machine .ims-h{font-size:34px !important;color:var(--navy) !important;font-weight:800 !important;line-height:1.2 !important;font-family:'Montserrat',sans-serif !important;}
.ims-machine .ims-h--center{text-align:center !important;}
.ims-machine .ims-hero-title{font-size:30px !important;line-height:1.14 !important;color:var(--navy) !important;font-weight:800 !important;margin:0 0 12px !important;}
.ims-machine .ims-hero--banner .ims-hero-title{color:#fff !important;}
.ims-machine .ims-hero-tagline{font-size:18px !important;font-weight:400 !important;color:var(--mut) !important;line-height:1.5 !important;}
.ims-machine .ims-hero--banner .ims-hero-tagline{color:#e6eaf0 !important;}
.ims-machine .ims-hero-brand{font-size:13px !important;font-weight:700 !important;color:var(--red) !important;}
.ims-machine .ims-hero--banner .ims-hero-brand{color:#fff !important;}
.ims-machine .ims-hero-price{font-size:20px !important;font-weight:800 !important;color:var(--navy) !important;}
.ims-machine .ims-hero--banner .ims-hero-price{color:#fff !important;}
.ims-machine .ims-hero-specline{font-size:14px !important;color:var(--mut) !important;font-weight:400 !important;line-height:1.5 !important;}
.ims-machine .ims-hero--banner .ims-hero-specline{color:#dfe4ec !important;}
.ims-machine .ims-badge--stock{color:#fff !important;font-size:12px !important;}

/* intro */
.ims-machine .ims-intro p{color:var(--ink) !important;font-size:17px !important;line-height:1.7 !important;font-weight:400 !important;}

/* BODY — richer, intentional styling */
.ims-machine .ims-m-body{color:var(--ink) !important;}
.ims-machine .ims-m-body h2{font-size:28px !important;color:var(--navy) !important;font-weight:800 !important;line-height:1.15 !important;margin:38px 0 16px !important;}
.ims-machine .ims-m-body h2:after{content:"" !important;display:block !important;width:60px !important;height:4px !important;background:var(--red) !important;border-radius:2px !important;margin-top:12px !important;}
.ims-machine .ims-m-body h3{font-size:20px !important;color:var(--navy) !important;font-weight:700 !important;line-height:1.25 !important;margin:28px 0 10px !important;padding-left:14px !important;border-left:3px solid var(--red) !important;}
.ims-machine .ims-m-body p,.ims-machine .ims-m-body li{color:var(--ink) !important;font-size:17px !important;line-height:1.75 !important;font-weight:400 !important;}

/* SPEC TABLE — beat td{color:#444!important} etc. */
.ims-machine .ims-spec-table th,.ims-machine .ims-spec-table td{color:var(--ink) !important;font-size:15px !important;font-weight:400 !important;line-height:1.5 !important;padding:11px 15px !important;font-family:'Inter',sans-serif !important;}
.ims-machine .ims-spec-table td:first-child{color:var(--navy) !important;font-weight:600 !important;}
.ims-machine .ims-spec-table thead th,.ims-machine .ims-spec-table tr:first-child th{background:var(--navy) !important;color:#fff !important;font-weight:700 !important;font-size:15px !important;font-family:'Montserrat',sans-serif !important;}

/* ------------------------------------------------------------------
   Enquiry band, white.

   This was navy with a white card floating on it — two devices doing the
   same job, and the navy was the loudest thing on a page whose subject is
   a machine. The section boundary is contrast enough: the tinted Key
   features band sits above it, so the change to white already reads as a
   new section. These override the navy rules further up rather than
   deleting them, so nothing else that keys off .ims-enquire-band breaks.
   ------------------------------------------------------------------ */
.ims-machine .ims-enquire-band{background:#fff !important;color:var(--ink) !important;}
.ims-machine .ims-enquire-band .ims-h{color:var(--navy) !important;}
.ims-machine .ims-enquire-copy > p,.ims-machine .ims-enquire-copy > ul li{color:var(--mut) !important;}
.ims-machine .ims-enquire-band .ims-btn--ghost{color:var(--navy) !important;border-color:#cbd2d9 !important;}
.ims-machine .ims-enquire-band .ims-btn--ghost:hover{background:var(--navy) !important;color:#fff !important;}

/* The card is gone. On white there is nothing to lift off, so the form
   sits directly on the page the way AORE's does. */
.ims-machine .ims-enquire-formwrap{
	background:transparent !important;
	border:0 !important;box-shadow:none !important;
	padding:0 !important;
	max-width:1000px;margin:0 auto;
}
.ims-machine .ims-enquire-title{
	font-family:'Montserrat',sans-serif !important;
	font-size:34px !important;font-weight:800 !important;
	color:var(--navy) !important;margin:0 0 22px !important;
	line-height:1.2 !important;
}

/* Field names sit inside the boxes. The <label> text is still in the
   markup for screen readers and is hidden here, not removed — a
   placeholder disappears the moment someone types, so it cannot be the
   only thing naming a field. */
.ims-machine .ims-enquire-form .ims-f-label{
	position:absolute !important;width:1px !important;height:1px !important;
	padding:0 !important;margin:-1px !important;overflow:hidden !important;
	clip:rect(0 0 0 0) !important;white-space:nowrap !important;border:0 !important;
}
.ims-machine .ims-enquire-form .ims-f{display:block;margin:0;}
.ims-machine .ims-field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 18px;}
.ims-machine .ims-enquire-form > .ims-f{margin:0 0 18px;}

/* Field and submit appearance is NOT here. It is shared with the WPForms
   forms on Contact, Machine Service and Parts, so it lives in the
   site-wide block in functions.php — this file only loads on single
   machine pages. Only the machine form's own layout stays below. */
.ims-machine .ims-btn--submit{margin-top:4px !important;}

.ims-machine .ims-field-machine{
	background:#f7f8fa !important;border-radius:4px !important;
	padding:14px 16px !important;margin:0 0 22px !important;
}
.ims-machine .ims-field-machine span{color:var(--mut) !important;font-size:12px !important;letter-spacing:.08em !important;}
.ims-machine .ims-field-machine strong{color:var(--navy) !important;font-size:17px !important;}

@media(max-width:700px){
	.ims-machine .ims-field-row{grid-template-columns:1fr;gap:14px;margin-bottom:14px;}
	.ims-machine .ims-enquire-title{font-size:26px !important;}
	.ims-machine .ims-enquire-form input,
	.ims-machine .ims-enquire-form select,
	.ims-machine .ims-enquire-form textarea{padding:16px 20px !important;font-size:15px !important;}
}

/* The old navy-band form rules lived here. They are gone rather than
   overridden: sitting below the white block above, their !important
   colours and 7px paddings would have won and nothing would have
   changed on screen. */
.ims-machine .ims-form-thanks strong{color:var(--navy) !important;}
.ims-machine .ims-form-thanks p{color:var(--mut) !important;}

/* BRAND + RELATED text */
.ims-machine .ims-brand-body p{color:var(--mut) !important;font-size:16px !important;}
.ims-machine .ims-related-title{color:var(--navy) !important;font-weight:700 !important;font-size:15px !important;}

/* ============================================================
   LIGHTBOX
   ============================================================ */
html.ims-lb-open{overflow:hidden;}
#ims-lightbox{position:fixed;inset:0;z-index:99999;background:rgba(8,12,20,.93);display:none;align-items:center;justify-content:center;}
#ims-lightbox.is-open{display:flex;}
#ims-lightbox .ims-lb-stage{position:relative;max-width:92vw;}
#ims-lightbox img{max-width:92vw;max-height:86vh;display:block;border-radius:6px;box-shadow:0 12px 50px rgba(0,0,0,.55);}
#ims-lightbox .ims-lb-video{position:relative;width:min(90vw,1080px);aspect-ratio:16/9;}
#ims-lightbox .ims-lb-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:6px;box-shadow:0 12px 50px rgba(0,0,0,.55);}
.ims-lb-btn{position:absolute;background:rgba(255,255,255,.13);border:none;color:#fff;width:46px;height:46px;border-radius:50%;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease;}
.ims-lb-btn:hover{background:rgba(255,255,255,.3);}
.ims-lb-close{top:-56px;right:0;}
.ims-lb-prev{left:-64px;top:50%;transform:translateY(-50%);}
.ims-lb-next{right:-64px;top:50%;transform:translateY(-50%);}
@media(max-width:820px){.ims-lb-prev{left:6px;}.ims-lb-next{right:6px;}.ims-lb-close{top:-46px;right:6px;}}

/* compact hero: full-width heading up top, info left, image right */
.ims-hero-head{margin-bottom:22px;}
.ims-hero--split .ims-hero-split-grid{grid-template-columns:1fr 1fr;gap:44px;align-items:start;}
/* Image left, text right. On mobile the grid collapses to one column and the
   image is ordered first, which is the same reading order. */
.ims-hero--split .ims-hero-media{order:1;}
.ims-hero--split .ims-hero-info{order:2;}
@media(max-width:960px){.ims-hero--split .ims-hero-media{order:1;}.ims-hero--split .ims-hero-info{order:2;}}
.ims-hero-info{display:flex;flex-direction:column;align-items:flex-start;}
/* The pill sits closer to the strip below it than to the subheading above.

   It belongs to the machine's identity block, and the strip is the start of
   the specification. Grouping it downward would be wrong; grouping it up
   toward the subheading is what reads correctly. Note the strip also adds
   14px of its own top padding inside the rule, so the gap to the strip's
   text is larger than the number here suggests. */
.ims-machine .ims-hero-info .ims-hero-meta{margin:0 0 8px !important;gap:10px !important;flex-wrap:wrap;align-items:center;}
/* All three hero tags to one shape and size. The brand tag previously carried
   its own padding and pill radius, so it sat differently to the other two. */
.ims-machine .ims-hero-cattag,
.ims-machine .ims-hero-brandtag,
.ims-machine .ims-hero-meta .ims-badge{
	display:inline-flex !important;
	align-items:center !important;
	font-family:'Montserrat',sans-serif !important;
	font-size:11px !important;
	font-weight:700 !important;
	letter-spacing:.08em !important;
	text-transform:uppercase !important;
	line-height:1 !important;
	padding:8px 13px !important;
	border-radius:3px !important;
	margin:0 !important;
	border:1px solid transparent !important;
	text-decoration:none !important;
	box-sizing:border-box !important;
}
.ims-machine .ims-hero-cattag{background:#f2f4f7 !important;color:var(--red) !important;border-color:#e6e9ee !important;}
.ims-machine .ims-hero-brandtag{background:#fdeaea !important;color:var(--red) !important;border-color:#f5cdcd !important;}
.ims-machine .ims-hero-meta .ims-badge--stock{background:#1a7f37 !important;color:#fff !important;border-color:#1a7f37 !important;}
.ims-machine .ims-hero-brandtag:hover{background:#f9dede !important;}
.ims-machine .ims-hero-specline{margin:0 0 14px !important;}
.ims-hero-intro{margin:0 0 18px;}
.ims-hero-intro p{font-size:16px !important;color:var(--ink) !important;line-height:1.7 !important;font-weight:400 !important;margin:0 0 8px !important;}
@media(max-width:960px){.ims-hero-head{margin-bottom:16px;}.ims-hero--split .ims-hero-split-grid{gap:28px;}}

/* Images pasted into a feature block arrive at whatever width the supplier's
   page used. Without this they push the grid column wide and break the row. */
.ims-feature-text img{max-width:100%;height:auto;display:block;margin:14px 0;border-radius:5px;border:1px solid var(--line);}
.ims-feature-text ul,.ims-feature-text ol{margin:0 0 12px 20px;}
.ims-feature-text li{font-size:16px !important;line-height:1.7 !important;color:#4a5560 !important;}
.ims-feature-text h2,.ims-feature-text h3,.ims-feature-text h4{
	font-family:'Montserrat',sans-serif !important;color:var(--navy) !important;
	font-size:18px !important;font-weight:700 !important;margin:18px 0 8px !important;
}
.ims-feature-text table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px;}
.ims-feature-text td,.ims-feature-text th{border:1px solid var(--line);padding:7px 10px;text-align:left;}

/* banner hero — click target for the full image, bottom right of the photo */
.ims-hero--banner{position:relative;}
.ims-hero-zoom{
	position:absolute;right:18px;bottom:18px;z-index:3;
	display:flex;align-items:center;justify-content:center;
	width:38px;height:38px;border-radius:3px;
	background:rgba(13,27,42,0.55);border:1px solid rgba(255,255,255,0.28);
	color:#fff;text-decoration:none !important;
	transition:background .18s ease,border-color .18s ease;
}
.ims-hero-zoom:hover{background:var(--red);border-color:var(--red);}

/* downloads */
.ims-downloads{padding:8px 0 44px;}
.ims-download-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;max-width:820px;}
.ims-download{
	display:flex;align-items:center;gap:12px;
	padding:14px 16px;background:#f6f7f9;
	border:1px solid var(--line);border-radius:4px;
	text-decoration:none !important;
	transition:border-color .18s ease,background .18s ease;
}
.ims-download:hover{background:#fff;border-color:var(--red);}
.ims-download-icon{display:flex;align-items:center;color:var(--red);flex:0 0 auto;}
.ims-download-label{
	font-family:'Montserrat',sans-serif;font-size:14px;font-weight:600;
	color:var(--navy);line-height:1.35;flex:1 1 auto;
	/* File names can be long and unbroken; let them wrap rather than
	   stretch the card past its column. */
	overflow-wrap:anywhere;
}
.ims-download-type{
	font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;
	letter-spacing:.08em;color:#8a929c;flex:0 0 auto;
}
.ims-thanks-dl{display:flex;flex-wrap:wrap;gap:8px;}
@media(max-width:600px){
	.ims-download-list{grid-template-columns:1fr;}
	.ims-hero-zoom{right:12px;bottom:12px;width:34px;height:34px;}
}

/* ------------------------------------------------------------------
   Hero, quieted down.

   Everything in the hero had been given a box: category chip, brand chip,
   stock badge, four spec pills, then two buttons. Nine bordered objects in
   one column, so nothing led and the eye had nowhere to land. The rule now
   is that a box means status. Only "In stock" keeps one.
   ------------------------------------------------------------------ */

/* Brand: a pill on the availability row. */
.ims-machine .ims-hero-brandline{
	display:inline-flex;align-items:center;
	font-family:'Montserrat',sans-serif !important;
	font-size:11px !important;font-weight:700 !important;
	letter-spacing:.09em !important;text-transform:uppercase !important;
	color:var(--red) !important;
	background:#fdeaea !important;border:1px solid #f5cdcd !important;
	padding:6px 12px !important;border-radius:3px !important;
	margin:0 !important;line-height:1 !important;
	text-decoration:none !important;
	transition:background .18s ease,border-color .18s ease;
}
.ims-machine .ims-hero-brandline:hover{
	background:#f9dede !important;border-color:#eebcbc !important;
	text-decoration:none !important;
}
.ims-machine .ims-hero--banner .ims-hero-brandline{
	color:#fff !important;
	background:rgba(255,255,255,.14) !important;
	border-color:rgba(255,255,255,.26) !important;
}
.ims-machine .ims-hero--banner .ims-hero-brandline:hover{
	background:rgba(255,255,255,.22) !important;
}

/* Availability: a status dot and the sentence that qualifies it, as one object,
   with the brand pill sharing the row. The pill has its own edges, so no
   divider between them — that would be two separators doing one job. */
.ims-machine .ims-hero-meta{
	display:flex !important;align-items:center;flex-wrap:wrap;
	gap:12px;margin:0 0 4px !important;
}
.ims-machine .ims-availability{
	display:flex;align-items:center;gap:9px;margin:0 !important;
	font-family:'Inter',sans-serif !important;
	font-size:15px !important;font-weight:600 !important;
	color:var(--mut) !important;
}
.ims-machine .ims-availability--in{color:#1a7f37 !important;}
.ims-availability-dot{
	flex:0 0 auto;width:9px;height:9px;border-radius:50%;
	background:#1a7f37;box-shadow:0 0 0 3px rgba(26,127,55,.18);
}
.ims-machine .ims-hero--banner .ims-availability,
.ims-machine .ims-hero--banner .ims-availability--in{color:#fff !important;}
.ims-machine .ims-hero--banner .ims-availability-dot{background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.25);}

/* Price / availability line: it was set at 20px 800-weight, which read as a
   second headline directly under the real one. */
.ims-machine .ims-hero-price{
	font-family:'Inter',sans-serif !important;
	font-size:15px !important;font-weight:600 !important;
	color:var(--mut) !important;
}
.ims-machine .ims-hero--banner .ims-hero-price{color:rgba(255,255,255,.8) !important;}

/* Wide layout carries both images; the breakpoint decides which one shows.
   Above 900px the banner runs across the page. Below it the banner is dropped
   entirely and the featured photo takes over, because a 2.4:1 image on a phone
   is a shallow strip with the machine unrecognisable in it. Both need
   !important: the machine template sets display on images further down the
   sheet, and without it the two stack on top of each other. */
.ims-machine .ims-hero-wide-square{display:none !important;}
@media(max-width:900px){
	.ims-machine .ims-hero-wide-banner{display:none !important;}
	.ims-machine .ims-hero-wide-square{display:block !important;}
}

/* Banner video. Desktop only, same reasoning as the banner image: on a phone
   it is a strip, and autoplaying video over mobile data is rude. Where a video
   is set the banner image stays in the markup as its poster but is not drawn
   twice, so it is hidden and the video sits in its place. */
.ims-machine .ims-hero-wide-video{display:block;width:100%;height:auto;}
.ims-machine .ims-hero-wide-banner--hasvideo{display:none !important;}
@media(max-width:900px){
	.ims-machine .ims-hero-wide-video{display:none !important;}
}

/* Spec row: same information, no chrome. Divider rules instead of borders. */
/* On the wide layout the strip and the At a glance panel carry the same
   numbers, so sheet size, layers and load appeared twice within a few
   centimetres. Where the panel is present the strip stands down; machines
   with no highlights keep it, since there it is the only summary. */
.ims-desc-block:has(.ims-desc-side) .ims-hero-speclist{display:none;}
.ims-machine .ims-hero-speclist{
	display:flex;flex-wrap:wrap;gap:0 18px;
	margin:0 0 20px;padding:14px 0;
	border-top:1px solid var(--line);border-bottom:1px solid var(--line);
	width:100%;
}
.ims-machine .ims-hero-speclist li{
	background:none !important;border:0 !important;padding:0 !important;
	font-family:'Inter',sans-serif !important;font-size:14px !important;
	font-weight:500 !important;color:var(--ink) !important;
	line-height:1.4 !important;position:relative;
}
/* Divider sits after each item rather than before the next one. On a phone
   the strip wraps, and a leading divider left a stray vertical line hanging
   at the start of the second line. Trailing it keeps the rule inside the
   row it belongs to. */
.ims-machine .ims-hero-speclist li:not(:last-child)::after{
	content:'';position:absolute;right:-10px;top:3px;bottom:3px;
	width:1px;background:#b9c1cb;
}
.ims-machine .ims-hero--banner .ims-hero-speclist{
	border-color:rgba(255,255,255,.2);
}
.ims-machine .ims-hero--banner .ims-hero-speclist li{color:#eef2f7 !important;}
.ims-machine .ims-hero--banner .ims-hero-speclist li + li::before{background:rgba(255,255,255,.24);}

/* Two buttons, one of them clearly secondary. Solid red for the action that
   matters, outlined navy for the one that doesn't — same height and padding so
   they sit as a pair, different weight so they don't compete. */
.ims-hero-cta{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;}
.ims-machine .ims-hero-broch{
	display:inline-flex;align-items:center;gap:9px;
	font-family:'Montserrat',sans-serif !important;
	font-size:14px !important;font-weight:700 !important;
	letter-spacing:.03em !important;
	color:var(--navy) !important;
	background:#fff !important;
	border:1px solid #cbd2d9 !important;
	border-bottom:1px solid #cbd2d9 !important;
	border-radius:3px !important;
	padding:13px 22px !important;
	text-decoration:none !important;
	transition:border-color .18s ease,color .18s ease,background .18s ease;
}
.ims-machine .ims-hero-broch:hover{
	color:var(--red) !important;
	border-color:var(--red) !important;
	background:#fff !important;
}
.ims-hero-broch-icon{display:flex;align-items:center;flex:0 0 auto;}
.ims-machine .ims-hero--banner .ims-hero-broch{
	color:#fff !important;
	background:rgba(255,255,255,.1) !important;
	border-color:rgba(255,255,255,.4) !important;
}
.ims-machine .ims-hero--banner .ims-hero-broch:hover{
	background:rgba(255,255,255,.2) !important;
	border-color:#fff !important;color:#fff !important;
}
@media(max-width:560px){
	.ims-hero-cta{gap:10px;}
	.ims-machine .ims-hero-broch{padding:12px 18px !important;font-size:13px !important;}
}

/* Hero image sits in a fixed 4:3 box and is fitted inside it rather than
   filling it. Across 91 machines the supplier photos are every shape going;
   without this, a tall photo doubles the height of the hero and a wide one
   leaves the text column floating in space. Contain, not cover, because
   cropping a machine photo cuts off the part that identifies the machine. */
/* Hero image fills the width of its column and takes whatever height the
   photo needs. Across 91 machines the supplier photos are every shape going,
   so this was previously a fixed 4:3 box with the image contained inside it —
   which kept the row even but left a portrait photo floating in grey with
   letterboxing either side. Full width reads better on the machines that
   matter, at the cost of an uneven column bottom on the odd tall photo.
   Capped so a very tall image cannot push the text column off screen. */
.ims-machine .ims-hero--split .ims-hero-media{
	display:block;
	background:none;border:0;border-radius:0;
	padding:0;box-sizing:border-box;overflow:hidden;
}
.ims-machine .ims-hero--split .ims-hero-media a{display:block;width:100%;}
.ims-machine .ims-hero--split .ims-hero-media img{
	width:100% !important;height:auto !important;
	max-height:640px;object-fit:contain !important;
	border-radius:0 !important;box-shadow:none !important;
}
/* ------------------------------------------------------------------
   Wide hero.

   Replaces the old full-bleed banner. The old .ims-hero--banner rules
   are left in the file but nothing carries that class any more — they
   reversed type out over a photo, which no longer applies now the copy
   sits below the image on a white background.
   ------------------------------------------------------------------ */

/* One background from the breadcrumb down through the specifications.
   The hero used to be white while the intro and spec columns sat on the
   page tint, which put a colour break in the middle of what a reader
   takes as one block: name, description, numbers. The break now falls
   at Key features, where the subject actually changes. */
.ims-machine{background:#fff;}

.ims-machine .ims-hero--wide{padding:0 0 8px;background:#fff;}

/* Image sits inside the container, lining up with the title above it and
   the description below. It ran full-bleed for a while, but with the name
   now above the photo a full-width image broke the left edge that every
   other element on the page shares. */
.ims-hero-wide-media{
	position:relative;margin:0 0 34px;
	width:100%;max-width:100%;
	background:#f6f7f9;border:0;border-radius:0;
	overflow:hidden;line-height:0;
}
.ims-hero-wide-media a{display:block;}
.ims-hero-wide-media img{
	display:block;width:100%;height:auto;   /* whole frame, no crop */
	border-radius:0;
}
.ims-hero-wide-media .ims-hero-zoom{
	position:absolute;right:24px;bottom:20px;z-index:2;
	display:flex;align-items:center;justify-content:center;
	width:38px;height:38px;border-radius:3px;
	background:rgba(13,27,42,.55);border:1px solid rgba(255,255,255,.28);
	color:#fff;pointer-events:none;   /* the whole image is the link */
	transition:background .18s ease;
}
.ims-hero-wide-media:hover .ims-hero-zoom{background:var(--red);border-color:var(--red);}
.ims-hero-wide-inner{max-width:840px;}

/* Key features carries the tint instead. */
.ims-machine .ims-features-band{background:#f7f8fa;padding:52px 0 56px;margin-top:44px;}
/* Top and bottom only — the shorthand here was zeroing the container's
   side padding, so on a phone the feature images and text ran hard to
   both screen edges. */
.ims-machine .ims-features-band .ims-features{padding-top:0;padding-bottom:0;}

/* An empty meta row was still reserving space on machines with no stock
   and no price line, leaving an unexplained gap under the title. */
.ims-machine .ims-hero-meta:empty{display:none !important;}

@media(max-width:600px){
	.ims-hero-wide-media{margin-bottom:24px;}
	.ims-hero-wide-media .ims-hero-zoom{right:12px;bottom:12px;width:32px;height:32px;}
	.ims-machine .ims-features-band{padding:36px 0 40px;margin-top:30px;}
}

@media(max-width:600px){
	.ims-machine .ims-hero--split .ims-hero-media{padding:12px;}
	.ims-machine .ims-hero-speclist{gap:0 14px;}
}

/* ------------------------------------------------------------------
   Stock units on the series page.

   The card styles are NOT here. Cards render on the home page and the
   stock page, and this file only loads on single machine pages — so
   they live in the site-wide block in functions.php instead. Only the
   availability band below is machine-page-only and belongs here.
   ------------------------------------------------------------------ */

/* Availability block on the series page */
.ims-stock-band{background:#f6f7f9;}
.ims-stock-band-sub{
	text-align:center;color:var(--mut) !important;font-size:15px !important;
	margin:-6px 0 26px !important;
}
.ims-stock-rows{display:flex;flex-direction:column;gap:10px;max-width:900px;margin:0 auto;}
.ims-stock-row{
	display:grid;grid-template-columns:1fr auto auto auto;
	align-items:center;gap:18px;
	background:#fff;border:1px solid var(--line);border-radius:4px;
	padding:14px 18px;
}
.ims-stock-row-model{
	font-family:'Montserrat',sans-serif;font-size:16px;font-weight:700;
	color:var(--navy);
}
.ims-stock-row-meta{font-family:'Inter',sans-serif;font-size:13px;color:#5a6470;}
.ims-stock-row-status{
	font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;
	letter-spacing:.06em;text-transform:uppercase;
	padding:5px 10px;border-radius:2px;color:#fff;background:#1a7f37;white-space:nowrap;
}
.ims-stock-row-status--arriving,
.ims-stock-row-status--order{background:#b45309;}
.ims-stock-row-status--sold{background:#6b7681;}
.ims-stock-row-btn{padding:9px 20px !important;font-size:12px !important;}
@media(max-width:720px){
	.ims-stock-row{grid-template-columns:1fr auto;gap:8px 14px;}
	.ims-stock-row-model{grid-column:1/2;}
	.ims-stock-row-status{grid-column:2/3;justify-self:end;}
	.ims-stock-row-meta{grid-column:1/3;}
	.ims-stock-row-btn{grid-column:1/3;justify-self:start;}
}

/* ==================================================================
   LAST WORD

   These sit at the end of the file deliberately. The spec table is set
   up in three separate places earlier — a base block, a sidebar-card
   block and a wide-table block — and each new attempt to fix it has had
   to out-specify the last. Putting the settled version here means source
   order does the work instead of another round of !important.
   ================================================================== */

/* Spec table in the two-column layout.

   Labels were overlapping their values: table-layout was still auto, so
   "Max. X/Y-Axis Linkage Positioning Speed" sized its own column and ran
   straight over the number beside it. Fixed layout holds the split, and
   the cells wrap instead of overflowing. */
.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi){
	table-layout:fixed;
	width:100%;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td{
	white-space:normal;
	overflow-wrap:break-word;
	word-break:normal;
	vertical-align:top;
	padding:12px 16px;
	line-height:1.45;
}
/* Width follows the content.

   A cap of 920px suits a two-column table but starves a seven-column one, and
   letting every table run the full container leaves a three-column table with
   huge gaps between label and value. fit-content sizes each table to what it
   actually holds, so the LCA's three columns sit compact and centred while the
   A-Bend's seven use the room they need. */
/* Spec tables run the full column width.

   fit-content sized each table to its contents, which kept a three-column
   table compact but made the widths inconsistent from one machine to the next
   — the tables no longer lined up with the rest of the page. Full width is
   less clever and more predictable. */
/* Dimensions drawing under the specifications.

   Full width and uncropped. A layout drawing is only useful if you can read
   the figures on it, so no aspect-ratio frame and no object-fit — whatever
   shape the brochure gave it is the shape it renders at. The heading matches
   the Specifications heading above it so the two read as one block. */
/* Dimensions block under the specifications.

   The tint runs full width and wraps the heading as well as the drawing, so
   the two read as one section rather than a heading floating above a grey
   box. Negative margins pull it out to the section edges past the wrap's
   padding. */
.ims-machine .ims-dims-block{
	/* Plain, inside the specifications section. It used to be its own grey
	   full-bleed band, which put grey against the grey video band with only
	   a strip of white between them. */
	background:none;
	margin:44px 0 0;
	padding:0;
}
.ims-machine .ims-dims-h{margin:0 auto 28px;max-width:1180px;}
.ims-machine .ims-dims{
	margin:0 auto;
	padding:0;
	max-width:1180px;
}
.ims-machine .ims-dims img{
	width:100%;
	height:auto;
	display:block;
	background:#fff;
	border:1px solid var(--line);
}
@media(max-width:820px){
	.ims-machine .ims-dims-block{margin:32px 0 0;padding:0;}
}
.ims-machine .ims-spec-table--wide{
	width:100%;
	max-width:100%;
	margin-left:auto;
	margin-right:auto;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td:first-child{width:56%;}
.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td:last-child{width:44%;}

/* The last row kept its bottom border, which sat inside the card and read
   as an empty row under the table. */
.ims-machine .ims-spec-table--wide .ims-spec-parsed tr:last-child td{border-bottom:0;}

/* Space under the two columns was 8px against 28px above, so the block
   sat hard on the band below it. */
.ims-machine .ims-desc-spec{padding-bottom:52px !important;}

/* In the half-width column the section heading was set at the full 34px,
   which is more heading than the table under it can carry. */
.ims-machine .ims-spec-col .ims-h{font-size:24px !important;margin-bottom:14px !important;}

/* Spacing in the hero: the rule under the subheading is the only divider
   the block needs, and the pill sits below it. */
.ims-machine .ims-hero--wide{padding-bottom:0 !important;}
/* No rule under the subheading now — the brand pill and description follow
   directly, and a divider between them separated things that belong
   together. */
.ims-machine .ims-hero-wide-inner{
	max-width:none !important;
	padding:0 !important;
	margin:0 !important;
}
.ims-machine .ims-hero-wide-inner .ims-hero-title,
.ims-machine .ims-hero-wide-inner .ims-hero-tagline{max-width:900px;}
.ims-machine .ims-hero-wide-inner .ims-hero-tagline{margin-bottom:0 !important;}

/* Title block above the photo. */
.ims-machine .ims-hero-wide-head{padding:8px 0 26px;}
.ims-machine .ims-hero-wide-head .ims-hero-title{margin:0 0 10px !important;}
.ims-machine .ims-hero-wide-head .ims-hero-tagline{margin:0 !important;max-width:900px;}
.ims-machine .ims-hero-wide-head .ims-hero-cat,
.ims-machine .ims-desc-block .ims-hero-cat{
	display:inline-block;
	font-family:'Montserrat',sans-serif !important;
	font-size:12px !important;font-weight:700 !important;
	letter-spacing:.09em !important;text-transform:uppercase !important;
	color:var(--red) !important;background:none !important;
	border:0 !important;padding:0 !important;margin:0 0 10px !important;
	text-decoration:none !important;
}
.ims-machine .ims-hero-wide-head .ims-hero-cat:hover{text-decoration:underline !important;}

/* Below the photo: the same components the S Series stacks beside its
   image, in the same order, so the two layouts read as one design.

   The 80% experiment is reverted. It made the block wider, not narrower:
   this element is an .ims-m-wrap, already capped in pixels, and a
   percentage max-width resolves against the full page width — which on a
   desktop is larger than the cap it replaced. To actually inset it, the
   number has to be a pixel width smaller than the container. */
/* Top and bottom only. Writing this as the padding shorthand set the left
   and right to zero, which stripped the 24px the container carries — so
   the block sat 24px wider than the image on each side. */

/* One rule, on the block itself. Capping each child separately meant the
   pill, the spec rule and the prose each ended up a different width and
   only some of them centred — three attempts, three different wrong
   results. The container is 1180px; this is 900px with the auto margins
   it already carries, so everything inside moves together and the hairline
   rules mark the column's real edges. */
/* Full container width, aligned to the image above it.

   This was capped at 900px inside the 1180px container and centred, so the
   brand pill, the hairline rules and the prose all started 140px in from the
   hero image's left edge. Two blocks in the same container appearing to have
   two different left margins reads as a mistake, because it is one. Full
   width now, so the copy and the photo share an edge.

   The prose itself still needs a readable measure — 1180px of 16px text is
   too wide to track comfortably — so that cap moves onto the intro alone,
   left-aligned rather than centred. The rules and the pill span the block. */
/* Full container width, aligned to the image above it.

   This was capped at 900px inside the 1180px container and centred, so the
   brand pill, the hairline rules and the prose all started 140px in from the
   hero image's left edge. Two blocks in the same container appearing to have
   two different left margins reads as a mistake, because it is one.

   Note this div carries .ims-m-wrap as well, so its max-width IS the
   container's. Setting it to none does not widen the block to the container
   edge — it removes the container, and the block runs the full viewport.
   The value has to be restated at 1180px rather than unset.

   The prose still needs a readable measure — 1180px of 16px text is too wide
   to track comfortably — so that cap moves onto the intro alone, left
   aligned. The rules and the pill span the block. */
.ims-machine .ims-desc-block{
	max-width:1180px !important;
	padding-top:34px !important;padding-bottom:56px !important;
}
.ims-machine .ims-desc-block .ims-intro p{max-width:80ch;}
.ims-machine .ims-desc-block .ims-ds-brand{
	display:flex;align-items:center;gap:12px;flex-wrap:wrap;
	max-width:none !important;margin:0 0 20px !important;
}
.ims-machine .ims-desc-block .ims-hero-speclist{max-width:none !important;margin:0 0 24px !important;}
.ims-machine .ims-desc-block .ims-intro{max-width:none !important;margin:0 !important;padding:0 0 28px !important;}
.ims-machine .ims-desc-block .ims-hero-cta{max-width:none !important;margin:0 !important;}

/* Room between the breadcrumb and the category line. They were close
   enough to read as one stack of small red-and-grey type. */
.ims-machine .ims-hero-wide-head{padding-top:34px !important;padding-bottom:26px !important;}
.ims-machine .ims-hero--split{padding-top:34px !important;}

@media(max-width:900px){
	.ims-machine .ims-hero-wide-head{padding-top:22px !important;padding-bottom:18px !important;}
	.ims-machine .ims-desc-block{padding-top:24px !important;padding-bottom:40px !important;}
}

/* A rule under the brand pill and availability line, closing that row off
   from the spec strip below it the same way the strip closes itself off
   from the description. */
.ims-machine .ims-hero-meta{
	padding-bottom:18px !important;
	margin-bottom:20px !important;
}
.ims-machine .ims-hero-meta:empty{
	display:none !important;border-bottom:0 !important;
	padding-bottom:0 !important;margin-bottom:0 !important;
}
.ims-machine .ims-hero--wide .ims-hero-meta,
.ims-machine .ims-desc-block .ims-ds-brand{
	padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:20px !important;
}

/* ==================================================================
   PAGE RHYTHM AND WIDTHS

   Several elements had been given their own width, set at the time each
   was built, and the result is a page whose left and right edges move as
   you scroll: the spec table capped at 920px, the features running the
   full container, the rule under the brand pill only as wide as its own
   content. Everything below uses the container.
   ================================================================== */

/* Spec table fills the container. 920px was fine for a two-column table
   on one machine; with four columns of models it squeezed the figures
   while the section above and below ran wider. */
.ims-machine .ims-spec-table--wide{max-width:none !important;margin:0 !important;}

/* The rule under the brand and availability row is a section divider, so
   it runs the width of the column rather than the width of its own text. */
.ims-machine .ims-hero-meta,
.ims-machine .ims-desc-block .ims-ds-brand{width:100% !important;}

/* ------------------------------------------------------------------
   SPACING SCALE

   One set of numbers, so a section does not need its own adjustment
   every time something is added to it:

     56px  band padding, top and bottom
     30px  under a section heading
     12px  between an image and its caption

   The caption gap belongs above the caption, not below it — the space
   below is the band's padding doing its job.
   ------------------------------------------------------------------ */
.ims-machine .ims-m-band{padding:56px 0 !important;}
.ims-machine .ims-h{margin-top:0 !important;margin-bottom:30px !important;}
.ims-machine .ims-m-band > .ims-m-wrap > .ims-h:first-child,
.ims-machine .ims-m-band .ims-m-wrap > .ims-h:first-child{margin-top:0 !important;}

/* Captions take the body face. Montserrat is drawn for headings and at
   caption size under a photo it reads heavier than the photo. */
.ims-machine .ims-gcap,
.ims-machine .ims-vcap{
	font-family:'Inter',sans-serif !important;
	font-size:13px !important;font-weight:500 !important;
	color:var(--mut) !important;
	margin-top:12px !important;padding-bottom:0 !important;
	line-height:1.45 !important;
}
.ims-machine .ims-vfig,
.ims-machine .ims-gfig{margin:0 !important;}

@media(max-width:700px){
	.ims-machine .ims-m-band{padding:40px 0 !important;}
	.ims-machine .ims-h{margin-bottom:22px !important;}
}
.ims-machine .ims-spec-col .ims-h{margin-bottom:16px !important;}
.ims-machine .ims-stock-band-sub{margin-top:-22px !important;margin-bottom:30px !important;}

/* Caption row above a set of model rows on a category card. It names both
   columns — the models on the left, the figures on the right — so neither
   side sits there unexplained. */
.ims-card-specs .ims-spec-caption{border-bottom:0 !important;padding-bottom:2px !important;}
.ims-card-specs .ims-spec-caption .ims-spec-name,
.ims-card-specs .ims-spec-caption .ims-spec-value{
	font-size:11px !important;font-weight:600 !important;
	letter-spacing:.07em !important;
	text-transform:uppercase !important;color:#8a929c !important;
}

/* Availability as a link down to the units section. Underlined on hover
   only, so it reads as a status line first and a link second. */
.ims-machine .ims-availability-link{
	display:inline-flex;align-items:center;gap:7px;
	color:inherit !important;text-decoration:none !important;
	border-bottom:1px solid transparent;
	transition:border-color .18s ease;
}
.ims-machine .ims-availability-link:hover{border-bottom-color:currentColor;}
.ims-machine .ims-availability-arrow{display:flex;align-items:center;opacity:.65;}
.ims-machine .ims-availability-link:hover .ims-availability-arrow{opacity:1;}

/* Captions are styled in the spacing scale block above. */

/* ------------------------------------------------------------------
   Available now.

   A single row of text on a tinted band reads as an afterthought, which
   is the wrong note for the one section saying you have the machine on
   the floor. The unit photo carries it, and the status colour does the
   rest.
   ------------------------------------------------------------------ */
.ims-machine .ims-stock-rows{gap:14px;}
/* Flex rather than a fixed grid. The location span holds whitespace even
   when unset, so it still claimed a grid column and pushed the button on
   to a second row. Flex lays out whatever items are present. */
.ims-machine .ims-stock-row{
	display:flex !important;
	align-items:center;gap:20px;flex-wrap:wrap;
	padding:14px 18px;
	border:1px solid var(--line);border-left:4px solid #1a7f37;
	border-radius:6px;background:#fff;
}
.ims-machine .ims-stock-row--sold{border-left-color:#6b7681;}
.ims-machine .ims-stock-row--arriving,
.ims-machine .ims-stock-row--order{border-left-color:#b45309;}
.ims-machine .ims-stock-row-img{
	flex:0 0 auto;width:110px;height:74px;
	border-radius:4px;overflow:hidden;background:#f7f8fa;
}
.ims-machine .ims-stock-row-img img{width:100%;height:100%;object-fit:cover;display:block;}
.ims-machine .ims-stock-row-model{flex:1 1 auto;font-size:17px;}
.ims-machine .ims-stock-row-meta{flex:0 0 auto;}

/* Badge, button and call link share a height. They were 5px, 9px and
   nothing of vertical padding respectively, so three things sitting on
   one line each stood at a different height. */
.ims-machine .ims-stock-row-status,
.ims-machine .ims-stock-row-btn,
.ims-machine .ims-stock-row-call{
	flex:0 0 auto;
	display:inline-flex !important;align-items:center;justify-content:center;
	height:44px;box-sizing:border-box;
	padding:0 20px !important;border-radius:4px !important;
	font-family:'Montserrat',sans-serif !important;
	font-size:12px !important;font-weight:700 !important;
	letter-spacing:.06em !important;text-transform:uppercase !important;
	line-height:1 !important;white-space:nowrap;
}
.ims-machine .ims-stock-row-call{
	gap:8px;color:var(--navy) !important;background:#fff !important;
	border:1px solid #cbd2d9 !important;text-decoration:none !important;
	transition:border-color .18s ease,color .18s ease;
}
.ims-machine .ims-stock-row-call:hover{color:var(--red) !important;border-color:var(--red) !important;}
.ims-machine .ims-stock-row-call span{display:flex;align-items:center;}
@media(max-width:720px){
	.ims-machine .ims-stock-row{gap:12px;}
	.ims-machine .ims-stock-row-img{width:88px;height:60px;}
	.ims-machine .ims-stock-row-model{flex:1 1 100%;order:2;}
	.ims-machine .ims-stock-row-status{order:3;}
	.ims-machine .ims-stock-row-btn{order:4;}
}

/* Buttons in capitals, matching the rest of the site's call-to-action
   styling. Letter-spacing opens up because uppercase set tight is harder
   to read than lowercase set tight. */
.ims-machine .ims-btn,
.ims-machine .ims-hero-broch,
.ims-machine .ims-stock-row-btn{
	text-transform:uppercase !important;
	letter-spacing:.06em !important;
}

/* The feature list sat further left than the spec table below it, because
   its bullet markers hang outside the text while the table's first column
   starts inside its cell padding. Indented to match, so the left edge of
   the two sections agrees. */
.ims-machine .ims-features-band--plain .ims-feature-text ul{
	padding-left:38px !important;
}

/* Feature sections with no images at all.

   The red rule and left indent exist to mark a text row sitting among
   picture rows. When every row is text — a written list of features
   rather than illustrated points — that treatment reads as a callout
   about something else, which is exactly how the importer note went
   wrong earlier. Dropped here, and the list is set in two columns
   because fifteen short bullets in one column is a long thin run. */
.ims-machine .ims-features-band--plain .ims-feature,
.ims-machine .ims-features-band--plain .ims-feature--notext-img{
	border-left:0 !important;padding-left:0 !important;
	border-bottom:0 !important;padding-bottom:0 !important;
	display:block !important;max-width:none !important;
}
.ims-machine .ims-features-band--plain .ims-feature-copy{max-width:none !important;}
.ims-machine .ims-features-band--plain .ims-feature-text ul{
	columns:2;column-gap:48px;margin:0;padding:0 0 0 18px;
}
.ims-machine .ims-features-band--plain .ims-feature-text li{
	break-inside:avoid;margin:0 0 10px;padding:0;
	font-size:15px !important;line-height:1.55 !important;
}
@media(max-width:760px){
	.ims-machine .ims-features-band--plain .ims-feature-text ul{columns:1;}
}

/* Gallery captions are styled with the video captions in the spacing
   scale block earlier in this file — one rule for both, so they cannot
   drift apart. */
.ims-machine .ims-gcap{display:block;}

/* ------------------------------------------------------------------
   Phone corrections.
   ------------------------------------------------------------------ */
@media(max-width:760px){
	/* Breadcrumb: the current machine's name is dropped from the visible
	   trail. It was wrapping to a second line to repeat, in small grey
	   type, the H1 sitting directly beneath it. The <li> stays in the
	   markup so the BreadcrumbList schema is still complete for search —
	   only the display is suppressed. */
	.ims-machine .ims-crumbs li:last-child{display:none !important;}
	.ims-machine .ims-crumbs li:nth-last-child(2)::after{content:none !important;}

	/* Buttons keep their own width. A rule from the old layout stretched
	   them to fill the row, which turned the primary action into a full
	   width bar rather than a button. */
	.ims-machine .ims-hero-cta{flex-wrap:wrap;gap:12px;}
	.ims-machine .ims-hero-cta .ims-btn,
	.ims-machine .ims-hero-cta .ims-hero-broch{
		flex:0 0 auto;width:auto;
	}

	/* The card carried its own bottom padding on top of the last row's,
	   leaving an empty strip under the final value. */
	.ims-machine .ims-spec-table--wide{padding-bottom:0 !important;}
}

/* ------------------------------------------------------------------
   Multi-model spec tables.

   A table with five models across it cannot shrink to a phone and stay
   readable, and splitting it into one card per model destroys the only
   reason it exists — putting the models side by side to be compared.
   So it scrolls sideways with the first column pinned: the spec name
   stays visible while the figures move under it, which is how a printed
   comparison table gets read anyway.

   Two-column tables are untouched; they fit as they are.
   ------------------------------------------------------------------ */
.ims-machine .ims-spec-table--wide .ims-spec-cols-multi{
	width:100%;table-layout:auto;border-collapse:collapse;
}
.ims-machine .ims-spec-cols-multi thead th{
	font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;
	color:#fff;background:var(--navy);
	padding:12px 14px;text-align:left;white-space:nowrap;
}
.ims-machine .ims-spec-cols-multi thead th:first-child{
	position:sticky;left:0;z-index:3;background:var(--navy);
}
.ims-machine .ims-spec-cols-multi td{
	font-family:'Montserrat',sans-serif;font-size:14px;
	padding:11px 14px;border-bottom:1px solid var(--line);
	white-space:nowrap;
}
.ims-machine .ims-spec-cols-multi td:first-child{
	position:sticky;left:0;z-index:2;
	font-weight:600;color:var(--navy);
	background:#fff;
	box-shadow:1px 0 0 var(--line);
	white-space:normal;min-width:170px;
}
.ims-machine .ims-spec-cols-multi tr:nth-child(even) td{background:#f6f7f9;}
.ims-machine .ims-spec-cols-multi tr:nth-child(even) td:first-child{background:#f6f7f9;}
.ims-machine .ims-spec-cols-multi tr:last-child td{border-bottom:0;}

/* The scroller. overflow-x on the wrapper is what lets the sticky column
   work — sticky positions against the nearest scrolling ancestor. */
.ims-machine .ims-spec-table--wide:has(.ims-spec-cols-multi){
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}

@media(max-width:760px){
	.ims-machine .ims-spec-cols-multi thead th,
	.ims-machine .ims-spec-cols-multi td{font-size:12px;padding:9px 11px;}
	.ims-machine .ims-spec-cols-multi td:first-child{min-width:130px;}
	/* No guard needed here: the two-column phone block below excludes
	   .ims-spec-cols-multi at the selector, so it never reaches this table. */
}

/* ------------------------------------------------------------------
   Spec table on a phone (two columns).

   Kept as two columns — label on the left, figure on the right. Stacking
   the value under its label was a mistake: it reads as a list of
   paragraphs rather than a table, and a buyer scanning for a number has
   to read every label to find it. Two columns keeps the figures in a
   single line down the right where the eye can run them.

   What made it overflow before was the desktop 56/44 split and 16px
   padding at a width that cannot carry them. Narrower label column,
   smaller type, tighter padding, and long labels wrap instead of
   pushing the figure off the edge.
   ------------------------------------------------------------------ */
@media(max-width:760px){
	.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi){
		table-layout:fixed;width:100%;
	}
	.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td{
		display:table-cell;
		padding:11px 12px;
		vertical-align:top;
		white-space:normal;
		overflow-wrap:break-word;
		line-height:1.4;
		border-bottom:1px solid var(--line);
	}
	.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td:first-child{
		width:52%;
		font-size:12px;font-weight:600;
		text-transform:none;letter-spacing:0;
		color:#5a6470;margin:0;
	}
	.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) td:last-child{
		width:48%;
		font-size:13px;font-weight:700;
		color:var(--navy);
	}
	.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) tr{
		display:table-row;padding:0;border-bottom:0;
	}
	.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) tr:nth-child(even){background:#f6f7f9;}
	.ims-machine .ims-spec-table--wide .ims-spec-parsed:not(.ims-spec-cols-multi) tr:last-child td{border-bottom:0;}
}

/* ------------------------------------------------------------------
   Hero buttons on a phone.

   Get a quote and the brochure button each took their own intrinsic
   width, so at phone widths the second dropped onto a line of its own
   and read as two stacked bars rather than a pair. Here they share the
   row: equal flex basis, centred labels, matched padding and type size,
   so they come out the same width and the same height.
   ------------------------------------------------------------------ */
@media(max-width:560px){
	.ims-machine .ims-hero-cta{flex-wrap:wrap;gap:10px;align-items:stretch;}
	.ims-machine .ims-hero-cta .ims-btn,
	.ims-machine .ims-hero-cta .ims-hero-broch{
		flex:0 0 auto;width:auto;
		display:inline-flex;align-items:center;justify-content:center;
		padding:14px 16px !important;
		font-size:12px !important;
		line-height:1 !important;
		letter-spacing:.04em !important;
		white-space:nowrap;
		/* Holds both to one height even on a screen narrow enough to wrap
		   them, where stretch no longer applies because they are not
		   sharing a row. The brochure button is the taller of the two
		   because of its icon. */
		min-height:45px;
		box-sizing:border-box;
	}
	.ims-machine .ims-hero-cta .ims-hero-broch{
		gap:8px;
		border-color:#b4bcc5 !important;
	}
	.ims-machine .ims-hero-cta .ims-hero-broch-icon svg{width:15px;height:15px;}
}

/* ------------------------------------------------------------------
   Advice callout.

   Solid panel with a heavy left rule in the brand red, sitting between the
   features and the specifications. The rule is what stops it reading as
   another paragraph of body copy — it marks the block as an aside directed
   at the reader rather than more description of the machine.

   Left rule means square corners on that side: rounded corners against a
   single-sided border always look like a mistake.
   ------------------------------------------------------------------ */
/* ------------------------------------------------------------------
   COMPANION — "pairs with" card. Photo left on a pale panel, text right,
   thin dark outline button. Deliberately lighter than the advice band and
   a single wide card rather than a grid, so it reads as a pointer to one
   related machine and not another section of the same page.
   ------------------------------------------------------------------ */
.ims-machine .ims-companion{
	max-width:920px;margin:0 auto;
	display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
	background:#fff;
	border:1px solid #DADADA;
	border-top:4px solid var(--red);
	overflow:hidden;
}
.ims-machine .ims-companion-img{
	display:block;background:#F2F2F2;
	min-height:220px;
}
.ims-machine .ims-companion-img img{
	width:100%;height:100%;object-fit:cover;display:block;
}
.ims-machine .ims-companion-body{
	padding:32px 36px;
	display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
}
.ims-machine .ims-companion-eyebrow{
	font-family:'Montserrat',sans-serif;
	font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
	color:var(--red);margin:0 0 8px;
}
.ims-machine .ims-companion-h{
	font-family:'Montserrat',sans-serif;
	font-size:22px;font-weight:700;line-height:1.25;color:#1A1A1A;
	margin:0 0 10px;
}
.ims-machine .ims-companion-p{
	font-size:15px;line-height:1.55;color:#444;margin:0 0 20px;
}
.ims-machine .ims-companion-btn{
	display:inline-block;
	font-family:'Montserrat',sans-serif;
	font-size:14px;font-weight:700;
	color:#1A1A1A;text-decoration:none;
	border:2px solid #1A1A1A;border-radius:3px;
	padding:10px 18px;
	transition:background .15s,color .15s;
}
.ims-machine .ims-companion-btn:hover{background:#1A1A1A;color:#fff;}
@media (max-width:760px){
	.ims-machine .ims-companion{grid-template-columns:1fr;}
	.ims-machine .ims-companion-img{min-height:180px;}
	.ims-machine .ims-companion-body{padding:24px 22px;}
}

.ims-machine .ims-advice{
	max-width:920px;margin:0 auto;
	position:relative;
	overflow:hidden;
	border:0;
	border-left:5px solid var(--red);
	border-radius:0;
	padding:44px 38px;
	min-height:260px;
	display:flex;flex-direction:column;justify-content:center;
	/* Image comes from the cta_image field, set inline on the element.
	   Only the framing lives here. */
	background-color:#16233a;
	background-repeat:no-repeat;
	background-position:center right;
	background-size:cover;
}
/* The darkening is a layer of its own rather than part of the background
   shorthand, so the inline per-machine image and the overlay are not
   competing for the same property.

   Hard-ish vertical split rather than a wash across the whole panel: solid
   under the text, a short fade so the join is not a visible line, then the
   photograph. A full-width gradient left the heading sitting on sky and
   the contrast failed at the top. */
.ims-machine .ims-advice::before{
	content:'';position:absolute;inset:0;
	background:linear-gradient(90deg,
		#16233a 0%,
		#16233a 48%,
		rgba(22,35,58,.86) 58%,
		rgba(22,35,58,.30) 70%,
		rgba(22,35,58,.08) 100%);
}
.ims-machine .ims-advice > *{position:relative;z-index:1;}
.ims-machine .ims-advice-h{
	font-family:'Montserrat',sans-serif;
	font-size:26px;font-weight:700;color:#fff;
	margin:0 0 12px;max-width:46%;
}
.ims-machine .ims-advice-p{
	font-size:16px;line-height:1.65;color:rgba(255,255,255,.85);
	margin:0 0 24px;max-width:46%;
}
.ims-machine .ims-advice-btn{display:inline-flex;align-self:flex-start;}

/* The callout carries the same background as the section above it and no top
   padding, so it reads as the closing move of that section rather than as a
   new one. It was previously taking its own band colour and its own full top
   padding, which put a wide empty strip between the last feature and the
   panel and then changed the background underneath it for no reason. */
.ims-machine .ims-advice-band{padding-top:0 !important;}

/* Phone: solid dark panel, no photograph.

   A centre crop of a 3:1 machine shot into a narrow panel is an unreadable
   slice of metal, and any overlay dark enough to carry white text over it
   hides whatever is left. Dropping the image entirely gives a solid block
   that the text and button can fill properly, and keeps the red rule doing
   the work of identifying the panel.

   The button goes full width because at this size a small button floating
   in a large dark block reads as an afterthought rather than the action. */
@media(max-width:860px){
	.ims-machine .ims-advice{
		background-image:none !important;
		background-color:#16233a;
		padding:30px 24px;
		min-height:0;
		border-left-width:6px;
	}
	.ims-machine .ims-advice::before{content:none;}
	.ims-machine .ims-advice-h{
		font-size:22px;line-height:1.25;max-width:none;margin:0 0 12px;
	}
	.ims-machine .ims-advice-p{
		font-size:15px;line-height:1.6;max-width:none;margin:0 0 22px;
		color:rgba(255,255,255,.88);
	}
	.ims-machine .ims-advice-btn{
		align-self:stretch;width:100%;
		justify-content:center;text-align:center;
		padding:16px 18px !important;
		font-size:13px !important;
	}
}
/* Model columns are centred; the label column stays left.

   Mixed alignment was the real problem. With every value left-aligned in its
   column and one spanned value centred across the span, the spanned row read
   as broken rather than as a shared figure. Centring the model columns —
   headings and values alike — makes the two agree, and a column of short
   figures under a centred heading scans better than a ragged left edge
   anyway.

   The first column is excluded throughout: labels stay left, aligned with
   every other label down the table.

   This sits at the foot of the file deliberately. Earlier attempts placed it
   beside the other spec-table rules near the top, where the later
   text-align declarations on td and thead th overrode it silently.
   ------------------------------------------------------------------ */
.ims-machine .ims-spec-cols-multi thead th:not(:first-child){
	text-align:center !important;
}
.ims-machine .ims-spec-cols-multi td:not(:first-child),
.ims-machine .ims-spec-parsed td[colspan]:not(:first-child){
	text-align:center !important;
}

/* Equal-width model columns, so the centred span above actually lands under
   the middle model.

   With table-layout:auto each model column sizes to its longest value, so
   TG6035 ("20 × 20 – 350 × 350 mm") came out wider than TG6012 and the
   centre of the span sat right of the TG6020 heading. Centred across three
   equal columns, the two agree.

   Scoped to three and four column tables. The five and six column ones —
   TZ, and anything with a model per chuck size — depend on nowrap plus the
   horizontal scroller above; forcing fixed widths on those would overflow
   the cells rather than scroll them. Those keep auto sizing and stay as
   they are.
   ------------------------------------------------------------------ */
.ims-machine .ims-spec-cols-multi[data-cols="3"],
.ims-machine .ims-spec-cols-multi[data-cols="4"]{
	table-layout:fixed !important;
}
.ims-machine .ims-spec-cols-multi[data-cols="3"] thead th:first-child,
.ims-machine .ims-spec-cols-multi[data-cols="4"] thead th:first-child{
	width:28%;
}
/* Fixed layout hands the remaining width out equally to the unsized columns,
   so no per-column widths are needed. Values wrap instead of overflowing,
   which they have room to do at three or four columns. */
.ims-machine .ims-spec-cols-multi[data-cols="3"] td,
.ims-machine .ims-spec-cols-multi[data-cols="4"] td{
	white-space:normal;
}

/* ------------------------------------------------------------------
   Rule under the brand pill.

   The pill row and what follows it were running together with only
   whitespace between them, so the brand tag read as the first line of the
   intro rather than as a label on the machine.

   The rule itself comes from the spec strip's own top border, which sits
   directly beneath. Adding a second one here produced two hairlines with a
   gap between them — only visible once the spec strip came back, since
   with no strip there was no border to double up against. So this sets
   the spacing and lets the strip draw the line.
   ------------------------------------------------------------------ */
.ims-machine .ims-hero-meta{
	padding-bottom:4px;
	margin-bottom:16px !important;
}

/* ------------------------------------------------------------------
   Full-width banner above the hero.

   Sits inside the features band, in the same column as everything else in
   it, and is shown whole rather than cropped. Full-bleed with a height cap
   was cutting captions burnt into the bottom of supplier artwork — the TZ
   banner lost its "4 Chucks" line. Letting the height follow the image
   means whatever the supplier sent arrives intact, at whatever ratio it
   happens to be.

   Space above and below so it reads as an opening image for the section
   rather than something wedged against the heading. The band's own top
   padding sits above this, so the top margin here is the smaller of the
   two numbers.
   ------------------------------------------------------------------ */
/* Spec table footnote. Marked with the same red left rule the text-only
   feature rows use, so it reads as a note rather than as another line of the
   table — a caveat about availability is not a specification and should not
   sit in a column next to a measurement. Held to the table's 920px measure
   so the rule lines up with the table's left edge above it. */
.ims-machine .ims-spec-note{
	max-width:920px;
	margin:26px auto 0;
	padding-left:26px;
	border-left:3px solid var(--red);
	font-family:'Inter',sans-serif;
	font-size:15px;
	line-height:1.6;
	color:var(--mut);
	text-align:left;
}
@media(max-width:800px){
	.ims-machine .ims-spec-note{padding-left:18px;font-size:14px;}
}

.ims-machine .ims-featbanner{
	width:100%;
	margin:0 0 40px;
	line-height:0;
}

/* ------------------------------------------------------------------
   Subheading in the right-hand column.

   It used to sit under the title across the full width, which left the
   copy column opening on a bare brand pill and the description starting
   halfway across the page with nothing above it. Moved into the column,
   it opens the rail it belongs to.

   No max-width here: the column is already a reading measure, so the
   72ch cap the full-width version needed would never bite. The bottom
   margin is tightened because the pill sits directly beneath it now
   rather than a whole grid row away.
   ------------------------------------------------------------------ */
.ims-machine .ims-hero-info .ims-hero-tagline--info{
	max-width:none;
	margin:0 0 20px !important;
}
.ims-machine .ims-featbanner img{
	display:block;
	width:100%;
	height:auto;
	border-radius:0;
}
@media(max-width:600px){
	.ims-machine .ims-featbanner{margin:0 0 36px;}
}

/* "Key features" sits evenly between the banner and the first feature row.

   The numbers are deliberately unequal because the space is not: the heading
   carries about 3px of half-leading top and bottom from its 1.2 line-height,
   and the first feature adds 8px of its own top padding under this margin.
   40px above and 33px below therefore land at roughly 44px of visible space
   on each side. Change one and the other needs recalculating. */
.ims-machine .ims-features > .ims-h{margin-bottom:33px !important;}

/* Spec strip on a phone.

   Four values wrap to two lines and the strip stops reading as a strip.
   The last one is dropped below 600px — the values are in priority order,
   so what goes is the least useful of the four, and all of them are in
   the specification table further down anyway. */
@media(max-width:600px){
	.ims-machine .ims-hero-speclist li:nth-child(n+4){display:none;}
}

/* Multi-model spec tables fit the page width.

   The first column was set to nowrap for two-column tables, which is fine
   there but on a six-column table a label like "Interactive operation and
   remote panel" refused to wrap, the table grew past the card and the last
   model was clipped by overflow:hidden. Fixed layout shares the width
   across the model columns, every cell wraps, and long single-value rows
   (options, software) run to two or three lines instead of forcing width.
   Below tablet width the card scrolls sideways rather than clipping. */
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi{
	table-layout:fixed;
	width:100%;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi th,
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi td{
	white-space:normal;
	overflow-wrap:anywhere;
	vertical-align:top;
}
/* Label column share scales with the number of model columns, so a two-model
   table is not squeezed to a 22% label and a six-model one is not wasted on
   a 40% one. */
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi td:first-child,
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi th:first-child{
	width:22%;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi[data-cols="3"] td:first-child,
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi[data-cols="3"] th:first-child{
	width:34%;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi[data-cols="4"] td:first-child,
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi[data-cols="4"] th:first-child{
	width:28%;
}
/* Two-column (single model) tables: fixed 40/60 split with wrapping labels,
   instead of the label column growing to the longest label and leaving the
   value column half empty. */
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-two{
	table-layout:fixed;
	width:100%;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-two td{
	white-space:normal;
	overflow-wrap:anywhere;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-two td:first-child{
	width:40%;
}
@media(max-width:600px){
	.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-two{table-layout:auto;}
	.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-two td:first-child{width:100%;}
}
.ims-machine .ims-spec-table--wide{overflow-x:auto;}
/* Brand reasons band: full-bleed blue statement, centred heading with a short
   white rule, a lighter diagonal panel behind and angled edges top and
   bottom. Replaces the CTA band on brands that have it set. */
.ims-machine .ims-why-outer{
	position:relative;
	margin-top:0;
	padding-bottom:26px;
	margin-bottom:56px;
	background:#ffffff;
}
/* Grey shadow wedge beneath the blue: nothing at the left, starts a third of
   the way across and thickens to the right. */
.ims-machine .ims-why-outer::before{
	content:'';
	position:absolute;
	left:0;right:0;top:0;bottom:0;
	background:#b7c1cf;
	clip-path:polygon(0 0,100% 0,100% calc(100% - 38px),33% calc(100% - 41px),0 calc(100% - 26px));
}
.ims-machine .ims-why-band{
	position:relative;
	z-index:1;
	background:#3f6fc4 !important;
	background-image:linear-gradient(112deg,#4d7fd3 0%,#4d7fd3 46%,#3f6fc4 46.2%,#3f6fc4 100%) !important;
	color:#ffffff;
	padding:80px 0 120px;
	clip-path:polygon(0 0,100% 0,100% calc(100% - 44px),0 100%);
	margin-bottom:0;
	text-align:center;
}
.ims-machine .ims-why-band::before{display:none;}
.ims-machine .ims-why-h{
	font-size:40px;
	line-height:1.1;
	font-weight:800;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:#ffffff;
	margin:0 auto 18px;
	max-width:900px;
}
.ims-machine .ims-why-h::after{
	content:'';
	display:block;
	width:56px;
	height:3px;
	background:#ffffff;
	margin:18px auto 0;
}
.ims-machine .ims-why-lead{
	font-size:19px;
	line-height:1.6;
	color:#eaf0fa;
	max-width:820px;
	margin:0 auto 8px;
}
.ims-machine .ims-why-list{
	list-style:none;
	margin:36px auto 0;
	padding:0;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:18px 56px;
	max-width:1000px;
	text-align:left;
}
.ims-machine .ims-why-list li{
	position:relative;
	padding-left:22px;
	font-size:17px;
	line-height:1.55;
	color:#eaf0fa;
}
.ims-machine .ims-why-list li::before{
	content:'';
	position:absolute;
	left:0;
	top:11px;
	width:10px;
	height:3px;
	background:#ffffff;
}
.ims-machine .ims-why-list li strong{color:#ffffff;}
.ims-machine .ims-why-btn{margin-top:44px;}
@media(max-width:820px){
	.ims-machine .ims-why-outer{margin-top:0;padding-bottom:12px;margin-bottom:32px;}
	.ims-machine .ims-why-outer::before{clip-path:polygon(0 0,100% 0,100% calc(100% - 20px),33% calc(100% - 20px),0 calc(100% - 12px));}
	.ims-machine .ims-why-band{padding:56px 0 84px;clip-path:polygon(0 0,100% 0,100% calc(100% - 24px),0 100%);}
	.ims-machine .ims-why-h{font-size:28px;}
	.ims-machine .ims-why-lead{font-size:17px;}
	.ims-machine .ims-why-list{grid-template-columns:1fr;gap:14px;}
	.ims-machine .ims-why-list li{font-size:16px;}
}
/* Disclaimer under every spec table: small, grey, centred, clearly not a
   specification. */
.ims-machine .ims-spec-disclaimer{
	max-width:920px;
	margin:18px auto 0;
	font-size:13px;
	line-height:1.5;
	color:#6b7280;
	text-align:center;
}
@media(max-width:900px){
	.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi{min-width:760px;}
}

/* In stock pill over the hero photo (Oct 2026). Driven only by the "In stock"
   checkbox; matches the badge on the category cards. */
.ims-hero-media,
.ims-hero-wide-media{position:relative;}
.ims-stock-pill{
	position:absolute;
	top:16px;
	left:16px;
	z-index:3;
	display:inline-block;
	background:#3f7d3a;
	color:#fff;
	font-family:'Montserrat',sans-serif;
	font-size:13px;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.6px;
	line-height:1;
	padding:8px 14px;
	border-radius:999px;
	box-shadow:0 2px 8px rgba(0,0,0,.2);
	pointer-events:none;
}
@media(max-width:600px){
	.ims-stock-pill{top:10px;left:10px;font-size:11px;padding:6px 11px;}
}

/* Feature spacing fix (Oct 2026).
   On text-only feature sections the rows had their bottom padding zeroed,
   so each row's text sat hard against the divider under it, and the last
   row ran straight into the More features / Options lists. Rows get even
   space above and below their divider, and the lists are set off from the
   features by their own divider. Applies to every machine page. */
.ims-machine .ims-features-band--plain .ims-feature,
.ims-machine .ims-features-band--plain .ims-feature--notext-img{
	padding-top:32px !important;
	padding-bottom:32px !important;
}
.ims-machine .ims-features .ims-more-grid{
	margin-top:24px;
	padding-top:44px;
	border-top:1px solid #e4e8ec;
}
@media(max-width:800px){
	.ims-machine .ims-features-band--plain .ims-feature,
	.ims-machine .ims-features-band--plain .ims-feature--notext-img{
		padding-top:24px !important;
		padding-bottom:24px !important;
	}
	.ims-machine .ims-features .ims-more-grid{margin-top:16px;padding-top:32px;}
}

/* Wide model tables (6+ columns, e.g. press brakes, guillotines): size
   columns to their content instead of equal fixed shares. The model column
   was getting 22% for "110 x 3200" while values like "220 / 0 to 15 / 200"
   wrapped onto two lines. Data cells stay on one line; headings still wrap.
   Narrow screens scroll the card sideways. */
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi:not([data-cols="3"]):not([data-cols="4"]):not([data-cols="5"]){
	table-layout:auto !important;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi:not([data-cols="3"]):not([data-cols="4"]):not([data-cols="5"]) td:first-child,
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi:not([data-cols="3"]):not([data-cols="4"]):not([data-cols="5"]) th:first-child{
	width:auto !important;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi:not([data-cols="3"]):not([data-cols="4"]):not([data-cols="5"]) td{
	white-space:nowrap !important;
	overflow-wrap:normal !important;
}
.ims-machine .ims-spec-table--wide .ims-spec-parsed.ims-spec-cols-multi:not([data-cols="3"]):not([data-cols="4"]):not([data-cols="5"]) th{
	overflow-wrap:normal !important;
	word-break:normal !important;
}

/* Brand panel logos saved on a solid background (see script in
   single-machine.php): blend the background out instead of whiting the
   whole image into a box. */
.ims-machine .ims-brand-panel-logo.ims-logo-on-white{filter:grayscale(1) invert(1) contrast(1.6) !important;mix-blend-mode:screen;opacity:1 !important;}
.ims-machine .ims-brand-panel-logo.ims-logo-on-black{filter:grayscale(1) contrast(1.6) !important;mix-blend-mode:screen;opacity:1 !important;}
/* Kotec red oval logo: show in colour, a white knockout turns it into a blank oval. */
.ims-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}
.ims-f-check{display:flex;gap:10px;align-items:flex-start;margin:4px 0 18px;font-size:14px;line-height:1.45;color:inherit;cursor:pointer;}
.ims-f-check input{margin-top:3px;width:18px;height:18px;flex:0 0 18px;accent-color:#c8102e;}
.ims-machine .ims-brand-panel-logo[src*="KOTEC-red-oval"]{filter:none !important;mix-blend-mode:normal !important;opacity:1 !important;}

/* Wide model tables on phones: each model becomes its own card, with the
   model as a navy header and every spec as a label / value line. The
   ims-spec-stack class and data-label attributes are added by the script
   in single-machine.php. */
@media(max-width:700px){
	.ims-machine .ims-spec-table--wide:has(.ims-spec-stack){
		overflow:visible !important;
		border:0 !important;
		background:transparent !important;
		border-radius:0 !important;
	}
	.ims-machine .ims-spec-parsed.ims-spec-stack,
	.ims-machine .ims-spec-parsed.ims-spec-stack tbody,
	.ims-machine .ims-spec-parsed.ims-spec-stack tr{
		display:block !important;
		width:100% !important;
		min-width:0 !important;
		max-width:100% !important;
		table-layout:auto !important;
	}
	.ims-machine .ims-spec-parsed.ims-spec-stack thead{display:none !important;}
	.ims-machine .ims-spec-parsed.ims-spec-stack tr{
		margin:0 0 14px !important;
		border:1px solid #e4e8ec !important;
		border-radius:8px !important;
		overflow:hidden !important;
		background:#fff !important;
	}
	.ims-machine .ims-spec-parsed.ims-spec-stack td{
		display:flex !important;
		justify-content:space-between !important;
		align-items:baseline !important;
		gap:14px !important;
		width:100% !important;
		padding:9px 14px !important;
		border-bottom:1px solid #eef1f4 !important;
		background:#fff !important;
		white-space:normal !important;
		text-align:right !important;
		font-size:14.5px !important;
	}
	.ims-machine .ims-spec-parsed.ims-spec-stack td:nth-child(odd){background:#f8f9fb !important;}
	.ims-machine .ims-spec-parsed.ims-spec-stack td:last-child{border-bottom:0 !important;}
	.ims-machine .ims-spec-parsed.ims-spec-stack td:empty{display:none !important;}
	.ims-machine .ims-spec-parsed.ims-spec-stack td::before{
		content:attr(data-label);
		text-align:left;
		color:#5b6673;
		font-weight:600;
		font-size:13px;
		flex:1 1 auto;
	}
	.ims-machine .ims-spec-parsed.ims-spec-stack td:first-child{
		display:block !important;
		background:var(--navy,#0d1b2a) !important;
		color:#fff !important;
		font-family:'Montserrat',sans-serif !important;
		font-weight:700 !important;
		font-size:16px !important;
		text-align:left !important;
		padding:11px 14px !important;
	}
	.ims-machine .ims-spec-parsed.ims-spec-stack td:first-child::before{
		content:attr(data-label) ": ";
		color:rgba(255,255,255,.7);
		font-size:13px;
		font-weight:600;
	}
}

/* On-this-page jump nav (built by JS in single-machine.php) and the
   floating back-to-top button. */
html{scroll-behavior:smooth;}
.ims-machine [id^="ims-"]{scroll-margin-top:var(--ims-jump-off,80px);}
.ims-machine .ims-jumpnav{
	position:sticky;
	top:var(--ims-hdr,0px);
	z-index:50;
	background:#fff;
	border-bottom:1px solid #e4e8ec;
	box-shadow:0 2px 8px rgba(13,27,42,.06);
}
.ims-machine .ims-jumpnav-inner{
	max-width:1240px;
	margin:0 auto;
	padding:10px 20px;
	display:flex;
	justify-content:center;
	gap:6px;
	overflow-x:auto;
	scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
}
.admin-bar .ims-machine .ims-jumpnav{top:calc(var(--ims-hdr,0px) + 32px);}
@media(max-width:782px){.admin-bar .ims-machine .ims-jumpnav{top:calc(var(--ims-hdr,0px) + 46px);}}
@media(max-width:600px){.admin-bar .ims-machine .ims-jumpnav{top:var(--ims-hdr,0px);}}
.ims-machine .ims-jumpnav-inner::-webkit-scrollbar{display:none;}
.ims-machine .ims-jumpnav-inner{gap:8px;align-items:center;padding-top:10px;padding-bottom:10px;}
.ims-machine .ims-jumpnav a{
	flex:0 0 auto;
	padding:8px 16px;
	border:1px solid #d5dbe2;
	border-radius:3px;
	background:#fff;
	font-family:'Montserrat',sans-serif;
	font-size:13px;
	font-weight:700;
	letter-spacing:.06em;
	text-transform:uppercase;
	color:var(--navy,#0d1b2a) !important;
	text-decoration:none !important;
	white-space:nowrap;
	transition:background .15s,color .15s,border-color .15s;
}
.ims-machine .ims-jumpnav a:hover{background:#eef1f4;border-color:#c3cbd4;}
.ims-machine .ims-jumpnav a.is-active,
.ims-machine .ims-jumpnav a:active{background:#cc0000;border-color:#cc0000;color:#fff !important;}
.ims-totop{
	position:fixed;
	right:20px;
	bottom:20px;
	z-index:60;
	width:46px;
	height:46px;
	border-radius:3px;
	background:var(--navy,#0d1b2a);
	color:#fff !important;
	display:flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 4px 14px rgba(13,27,42,.25);
	transition:transform .15s,background .15s;
}
.ims-totop[hidden]{display:none;}
.ims-totop:hover{background:#cc0000;transform:translateY(-2px);}
@media(max-width:800px){
	.ims-machine .ims-jumpnav-inner{justify-content:flex-start;padding:8px 12px;gap:6px;}
	.ims-machine .ims-jumpnav a{padding:7px 12px;font-size:12px;}
	.ims-totop{right:14px;bottom:14px;width:42px;height:42px;}
}
