@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400..800&display=swap');
/* OptiSoil public theme. Loaded after Bootstrap and the component styles. */
.persilian-public { --opti-font: "Lexend", system-ui, -apple-system, "Segoe UI", sans-serif; --opti-green: #234F20; --opti-green-dark: #173916; --opti-lime: #BED747; --opti-white: #FFFFFF; --opti-warm: #F5F3ED; --opti-ink: #28362A; --opti-muted: #596458; --opti-line: #DADFD3; --opti-width: 72rem; --opti-gutter: clamp(1.25rem, 4vw, 3rem); --opti-space: clamp(3rem, 6vw, 5.5rem); --opti-radius: .65rem; }
.persilian-public > :is(.persilian-header, .persilian-home, .persilian-footer) { font-family: var(--opti-font); }
.persilian-public { --opti-gold: #FEA544; --opti-button-green: #35AA4C; --opti-button-hover: var(--opti-green-dark); --opti-button-ink: var(--opti-white); }
.persilian-public { --opti-curve-height: clamp(2rem, 6vw, 5.5rem); --opti-wave-top: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%200H1440V50C1300%2050%201270%2090%201080%2090C800%2090%20600%2010%20320%2010C160%2010%20140%2050%200%2050Z%27%2F%3E%3C%2Fsvg%3E"); --opti-wave-bottom: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2050C140%2050%20160%2090%20320%2090C600%2090%20800%2010%201080%2010C1270%2010%201300%2050%201440%2050V100H0Z%27%2F%3E%3C%2Fsvg%3E"); }
.persilian-public a:is(:hover, :focus-visible) { color: var(--opti-lime); }
/* Shared public header: retain the original logo on white and Bootstrap collapse. */
.persilian-public > .persilian-header { --bs-body-bg: var(--opti-white); --bs-border-color: var(--opti-line); color: var(--opti-green); box-shadow: 0 3px 18px #1739160A; }
.persilian-header .navbar { padding-block: 1rem; }
.persilian-header .navbar > .container { max-width: var(--opti-width); padding-inline: var(--opti-gutter); }
.persilian-header .persilian-header-logo { max-width: min(13rem, 56vw); max-height: 3.5rem; }
.persilian-header :is(.nav-link, .navigation-toggle) { --bs-nav-link-color: var(--opti-green); --bs-nav-link-hover-color: var(--opti-green-dark); display: inline-flex; align-items: center; gap: .3rem; min-height: 44px; color: var(--opti-green); font-size: .9rem; font-weight: 700; line-height: 1.5; padding: .7rem .8rem; border: 0; border-radius: .25rem; }
.persilian-header :is(.nav-link, .navigation-toggle):hover { background-color: var(--opti-warm); color: var(--opti-lime); }
.persilian-header .navigation-submenu { --bs-body-bg: var(--opti-white); --bs-border-color: var(--opti-line); min-width: 16rem; }
.persilian-header .navigation-submenu a { color: var(--opti-green); font-size: .92rem; border-radius: .25rem; }
.persilian-header .navigation-submenu a:hover { background: var(--opti-warm); color: var(--opti-lime); }
.persilian-header .nav-link[href="/pages/contact-us"] { background: var(--opti-button-green); color: var(--opti-button-ink); padding-inline: 1.25rem; }
.persilian-header .nav-link[href="/pages/contact-us"]:is(:hover, :focus-visible) { background: var(--opti-button-hover); color: var(--opti-lime); }
.persilian-header .navbar-toggler { border-color: var(--opti-green); min-height: 44px; }
.persilian-header .navigation-items { row-gap: .4rem; }
@media (min-width: 992px) {
.persilian-header .navigation-items > .navigation-item + .navigation-item { margin-inline-start: clamp(.5rem, 1.3vw, 1.25rem); }
}
:is(.persilian-header, .persilian-footer, .persilian-home) :is(a, button):focus-visible { outline: 3px solid var(--opti-green); outline-offset: 4px; box-shadow: 0 0 0 6px var(--opti-white); }
/* Main content is deliberately restricted to the homepage hook. */
.persilian-home { color: var(--opti-ink); background: var(--opti-warm); font-size: 1.0625rem; line-height: 1.75; }
.persilian-home :is(h1, h2, h3) { color: var(--opti-green); font-weight: 750; line-height: 1.16; letter-spacing: -.025em; }
.persilian-home h1 { font-size: clamp(2rem, 4vw, 3.2rem); margin-bottom: 1.5rem; }
.persilian-home a { color: var(--opti-green); text-underline-offset: .22em; }
.persilian-home a:hover { color: var(--opti-lime); text-decoration-thickness: 2px; }
/* Shared action buttons on public pages; navigation disclosures retain their link appearance. */
.persilian-public :is(main, .persilian-header, .persilian-footer) .btn:not(.btn-link) { --bs-btn-color: var(--opti-button-ink); --bs-btn-bg: var(--opti-button-green); --bs-btn-border-color: var(--opti-button-green); --bs-btn-hover-color: var(--opti-button-ink); --bs-btn-hover-bg: var(--opti-button-hover); --bs-btn-hover-border-color: var(--opti-button-hover); --bs-btn-active-color: var(--opti-button-ink); --bs-btn-active-bg: var(--opti-button-hover); --bs-btn-active-border-color: var(--opti-button-hover); --bs-btn-disabled-color: var(--opti-button-ink); --bs-btn-disabled-bg: var(--opti-button-green); --bs-btn-disabled-border-color: var(--opti-button-green); color: var(--bs-btn-color); background-color: var(--bs-btn-bg); border-color: var(--bs-btn-border-color); min-height: 44px; padding: .75rem 1.5rem; border-radius: .25rem; font-weight: 700; }
.persilian-public :is(main, .persilian-header, .persilian-footer) .btn:not(.btn-link):is(:hover, :focus-visible, :active) { color: var(--opti-lime); background-color: var(--opti-button-hover); border-color: var(--opti-button-hover); }
/* A constant slide height prevents caption-free slides from shifting the page. */
.persilian-home .persilian-slideshow { position: relative; background: var(--opti-green-dark); color: var(--opti-white); }
.persilian-home .persilian-slideshow .carousel-item { height: clamp(30rem, 48vw, 43rem); }
.persilian-home .persilian-slideshow .ratio { height: 100%; --bs-aspect-ratio: 0; }
.persilian-home .persilian-slideshow picture { display: block; }
.persilian-home .persilian-slideshow .ratio::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #10240F00 20%, #10240F33 40%, #10240FA3 65%, #10240FCC 100%); pointer-events: none; }
.persilian-home .persilian-slideshow .carousel-item > .text-center { position: absolute; inset: auto 0 clamp(4rem, 6vw, 5rem); z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 1rem; width: min(78%, 54rem); margin: 0 auto; }
.persilian-home .persilian-slideshow h2 { color: var(--opti-white); font-size: clamp(2.5rem, 5.6vw, 4.8rem); text-wrap: balance; }
.persilian-home .persilian-slideshow p { max-width: 45rem; font-size: clamp(1rem, 1.6vw, 1.25rem); line-height: 1.65; }
.persilian-home .persilian-slideshow :is(.carousel-control-prev, .carousel-control-next) { width: 8%; opacity: .85; z-index: 2; }
.persilian-home .persilian-slideshow :is(.carousel-control-prev, .carousel-control-next):hover { opacity: 1; }
.persilian-home .persilian-slideshow button:focus-visible { outline-color: var(--opti-lime); outline-offset: -8px; box-shadow: none; }
.persilian-home .persilian-slideshow::after { content: ""; position: absolute; z-index: 2; bottom: -1px; left: 0; width: 100%; height: clamp(1.5rem, 4vw, 3rem); background: var(--opti-white); clip-path: ellipse(64% 100% at 50% 100%); pointer-events: none; }
/* Saved copy stays in its original order; structural :has hooks identify its blocks. */
.persilian-home > .container { max-width: none; padding-inline: 0; background: var(--opti-white); }
.persilian-home .plain_page_row { margin-inline: 0; }
.persilian-home .home-welcome-copy { --opti-process-margin: clamp(4rem, 8vw, 6rem); padding-inline: 0; }
.persilian-home .home-welcome-copy:has(> .optisoil-process:last-child) { background: linear-gradient(to top, var(--opti-warm) 0 var(--opti-process-margin), var(--opti-white) var(--opti-process-margin) 100%); }
.persilian-home .home-welcome-copy > :is(h1, p) { max-width: 58rem; margin-inline: auto; padding-inline: var(--opti-gutter); text-align: center; }
.persilian-home .home-welcome-copy > h1 { padding-top: var(--opti-space); text-wrap: balance; }
.persilian-home .home-welcome-copy > h1::after { margin-inline: auto; }
.persilian-home .home-welcome-copy > p { margin-bottom: 1.5rem; }
.persilian-home .home-welcome-copy > p:has(+ .optisoil-process) { margin-bottom: 0; padding-bottom: var(--opti-space); }
.persilian-home .home-welcome-copy > div { padding: var(--opti-space) max(var(--opti-gutter), calc((100% - 64rem) / 2)); }
.persilian-home .home-welcome-copy > div:has(> p):not(:has(> h1)) { color: var(--opti-green); font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.65; }
.persilian-home .home-welcome-copy > div > :last-child { margin-bottom: 0; }
.persilian-home .home-welcome-copy > div:has(> h1):not(:has(> p)) { background: var(--opti-warm); }
.persilian-home .home-welcome-copy h1::after { content: ""; display: block; width: 4.5rem; height: 4px; margin-top: 1.25rem; background: var(--opti-lime); }
.persilian-home .home-welcome-copy > div:has(> h1):has(> p) { position: relative; padding-block: calc(var(--opti-space) + 1rem) calc(var(--opti-space) + 3rem); background: var(--opti-green); color: var(--opti-white); }
.persilian-home .home-welcome-copy > div:has(> h1):has(> p) h1 { color: var(--opti-white); }
.persilian-home .home-welcome-copy > div:has(> h1):has(> p)::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 100%; height: 3rem; background: var(--opti-warm); clip-path: ellipse(70% 100% at 35% 100%); pointer-events: none; }
/* Homepage four-step process, saved inside the existing Pages content section. */
/* The homepage supplies the live first photo; only the inset text panel has an overlay. */
.persilian-home .optisoil-process { position: relative; margin-block: var(--opti-process-margin); padding: calc(clamp(1.25rem, 4vw, 3rem) + var(--opti-curve-height)) var(--opti-gutter); background-color: var(--opti-warm); background-image: var(--opti-process-image, none); background-position: center; background-size: cover; background-repeat: no-repeat; }
.persilian-home .optisoil-process::before, .persilian-home .optisoil-process::after { content: ""; position: absolute; left: 0; width: 100%; height: var(--opti-curve-height); mask-size: 100% 100%; mask-repeat: no-repeat; pointer-events: none; }
.persilian-home .optisoil-process::before { top: -1px; background: var(--opti-white); mask-image: var(--opti-wave-top); }
.persilian-home .optisoil-process::after { bottom: -1px; background: var(--opti-warm); mask-image: var(--opti-wave-bottom); }
.persilian-home .optisoil-process__inner { max-width: var(--opti-width); margin-inline: auto; padding: clamp(1.5rem, 4vw, 3rem); background: rgb(255 255 255 / .84); }
.persilian-home .optisoil-process__heading { max-width: 46rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); color: var(--opti-green); font-size: clamp(1.75rem, 3.2vw, 2.6rem); line-height: 1.25; text-align: center; text-wrap: balance; }
.persilian-home .optisoil-process__heading::after { content: ""; display: block; width: 4.5rem; height: 4px; margin: 1.25rem auto 0; background: var(--opti-lime); }
.persilian-home .optisoil-process__steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding: 0; margin: 0; list-style: none; }
.persilian-home .optisoil-process__step { min-width: 0; padding-top: 1.5rem; border-top: 1px solid var(--opti-line); text-align: left; }
.persilian-home .optisoil-process__number { display: block; margin-bottom: 1rem; color: var(--opti-lime); font-size: clamp(3rem, 5vw, 4rem); font-weight: 700; line-height: 1; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.persilian-home .optisoil-process__title { margin: 0 0 1rem; color: var(--opti-green); font-size: 1.2rem; font-weight: 700; line-height: 1.4; }
.persilian-home .optisoil-process__description { margin: 0; color: var(--opti-ink); font-size: 1rem; line-height: 1.75; }
@media (min-width: 768px) {
.persilian-home .optisoil-process__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
:is(.persilian-home, .optisoil-news-index) .persilian-news--cards h2 { min-height: 4.64em; }
}
@media (min-width: 992px) {
.persilian-header .navigation-items { align-items: center; }
.persilian-home .optisoil-process__steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); }
.persilian-home .optisoil-process__title { min-height: 2.8em; }
}
/* Full-width collection backgrounds with a bounded grid, without viewport-width breakouts. */
.persilian-public main:has(> .optisoil-services-catalogue) { max-width: none; padding-inline: 0; background: var(--opti-warm); }
.optisoil-services-catalogue { font-family: var(--opti-font); color: var(--opti-ink); font-size: 1.0625rem; line-height: 1.75; }
.optisoil-services-catalogue__intro { max-width: 58rem; margin-inline: auto; padding: var(--opti-space) var(--opti-gutter) 2rem; text-align: center; }
.optisoil-services-catalogue__intro h1 { margin-bottom: 1.5rem; font-size: clamp(2rem, 4vw, 3rem); text-wrap: balance; }
.optisoil-services-catalogue__intro h1::after { content: ""; display: block; width: 4.5rem; height: 4px; margin: 1.25rem auto 0; background: var(--opti-lime); }
.optisoil-services-catalogue__intro h2 { margin-bottom: 1.25rem; font-size: clamp(1.3rem, 2.5vw, 1.75rem); text-wrap: balance; }
.optisoil-services-catalogue__intro p { margin-bottom: 1.25rem; }
.optisoil-services-catalogue__intro > :last-child { margin-bottom: 0; }
.optisoil-services-catalogue :is(h1, h2, h3) { color: var(--opti-green); font-weight: 750; line-height: 1.16; letter-spacing: -.025em; }
.optisoil-services-catalogue a { color: var(--opti-green); }
.optisoil-services-catalogue a:is(:hover, :focus-visible) { color: var(--opti-lime); }
.optisoil-services-catalogue .persilian-services-empty { max-width: var(--opti-width); margin: 0 auto; padding: 2rem var(--opti-gutter) var(--opti-space); text-align: center; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-services--cards, .persilian-news--cards) { --bs-gutter-x: 1.75rem; --bs-gutter-y: 1.75rem; margin: 0; padding: var(--opti-space) max(calc(var(--opti-gutter) - .875rem), calc((100% - var(--opti-width)) / 2)); }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) .persilian-services--cards { justify-content: center; background: var(--opti-warm); padding-top: 1rem; }
:is(.persilian-home, .optisoil-news-index) .persilian-news--cards { background: var(--opti-white); padding-top: 1rem; padding-bottom: calc(var(--opti-space) + 1rem); }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) .optisoil-collection-heading { margin: 0; padding: var(--opti-space) var(--opti-gutter) 1.5rem; color: var(--opti-green); font-size: clamp(2rem, 4vw, 3rem); text-align: center; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) .optisoil-collection-heading::after { content: ""; display: block; width: 4.5rem; height: 4px; margin: 1.25rem auto 0; background: var(--opti-lime); }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) .optisoil-collection-heading--services { background: var(--opti-warm); }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) .optisoil-collection-heading--news { background: var(--opti-white); }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service.card, .persilian-news-article.card) { --bs-card-border-color: var(--opti-line); --bs-card-border-radius: var(--opti-radius); --bs-card-bg: var(--opti-white); overflow: hidden; box-shadow: 0 6px 24px #17391608; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service, .persilian-news-article) .card-body { display: flex; flex-direction: column; align-items: stretch; padding: 1.5rem; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service, .persilian-news-article) h2 { font-size: 1.35rem; margin-block: .5rem 1rem; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service, .persilian-news-article) h2 a { text-decoration: none; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service, .persilian-news-article) h2 a:is(:hover, :focus-visible) { color: var(--opti-lime); text-decoration: none; }
.persilian-public .optisoil-card-photo-link { display: block; border-radius: .35rem; }
.persilian-public .optisoil-card-photo-link img { display: block; }
.persilian-public .optisoil-read-more { display: inline-block; margin-inline-start: .25em; color: var(--opti-green); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service, .persilian-news-article) img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: .35rem; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service, .persilian-news-article) p { font-size: 1rem; line-height: 1.7; }
:is(.persilian-home, .optisoil-news-index) .persilian-news-article time { color: var(--opti-muted); font-size: .85rem; }
/* News listings reuse the homepage cards and retain category/year navigation. */
.persilian-public main:has(.optisoil-news-index) { background: var(--opti-warm); }
.persilian-public main > .interior_body_content:has(> .optisoil-news-index) { max-width: none; padding-inline: 0; }
.optisoil-news-index { font-family: var(--opti-font); color: var(--opti-ink); font-size: 1.0625rem; line-height: 1.75; }
.optisoil-news-index :is(h1, h2, h3) { color: var(--opti-green); font-weight: 750; line-height: 1.16; letter-spacing: -.025em; }
.optisoil-news-index a { color: var(--opti-green); }
.optisoil-news-index a:is(:hover, :focus-visible) { color: var(--opti-lime); }
.optisoil-news-index .persilian-news--cards, .optisoil-news-index .optisoil-collection-heading--news { background: var(--opti-warm); }
.optisoil-news-index .persilian-news--cards { justify-content: center; }
.optisoil-news-index__intro { max-width: 58rem; margin-inline: auto; padding: 1.5rem var(--opti-gutter) 2rem; text-align: center; }
.optisoil-news-index .news_year_menu { justify-content: center; padding-inline: var(--opti-gutter); }
.optisoil-news-index .news_year_menu a { padding: .5rem .75rem; border: 1px solid var(--opti-line); border-radius: .25rem; background: var(--opti-white); }
.optisoil-news-index .persilian-news-empty { padding: 2rem var(--opti-gutter) var(--opti-space); text-align: center; }
/* Contact page: existing content and form, using the shared OptiSoil palette. */
.contact-page .contact_main { color: var(--opti-ink); font-family: var(--opti-font); font-size: 1.0625rem; line-height: 1.75; }
.contact-page .contact_main > .interior_body_content { max-width: var(--opti-width); padding-inline: var(--opti-gutter); }
.contact-page .contact-enquiry-page { --bs-gutter-x: clamp(2rem, 5vw, 4rem); --bs-gutter-y: 2.5rem; padding-block: clamp(1.5rem, 4vw, 3.5rem); }
.contact-page .contact-enquiry-page > div { min-width: 0; }
.contact-page .contact-enquiry-page :is(h1, h2, h3) { color: var(--opti-green); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; text-wrap: balance; }
.contact-page .contact-enquiry-intro h1 { margin-bottom: 1.75rem; font-size: clamp(2rem, 4vw, 3.25rem); }
.contact-page .contact-enquiry-intro h1::after { content: ""; display: block; width: 4.5rem; height: 4px; margin-top: 1.25rem; background: var(--opti-lime); }
.contact-page .contact-enquiry-intro :is(h2, h3) { margin-block: 2rem 1rem; font-size: clamp(1.35rem, 2vw, 1.8rem); }
.contact-page .contact-enquiry-intro p { margin-bottom: 1.25rem; }
.contact-page .contact-enquiry-intro a { color: var(--opti-green); text-underline-offset: .2em; overflow-wrap: anywhere; }
.contact-page .contact-enquiry-intro a:is(:hover, :focus-visible) { color: var(--opti-lime); }
.contact-page .contact-enquiry-intro figure { margin-block: 2rem; }
.contact-page .contact-enquiry-intro img { border-radius: var(--opti-radius); }
.contact-page .contact-enquiry-panel { padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--opti-warm); border: 1px solid var(--opti-line); border-top: 4px solid var(--opti-lime); border-radius: var(--opti-radius); }
.contact-page .contact-enquiry-panel h2 { margin-bottom: 1rem; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.contact-page .contact-enquiry-help { margin-bottom: 1.75rem; color: var(--opti-muted); font-size: 1rem; line-height: 1.7; }
.contact-page .form-input-container { margin-bottom: 1.25rem; }
.contact-page .form-label { margin-bottom: .5rem; color: var(--opti-green); font-size: .95rem; font-weight: 600; }
.contact-page .form-control { min-height: 3rem; padding: .7rem .9rem; border-color: var(--opti-line); border-radius: .35rem; background: var(--opti-white); color: var(--opti-ink); font-family: inherit; font-size: 1rem; line-height: 1.6; }
.contact-page .form-control:focus { border-color: var(--opti-green); outline: 2px solid var(--opti-lime); outline-offset: 2px; box-shadow: none; }
.contact-page textarea.form-control { min-height: 10rem; resize: vertical; }
.contact-page .cf-turnstile { margin-block: 1.5rem; }
.contact-page .contact-enquiry-panel .btn { min-height: 3rem; padding: .8rem 1.5rem; font-family: inherit; font-weight: 600; }
.contact-page .contact-enquiry-page :is(a, .btn):focus-visible { outline: 3px solid var(--opti-green); outline-offset: 4px; }
@media (max-width: 575.98px) {
.contact-page .contact_main > .interior_body_content { padding-inline: 1rem; }
.contact-page .contact-enquiry-page { --bs-gutter-x: 0; }
.contact-page .contact-enquiry-panel { padding: 1.75rem 0 0; border-width: 4px 0 0; border-radius: 0; background: var(--opti-white); }
.contact-page .contact-enquiry-panel .btn { width: 100%; }
}
@media (max-width: 359.98px) {
.contact-page .contact_main > .interior_body_content { padding-inline: .5rem; }
.contact-page .cf-turnstile { margin-inline: -.375rem; }
}
/* Confirmation page retains its CMS content and shared public layout. */
.optisoil-contact-thanks { --bs-gutter-x: 0; max-width: 52rem; margin: clamp(1.5rem, 5vw, 4rem) auto clamp(3rem, 7vw, 6rem); color: var(--opti-ink); font-family: var(--opti-font); font-size: 1.0625rem; line-height: 1.75; text-align: center; }
.optisoil-contact-thanks .plain_page_content { width: 100%; margin-left: 0; padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem); border-top: 4px solid var(--opti-lime); border-radius: var(--opti-radius); background: var(--opti-warm); }
.optisoil-contact-thanks :is(h1, h2, h3) { color: var(--opti-green); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; text-wrap: balance; }
.optisoil-contact-thanks h1 { margin-bottom: 1.5rem; font-size: clamp(2rem, 4vw, 3.25rem); }
.optisoil-contact-thanks h1::after { content: ""; display: block; width: 4.5rem; height: 4px; margin: 1.25rem auto 0; background: var(--opti-lime); }
.optisoil-contact-thanks :is(h2, h3) { margin-block: 2rem 1rem; font-size: clamp(1.35rem, 2vw, 1.8rem); }
.optisoil-contact-thanks p:last-child { margin-bottom: 0; }
.optisoil-contact-thanks a:not(.btn) { color: var(--opti-green); text-underline-offset: .2em; overflow-wrap: anywhere; }
.optisoil-contact-thanks a:not(.btn):is(:hover, :focus-visible) { color: var(--opti-lime); }
.optisoil-contact-thanks a:focus-visible { outline: 3px solid var(--opti-green); outline-offset: 4px; }
/* Business email below the saved contact-page content. */
.contact-enquiry-email a { color: var(--opti-green); text-underline-offset: .2em; overflow-wrap: anywhere; }
.contact-enquiry-email a:is(:hover, :focus-visible) { color: var(--opti-lime); }
/* News article links and headings follow the service-page typography. */
.persilian-public .news-detail a:not(.btn) { color: var(--opti-green); text-underline-offset: .2em; }
.persilian-public .news-detail a:not(.btn):is(:hover, :focus-visible) { color: var(--opti-lime); }
.persilian-public .news-detail h1 { margin-bottom: 1.5rem; color: var(--opti-green); font-family: var(--opti-font); font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; text-wrap: balance; }
.persilian-public .news-detail h1::after { content: ""; display: block; width: 4.5rem; height: 4px; margin-top: 1.25rem; background: var(--opti-lime); }
.persilian-public .news-detail h2 { margin-block: 2.5rem 1rem; color: var(--opti-green); font-family: var(--opti-font); font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; text-wrap: balance; }
/* Service detail pages: a full-width banner and bounded content, using the saved content heading. */
.persilian-public main:has(> .optisoil-service-detail) { max-width: none; padding-inline: 0; font-family: var(--opti-font); color: var(--opti-ink); font-size: 1.0625rem; line-height: 1.8; }
.optisoil-service-detail__banner img { display: block; width: 100%; height: clamp(12rem, 25vw, 23rem); object-fit: cover; object-position: center; }
.optisoil-service-detail .optisoil-service-detail__body { max-width: var(--opti-width); padding: var(--opti-space) var(--opti-gutter); }
.optisoil-service-detail__columns { --bs-gutter-x: clamp(2rem, 5vw, 4rem); --bs-gutter-y: 2rem; }
.optisoil-service-detail__content :is(h1, h2, h3) { color: var(--opti-green); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; text-wrap: balance; }
.optisoil-service-detail__content h1 { margin-bottom: 1.5rem; font-size: clamp(2rem, 4vw, 3.25rem); }
.optisoil-service-detail__content h1::after { content: ""; display: block; width: 4.5rem; height: 4px; margin-top: 1.25rem; background: var(--opti-lime); }
.optisoil-service-detail__content h2 { margin-block: 2.5rem 1rem; font-size: clamp(1.35rem, 2vw, 1.8rem); }
.optisoil-service-detail__content h1 + h2 { margin-top: 1rem; }
.optisoil-service-detail__content h3 { margin-block: 2rem 1rem; font-size: 1.25rem; }
.optisoil-service-detail__content p { margin-bottom: 1.25rem; }
.optisoil-service-detail__content a { color: var(--opti-green); text-underline-offset: .2em; }
.optisoil-service-detail__content a:is(:hover, :focus-visible) { color: var(--opti-lime); }
.optisoil-service-detail .services_photos figure { margin: 0 0 2rem; }
.optisoil-service-detail .services_photos img { display: block; width: 100%; height: auto; border-radius: var(--opti-radius); }
.optisoil-service-detail .services_photos figcaption { margin-top: .75rem; color: var(--opti-muted); font-size: .9rem; line-height: 1.6; }
.optisoil-service-detail .services_photos figcaption:empty { display: none; }
.optisoil-service-detail__back { margin: 2rem 0 0; }
/* About Us: published page copy and the existing approved staff selection. */
.persilian-public .optisoil-about { font-family: var(--opti-font); color: var(--opti-ink); font-size: 1.0625rem; line-height: 1.8; background: var(--opti-white); }
.optisoil-about > .interior_body_content { max-width: none; padding-inline: 0; }
.optisoil-about .plain_page_row { margin-inline: 0; }
.optisoil-about .plain_page_content { width: 100%; margin-inline: 0; padding-inline: 0; }
.optisoil-about .plain_page_content > img { display: block; width: 100%; height: clamp(12rem, 25vw, 23rem); object-fit: cover; object-position: center; }
.optisoil-about :is(h1, h2, h3) { color: var(--opti-green); font-weight: 700; line-height: 1.25; letter-spacing: -.025em; }
.optisoil-about .plain_page_content > :is(h1, h2, h3, p) { max-width: 58rem; margin-inline: auto; padding-inline: var(--opti-gutter); text-align: center; }
.optisoil-about .plain_page_content > h1 { margin-block: var(--opti-space) 1.5rem; font-size: clamp(2rem, 4vw, 3.25rem); text-wrap: balance; }
.optisoil-about .plain_page_content > h1::after { content: ""; display: block; width: 4.5rem; height: 4px; margin: 1.25rem auto 0; background: var(--opti-lime); }
.optisoil-about .plain_page_content > p { margin-bottom: 1.5rem; }
.optisoil-about .plain_page_content > :last-child { margin-bottom: 0; padding-bottom: var(--opti-space); }
.optisoil-about a { color: var(--opti-green); text-underline-offset: .2em; }
.optisoil-about a:is(:hover, :focus-visible) { color: var(--opti-lime); }
.optisoil-about .persilian-staff--cards { --bs-gutter-x: 1.75rem; --bs-gutter-y: 1.75rem; justify-content: center; margin: 0; padding: var(--opti-space) max(calc(var(--opti-gutter) - .875rem), calc((100% - var(--opti-width)) / 2)); background: var(--opti-warm); }
.optisoil-about .persilian-staff-member.card { --bs-card-border-color: var(--opti-line); --bs-card-border-radius: var(--opti-radius); --bs-card-bg: var(--opti-white); overflow: hidden; box-shadow: 0 6px 24px #17391608; }
.optisoil-about .persilian-staff-member > .card-body { display: block; margin: 0; padding: 0; }
.optisoil-about .persilian-staff-member > .card-body > .col-12 { padding: 0; margin-top: 0; }
.optisoil-about .persilian-staff-member > .card-body > .col-12:has(> h2) { padding: 1.5rem; }
.optisoil-about .persilian-staff-member > .card-body > .col-12 > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 25%; border-radius: 0; }
.optisoil-about .persilian-staff-member h2 { margin-bottom: 1rem; font-size: 1.5rem; }
.optisoil-about .persilian-staff-member dl { --bs-gutter-x: 0; margin-bottom: 1.5rem; font-size: .9rem; line-height: 1.6; }
.optisoil-about .persilian-staff-member dt { color: var(--opti-muted); }
.optisoil-about .persilian-staff-member dd { color: var(--opti-green); }
.optisoil-about .persilian-staff-description { font-size: 1rem; line-height: 1.75; }
.optisoil-about .persilian-staff-description p { margin-bottom: 1.25rem; }
.optisoil-about .persilian-staff-description > :last-child { margin-bottom: 0; }
.optisoil-about .persilian-staff-contact { padding-block: 1rem; border-block: 1px solid var(--opti-line); }
.optisoil-about .persilian-staff-contact a { overflow-wrap: anywhere; }
.optisoil-staff-bio__preview { margin-bottom: .5rem; font-size: 1rem; line-height: 1.75; }
.optisoil-staff-bio__preview:has(+ .optisoil-staff-bio__details[open]) { display: none; }
.optisoil-staff-bio__toggle { display: flex; align-items: center; gap: .5rem; width: fit-content; min-height: 44px; margin-bottom: .75rem; color: var(--opti-green); font-size: 1rem; font-weight: 600; text-decoration: underline; text-underline-offset: .2em; list-style: none; cursor: pointer; }
.optisoil-staff-bio__toggle::-webkit-details-marker { display: none; }
.optisoil-staff-bio__toggle::before { content: "+"; text-decoration: none; }
.optisoil-staff-bio__details[open] > .optisoil-staff-bio__toggle::before { content: "−"; }
.optisoil-staff-bio__toggle:is(:hover, :focus-visible) { color: var(--opti-lime); }
.optisoil-staff-bio__less, .optisoil-staff-bio__details[open] .optisoil-staff-bio__more { display: none; }
.optisoil-staff-bio__details[open] .optisoil-staff-bio__less { display: inline; }
@media (min-width: 768px) {
.optisoil-about .persilian-staff--cards > .col { width: 50%; }
}
/* Shared footer retains all saved columns, contacts, social links and credits. */
.persilian-public > .persilian-footer { --bs-border-color: #FFFFFF40; position: relative; margin-block-start: var(--opti-curve-height); background: var(--opti-green); color: var(--opti-white); font-size: .95rem; line-height: 1.7; }
.persilian-public > .persilian-footer::before { content: ""; position: absolute; top: calc(1px - var(--opti-curve-height)); left: 0; width: 100%; height: var(--opti-curve-height); background: var(--opti-green); mask-image: var(--opti-wave-bottom); mask-size: 100% 100%; mask-repeat: no-repeat; transform: scaleX(-1); pointer-events: none; }
.persilian-footer { --opti-footer-gold: var(--opti-gold); }
.persilian-footer .persilian-footer-main { width: calc(100% - 2 * var(--opti-gutter)); max-width: var(--opti-width); margin-inline: auto; }
.persilian-footer .persilian-footer-main { padding-block: 2rem; }
.persilian-footer .persilian-footer-columns > .col > h2 { color: var(--opti-footer-gold); margin-bottom: 1.5rem; font-size: clamp(1.4rem, 2vw, 1.65rem); font-weight: 700; line-height: 1.25; }
.persilian-footer .persilian-footer-logo { background: var(--opti-white); padding: .6rem .8rem; border-radius: .25rem; max-width: min(100%, 15rem); max-height: none; }
.persilian-footer a { color: var(--opti-white); text-decoration-color: #FFFFFF70; text-underline-offset: .22em; }
.persilian-footer a:hover { color: var(--opti-lime); text-decoration-color: currentColor; }
.persilian-footer a:focus-visible { outline-color: var(--opti-lime); box-shadow: none; }
.persilian-footer .persilian-service h2 { font-size: 1rem; font-weight: 650; line-height: 1.4; }
.persilian-footer .persilian-service h2 a { display: inline-block; padding-block: .3rem; }
.persilian-footer .persilian-footer-main nav :is(a, .fw-semibold) { display: inline-block; padding-block: .25rem; }
.persilian-footer .persilian-footer-section > ul:not(.persilian-footer-social) > li > a { display: inline-block; padding-block: .25rem; }
.persilian-footer .persilian-footer-bottom { width: 100%; max-width: none; margin-inline: 0; font-size: .8rem; padding-bottom: .5rem; }
.persilian-footer .persilian-footer-social { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.persilian-footer .persilian-footer-social a { display: inline-flex; align-items: center; justify-content: flex-start; min-width: 44px; min-height: 44px; color: var(--opti-footer-gold); font-size: 1.4rem; text-decoration: none; border-radius: .25rem; }
.persilian-footer .persilian-footer-social a:is(:hover, :focus-visible) { color: var(--opti-lime); }
.persilian-footer address { font-style: normal; }
@media (min-width: 992px) {
.persilian-footer .persilian-footer-columns.row-cols-lg-3 > [data-footer-column="3"] { padding-inline-start: clamp(3rem, 6vw, 5.5rem); }
.persilian-home .home-welcome-copy > div:has(> h1):has(> p) { columns: 2; column-gap: 3.5rem; }
.persilian-home .home-welcome-copy > div:has(> h1):has(> p) h1 { column-span: all; margin-bottom: 2.5rem; }
.persilian-home .home-welcome-copy > div:has(> h1):has(> p) p { break-inside: avoid; }
}
@media (max-width: 991.98px) {
.persilian-header .navbar { padding-block: .75rem; }
.persilian-header .navbar-collapse { max-height: calc(100dvh - 6rem); overflow-y: auto; overscroll-behavior: contain; padding-block: 1rem; }
.persilian-header .navigation-items { gap: .35rem; }
.persilian-header .navigation-item > .d-flex > :is(a, button) { min-height: 44px; }
.persilian-header .navigation-submenu { margin-block: .5rem; }
.persilian-home .persilian-slideshow .carousel-item { height: 33rem; }
}
@media (max-width: 575.98px) {
.persilian-home { font-size: 1rem; }
.persilian-home .persilian-slideshow .carousel-item { height: 34rem; }
.persilian-home .persilian-slideshow .carousel-item > .text-center { width: 80%; gap: .5rem; }
.persilian-home .persilian-slideshow h2 { font-size: clamp(2rem, 9vw, 2.75rem); }
.persilian-home .persilian-slideshow p { font-size: 1rem; line-height: 1.65; }
.persilian-home .persilian-slideshow :is(.carousel-control-prev, .carousel-control-next) { width: 10%; }
.persilian-home .persilian-slideshow :is(.carousel-control-prev-icon, .carousel-control-next-icon) { width: 1.5rem; height: 1.5rem; }
:is(.persilian-home, .optisoil-services-catalogue, .optisoil-news-index) :is(.persilian-service, .persilian-news-article) .card-body { padding: 1.25rem; }
.persilian-footer .persilian-footer-main { padding-block: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
.persilian-home .persilian-slideshow .carousel-item { transition: none; }
}
