/* 1. LAYOUT STABILITY (Fixes CLS and Reflow) */
html {
  scrollbar-gutter: stable;
  /* Smooth scroll is nice, but can sometimes cause 'Forced Reflow' warnings in Lighthouse. 
     We keep it but ensure it doesn't fight with JS. */
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
  width: 100%;
  /* Use system fonts as fallback to prevent layout jumping while 'Prata' loads */
  font-family: ui-sans-serif, system-ui, -apple-system, sans-serif;
}

/* 2. MODERN IMAGE HANDLING (The Performance Fix) */
img {
  max-width: 100%;
  height: auto;
  display: block; /* Removes the extra space at the bottom of images */
  
  /* 🌟 THE CHROME FIX: 
     Instead of 'transform: scale(1.00001)', which forces a re-paint on every scroll,
     use 'content-visibility: auto' for off-screen images and 'will-change' only on animated ones. */
  font-display: swap;
}

/* 3. HARDWARE ACCELERATION (Smooth 3D without CPU lag) */
.perspective-1000 { perspective: 1000px; }

.preserve-3d { 
  transform-style: preserve-3d; 
  transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  /* 🌟 Tell the browser to use the GPU for this specific card */
  will-change: transform;
}

.backface-hidden { backface-visibility: hidden; }
.rotate-y-180 { transform: rotateY(180deg); }

/* 4. OPTIMIZED HOVER (Prevents high CPU usage) */
.feature-card .zoom-img { 
  transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  /* Prevents the 'pixel snap' without the scale(1.00001) hack */
  backface-visibility: hidden;
}

.feature-card:hover .zoom-img { 
  transform: scale(1.1); 
}

/* 5. UTILITIES */
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
.scrollbar-hide::-webkit-scrollbar { display: none; }

/* 6. LUXURY SELECT BOX */
select { 
  appearance: none; 
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e"); 
  background-repeat: no-repeat; 
  background-position: right 1rem center; 
  background-size: 1em; 
}

/* Readable article content and accessible focus controls. */
.lbp-article h2 {font-size:1.8rem;line-height:1.3;margin:2rem 0 1rem;}
.lbp-article h3 {font-size:1.4rem;margin:1.5rem 0 .75rem;}
.lbp-article p,.lbp-article li {font-size:1.1rem;line-height:1.8;}
.lbp-article ul {list-style:disc;padding-left:1.5rem;}
.lbp-article a {text-decoration:underline;text-underline-offset:.2em;}
.lbp-article ol {list-style:decimal;padding-left:1.5rem;}
.lbp-article figure {margin:2.5rem 0;}
.lbp-article figure img {width:100%;height:auto;border-radius:2px;}
.lbp-article figcaption {font-size:.9rem;line-height:1.5;color:#666;margin-top:.75rem;}
.lbp-article blockquote {border-left:4px solid #AA511B;padding-left:1.5rem;margin:2rem 0;}
.lbp-blog-gallery {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem;}
.lbp-review-links {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;align-items:center;justify-items:center;}
.lbp-review-link {display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;color:#1A1A1A;font-size:.75rem;font-weight:700;line-height:1.5;}
.lbp-review-link img {height:48px;width:auto;max-width:100%;object-fit:contain;}
.lbp-review-link:hover {color:#AA511B;text-decoration:underline;}
.lbp-readiness {padding:4rem 1.5rem;background:#fff4ec;color:#1A1A1A;}
.lbp-readiness-inner {max-width:64rem;margin:auto;}
.lbp-readiness h2 {font-family:Prata,Georgia,serif;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.3;margin:0 0 1rem;}
.lbp-readiness p {max-width:50rem;line-height:1.8;margin:0 0 1.25rem;}
.lbp-readiness .lbp-readiness-eyebrow {font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#AA511B;}
.lbp-readiness-button {display:inline-block;background:#AA511B;color:white;padding:1rem 1.5rem;font-weight:700;text-decoration:none!important;}
.lbp-readiness-button:hover {background:#1A1A1A;}
.lbp-readiness .lbp-readiness-note {font-size:.85rem;margin:1rem 0 0;color:#555;}
.lbp-readiness-compact {margin:2.5rem 0 0;padding:2rem;}
/* Service additions follow the centred headings and spacious cards used elsewhere. */
.lbp-service-evidence {padding:6rem 1.5rem;background:#f9fafb;color:#1A1A1A;}
.lbp-service-inner {max-width:80rem;margin:auto;}
.lbp-service-heading {max-width:48rem;margin:0 auto 3rem;text-align:center;}
.lbp-service-heading h2 {font-family:Prata,Georgia,serif;font-size:clamp(2rem,3.5vw,3rem);line-height:1.2;margin:0 0 1.5rem;}
.lbp-service-heading p {font-size:1.125rem;font-weight:300;line-height:1.8;color:#4b5563;margin:0;}
.lbp-service-projects,.lbp-service-columns {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:2rem;}
.lbp-service-project-card,.lbp-service-panel,.lbp-service-evidence .lbp-client-quote {min-width:0;background:white;border:1px solid #f3f4f6;border-radius:2px;box-shadow:0 1px 3px #0000000d;}
.lbp-service-project-card {padding-bottom:2rem;}
.lbp-service-project-card:only-child {width:100%;max-width:36rem;justify-self:center;}
.lbp-service-project-link {display:block;text-decoration:none!important;}
.lbp-service-project-image {aspect-ratio:3/2;overflow:hidden;}
.lbp-service-project-image img {width:100%;height:100%;object-fit:cover;}
.lbp-service-project-card h3 {font-family:Prata,Georgia,serif;font-size:1.5rem;line-height:1.4;margin:1.75rem 2rem 1rem;}
.lbp-service-project-card p {margin:0 2rem;color:#6b7280;line-height:1.8;font-weight:300;}
.lbp-service-project-link:hover h3,.lbp-service-project-link:focus-visible h3 {color:#AA511B;}
.lbp-service-planning,.lbp-case-study-details {margin:5rem 0;}
.lbp-service-evidence .lbp-service-copy {max-width:48rem;margin:-1rem auto 2.5rem;line-height:1.8;color:#4b5563;}
.lbp-service-panel {padding:2.5rem;text-align:left;border-top:3px solid #AA511B;}
.lbp-service-panel h3 {font-family:Prata,Georgia,serif;font-size:1.5rem;line-height:1.4;margin:0 0 1.25rem;}
.lbp-commercial-projects {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;}
.lbp-commercial-evidence .lbp-commercial-client {color:#AA511B;font-size:.75rem;font-weight:700;letter-spacing:.15em;line-height:1.6;text-transform:uppercase;margin:0 0 1rem;}
@media(max-width:767px) {.lbp-commercial-projects {grid-template-columns:1fr;}}
.lbp-service-evidence p,.lbp-service-evidence li {line-height:1.8;}
.lbp-service-evidence ul {list-style:disc;padding-left:1.25rem;margin:1rem 0;}
.lbp-service-evidence li+li {margin-top:.75rem;}
.lbp-service-panel p {margin:0 0 1rem;color:#4b5563;}
.lbp-service-evidence a {text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere;}
.lbp-service-planning .lbp-service-source {font-size:.85rem;color:#6b7280;margin-top:1rem;}
.lbp-service-evidence .lbp-service-checklist {max-width:48rem;margin:0 auto;padding-left:1.5rem;columns:2;column-gap:3rem;}
.lbp-service-checklist li {break-inside:avoid;padding-right:.5rem;}
.lbp-service-evidence .lbp-service-guides {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem;list-style:none;padding:0;margin:0;}
.lbp-service-evidence .lbp-service-guides li {margin:0;}
.lbp-service-guides a {display:flex;align-items:center;justify-content:center;height:100%;padding:1.5rem 2rem;background:white;border:1px solid #e5e7eb;text-align:center;color:#AA511B;}
.lbp-service-actions {text-align:center;margin:2.5rem auto 0;}
.lbp-service-evidence .lbp-service-enquiry {display:inline-block;max-width:100%;padding:1.25rem 2.5rem;background:#AA511B;color:white;text-decoration:none;font-size:.7rem;font-weight:700;line-height:1.6;text-transform:uppercase;letter-spacing:.2em;box-shadow:0 4px 6px #0000000d;}
.lbp-service-enquiry:hover {background:#1A1A1A;}
.lbp-service-evidence .lbp-client-quote {padding:2.5rem;margin:0;border-top:3px solid #AA511B;border-left:1px solid #f3f4f6;}
.lbp-service-evidence .lbp-client-quote p {margin:0;color:#4b5563;font-weight:300;}
.lbp-service-evidence .lbp-readiness-compact {margin-top:5rem;padding:4rem 2rem;text-align:center;background:#ffd3b7;}
.lbp-service-evidence .lbp-readiness-inner {max-width:48rem;}
.lbp-service-evidence .lbp-readiness p {margin-left:auto;margin-right:auto;}
.lbp-service-evidence .lbp-readiness-button {padding:1.25rem 2rem;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;}
@media(max-width:767px) {.lbp-service-evidence {padding:4rem 1.5rem;}.lbp-service-heading {margin-bottom:2rem;}.lbp-service-planning,.lbp-case-study-details {margin:3.5rem 0;}.lbp-service-panel,.lbp-service-evidence .lbp-client-quote {padding:1.5rem;}.lbp-service-project-card h3 {margin-left:1.5rem;margin-right:1.5rem;}.lbp-service-project-card p {margin-left:1.5rem;margin-right:1.5rem;}.lbp-service-evidence .lbp-service-checklist {columns:1;}.lbp-service-evidence .lbp-readiness-compact {padding:3rem 1.5rem;margin-top:3.5rem;}}
.lbp-planning-note {background:#fff4ec;padding:1.25rem;margin:1.5rem 0;border-left:4px solid #AA511B;line-height:1.8;}
.lbp-client-quote {border-left:3px solid #AA511B;padding-left:1.25rem;margin:1.5rem 0;}
.lbp-client-quote cite {display:block;font-style:normal;font-weight:700;margin-top:.75rem;}
@media(max-width:540px) {.lbp-review-links {grid-template-columns:1fr;gap:2rem;}.lbp-readiness-compact {padding:1.5rem;}}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {outline:3px solid #AA511B;outline-offset:4px;}
[data-lbp-form-status] {margin-top:1rem;font-size:1rem;line-height:1.5;color:#1E3A5F;}
.lbp-bbb-label {display:inline-flex;align-items:center;justify-content:center;color:#005a78;font-family:Arial,sans-serif;font-size:2rem;font-weight:700;line-height:1;letter-spacing:.02em;}
.lbp-review-link > .lbp-bbb-label {height:48px;}
.lbp-bbb-label.h-6 {font-size:1.25rem;}
.lbp-service-hero-actions {display:flex;justify-content:center;margin:0 0 1.5rem;}
.lbp-service-hero-enquiry {display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:48px;padding:1rem 1.75rem;border:1px solid #AA511B;background:#AA511B;color:white;font-size:.7rem;font-weight:700;line-height:1.5;letter-spacing:.12em;text-align:center;text-decoration:none;text-transform:uppercase;box-shadow:0 4px 6px #0000001a;}
.lbp-service-hero-enquiry:hover {background:#1A1A1A;border-color:white;}
#contact {scroll-margin-top:7rem;}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto!important;}*,*::before,*::after {animation-duration:.01ms!important;transition-duration:.01ms!important;}}
