/*
 * Almark — styles layered on Impreza's builder output.
 * Rows, columns and elements carry "al-*" classes (Design → Extra class in the builder).
 * Colours, fonts and buttons themselves live in Theme Options.
 */

:root {
	--al-green: #003f33;
	--al-green-hover: #155e4b;
	--al-pink: #ec008c;
	--al-cream: #f6f5f0;
	--al-sage: #eaf0e5;
	--al-ink: #173d33;
	--al-muted: #607168;
	--al-line: #dce2d8;
}

html { scroll-padding-top: 110px; }

/* Highlighted words in headings: <i> in the builder */
h1 i, h2 i, h3 i, .al-mega-heading i, .al-mega-feature-title i {
	font-family: Georgia, serif;
	font-weight: 400;
	letter-spacing: -0.035em;
}
h1 i { color: var(--al-pink); }

.l-section p { margin-bottom: 1em; }
.l-section p:last-child { margin-bottom: 0; }

/* ---------- Shared building blocks ---------- */

.al-eyebrow {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.4;
	color: #526b60;
	margin-bottom: 25px;
}
.color_alternate .al-eyebrow { color: #e3e9de; }

.l-section.al-cream { background: var(--al-cream); }

.w-btn.icon_atright i { margin-left: 28px; }
.w-btn.al-text-link {
	padding: 12px 0;
	font-weight: 400;
	border-bottom: 1px solid #b4c3b2;
}
.w-btn.al-text-link i { margin-left: 20px; }
.w-btn.al-text-link.al-light { border-bottom-color: #ffffff80; }

.al-small-note { font-size: 10px; line-height: 1.7; color: var(--al-muted); margin-top: 17px; }

.g-cols.al-section-heading { align-items: end; margin-bottom: 40px; }
.al-section-heading h2 { margin-bottom: 0; }
.al-section-heading-aside > .vc_column-inner {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-end;
	height: 100%;
}
.al-section-heading-aside p { max-width: 320px; }

.al-breadcrumbs { font-size: 10px; color: #6c7c70; margin-bottom: 43px; line-height: 1.6; }
.al-breadcrumbs a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.al-breadcrumbs a:hover { color: var(--al-pink); }

/* Numbered steps */
.al-steps { margin-top: 45px; --columns-gap: 55px !important; }
.al-steps > .wpb_column > .vc_column-inner { border-top: 1px solid #d6ded3; padding-top: 20px; }
.al-step-num { font-size: 12px; color: var(--al-pink); }
.al-steps h3 { font-size: 21px; font-weight: 500; margin: 22px 0 12px; }
.al-steps p { font-size: 14px; }

/* ---------- Page intro ---------- */

.l-section.al-page-intro { background: var(--al-cream); padding-top: 35px; padding-bottom: 65px; }
.al-page-intro h1 { font-size: 58px; max-width: 800px; }
.al-page-intro p { max-width: 620px; }

/* ---------- Home hero ---------- */

.l-section.al-hero { min-height: 650px; position: relative; }
.al-hero .l-section-img { background-size: cover; }
.l-section.al-hero { padding-top: 75px; padding-bottom: 75px; }
.al-hero .g-cols, .al-hero .wpb_column, .al-hero .vc_column-inner { position: static; }
.al-hero .vc_column-inner { max-width: 1000px; }
.al-hero .al-eyebrow { color: #e3e9de; }
.al-hero h1 { color: #fff; }
.al-hero .wpb_text_column p { color: #eef1ed; font-size: 16px; line-height: 1.75; max-width: 470px; }
.al-hero-actions { margin-top: 31px; }
.al-hero-note {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 43px;
	font-size: 11px;
	color: #eee;
}
.al-hero-note::before { content: ''; width: 24px; height: 1px; background: #d6dfbf; }
.al-hero-caption {
	position: absolute;
	right: 5vw;
	bottom: 37px;
	font-size: 9px;
	letter-spacing: 1.8px;
}
.al-hero-caption a { color: #fff; }
.al-hero-caption i { font-size: 22px; margin-left: 20px; vertical-align: middle; }

/* ---------- Benefits strip ---------- */

.l-section.al-benefits { background: #fafaf6; border-bottom: 1px solid #e3e8de; padding-top: 27px; padding-bottom: 27px; }
.al-benefits-grid { --columns-gap: 0px !important; }
.al-benefits-grid > .wpb_column { border-right: 1px solid #dfe6da; padding: 0 12px; }
.al-benefits-grid > .wpb_column:last-child { border-right: 0; }
.al-benefits .w-iconbox.style_circle .w-iconbox-icon {
	width: 48px;
	height: 48px;
	line-height: 48px;
	font-size: 21px !important;
	transition: background .2s, color .2s, transform .2s;
}
.al-benefits .w-iconbox-title { font-size: 12px; font-weight: 600; color: var(--al-green); line-height: 1.4; margin-top: 12px; }
.al-benefits .w-iconbox-title a { color: inherit; }
.al-benefits .w-iconbox:has(a):hover .w-iconbox-icon { --icon-bg-color: var(--al-green) !important; --icon-color: #fff !important; transform: translateY(-2px); }

/* ---------- Service cards (Post List: "Almark — Service card") ---------- */

.al-gl-service .w-grid-item-h { border-bottom: 1px solid var(--al-line); padding-bottom: 20px; }
.al-gl-service .al-card-img img { width: 100%; height: 265px; object-fit: cover; transition: filter .2s; }
.al-gl-service .w-grid-item:hover .al-card-img img { filter: brightness(1.08); }
.al-gl-service .al-card-body { padding-top: 24px; }
.al-card-eyebrow { font-size: 9px; letter-spacing: 1.4px; line-height: 1.4; color: #788579; }
.al-gl-service .al-card-titlebar { margin: 13px 0; }
.al-card-title { font-size: 24px !important; font-weight: 500; margin: 0 !important; color: var(--al-ink); }
.al-card-arrow { font-size: 20px; color: var(--al-green); }
.al-card-excerpt p { font-size: 13px; line-height: 1.8; max-width: 320px; margin: 0; }
.al-service-grid-all .w-grid-list { row-gap: 45px; }

/* ---------- Testimonial ---------- */

.l-section.al-review-row { background: var(--al-sage); padding-top: 65px; padding-bottom: 65px; text-align: center; }
.al-review-row .vc_column-inner { max-width: 900px; margin: 0 auto; }
.al-reviews, .al-reviews .w-grid-list, .al-reviews .w-grid-item, .al-review, .al-review-quote { width: 100% !important; max-width: none; }
.al-reviews .w-grid-list { display: block; }
.al-review-row .al-eyebrow { margin-bottom: 5px; }
.al-review-stars { font-family: Georgia, serif; font-size: 70px; line-height: 1; height: 64px; color: var(--al-pink); margin-top: 16px; }
.al-review-quote p { font-family: Georgia, serif; font-size: 30px; line-height: 1.5; color: var(--al-ink); margin: 5px 0 25px; }
.al-review-name { font-size: 12px; font-weight: 600; color: var(--al-ink); }
.al-review-role { font-size: 10px; }

/* ---------- Call to action ---------- */

.l-section.al-cta { padding-top: 60px; padding-bottom: 60px; }
.al-cta h2 { margin-bottom: 14px; }
.al-cta p { color: #d0dccf; }
.al-cta-actions > .vc_column-inner { max-width: 245px; margin-left: auto; }
.al-btn-block, .al-btn-block .w-btn { width: 100%; }
.al-btn-block .w-btn { justify-content: space-between; }
.al-cta-call { text-align: center; font-size: 12px; margin-top: 17px; }
.al-cta-call a { color: #fff; }

/* ---------- Colour banner & swatches ---------- */

.l-section.al-colour-banner { background: var(--al-sage); padding-top: 45px; padding-bottom: 45px; }
.al-colour-banner .al-eyebrow { margin-bottom: 13px; }
.al-colour-banner h2 { font-size: 30px; letter-spacing: -1px; margin-bottom: 13px; }
.al-colour-banner .w-btn.al-text-link { padding: 6px 0; font-size: 12px; border-bottom-color: #9baa94; }
.al-swatches .w-grid-item-h { border: 3px solid #fff; box-shadow: 0 1px 3px #003f3314; }
.al-swatches .w-grid-item-h:hover { outline: 2px solid var(--al-green); }
.al-swatch-img img { width: 100%; height: 38px; object-fit: cover; display: block; }

/* ---------- Service page template ---------- */

.l-section.al-service-hero { background: var(--al-cream); padding: 0; --padding-inline: 0px; }
.al-service-hero > .l-section-h { padding: 0; max-width: none; }
.al-service-hero .g-cols { --columns-gap: 0px !important; align-items: stretch; }
.al-service-hero-copy > .vc_column-inner { padding: 30px 10% 65px 14%; }
.al-service-hero h1 { font-size: 45px; letter-spacing: -1.8px; margin-bottom: 25px; }
.al-service-hero .al-eyebrow { margin-bottom: 22px; }
.al-hero-intro p { font-size: 15px; margin-bottom: 30px; }
.al-service-hero-media > .vc_column-inner, .al-service-hero-img { height: 100%; }
.al-service-hero-img img { width: 100%; height: 100%; min-height: 580px; max-height: 670px; object-fit: cover; }

.al-service-intro .al-section-heading-aside p { max-width: 430px; }

.al-service-detail p { max-width: 430px; }
.al-planning-list > .vc_column-inner { background: #fff; padding: 35px; }
.al-planning-list h3 { font-size: 21px; font-weight: 500; }
.al-planning-list ul { padding-left: 18px; margin: 0 0 25px; color: var(--al-muted); line-height: 2.4; font-size: 14px; }
.al-planning-list li { margin: 0; }

.al-finish-panel h2 { font-size: 40px; }
.al-finish-panel p { font-size: 13px; max-width: 430px; }
.al-finish-panel .w-btn { margin-top: 9px; font-size: 12px; }
.al-finish-samples .w-grid-list { align-items: start; }
.al-finish-samples .w-grid-item-h {
	padding: 8px;
	background: #fff;
	border: 1px solid #e0e3d9;
	transform: rotate(-5deg);
	box-shadow: 0 12px 25px #003f3310;
	transition: transform .2s;
}
.al-finish-samples .w-grid-item:nth-child(2) .w-grid-item-h { transform: rotate(3deg); margin-top: 30px; }
.al-finish-samples .w-grid-item:nth-child(3) .w-grid-item-h { transform: rotate(8deg); }
.al-finish-samples .w-grid-item .w-grid-item-h:hover { transform: translateY(-6px) rotate(0deg); }
.al-finish-img img { width: 100%; height: 120px; object-fit: cover; display: block; }
.al-finish-name { font-size: 11px; font-weight: 600; line-height: 1.4; padding: 13px 2px 0; color: var(--al-green); }
.al-finish-type { font-size: 9px; line-height: 1.4; color: #788372; margin-top: 5px; padding: 0 2px 4px; }

/* ---------- FAQs (Post List: "Almark — FAQ") ---------- */

.al-faqs .g-cols { --columns-gap: 9% !important; }
.al-faqs h2 + .wpb_text_column p, .al-faqs .wpb_text_column p { font-size: 13px; }
.al-faqs .wpb_text_column a { text-decoration: underline; text-underline-offset: 5px; }
.l-section.al-faqs-follow { padding-top: 0; }
.al-faq-list .w-grid-item-h { border-bottom: 1px solid #dfe5db; }
.w-post-elm.al-faq-q {
	position: relative;
	cursor: pointer;
	padding: 23px 30px 23px 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--al-ink);
}
.al-faq-q::after { content: '+'; position: absolute; right: 0; top: 19px; font-size: 20px; line-height: 1; color: var(--al-green); }
.al-faq-q:focus-visible { outline: 3px solid var(--al-pink); outline-offset: 4px; }
.al-open .al-faq-q::after { content: '−'; }
.al-faq-a { display: none; padding-bottom: 20px; }
.al-open .al-faq-a { display: block; }
.al-faq-a p { font-size: 13px; padding-right: 25px; }

/* ---------- Our work ---------- */

.al-filters .w-filter-item-title, .al-filters .w-filter-item-reset, .al-filters .w-filter-list-title { display: none; }
.al-filters .w-filter-item-values { display: flex; flex-wrap: wrap; gap: 12px; }
.al-filters .w-filter-item-value { margin: 0; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.al-filters .w-filter-item-value label { display: block; margin: 0; cursor: pointer; }
.al-filters .w-filter-item-value input { position: absolute; opacity: 0; pointer-events: none; }
.al-filters .w-filter-item-value-label {
	display: block;
	background: #fff;
	border: 1px solid #ccd8cb;
	color: var(--al-green);
	padding: 12px 20px;
	font-size: 12px;
	line-height: 1.2;
	transition: background .15s, color .15s;
}
.al-filters input:checked + .w-filter-item-value-label { background: var(--al-green); border-color: var(--al-green); color: #fff; }
.al-filters input:focus-visible + .w-filter-item-value-label { outline: 3px solid var(--al-pink); outline-offset: 3px; }
.al-results-count { font-size: 11px; margin: 20px 0; }
.al-project-grid .w-grid-list { row-gap: 32px; }
.al-gl-project .al-card-img img { width: 100%; height: 270px; object-fit: cover; }
.al-project-bar { padding: 20px 0; border-bottom: 1px solid #dde2d8; }
.al-project-title { font-size: 15px; color: var(--al-green); }
.al-gl-project .al-card-arrow { font-size: 18px; }

/* ---------- About ---------- */

.al-about .g-cols { --columns-gap: 9% !important; }
.al-about-photo-col > .vc_column-inner { position: relative; }
.al-about-photo img { width: 100%; height: 520px; object-fit: cover; }
.al-about-badge {
	position: absolute;
	left: 0;
	bottom: 0;
	background: var(--al-green);
	padding: 22px 28px;
	font-size: 10px;
	letter-spacing: 2px;
	color: #fff;
}
.al-about p { font-size: 14px; }
.al-about-points { list-style: none; counter-reset: point; display: grid; gap: 16px; margin: 25px 0 32px; padding: 0; font-size: 12px; color: var(--al-ink); }
.al-about-points li { margin: 0; counter-increment: point; }
.al-about-points li::before { content: counter(point, decimal-leading-zero) ' '; color: var(--al-pink); }

/* ---------- Contact ---------- */

.al-enquiry .g-cols { --columns-gap: 9% !important; }
.al-enquiry h1 { font-size: 57px; }
.al-enquiry .wpb_text_column p { color: #c4d3c9; font-size: 14px; }
.al-big-phone { font-size: 29px; letter-spacing: -1px; margin-top: 30px; }
.al-big-phone i { font-size: 23px; margin-right: 12px; }
.al-contact-email { font-size: 14px; margin-top: 12px; }
.al-big-phone a, .al-contact-email a { color: #fff; }
.al-visit-title { font-size: 13px !important; margin: 45px 0 10px; }
.al-enquiry .al-visit { font-size: 12px; line-height: 1.6; }
.al-visit a { text-decoration: underline; text-underline-offset: 5px; }
.al-form-card > .vc_column-inner { background: #fff; color: var(--al-green); padding: 34px; }
.al-form-title { font-size: 22px !important; font-weight: 500; margin-bottom: 25px; color: var(--al-green) !important; }
.al-enquiry-form .w-form-h { display: grid; grid-template-columns: 1fr 1fr; column-gap: 15px; }
.al-enquiry-form .w-form-row { grid-column: 1 / -1; margin-bottom: 18px; }
.al-enquiry-form .w-form-row:nth-child(2),
.al-enquiry-form .w-form-row:nth-child(3),
.al-enquiry-form .w-form-row:nth-child(4),
.al-enquiry-form .w-form-row:nth-child(5) { grid-column: auto; }
.al-enquiry-form .w-form-row-label { font-size: 11px; font-weight: 600; color: var(--al-green); margin-bottom: 8px; }
.al-enquiry-form input, .al-enquiry-form select, .al-enquiry-form textarea {
	border: 1px solid #dce1d9 !important;
	background: #fafbf8 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: #23483b !important;
	font-size: 12px;
}
.al-enquiry-form ::placeholder { color: #86917f; opacity: 1; }
.al-enquiry-form .w-form-row-field > i { color: #86917f; }
.al-enquiry-form input:focus, .al-enquiry-form select:focus, .al-enquiry-form textarea:focus { outline: 2px solid #608371; }
.al-enquiry .al-form-card .al-form-note { font-size: 10px; line-height: 1.6; color: #6f7971; margin-top: 13px; }
.al-form-card .al-form-note a { color: var(--al-green); text-decoration: underline; }
.al-contact-next .vc_column-inner { max-width: 850px; }

/* ---------- Project completion form (admins only) ---------- */

.al-completion-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 15px; background: #fff; padding: 34px; border: 1px solid var(--al-line); }
.al-completion-field { grid-column: span 1; }
.al-field-services, .al-field-notes, .al-field-consent, .al-completion-form > button { grid-column: 1 / -1; }
.al-completion-form label, .al-completion-form legend { display: block; font-size: 11px; font-weight: 600; color: var(--al-green); margin-bottom: 8px; padding: 0; }
.al-completion-form .al-optional { font-weight: 400; color: var(--al-muted); }
.al-completion-form fieldset { border: 0; margin: 0; padding: 0; }
.al-completion-form input:not([type=checkbox]), .al-completion-form select, .al-completion-form textarea {
	width: 100%; border: 1px solid #dce1d9; background: #fafbf8; border-radius: 0; box-shadow: none; color: #23483b; font-size: 13px;
}
.al-completion-options { display: flex; flex-wrap: wrap; gap: 8px; }
.al-completion-options label, .al-completion-check { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 10px 14px; border: 1px solid #dce1d9; background: #fafbf8; font-weight: 500; cursor: pointer; }
.al-completion-options label:has(input:checked), .al-completion-check:has(input:checked) { border-color: var(--al-green); background: #eef3ec; }
.al-completion-check { width: 100%; font-size: 12px; line-height: 1.5; }
.al-completion-form > button { justify-self: start; }
.al-completion-notice { padding: 16px 20px; margin-bottom: 20px; font-size: 13px; line-height: 1.6; border-left: 3px solid; }
.al-completion-notice.is-success { background: #eef3ec; border-color: var(--al-green); color: var(--al-green); }
.al-completion-notice.is-error { background: #fdeef6; border-color: var(--al-pink); color: #8a0052; }
.al-completion-notice a { text-decoration: underline; }
@media (max-width: 750px) {
	.al-completion-form { grid-template-columns: 1fr; padding: 22px; }
}

/* ---------- Colours page ---------- */

.l-section.al-colours-intro { padding-bottom: 42px; }
.al-colours-intro .wpb_text_column p { font-size: 13px; color: #69776e; max-width: 360px; }
.l-section.al-explorer-row { background: var(--al-cream); padding-top: 0; padding-bottom: 20px; --padding-inline: 0px; }
.al-explorer-row > .l-section-h { padding: 0; }

/* ---------- Privacy ---------- */

.al-policy-copy > .vc_column-inner { max-width: 950px; }
.al-policy-copy h2 { font-size: 27px; margin-top: 35px; }
.al-policy-copy h2:first-child { margin-top: 0; }
.al-policy-copy a { text-decoration: underline; }

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

.l-subheader.at_top .w-text { font-size: 10px; letter-spacing: .25px; }
.l-subheader.at_top .w-text a { color: inherit; }
.l-subheader.at_middle { border-bottom: 1px solid #e0e5dc; }
.al-main-menu .w-nav-anchor.level_1 { font-size: 13px; font-weight: 600; }
.al-main-menu .w-nav-item.level_1.current-menu-item > .w-nav-anchor .w-nav-title,
.al-main-menu .w-nav-item.level_1.current-menu-ancestor > .w-nav-anchor .w-nav-title,
.single-almark_service .al-main-menu .al-menu-services > .w-nav-anchor .w-nav-title { box-shadow: inset 0 -2px 0 var(--al-pink); padding-bottom: 6px; }
.al-header-phone { font-size: 13px; font-weight: 700; }
.al-header-phone a { color: var(--al-green); }
.al-header-btn .w-btn { font-size: 12px; white-space: nowrap; }

/* Services dropdown (Reusable Block "Menu — Services dropdown") */
.al-main-menu .w-nav-list.level_2 { border-top: 2px solid var(--al-pink); box-shadow: 0 20px 35px #00241c26; max-height: calc(100vh - 110px); overflow-y: auto; }
.l-section.al-mega { background: var(--al-cream); padding-top: 29px; padding-bottom: 33px; text-align: left; }
.al-mega .g-cols.cols_3-1 { --columns-gap: 33px !important; }
.al-mega .al-eyebrow { font-size: 8px; letter-spacing: 1.7px; color: #6a7c6c; margin-bottom: 11px; }
.al-mega-top { align-items: end; margin-bottom: 25px; }
.al-mega-heading { font: 500 29px/1.2 Manrope, Arial, sans-serif; letter-spacing: -1px; color: var(--al-green); }
.al-mega-heading i { color: var(--al-pink); }
.al-mega-all > .vc_column-inner { align-items: flex-end; text-align: right; }
.al-mega-all .w-btn { font-size: 11px; }
.al-mega-search { display: flex; align-items: center; gap: 13px; border: 1px solid #cbd5c5; background: #fff; padding: 0 14px; }
.al-mega-search:focus-within { outline: 2px solid var(--al-green); outline-offset: 2px; }
.al-mega-search input { flex: 1; min-width: 0; height: auto !important; min-height: 0 !important; line-height: 1.3 !important; padding: 15px 0 !important; margin: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; font-size: 12px; color: var(--al-green); }
.al-mega-search input:focus { outline: 0; box-shadow: none; }
.al-mega-search button { font-size: 10px; color: var(--al-green); border: 0; background: none; cursor: pointer; padding: 6px; }
.al-mega-search kbd { border: 1px solid #dde2d5; color: #8b9784; font: 9px 'DM Sans', Arial, sans-serif; border-radius: 2px; padding: 3px 5px; background: none; }
.al-mega-count { font-size: 10px !important; color: #7d8976; margin: 12px 0 18px !important; line-height: 1.5; }
.al-mega-groups { --columns-gap: 25px !important; }
.al-mega-group { font: 700 8px 'DM Sans', Arial, sans-serif; letter-spacing: 1.5px; color: #73816b; margin-bottom: 10px; }
.al-mega-list .w-grid-item-h { min-height: 73px; padding: 9px 10px 9px 0; border-bottom: 1px solid #dde2d6; display: flex; align-items: center; transition: background .15s; }
.al-mega-list .w-grid-item-h:hover { background: #e9eddf; }
.al-mega-list .al-mega-item { width: 100%; }
.al-mega-img { flex: none; width: 54px; }
.al-mega-img img { width: 54px; height: 54px; object-fit: cover; border-radius: 2px; display: block; }
.al-mega-title { font: 600 13px Manrope, Arial, sans-serif; letter-spacing: -.3px; color: var(--al-green); }
.al-mega-tagline { font-size: 10px; line-height: 1.5; color: #71806b; }
.al-mega-arrow { margin-left: auto; font-size: 11px; color: var(--al-green); }
.al-mega-advice { font-size: 10px; line-height: 1.7; color: #6d7e66; margin-top: 20px; }
.al-mega-advice a { color: inherit; }
.al-mega-advice strong { font-size: 11px; font-weight: 600; color: var(--al-green); }
.al-mega-empty { padding: 24px 10px 35px; text-align: center; }
.al-mega-empty h3 { font-size: 23px; margin-bottom: 9px; }
.al-mega-empty p { font-size: 12px; }
.al-mega-empty button { background: var(--al-green); color: #fff; padding: 11px 17px; border: 0; font-size: 11px; cursor: pointer; margin-top: 12px; }
.al-mega-feature > .vc_column-inner { background: var(--al-green); color: #fff; padding: 0 0 22px; align-self: start; height: auto; }
.al-mega-feature > .vc_column-inner > *:not(.al-mega-feature-img) { margin-left: 22px; margin-right: 22px; }
.al-mega-feature-img img { width: 100%; height: 145px; object-fit: cover; display: block; }
.al-mega-feature .al-eyebrow { font-size: 7px; letter-spacing: 1.5px; color: #bacab7; margin-top: 20px; margin-bottom: 12px; }
.al-mega-feature-title { font: 500 23px/1.13 Manrope, Arial, sans-serif; letter-spacing: -.8px; color: #fff; margin-bottom: 17px; }
.al-mega-feature-title i { color: #ffcae4; }
.al-mega-feature-link { font-size: 10px; font-weight: 600; }
.al-mega-feature-link i { margin-left: 15px; }
.al-mini-swatches { margin-top: 19px; }
.al-mini-swatches .w-grid-list { display: flex !important; gap: 5px; }
.al-mini-swatches .w-grid-item { width: auto !important; flex: none; }
.al-mini-swatches .al-swatch-img img { width: 24px; height: 24px; border-radius: 50%; border: 2px solid #fff; }

/* ---------- Footer (Reusable Block "Footer") ---------- */

.l-section.al-footer { background: var(--al-cream); padding-top: 40px; padding-bottom: 28px; color: var(--al-ink); }
.al-footer-top { border-bottom: 1px solid #dce1d5; padding-bottom: 25px; }
.al-footer-logo img { width: 160px; height: auto; }
.al-footer-tagline { font: italic 23px Georgia, serif; color: var(--al-ink); }
.al-footer-start > .vc_column-inner { align-items: flex-end; }
.al-footer-start .w-btn { font-size: 12px; border-bottom: 0; }
.al-footer-links-row { padding: 32px 0; border-bottom: 1px solid #dce1d5; --columns-gap: 45px !important; }
.al-footer-title { font-size: 11px; font-weight: 600; margin-bottom: 17px; color: var(--al-ink); }
.al-footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; font-size: 11px; line-height: 1.5; }
.al-footer-links li { margin: 0; }
.al-footer-links a, .al-footer-link, .al-footer-link a { color: var(--al-ink); }
.al-footer-links a:hover, .al-footer-link a:hover { color: var(--al-pink); }
.al-footer-address { color: #657562; line-height: 1.8 !important; }
.al-footer-services .w-grid-list { display: grid !important; gap: 11px; }
.al-footer-link { font-size: 11px; line-height: 1.5; }
.al-partners { background: var(--al-green); padding: 24px 30px; margin-top: 0; }
.al-partners-title { font: 600 9px 'DM Sans', Arial, sans-serif; letter-spacing: 1.3px; text-transform: uppercase; color: #e1e8da; }
.al-partner-logos { gap: 35px; }
.al-partner-logos img { width: 135px; height: 48px; object-fit: contain; }
.al-footer-bottom { padding-top: 22px; font-size: 9px; color: #6e7c67; gap: 25px; }
.al-footer-bottom a { color: inherit; }
.al-footer-bottom a:hover { color: var(--al-pink); }
.al-mobile-cta { display: none; }

/* ---------- Responsive ---------- */

@media (min-width: 1550px) {
	.l-section.al-hero { min-height: 740px; }
	.l-section.al-hero { padding-top: 110px; }
	.al-hero h1 { font-size: 78px; }
}
@media (max-width: 1100px) {
	.al-service-hero h1 { font-size: 38px; }
	.al-service-hero-copy > .vc_column-inner { padding-left: 10%; padding-right: 8%; }
	.al-gl-service .al-card-img img { height: 220px; }
	.al-about .g-cols, .al-enquiry .g-cols { --columns-gap: 5% !important; }
}
@media (max-width: 900px) {
	/* Services dropdown inside the mobile menu: same content and search, tighter layout */
	.al-main-menu .w-nav-list.level_2 { box-shadow: none; border-top-width: 1px; }
	.l-section.al-mega { padding-top: 14px; padding-bottom: 12px; --padding-inline: 14px; }
	.al-mega .g-cols { --columns-gap: 0px !important; --mobiles-columns-gap: 0px !important; --tablets-columns-gap: 0px !important; gap: 0 !important; }
	.al-mega .al-eyebrow { display: none; }
	.al-mega-top { display: flex !important; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
	.al-mega-top > .wpb_column { width: auto; }
	.al-mega-heading { font-size: 17px; line-height: 1.25; letter-spacing: -.4px; }
	.al-mega-all .w-btn { font-size: 10px; padding: 4px 0; border-bottom: 0; white-space: nowrap; }
	.al-mega-all .w-btn i { margin-left: 8px; }
	.al-mega-search { padding: 0 10px; gap: 8px; }
	.al-mega-search input { padding: 10px 0 !important; font-size: 13px; }
	.al-mega-search kbd { display: none; }
	.al-mega-count { margin: 8px 0 6px !important; font-size: 9px !important; }
	.al-mega-groups > .wpb_column + .wpb_column { margin-top: 10px; }
	.al-mega-group { margin-bottom: 2px; font-size: 7px; }
	.al-mega-list .w-grid-item-h { min-height: 0; padding: 6px 4px 6px 0; }
	.al-mega-list .al-mega-item { --hwrapper-gap: 10px !important; }
	.al-mega-list .al-mega-img, .al-mega-list .al-mega-img img { width: 36px; height: 36px; }
	.al-mega-list .al-mega-text { --vwrapper-gap: 1px !important; min-width: 0; }
	.al-mega-title { font-size: 12.5px; }
	.al-mega-tagline { font-size: 9.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.al-mega-advice { margin-top: 10px; font-size: 9.5px; line-height: 1.5; }
	.al-mega-advice br { display: none; }
	.al-mega-advice strong { margin-left: 4px; }
	.al-mega-empty { padding: 14px 6px 18px; }
	.al-mega-empty h3 { font-size: 17px; }
	.al-mega-feature { display: none; }
}
@media (max-width: 750px) {
	html { scroll-padding-top: 90px; }
	.al-eyebrow { font-size: 8px; letter-spacing: 1.5px; }
	.l-section.al-hero { min-height: 625px; }
	.l-section.al-hero { padding-top: 60px; padding-bottom: 60px; }
	.al-hero .l-section-img { background-position: 65% center !important; }
	.al-hero .l-section-overlay { background: linear-gradient(90deg, #001e19d9, #001e1966) !important; }
	.al-hero .wpb_text_column p { font-size: 14px; }
	.al-hero-actions { flex-direction: column; align-items: flex-start !important; gap: 18px !important; }
	.al-hero-note { margin-top: 25px; font-size: 10px; }
	.al-hero-caption { display: none; }
	.al-benefits-grid > .wpb_column { padding: 0 8px; }
	.al-benefits-grid > .wpb_column:nth-child(2n) { border-right: 0; }
	.al-benefits-grid > .wpb_column:last-child { grid-column: 1 / -1; border-top: 1px solid #dfe6da; padding-top: 17px; }
	.al-benefits-grid { row-gap: 19px; }
	.al-benefits .w-iconbox-title { font-size: 11px; }
	.al-section-heading { display: block; margin-bottom: 30px; }
	.al-section-heading-aside > .vc_column-inner { align-items: flex-start; margin-top: 22px; }
	.al-gl-service .al-card-img img { height: 270px; }
	.al-card-excerpt p { max-width: none; }
	.l-section.al-page-intro { padding-top: 25px; padding-bottom: 42px; }
	.al-page-intro h1 { font-size: 42px; }
	.al-breadcrumbs { margin-bottom: 30px; }
	.l-section.al-review-row { padding-top: 45px; padding-bottom: 45px; }
	.al-review-quote p { font-size: 24px; }
	.l-section.al-cta { padding-top: 45px; padding-bottom: 45px; }
	.al-cta-actions > .vc_column-inner { margin-left: 0; margin-top: 10px; }
	.al-cta h2 { font-size: 32px; }
	.l-section.al-colour-banner { padding-top: 35px; padding-bottom: 35px; }
	.al-colour-banner h2 { font-size: 29px; }
	.al-swatch-img img { height: 32px; }
	.al-steps { margin-top: 25px; }
	.al-steps h3 { margin-top: 12px; }
	.al-service-hero-copy > .vc_column-inner { padding: 25px 6% 40px; }
	.al-service-hero h1 { font-size: 39px; }
	.al-service-hero-img img { min-height: 0; height: 300px; }
	.al-planning-list > .vc_column-inner { padding: 25px; }
	.al-finish-panel h2 { font-size: 34px; }
	.al-finish-img img { height: 105px; }
	.al-finish-samples { padding: 0 10px 18px; }
	.al-finish-name { font-size: 10px; }
	.al-finish-type { font-size: 8px; }
	.al-about-photo img { height: 360px; }
	.al-enquiry h1 { font-size: 44px; }
	.al-form-card > .vc_column-inner { padding: 24px; }
	.al-enquiry-form .w-form-h { grid-template-columns: 1fr; }
	.al-gl-project .al-card-img img { height: 290px; }
	.al-filters .w-filter-item-values { gap: 8px; }
	.al-filters .w-filter-item-value-label { font-size: 11px; padding: 11px 14px; }
	.al-footer-tagline { font-size: 21px; }
	.al-footer-start > .vc_column-inner { align-items: flex-start; }
	.al-footer-links-row { --columns-gap: 30px !important; }
	.al-partners { padding: 22px; }
	.al-partner-logos { justify-content: space-between; }
	.al-partner-logos img { width: calc(50% - 11px); max-width: 145px; }
	.al-footer-bottom { font-size: 8px; gap: 14px; }
	.l-section.al-footer { padding-bottom: 90px; }
	.al-header-btn .w-btn { font-size: 10px; padding: 11px 14px; }
	.al-header-btn .w-btn i { margin-left: 14px; }
	.al-mobile-cta { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; background: var(--al-green); box-shadow: 0 -2px 15px #0002; }
	.al-mobile-cta a { width: 50%; text-align: center; padding: 18px 6px; color: #fff; font-size: 12px; }
	.al-mobile-cta a:last-child { background: var(--al-pink); }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.al-finish-samples .w-grid-item-h, .al-gl-service .al-card-img img, .al-benefits .w-iconbox-icon { transition: none; }
}
