/* ============================================================
   LEWIS BROTHERS
   PLASTERING & RENDERING
   ============================================================ */


.plastering-page {

  --pl-blue: #163153;
  --pl-blue-dark: #0d223c;
  --pl-blue-soft: #294a70;

  --pl-grey: #c6c8cc;
  --pl-grey-dark: #aeb2b8;
  --pl-grey-light: #eef0f2;

  --pl-white: #ffffff;
  --pl-off-white: #f6f7f8;

  --pl-dark: #211b1c;
  --pl-text: #40536a;

  color: var(--pl-blue);
  background: var(--pl-white);

}


.plastering-page main {

  overflow: hidden;

}


.plastering-page p,
.plastering-page li {

  font-size: 17px;
  line-height: 1.7;

}



/* ============================================================
   LABELS
   ============================================================ */

.plastering-section-label {

  margin: 0 0 18px;

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 13px !important;
  font-weight: 700;

  letter-spacing: 0.14em;
  text-transform: uppercase;

}


.plastering-section-label::before {

  content: "";

  width: 27px;
  height: 3px;

  display: inline-block;

  margin-right: 11px;

  border-radius: 999px;

  background: var(--pl-blue);

  vertical-align: middle;

}


.plastering-section-label-light {

  color: var(--pl-white);

}


.plastering-section-label-light::before {

  background: var(--pl-grey);

}



/* ============================================================
   BUTTONS
   ============================================================ */

.plastering-btn {

  min-height: 54px;

  display: inline-flex;

  align-items: center;
  justify-content: center;

  gap: 9px;

  padding: 13px 24px;

  border: 1px solid transparent;
  border-radius: 999px;

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 16px;
  font-weight: 700;

  text-decoration: none;

  transition:
    transform 220ms ease,
    background 220ms ease,
    color 220ms ease,
    border-color 220ms ease;

}


.plastering-btn:hover {

  transform: translateY(-2px);

}


.plastering-btn-light {

  background: var(--pl-white);

  color: var(--pl-blue);

}


.plastering-btn-light:hover {

  background: var(--pl-grey);

  color: var(--pl-blue);

}


.plastering-btn-glass {

  border-color: rgba(255, 255, 255, 0.55);

  background: rgba(255, 255, 255, 0.12);

  color: var(--pl-white);

  backdrop-filter: blur(12px);

}


.plastering-btn-glass:hover {

  background: rgba(255, 255, 255, 0.22);

  color: var(--pl-white);

}



/* ============================================================
   HERO
   ============================================================ */

.plastering-hero {

  position: relative;

  width: 100%;

  min-height: 650px;

  display: flex;

  align-items: center;

  overflow: hidden;

  isolation: isolate;

  background:
    url("../images/plastering-anglesey-hero.webp")
    center 40% / cover no-repeat;

}


.plastering-hero-overlay {

  position: absolute;

  inset: 0;

  z-index: -1;

  background:
    linear-gradient(
      90deg,
      rgba(8, 24, 43, 0.96) 0%,
      rgba(13, 34, 60, 0.89) 40%,
      rgba(13, 34, 60, 0.55) 68%,
      rgba(13, 34, 60, 0.27) 100%
    );

}


/*
   CHANGED:
   The overall inner area is narrower and receives substantial
   horizontal padding. This pulls the text away from the far
   left and the certification away from the far right.
*/

.plastering-hero-inner {

  position: relative;

  width: min(
    calc(100% - 48px),
    1480px
  );

  min-height: 650px;

  display: flex;

  align-items: center;

  margin: 0 auto;

  padding:
    clamp(125px, 9vw, 155px)
    clamp(58px, 6.5vw, 112px)
    105px;

}


.plastering-hero-content {

  width: min(780px, 64%);

}


.plastering-hero-eyebrow {

  margin: 0 0 20px;

  color: var(--pl-grey);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 13px !important;
  font-weight: 700;

  letter-spacing: 0.14em;
  text-transform: uppercase;

}


.plastering-hero h1 {

  max-width: 810px;

  margin: 0;

  color: var(--pl-white);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    3.7rem,
    5.4vw,
    5.9rem
  );

  font-weight: 700;

  line-height: 0.98;

  letter-spacing: -0.055em;

}


.plastering-hero h1 span {

  display: block;

  color: var(--pl-grey);

}


.plastering-hero-description {

  max-width: 700px;

  margin: 28px 0 0;

  color: rgba(255, 255, 255, 0.92);

  font-size: 18px !important;

}


.plastering-hero-actions {

  display: flex;

  flex-wrap: wrap;

  gap: 12px;

  margin-top: 31px;

}



/* ============================================================
   HERO CERTIFICATION
   ============================================================ */

.plastering-hero-certification {

  position: absolute;

  right: clamp(58px, 6.5vw, 112px);
  bottom: 28px;

  width: min(420px, 36vw);

  display: flex;

  align-items: center;

  gap: 17px;

  padding: 17px 20px;

  border:
    1px solid
    rgba(255, 255, 255, 0.48);

  border-radius: 23px;

  background:
    linear-gradient(
      135deg,
      #d9dade 0%,
      #b9bdc3 46%,
      #e6e7e9 100%
    );

  box-shadow:
    0 22px 60px
    rgba(0, 0, 0, 0.18);

}


.plastering-certification-logo {

  width: 76px;
  height: 76px;

  flex: 0 0 76px;

  display: flex;

  align-items: center;
  justify-content: center;

  overflow: hidden;

  padding: 5px;

  border-radius: 13px;

  background: var(--pl-white);

}


.plastering-certification-logo img {

  width: 100%;
  height: 100%;

  max-width: 68px;
  max-height: 68px;

  display: block;

  object-fit: contain;

  opacity: 1;

  filter: none;

}


.plastering-certification-copy span {

  display: block;

  margin-bottom: 3px;

  color: #586779;

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 11px;
  font-weight: 700;

  letter-spacing: 0.12em;
  text-transform: uppercase;

}


.plastering-certification-copy strong {

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 16px;

  line-height: 1.3;

}



/* ============================================================
   INTRO
   ============================================================ */

.plastering-intro-section {

  padding: 115px 0;

  background: var(--pl-white);

}


.plastering-intro-layout {

  display: grid;

  grid-template-columns:
    minmax(0, 0.88fr)
    minmax(0, 1.12fr);

  gap: clamp(
    55px,
    7vw,
    110px
  );

  align-items: center;

}


.plastering-intro-content {

  max-width: 650px;

}


.plastering-intro-content h2 {

  margin: 0;

  color: var(--pl-blue);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    2.8rem,
    4.7vw,
    5rem
  );

  font-weight: 700;

  line-height: 0.99;

  letter-spacing: -0.05em;

}


.plastering-intro-content h2 span {

  display: block;

  color: #74859a;

}


.plastering-intro-lead {

  margin: 30px 0 0 !important;

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 20px !important;
  font-weight: 600;

  line-height: 1.55 !important;

}


.plastering-intro-content
> p:not(.plastering-section-label):not(.plastering-intro-lead) {

  margin: 20px 0 0;

  color: var(--pl-text);

}



/* ============================================================
   INTRO IMAGES
   ============================================================ */

.plastering-intro-images {

  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 16px;

}


.plastering-intro-image {

  height: 430px;

  margin: 0;

  overflow: hidden;

  border-radius: 28px;

  background: var(--pl-grey);

}


.plastering-intro-image img {

  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transition:
    transform
    600ms
    cubic-bezier(0.22, 1, 0.36, 1);

}


.plastering-intro-image:hover img {

  transform: scale(1.035);

}



/* ============================================================
   SERVICES
   ============================================================ */

.plastering-services-section {

  padding: 110px 0 120px;

  background: var(--pl-grey);

}


.plastering-services-header {

  display: grid;

  grid-template-columns:
    minmax(0, 1.2fr)
    minmax(280px, 0.6fr);

  gap: 60px;

  align-items: end;

  margin-bottom: 43px;

}


.plastering-services-header h2 {

  margin: 0;

  color: var(--pl-blue);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    2.8rem,
    4.8vw,
    5rem
  );

  font-weight: 700;

  line-height: 0.99;

  letter-spacing: -0.05em;

}


.plastering-services-header h2 span {

  display: block;

  color: #708299;

}


.plastering-services-header > p {

  margin: 0;

  color: #40546a;

  font-size: 17px;

}


.plastering-services-controls {

  display: none;

}



/* ============================================================
   SERVICE CARDS
   ============================================================ */

.plastering-services-track {

  display: grid;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  gap: 18px;

}


.plastering-service-card {

  min-width: 0;
  min-height: 665px;

  display: flex;
  flex-direction: column;

  overflow: hidden;

  border-radius: 28px;

  background: var(--pl-white);

  box-shadow:
    0 20px 50px
    rgba(22, 49, 83, 0.07);

  transition:
    transform 280ms ease,
    box-shadow 280ms ease;

}


.plastering-service-card:hover {

  transform: translateY(-6px);

  box-shadow:
    0 27px 65px
    rgba(22, 49, 83, 0.12);

}


.plastering-service-card-image {

  position: relative;

  width: 100%;
  height: 245px;

  flex: 0 0 245px;

  overflow: hidden;

  background: #dadde1;

}


.plastering-service-card-image img {

  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transition:
    transform
    550ms
    cubic-bezier(0.22, 1, 0.36, 1);

}


.plastering-service-card:hover
.plastering-service-card-image img {

  transform: scale(1.045);

}


.plastering-service-card-body {

  flex: 1;

  display: flex;
  flex-direction: column;

  padding: 31px 30px 30px;

}


.plastering-card-overline {

  margin: 0 0 12px !important;

  color: #6d8097;

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 12px !important;
  font-weight: 700;

  letter-spacing: 0.13em;
  text-transform: uppercase;

}


.plastering-service-card h3 {

  margin: 0;

  color: var(--pl-blue);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    1.75rem,
    2.2vw,
    2.45rem
  );

  font-weight: 700;

  line-height: 1.03;

  letter-spacing: -0.04em;

}


.plastering-service-card-body
> p:not(.plastering-card-overline) {

  margin: 18px 0 0;

  color: var(--pl-text);

  font-size: 16px;

}


.plastering-service-card-body ul {

  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 7px 16px;

  margin: 24px 0 0;

  padding: 22px 0 0;

  border-top: 1px solid #dde1e6;

  list-style: none;

}


.plastering-service-card-body li {

  position: relative;

  padding-left: 21px;

  color: var(--pl-blue);

  font-size: 15px;

  line-height: 1.5;

}


.plastering-service-card-body li::before {

  content: "✓";

  position: absolute;

  left: 0;

  font-weight: 800;

}


.plastering-card-button {

  width: fit-content;

  display: inline-flex;

  align-items: center;
  justify-content: center;

  margin-top: auto;

  padding: 13px 20px;

  border-radius: 999px;

  background: var(--pl-grey-light);

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 14px;
  font-weight: 700;

  text-decoration: none;

  transition:
    transform 220ms ease,
    background 220ms ease,
    color 220ms ease;

}


.plastering-card-button:hover {

  transform: translateY(-2px);

  background: var(--pl-blue);

  color: var(--pl-white);

}



/* ============================================================
   WHY LEWIS BROTHERS
   ============================================================ */

.plastering-why-section {

  padding: 120px 0;

  background: var(--pl-blue);

}


.plastering-why-grid {

  display: grid;

  grid-template-columns:
    minmax(0, 0.94fr)
    minmax(0, 1.06fr);

  gap: clamp(
    55px,
    7vw,
    100px
  );

  align-items: center;

}


.plastering-why-content h2 {

  max-width: 720px;

  margin: 0;

  color: var(--pl-white);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    2.7rem,
    4.4vw,
    4.7rem
  );

  font-weight: 700;

  line-height: 1;

  letter-spacing: -0.05em;

}


.plastering-why-content h2 span {

  display: block;

  margin-top: 5px;

  color: var(--pl-grey);

}


.plastering-why-intro {

  max-width: 670px;

  margin: 27px 0 0;

  color: rgba(255, 255, 255, 0.79);

}



/* ============================================================
   WHY ACCORDION
   ============================================================ */

.plastering-reasons {

  margin-top: 42px;

  border-top:
    1px solid
    rgba(255, 255, 255, 0.17);

}


.plastering-reason {

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.17);

}


.plastering-reason-button {

  width: 100%;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 20px;

  padding: 23px 0;

  border: 0;

  background: transparent;

  color: rgba(255, 255, 255, 0.62);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 19px;
  font-weight: 600;

  text-align: left;

  cursor: pointer;

  transition: color 220ms ease;

}


.plastering-reason.is-open
.plastering-reason-button {

  color: var(--pl-white);

}


.plastering-reason-plus {

  width: 36px;
  height: 36px;

  flex: 0 0 36px;

  display: flex;

  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.11);

  transition:
    transform 300ms ease,
    background 300ms ease,
    color 300ms ease;

}


.plastering-reason.is-open
.plastering-reason-plus {

  transform: rotate(45deg);

  background: var(--pl-grey);

  color: var(--pl-blue);

}


.plastering-reason-content {

  max-height: 0;

  overflow: hidden;

  opacity: 0;

  transition:
    max-height
    450ms
    cubic-bezier(0.22, 1, 0.36, 1),
    opacity 260ms ease,
    padding 450ms ease;

}


.plastering-reason.is-open
.plastering-reason-content {

  max-height: 230px;

  padding-bottom: 24px;

  opacity: 1;

}


.plastering-reason-content p {

  max-width: 610px;

  margin: 0;

  color: rgba(255, 255, 255, 0.77);

}



/* ============================================================
   WHY IMAGE
   ============================================================ */

.plastering-why-visual {

  position: relative;

}


.plastering-why-visual > img {

  width: 100%;

  aspect-ratio: 1 / 1;

  display: block;

  border-radius: 34px;

  object-fit: cover;

}



/* ============================================================
   CERTIFICATION
   ============================================================ */

.plastering-why-certification {

  position: absolute;

  right: 22px;
  bottom: 22px;

  width: min(
    430px,
    calc(100% - 44px)
  );

  display: flex;

  align-items: center;

  gap: 15px;

  padding: 15px 18px;

  border-radius: 22px;

  background:
    linear-gradient(
      135deg,
      #d8dade 0%,
      #b8bcc2 48%,
      #e4e5e8 100%
    );

  box-shadow:
    0 18px 48px
    rgba(0, 0, 0, 0.19);

}


.plastering-why-certification-logo {

  width: 65px;
  height: 65px;

  flex: 0 0 65px;

  display: flex;

  align-items: center;
  justify-content: center;

  padding: 4px;

  border-radius: 12px;

  background: var(--pl-white);

}


.plastering-why-certification-logo img {

  width: 100%;
  height: 100%;

  max-width: 58px;
  max-height: 58px;

  display: block;

  object-fit: contain;

  opacity: 1;

  filter: none;

}


.plastering-why-certification span {

  display: block;

  margin-bottom: 3px;

  color: #566377;

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 10px;
  font-weight: 700;

  letter-spacing: 0.12em;
  text-transform: uppercase;

}


.plastering-why-certification strong {

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 15px;

  line-height: 1.3;

}



/* ============================================================
   LOCAL
   ============================================================ */

.plastering-local-section {

  padding: 120px 0;

  background: var(--pl-grey);

}


.plastering-local-layout {

  display: grid;

  grid-template-columns:
    minmax(0, 0.82fr)
    minmax(0, 1.18fr);

  gap: clamp(
    65px,
    9vw,
    145px
  );

  align-items: start;

}


.plastering-local-heading h2 {

  max-width: 690px;

  margin: 0;

  color: var(--pl-blue);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    2.8rem,
    4.7vw,
    5rem
  );

  font-weight: 700;

  line-height: 0.99;

  letter-spacing: -0.05em;

}


.plastering-local-heading h2 span {

  display: block;

  color: #6f8197;

}


.plastering-local-content {

  max-width: 780px;

}


.plastering-local-content p {

  margin: 0;

  color: #40536a;

}


.plastering-local-content p + p {

  margin-top: 19px;

}


.plastering-local-lead {

  color: var(--pl-blue) !important;

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 20px !important;
  font-weight: 600;

  line-height: 1.55 !important;

}


.plastering-local-contact {

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 25px;

  margin-top: 34px;

  padding-top: 27px;

  border-top:
    1px solid
    rgba(22, 49, 83, 0.19);

}


.plastering-local-contact span {

  display: block;

  margin-bottom: 3px;

  color: #697a8f;

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 11px;
  font-weight: 700;

  letter-spacing: 0.11em;
  text-transform: uppercase;

}


.plastering-local-contact strong {

  display: block;

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 18px;

}


.plastering-local-contact a {

  display: inline-flex;

  align-items: center;
  justify-content: center;

  min-height: 50px;

  padding: 12px 20px;

  border-radius: 999px;

  background: var(--pl-blue);

  color: var(--pl-white);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 15px;
  font-weight: 700;

  text-decoration: none;

  transition:
    transform 220ms ease,
    background 220ms ease;

}


.plastering-local-contact a:hover {

  transform: translateY(-2px);

  background: var(--pl-blue-soft);

  color: var(--pl-white);

}



/* ============================================================
   TESTIMONIALS
   ============================================================ */

.plastering-testimonials-section {

  padding: 115px 0;

  background: var(--pl-white);

}


.plastering-testimonials-header {

  display: flex;

  align-items: flex-end;
  justify-content: space-between;

  gap: 40px;

  margin-bottom: 42px;

}


.plastering-testimonials-header h2 {

  max-width: 850px;

  margin: 0;

  color: var(--pl-blue);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    2.8rem,
    4.7vw,
    5rem
  );

  font-weight: 700;

  line-height: 1;

  letter-spacing: -0.05em;

}


.plastering-testimonials-header h2 span {

  display: block;

  color: #75869b;

}


.plastering-testimonial-controls {

  display: flex;

  gap: 9px;

}


.plastering-testimonial-controls button {

  width: 52px;
  height: 52px;

  display: flex;

  align-items: center;
  justify-content: center;

  border: 0;
  border-radius: 50%;

  background: var(--pl-blue);

  color: var(--pl-white);

  font-size: 18px;

  cursor: pointer;

  transition:
    transform 200ms ease,
    background 200ms ease;

}


.plastering-testimonial-controls button:hover {

  transform: translateY(-2px);

  background: var(--pl-blue-soft);

}


.plastering-testimonial-viewport {

  overflow: hidden;

}


.plastering-testimonial-track {

  display: flex;

  gap: 18px;

  overflow-x: auto;

  padding: 2px 2px 10px;

  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;

  scrollbar-width: none;

}


.plastering-testimonial-track::-webkit-scrollbar {

  display: none;

}


.plastering-testimonial-card {

  min-width:
    calc((100% - 36px) / 3);

  flex:
    0 0
    calc((100% - 36px) / 3);

  min-height: 390px;

  display: flex;
  flex-direction: column;

  padding: 31px;

  border-radius: 27px;

  background: var(--pl-grey-light);

  scroll-snap-align: start;

  transition:
    transform 250ms ease,
    background 250ms ease;

}


.plastering-testimonial-card:hover {

  transform: translateY(-5px);

  background: var(--pl-grey);

}


.plastering-review-stars {

  color: var(--pl-blue);

  font-size: 15px;

  letter-spacing: 2px;

}


.plastering-testimonial-card blockquote {

  flex: 1;

  margin: 26px 0 35px;

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 19px;
  font-weight: 500;

  line-height: 1.55;

}


.plastering-testimonial-card footer {

  display: flex;

  align-items: center;

  gap: 13px;

}


.plastering-review-initial {

  width: 48px;
  height: 48px;

  flex: 0 0 48px;

  display: flex;

  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: var(--pl-blue);

  color: var(--pl-white);

  font-family: "Archivo", sans-serif;

  font-size: 18px;
  font-weight: 700;

}


.plastering-testimonial-card footer strong {

  display: block;

  color: var(--pl-blue);

  font-size: 15px;

}


.plastering-testimonial-card footer div > span {

  display: block;

  margin-top: 2px;

  color: #718096;

  font-size: 13px;

}



/* ============================================================
   GALLERY
   ============================================================ */

.plastering-gallery-section {

  padding: 110px 0;

  background: var(--pl-off-white);

}


.plastering-gallery-header {

  display: grid;

  grid-template-columns:
    minmax(0, 1.15fr)
    minmax(280px, 0.7fr);

  gap: 80px;

  align-items: end;

  margin-bottom: 48px;

}


.plastering-gallery-header h2 {

  margin: 0;

  color: var(--pl-blue);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    2.8rem,
    4.8vw,
    5rem
  );

  font-weight: 700;

  line-height: 1;

  letter-spacing: -0.05em;

}


.plastering-gallery-header h2 span {

  display: block;

  color: #76889e;

}


.plastering-gallery-header > p {

  margin: 0;

  color: var(--pl-text);

}


.plastering-gallery-shell {

  position: relative;

}


.plastering-gallery-grid {

  display: grid;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  gap: 14px;

}


.plastering-gallery-item {

  position: relative;

  aspect-ratio: 4 / 3;

  overflow: hidden;

  padding: 0;

  border: 0;
  border-radius: 24px;

  background: var(--pl-grey);

  cursor: pointer;

}


.plastering-gallery-item img {

  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transition: transform 500ms ease;

}


.plastering-gallery-item:hover img {

  transform: scale(1.045);

}


.plastering-gallery-item > span {

  position: absolute;

  right: 14px;
  bottom: 14px;

  display: flex;

  align-items: center;

  gap: 7px;

  padding: 9px 14px;

  border-radius: 999px;

  background: rgba(22, 49, 83, 0.94);

  color: var(--pl-white);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 13px;
  font-weight: 700;

  backdrop-filter: blur(8px);

}


.plastering-gallery-arrow {

  display: none;

}



/* ============================================================
   LIGHTBOX
   ============================================================ */

.plastering-lightbox {

  position: fixed;

  inset: 0;

  z-index: 99999;

  display: none;

  align-items: center;
  justify-content: center;

  padding: 20px;

}


.plastering-lightbox.is-open {

  display: flex;

}


.plastering-lightbox-backdrop {

  position: absolute;

  inset: 0;

  background: rgba(5, 17, 30, 0.96);

}


.plastering-lightbox-inner {

  position: relative;

  z-index: 2;

  width: min(1180px, 95vw);

  max-height: 92vh;

  display: flex;

  align-items: center;
  justify-content: center;

}


.plastering-lightbox figure {

  margin: 0;

  text-align: center;

}


.plastering-lightbox figure img {

  max-width: min(100%, 1050px);

  max-height: 78vh;

  border-radius: 24px;

  object-fit: contain;

}


.plastering-lightbox figcaption {

  margin-top: 12px;

  color: var(--pl-white);

  font-size: 16px;

}


.plastering-lightbox-close {

  position: fixed;

  top: max(
    18px,
    env(safe-area-inset-top)
  );

  right: max(
    18px,
    env(safe-area-inset-right)
  );

  z-index: 10;

  min-height: 50px;

  display: flex;

  align-items: center;

  gap: 8px;

  padding: 10px 17px;

  border: 0;
  border-radius: 999px;

  background: var(--pl-white);

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 15px;
  font-weight: 700;

}


.plastering-lightbox-nav {

  position: absolute;

  top: 50%;

  z-index: 5;

  width: 54px;
  height: 54px;

  display: flex;

  align-items: center;
  justify-content: center;

  border: 0;
  border-radius: 50%;

  background: var(--pl-white);

  color: var(--pl-blue);

  font-size: 20px;

  transform: translateY(-50%);

}


.plastering-lightbox-prev {

  left: -20px;

}


.plastering-lightbox-next {

  right: -20px;

}



/* ============================================================
   FAQ
   ============================================================ */

.plastering-faq-section {

  padding: 115px 0;

  background: var(--pl-white);

}


.plastering-faq-layout {

  display: grid;

  grid-template-columns:
    minmax(0, 0.72fr)
    minmax(0, 1.28fr);

  gap: clamp(
    60px,
    8vw,
    130px
  );

  align-items: start;

}


.plastering-faq-intro {

  position: sticky;

  top: 130px;

}


.plastering-faq-intro h2 {

  margin: 0;

  color: var(--pl-blue);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    2.6rem,
    4.2vw,
    4.7rem
  );

  font-weight: 700;

  line-height: 1;

  letter-spacing: -0.05em;

}


.plastering-faq-intro h2 span {

  display: block;

  color: #76889e;

}


.plastering-faq-intro
> p:not(.plastering-section-label) {

  max-width: 500px;

  margin: 24px 0 0;

  color: var(--pl-text);

}


.plastering-faq-list {

  border-top: 1px solid #d4d9df;

}


.plastering-faq-list details {

  border-bottom: 1px solid #d4d9df;

}


.plastering-faq-list summary {

  position: relative;

  padding:
    25px
    45px
    25px
    0;

  color: var(--pl-blue);

  font-family: "IBM Plex Sans", sans-serif;

  font-size: 19px;
  font-weight: 600;

  list-style: none;

  cursor: pointer;

}


.plastering-faq-list summary::-webkit-details-marker {

  display: none;

}


.plastering-faq-list summary::after {

  content: "+";

  position: absolute;

  top: 50%;
  right: 5px;

  width: 32px;
  height: 32px;

  display: flex;

  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: var(--pl-grey-light);

  color: var(--pl-blue);

  font-size: 20px;

  transform: translateY(-50%);

  transition:
    transform 250ms ease,
    background 250ms ease;

}


.plastering-faq-list
details[open]
summary::after {

  transform:
    translateY(-50%)
    rotate(45deg);

  background: var(--pl-grey);

}


.plastering-faq-list details p {

  max-width: 780px;

  margin:
    -5px
    0
    25px;

  padding-right: 50px;

  color: var(--pl-text);

}



/* ============================================================
   FINAL CTA
   MORE CENTERED
   ============================================================ */

.plastering-final-cta {

  position: relative;

  width: 100%;

  min-height: 560px;

  display: flex;

  align-items: center;

  overflow: hidden;

  isolation: isolate;

  background:
    url("../images/plastering-rendering-final-cta.webp")
    center / cover no-repeat;

}


.plastering-final-overlay {

  position: absolute;

  inset: 0;

  z-index: -1;

  background:
    linear-gradient(
      90deg,
      rgba(10, 27, 48, 0.96) 0%,
      rgba(13, 34, 60, 0.84) 48%,
      rgba(13, 34, 60, 0.40) 100%
    );

}


/*
   CHANGED:
   Same centred/inset positioning as hero.
*/

.plastering-final-inner {

  width: min(
    calc(100% - 48px),
    1480px
  );

  margin: 0 auto;

  padding:
    90px
    clamp(58px, 6.5vw, 112px);

}


.plastering-final-content {

  max-width: 790px;

}


.plastering-final-content h2 {

  margin: 0;

  color: var(--pl-white);

  font-family: "Archivo", sans-serif;

  font-size: clamp(
    3rem,
    5.2vw,
    5.7rem
  );

  font-weight: 700;

  line-height: 0.98;

  letter-spacing: -0.055em;

}


.plastering-final-content h2 span {

  display: block;

  color: var(--pl-grey);

}


.plastering-final-content
> p:not(.plastering-section-label) {

  max-width: 670px;

  margin: 25px 0 0;

  color: rgba(255, 255, 255, 0.88);

  font-size: 18px !important;

}


.plastering-final-actions {

  display: flex;

  flex-wrap: wrap;

  gap: 12px;

  margin-top: 30px;

}



/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 1100px) {


  .plastering-hero-inner {

    padding-left: 55px;
    padding-right: 55px;

  }


  .plastering-hero-certification {

    right: 55px;

  }


  .plastering-intro-layout {

    gap: 45px;

  }


  .plastering-intro-image {

    height: 390px;

  }


  .plastering-service-card {

    min-height: 680px;

  }


  .plastering-service-card-image {

    height: 220px;

    flex-basis: 220px;

  }


  .plastering-service-card-body {

    padding:
      27px
      24px
      26px;

  }


  .plastering-service-card-body ul {

    grid-template-columns: 1fr;

  }


  .plastering-why-grid {

    gap: 45px;

  }


  .plastering-local-layout {

    gap: 55px;

  }


  .plastering-testimonial-card {

    min-width:
      calc((100% - 18px) / 2);

    flex-basis:
      calc((100% - 18px) / 2);

  }


  .plastering-final-inner {

    padding-left: 55px;
    padding-right: 55px;

  }


}



/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 820px) {


  .plastering-page p,
  .plastering-page li {

    font-size: 16px;

  }



  /* HERO */

  .plastering-hero {

    min-height: 700px;

    background-position:
      58%
      center;

  }


  .plastering-hero-overlay {

    background:
      linear-gradient(
        180deg,
        rgba(8, 24, 43, 0.38) 0%,
        rgba(8, 24, 43, 0.73) 43%,
        rgba(8, 24, 43, 0.98) 100%
      );

  }


  .plastering-hero-inner {

    width:
      calc(100% - 36px);

    min-height: 700px;

    align-items: flex-end;

    padding:
      140px
      22px
      145px;

  }


  .plastering-hero-content {

    width: 100%;

  }


  .plastering-hero h1 {

    font-size:
      clamp(
        2.9rem,
        12vw,
        4.8rem
      );

  }


  .plastering-hero-description {

    font-size: 17px !important;

  }


  .plastering-hero-certification {

    right: 22px;
    bottom: 18px;
    left: 22px;

    width: auto;

    padding:
      11px
      14px;

    border-radius: 19px;

  }


  .plastering-certification-logo {

    width: 59px;
    height: 59px;

    flex-basis: 59px;

  }



  /* INTRO */

  .plastering-intro-section {

    padding: 76px 0;

  }


  .plastering-intro-layout {

    grid-template-columns: 1fr;

    gap: 38px;

  }


  .plastering-intro-lead {

    font-size: 19px !important;

  }


  .plastering-intro-images {

    display: block;

  }


  .plastering-intro-image {

    width: 100%;
    height: auto;

    aspect-ratio: 1 / 1;

  }


  .plastering-intro-image-secondary {

    display: none;

  }



  /* SERVICES */

  .plastering-services-section {

    padding: 76px 0;

  }


  .plastering-services-header {

    grid-template-columns: 1fr;

    gap: 18px;

    margin-bottom: 27px;

  }


  .plastering-services-controls {

    display: flex;

    align-items: center;
    justify-content: space-between;

    margin-bottom: 15px;

  }


  .plastering-services-controls button {

    width: 48px;
    height: 48px;

    display: flex;

    align-items: center;
    justify-content: center;

    border: 0;
    border-radius: 50%;

    background: var(--pl-blue);

    color: var(--pl-white);

    font-size: 18px;

  }


  .plastering-services-count {

    color: var(--pl-blue);

    font-family: "IBM Plex Sans", sans-serif;

    font-size: 13px;
    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;

  }


  .plastering-services-track {

    display: flex;

    gap: 14px;

    overflow-x: auto;

    margin: 0 -4px;

    padding:
      0
      4px
      8px;

    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;

    scrollbar-width: none;

  }


  .plastering-services-track::-webkit-scrollbar {

    display: none;

  }


  .plastering-service-card {

    min-width:
      min(
        84vw,
        420px
      );

    flex:
      0 0
      min(
        84vw,
        420px
      );

    min-height: 620px;

    scroll-snap-align: center;

  }


  .plastering-service-card-image {

    height: 240px;

    flex-basis: 240px;

  }


  .plastering-service-card-body {

    padding:
      28px
      24px
      26px;

  }


  .plastering-service-card-body ul {

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

  }



  /* WHY */

  .plastering-why-section {

    padding: 76px 0;

  }


  .plastering-why-grid {

    grid-template-columns: 1fr;

    gap: 38px;

  }


  .plastering-why-visual {

    order: -1;

  }


  .plastering-why-visual > img {

    aspect-ratio: 4 / 3;

  }


  .plastering-why-certification {

    right: 13px;
    bottom: 13px;
    left: 13px;

    width: auto;

  }



  /* LOCAL */

  .plastering-local-section {

    padding: 76px 0;

  }


  .plastering-local-layout {

    grid-template-columns: 1fr;

    gap: 30px;

  }


  .plastering-local-lead {

    font-size: 19px !important;

  }


  .plastering-local-contact {

    align-items: flex-start;

    flex-direction: column;

  }



  /* REVIEWS */

  .plastering-testimonials-section {

    padding: 76px 0;

  }


  .plastering-testimonials-header {

    align-items: flex-end;

    margin-bottom: 30px;

  }


  .plastering-testimonial-card {

    min-width:
      min(
        84vw,
        390px
      );

    flex-basis:
      min(
        84vw,
        390px
      );

    min-height: 360px;

  }



  /* GALLERY */

  .plastering-gallery-section {

    padding: 76px 0;

  }


  .plastering-gallery-header {

    grid-template-columns: 1fr;

    gap: 20px;

    margin-bottom: 34px;

  }


  .plastering-gallery-shell {

    padding: 0 38px;

  }


  .plastering-gallery-grid {

    display: flex;

    gap: 14px;

    overflow-x: auto;

    margin: 0 -8px;

    padding:
      0
      8px
      8px;

    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;

    scrollbar-width: none;

  }


  .plastering-gallery-grid::-webkit-scrollbar {

    display: none;

  }


  .plastering-gallery-item {

    min-width:
      min(
        78vw,
        410px
      );

    flex:
      0 0
      min(
        78vw,
        410px
      );

    aspect-ratio: 4 / 3;

    scroll-snap-align: center;

  }


  .plastering-gallery-arrow {

    position: absolute;

    top: 50%;

    z-index: 5;

    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    border: 0;
    border-radius: 50%;

    background: var(--pl-blue);

    color: var(--pl-white);

    transform: translateY(-50%);

  }


  .plastering-gallery-arrow-left {

    left: 0;

  }


  .plastering-gallery-arrow-right {

    right: 0;

  }



  /* FAQ */

  .plastering-faq-section {

    padding: 76px 0;

  }


  .plastering-faq-layout {

    grid-template-columns: 1fr;

    gap: 42px;

  }


  .plastering-faq-intro {

    position: static;

  }



  /* FINAL CTA */

  .plastering-final-cta {

    min-height: 610px;

    background-position:
      58%
      center;

  }


  .plastering-final-overlay {

    background:
      linear-gradient(
        180deg,
        rgba(10, 27, 48, 0.36) 0%,
        rgba(10, 27, 48, 0.82) 55%,
        rgba(10, 27, 48, 0.98) 100%
      );

  }


  .plastering-final-inner {

    width:
      calc(100% - 36px);

    min-height: 610px;

    display: flex;

    align-items: flex-end;

    padding:
      85px
      22px
      58px;

  }



  /* LIGHTBOX */

  .plastering-lightbox {

    padding: 10px;

  }


  .plastering-lightbox-inner {

    width: 100%;

  }


  .plastering-lightbox figure img {

    max-height: 72vh;

    border-radius: 18px;

  }


  .plastering-lightbox-nav {

    width: 44px;
    height: 44px;

  }


  .plastering-lightbox-prev {

    left: 5px;

  }


  .plastering-lightbox-next {

    right: 5px;

  }


}



/* ============================================================
   SMALL MOBILE
   ============================================================ */

@media (max-width: 560px) {


  .plastering-hero {

    min-height: 690px;

  }


  .plastering-hero-inner {

    min-height: 690px;

    padding:
      135px
      10px
      140px;

  }


  .plastering-hero-actions {

    display: grid;

    grid-template-columns: 1fr;

  }


  .plastering-btn {

    width: 100%;

  }


  .plastering-certification-logo {

    width: 55px;
    height: 55px;

    flex-basis: 55px;

  }


  .plastering-certification-copy strong {

    font-size: 13px;

  }


  .plastering-service-card {

    min-width: 86vw;
    flex-basis: 86vw;

  }


  .plastering-service-card-image {

    height: 225px;
    flex-basis: 225px;

  }


  .plastering-service-card-body ul {

    grid-template-columns: 1fr;

  }


  .plastering-card-button {

    width: 100%;

    text-align: center;

  }


  .plastering-local-contact a {

    width: 100%;

  }


  .plastering-testimonials-header {

    display: grid;

    grid-template-columns: 1fr;

  }


  .plastering-testimonial-controls {

    justify-content: flex-end;

  }


  .plastering-gallery-shell {

    padding: 0 31px;

  }


  .plastering-gallery-item {

    min-width: 76vw;
    flex-basis: 76vw;

  }


  .plastering-faq-list summary {

    font-size: 17px;

  }


  .plastering-final-inner {

    padding:
      80px
      10px
      52px;

  }


  .plastering-final-actions {

    display: grid;

    grid-template-columns: 1fr;

  }


}



/* ============================================================
   REDUCED MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {


  .plastering-page *,
  .plastering-page *::before,
  .plastering-page *::after {

    scroll-behavior: auto !important;

    animation-duration:
      0.01ms !important;

    animation-iteration-count:
      1 !important;

    transition-duration:
      0.01ms !important;

  }


}