:root {
  /* ── Base palette ──────────────────────────────────────── */
  --af-black:       #1f2022;
  --af-black-soft:  #252729;
  --af-charcoal:    #2b2d2f;
  --af-dark:        #313336;
  --af-mid:         #3e4042;
  --af-border:      rgba(222,190,179,0.12);
  --af-white:       #ffffff;
  --af-off-white:   #faf8f6;
  --af-light:       rgba(255,255,255,0.65);

  /* ── Brand accent — warm champagne / rose-gold ─────────── */
  --af-rose:        #debeb3;
  --af-rose-light:  #ead5ce;
  --af-rose-dark:   #c49b8e;
  --af-rose-subtle: rgba(222,190,179,0.10);

  /* ── Typography ────────────────────────────────────────── */
  --af-font-body:    'Inter', 'Segoe UI', Arial, sans-serif;
  --af-font-display: 'Cormorant Garamond', Georgia, serif;

  --af-text-xs:   0.75rem;
  --af-text-sm:   0.875rem;
  --af-text-base: 1rem;
  --af-text-lg:   1.125rem;
  --af-text-xl:   1.25rem;
  --af-text-2xl:  1.5rem;
  --af-text-3xl:  2rem;
  --af-text-4xl:  2.75rem;
  --af-text-5xl:  3.75rem;
  --af-text-6xl:  5rem;

  --af-leading-tight:  1.15;
  --af-leading-snug:   1.35;
  --af-leading-normal: 1.6;
  --af-leading-loose:  1.8;

  --af-tracking-tight:  -0.03em;
  --af-tracking-normal:  0;
  --af-tracking-wide:    0.08em;
  --af-tracking-wider:   0.15em;

  /* ── Spacing ───────────────────────────────────────────── */
  --af-space-1:  0.25rem;  --af-space-2:  0.5rem;   --af-space-3:  0.75rem;
  --af-space-4:  1rem;     --af-space-5:  1.25rem;  --af-space-6:  1.5rem;
  --af-space-8:  2rem;     --af-space-10: 2.5rem;   --af-space-12: 3rem;
  --af-space-16: 4rem;     --af-space-20: 5rem;     --af-space-24: 6rem;
  --af-space-32: 8rem;     --af-space-40: 10rem;

  /* ── Layout ────────────────────────────────────────────── */
  --af-max-width:      1280px;
  --af-max-width-text: 680px;
  --af-gutter:         clamp(1.25rem, 4vw, 2.5rem);
  --af-header-h:        80px;
  --af-header-h-scroll: 64px;

  /* ── Motion ────────────────────────────────────────────── */
  --af-ease-out:  cubic-bezier(0.16,1,0.3,1);
  --af-ease-in:   cubic-bezier(0.7,0,0.84,0);
  --af-ease:      cubic-bezier(0.4,0,0.2,1);
  --af-duration-fast:   150ms;
  --af-duration:        300ms;
  --af-duration-slow:   600ms;
  --af-duration-slower: 900ms;

  /* ── Radii & Shadows ───────────────────────────────────── */
  --af-radius-sm: 2px;  --af-radius: 4px;  --af-radius-md: 6px;  --af-radius-lg: 12px;
  --af-shadow-sm:   0 1px 3px rgba(0,0,0,0.5);
  --af-shadow:      0 4px 20px rgba(0,0,0,0.45);
  --af-shadow-lg:   0 12px 48px rgba(0,0,0,0.6);
  --af-shadow-rose: 0 8px 32px rgba(222,190,179,0.2);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}
body{background-color:var(--af-black);color:var(--af-off-white);font-family:var(--af-font-body);font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font:inherit}
input,textarea,select{font:inherit}
h1,h2,h3,h4,h5,h6{font-weight:inherit;line-height:var(--af-leading-tight)}
::selection{background-color:var(--af-rose);color:var(--af-white)}
:focus-visible{outline:2px solid var(--af-rose);outline-offset:3px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background-color:var(--af-charcoal);clip:auto!important;clip-path:none;color:var(--af-white);display:block;font-size:1rem;height:auto;left:8px;padding:12px 24px;top:8px;width:auto;z-index:9999}
/* ── Base headings — Inter bold, same rhythm as Premier Glass ── */
h1,h2,h3,h4,h5,h6 {
  font-family: var(--af-font-body);
  font-weight: 700;
  line-height: 1.25;
  color: var(--af-white);
}
h1 { font-size: clamp(2rem,   4vw,  3.25rem); }
h2 { font-size: clamp(1.6rem, 3vw,  2.5rem);  }
h3 { font-size: clamp(1.25rem,2vw,  1.75rem); }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.1rem;  }
h6 { font-size: 1rem;    }

/* ── Display class — Cormorant for hero headlines only ── */
.af-display {
  font-family: var(--af-font-display);
  font-size: clamp(2.25rem, 5vw, 4.25rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--af-white);
  text-shadow: 0 2px 8px rgba(0,0,0,0.7), 0 4px 32px rgba(0,0,0,0.5);
}
.af-display em {
  font-style: italic;
  color: var(--af-rose);
}

/* ── Eyebrow label — identical to Premier Glass accent label ── */
.af-eyebrow {
  font-family: var(--af-font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--af-rose);
}

/* ── Section headline — Inter semibold ── */
.af-section-headline {
  font-family: var(--af-font-body);
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--af-white);
}

/* ── Sub / body text ── */
.af-section-sub {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--af-light);
  max-width: var(--af-max-width-text);
}
.af-prose {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--af-light);
}
.af-prose p + p { margin-top: var(--af-space-4); }
.af-prose strong { font-weight: 600; color: var(--af-white); }
.af-prose a { color: var(--af-rose); text-decoration: underline; }

/* ── Utilities ── */
.af-text-rose    { color: var(--af-rose); }
.af-text-white   { color: var(--af-white); }
.af-text-light   { color: var(--af-light); }
.af-text-center  { text-align: center; }
.af-text-upper   { text-transform: uppercase; letter-spacing: 0.08em; }
.af-container{width:100%;max-width:var(--af-max-width);margin-inline:auto;padding-inline:var(--af-gutter)}
.af-container--narrow{max-width:860px}
.af-container--wide{max-width:1440px}
.af-section{position:relative;z-index:2;padding-block:clamp(4rem,8vw,7rem)}
.af-section--sm{padding-block:clamp(2.5rem,5vw,4rem)}
.af-section--lg{padding-block:clamp(5rem,10vw,10rem)}
.af-section--dark{background-color:var(--af-charcoal)}
.af-bg-black{background-color:var(--af-black)}
.af-bg-dark{background-color:var(--af-dark)}
.af-bg-charcoal{background-color:var(--af-charcoal)}
.af-bg-off-white{background-color:var(--af-off-white);color:var(--af-black)}
.af-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--af-space-8)}
.af-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--af-space-8)}
.af-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--af-space-6)}
@media(max-width:1024px){.af-grid-4{grid-template-columns:repeat(2,1fr)}.af-grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.af-grid-2,.af-grid-3,.af-grid-4{grid-template-columns:1fr}}
.af-flex{display:flex}.af-flex-center{display:flex;align-items:center;justify-content:center}
.af-flex-between{display:flex;align-items:center;justify-content:space-between}
.af-flex-col{display:flex;flex-direction:column}
.af-gap-4{gap:var(--af-space-4)}.af-gap-6{gap:var(--af-space-6)}.af-gap-8{gap:var(--af-space-8)}
.af-divider{border:none;border-top:1px solid var(--af-border);margin-block:var(--af-space-8)}
.af-ratio-16-9{aspect-ratio:16/9}.af-ratio-4-3{aspect-ratio:4/3}.af-ratio-1-1{aspect-ratio:1}.af-ratio-3-4{aspect-ratio:3/4}
[class*="af-ratio-"] img,[class*="af-ratio-"] video{width:100%;height:100%;object-fit:cover}
.af-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.af-btn{display:inline-flex;align-items:center;gap:var(--af-space-2);padding:0.875rem 2rem;font-family:var(--af-font-body);font-size:var(--af-text-sm);font-weight:500;letter-spacing:var(--af-tracking-wide);text-transform:uppercase;border-radius:var(--af-radius-sm);transition:background-color var(--af-duration) var(--af-ease),color var(--af-duration) var(--af-ease),border-color var(--af-duration) var(--af-ease),transform var(--af-duration-fast) var(--af-ease);white-space:nowrap;cursor:pointer;text-decoration:none}
.af-btn:active{transform:translateY(1px)}
.af-btn--primary{background-color:var(--af-rose);color:var(--af-black);border:1px solid var(--af-rose)}
.af-btn--primary:hover{background-color:var(--af-rose-dark);border-color:var(--af-rose-dark);color:var(--af-black)}
.af-btn--ghost{background-color:transparent;color:var(--af-white);border:1px solid rgba(255,255,255,0.3)}
.af-btn--ghost:hover{border-color:var(--af-white);background-color:rgba(255,255,255,0.06)}
.af-btn--ghost-dark{background-color:transparent;color:var(--af-white);border:1px solid rgba(255,255,255,0.3)}
.af-btn--ghost-dark:hover{border-color:var(--af-white);background-color:rgba(255,255,255,0.06)}
.af-btn--sm{padding:0.625rem 1.25rem;font-size:var(--af-text-xs)}
.af-btn--lg{padding:1.125rem 2.5rem;font-size:var(--af-text-base)}
/* ── Site header ─────────────────────────────────────── */
.af-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 900;
  background: rgba(31,32,34,0.0);
  border-bottom: 1px solid transparent;
  transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.af-header--solid {
  background: rgba(31,32,34,0.97);
  border-bottom-color: rgba(222,190,179,0.1);
  box-shadow: 0 2px 20px rgba(0,0,0,0.35);
}

/* ── Header inner ────────────────────────────────────── */
.af-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--af-header-h);
}

/* ── Logo ────────────────────────────────────────────── */
.af-header__logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}
.af-header__logo-img {
  max-height: 48px;
  width: auto;
  display: block;
}
.af-header__logo-text {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--af-white);
  letter-spacing: -0.01em;
  white-space: nowrap;
}

/* ── Desktop nav ─────────────────────────────────────── */
.af-nav {
  display: flex;
  align-items: center;
}
.af-nav__list {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
}
.af-nav__item {
  position: relative;
}
.af-nav__link {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0.5rem 0.9rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: rgba(255,255,255,0.85);
  white-space: nowrap;
  transition: color 0.2s ease;
}
.af-nav__link:hover,
.af-nav__link--active {
  color: var(--af-rose);
}
.af-nav__chevron {
  font-size: 0.7rem;
  opacity: 0.6;
  line-height: 1;
  margin-top: 1px;
}

/* ── Dropdown ────────────────────────────────────────── */
.af-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 220px;
  background: rgba(31,32,34,0.97);
  border: 1px solid rgba(222,190,179,0.12);
  border-radius: var(--af-radius-md);
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
  padding: var(--af-space-2);
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
  z-index: 999;
}
.af-nav__item:hover .af-nav__dropdown,
.af-nav__item:focus-within .af-nav__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.af-nav__dropdown-link {
  display: block;
  padding: 0.45rem 1rem;
  font-size: 0.875rem;
  color: rgba(255,255,255,0.8);
  border-radius: var(--af-radius-sm);
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}
.af-nav__dropdown-link:hover {
  background: rgba(255,255,255,0.07);
  color: var(--af-rose);
}

/* ── Nav CTA + actions ───────────────────────────────── */
.af-header__actions {
  display: flex;
  align-items: center;
  gap: var(--af-space-3);
  flex-shrink: 0;
}
.af-nav-cta {
  margin-left: var(--af-space-4);
}
.af-header__phone {
  font-size: var(--af-text-sm);
  font-weight: 600;
  color: var(--af-white);
  text-decoration: none;
  letter-spacing: 0.01em;
  opacity: 0.85;
  transition: opacity 0.15s;
  white-space: nowrap;
}
.af-header__phone:hover { opacity: 1; text-decoration: none; }
@media (max-width: 900px) { .af-header__phone { display: none; } }

/* ── Burger ──────────────────────────────────────────── */
.af-burger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 24px;
  height: 17px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}
.af-burger__line {
  display: block;
  width: 100%;
  height: 1.5px;
  background: var(--af-white);
  transform-origin: center;
  transition: transform 0.22s ease, opacity 0.22s ease;
}
.af-burger--open .af-burger__line:nth-child(1) { transform: translateY(7.75px) rotate(45deg); }
.af-burger--open .af-burger__line:nth-child(2) { opacity: 0; }
.af-burger--open .af-burger__line:nth-child(3) { transform: translateY(-7.75px) rotate(-45deg); }

/* ── Mobile menu ─────────────────────────────────────── */
.af-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 899;
  background: rgba(31,32,34,0.98);
  display: flex;
  flex-direction: column;
  padding: calc(var(--af-header-h) + 2rem) var(--af-gutter) 2rem;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.16,1,0.3,1);
  overflow-y: auto;
}
.af-mobile-menu--open {
  transform: translateX(0);
}
.af-mobile-menu__section-label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--af-rose);
  margin-bottom: 0.5rem;
  margin-top: 1.5rem;
}
.af-mobile-menu__section-label:first-child {
  margin-top: 0;
}
.af-mobile-menu__link {
  display: block;
  padding: 0.75rem 0;
  font-size: 1.4rem;
  font-family: var(--af-font-display);
  font-weight: 500;
  color: var(--af-white);
  border-bottom: 1px solid var(--af-border);
}
.af-mobile-menu__sub-link {
  display: block;
  padding: 0.5rem 0;
  font-size: 1rem;
  color: rgba(255,255,255,0.7);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.af-mobile-menu__actions {
  margin-top: auto;
  padding-top: 2rem;
}

/* ── Responsive breakpoint ───────────────────────────── */
@media (max-width: 1024px) {
  .af-nav,
  .af-nav-cta { display: none; }
  .af-burger  { display: flex; }
}
@media (min-width: 1025px) {
  .af-mobile-menu { display: none; }
}
/* ── Full-bleed homepage hero ─────────────────────────── */
.af-hero {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 640px;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding-top: var(--af-header-h);
}

.af-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: cover;
  background-position: center 30%;
}

/* Picture-based hero background */
.af-hero__bg-picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
}
.af-hero__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
}

.af-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(31,32,34,0.65) 0%,
    rgba(31,32,34,0.45) 40%,
    rgba(31,32,34,0.75) 80%,
    rgba(31,32,34,0.92) 100%
  );
}

/* Text block — sits near the top of the hero */
.af-hero__inner {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding-inline: var(--af-gutter);
  padding-bottom: clamp(80px, 14vw, 160px); /* push up from logo bar */
}

.af-hero__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--af-space-5);
  max-width: 780px;
  transition: opacity 0.5s var(--af-ease), transform 0.5s var(--af-ease);
}

.af-hero__sub {
  font-size: clamp(0.95rem, 1.6vw, 1.1rem);
  color: rgba(255,255,255,0.82);
  max-width: 540px;
  line-height: var(--af-leading-loose);
  text-shadow: 0 1px 4px rgba(0,0,0,0.8), 0 2px 20px rgba(0,0,0,0.6);
}

.af-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--af-space-3);
  justify-content: center;
}

/* ── Logo emergence bar ───────────────────────────────── */
/*
  Horizontal rectangle anchored at hero bottom-centre.
  Starts translateY(100%) — fully hidden below.
  JS raises it to translateY(0) as user scrolls,
  so it slides up out of the section below like the brochure.
*/
.af-hero__logo-wrap {
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 1;

  transform: translateX(-50%) translateY(100%);

  width: clamp(240px, 30vw, 380px);
  padding: clamp(18px, 2.5vw, 32px) clamp(24px, 3vw, 48px);

  background-color: #1f2022;
  border: none;

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

  will-change: transform;
  transition: box-shadow 0.4s var(--af-ease);
}

/* Corner ticks removed */
.af-hero__logo-wrap::before,
.af-hero__logo-wrap::after { content: none; }

.af-hero__logo-mark {
  width: 100%;
  max-width: 260px;
  height: auto;
  display: block;
}

.af-hero__logo-wrap.is-emerging {
  box-shadow: 0 -12px 60px rgba(0,0,0,0.5);
}

/* Scroll hint line */
.af-hero__scroll-hint {
  position: absolute;
  bottom: clamp(60px, 10vw, 100px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  pointer-events: none;
}
.af-hero__scroll-hint span {
  display: block;
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, transparent, rgba(222,190,179,0.55));
  margin: auto;
  animation: af-scroll-hint 2s ease-in-out infinite;
}
@keyframes af-scroll-hint {
  0%, 100% { opacity: 0.5; transform-origin: top; transform: scaleY(1); }
  50%       { opacity: 1;   transform-origin: top; transform: scaleY(0.5); }
}

/* ── Page heroes (inner pages) ────────────────────────── */
.af-page-hero {
  position: relative;
  width: 100%;
  padding-top: calc(var(--af-header-h) + clamp(3rem, 8vw, 6rem));
  padding-bottom: clamp(3rem, 8vw, 6rem);
  overflow: hidden;
  background-color: var(--af-charcoal);
}
.af-page-hero--short {
  padding-top: calc(var(--af-header-h) + clamp(2rem, 5vw, 4rem));
  padding-bottom: clamp(2rem, 5vw, 4rem);
}
.af-page-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
.af-page-hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.af-page-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, rgba(31,32,34,0.88) 0%, rgba(31,32,34,0.4) 100%);
}
.af-page-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: var(--af-space-4);
}
.af-page-hero__sub {
  font-size: var(--af-text-lg);
  color: rgba(255,255,255,0.75);
  max-width: 560px;
  line-height: var(--af-leading-loose);
}

/* ── Breadcrumb ───────────────────────────────────────── */
.af-breadcrumb ol { display:flex; flex-wrap:wrap; gap:var(--af-space-2); list-style:none; padding:0; margin:0 0 var(--af-space-3); }
.af-breadcrumb li { font-size:var(--af-text-xs); color:rgba(255,255,255,0.45); letter-spacing:var(--af-tracking-wide); }
.af-breadcrumb li:not(:last-child)::after { content:' /'; margin-left:var(--af-space-2); }
.af-breadcrumb a { color:rgba(255,255,255,0.55); transition:color var(--af-duration-fast); }
.af-breadcrumb a:hover { color:var(--af-white); }

/* ── Responsive ───────────────────────────────────────── */
@media (max-width: 640px) {
  .af-hero__logo-wrap { width: 200px; }
  .af-hero__actions { flex-direction:column; align-items:center; }
  .af-hero__actions .af-btn { width:100%; max-width:280px; justify-content:center; }
}
.af-section-header{display:flex;flex-direction:column;gap:var(--af-space-3);margin-bottom:var(--af-space-12)}
.af-section-header--center{align-items:center;text-align:center}
.af-section-header--center .af-section-sub{margin-inline:auto}
.af-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,6rem);align-items:center}
.af-intro__left{display:flex;flex-direction:column;gap:var(--af-space-3)}
.af-intro__statement{font-family:var(--af-font-display);font-size:clamp(2.25rem,4vw,3.5rem);font-weight:600;letter-spacing:var(--af-tracking-tight);line-height:var(--af-leading-tight);color:var(--af-white)}
.af-intro__right{display:flex;flex-direction:column;gap:var(--af-space-6)}
@media(max-width:768px){.af-intro{grid-template-columns:1fr;gap:var(--af-space-8)}}
.af-services{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--af-space-4)}
.af-service-card{position:relative;overflow:hidden;border-radius:var(--af-radius);background-color:var(--af-dark);display:flex;flex-direction:column;transition:transform var(--af-duration) var(--af-ease)}
.af-service-card:hover{transform:translateY(-4px)}
.af-service-card__image-wrap{position:relative;aspect-ratio:4/3;overflow:hidden}
.af-service-card__image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform var(--af-duration-slower) var(--af-ease-out)}
.af-service-card:hover .af-service-card__image-wrap img{transform:scale(1.04)}
.af-service-card__image-wrap::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.7) 0%,transparent 60%)}
.af-service-card__body{padding:var(--af-space-6);display:flex;flex-direction:column;gap:var(--af-space-3);flex:1}
.af-service-card__title{font-family:var(--af-font-display);font-size:var(--af-text-2xl);font-weight:600;color:var(--af-white);letter-spacing:var(--af-tracking-tight)}
.af-service-card__desc{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose);flex:1}
.af-service-card__link{display:inline-flex;align-items:center;gap:var(--af-space-2);font-size:var(--af-text-sm);font-weight:500;letter-spacing:var(--af-tracking-wide);text-transform:uppercase;color:var(--af-rose);transition:gap var(--af-duration-fast) var(--af-ease),color var(--af-duration-fast)}
.af-service-card__link:hover{gap:var(--af-space-3);color:var(--af-rose-light)}
@media(max-width:900px){.af-services{grid-template-columns:1fr;gap:var(--af-space-6)}}
.af-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--af-space-6)}
.af-pillar{display:flex;flex-direction:column;gap:var(--af-space-3);padding:var(--af-space-6);border:1px solid var(--af-border);border-radius:var(--af-radius);background-color:var(--af-charcoal);transition:border-color var(--af-duration) var(--af-ease)}
.af-pillar:hover{border-color:var(--af-rose)}
.af-pillar__icon{width:40px;height:40px;color:var(--af-rose)}
.af-pillar__title{font-family:var(--af-font-display);font-size:var(--af-text-xl);font-weight:600;color:var(--af-white)}
.af-pillar__desc{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
@media(max-width:1024px){.af-pillars{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.af-pillars{grid-template-columns:1fr}}
.af-process{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--af-space-8);position:relative}
.af-process::before{content:'';position:absolute;top:20px;left:calc(var(--af-space-8)/2 + 20px);right:calc(var(--af-space-8)/2 + 20px);height:1px;background:linear-gradient(to right,var(--af-rose),var(--af-border));z-index:0}
.af-process-step{display:flex;flex-direction:column;gap:var(--af-space-4);position:relative;z-index:1}
.af-process-step__number{width:40px;height:40px;border-radius:50%;border:1px solid var(--af-rose);background-color:var(--af-black);display:flex;align-items:center;justify-content:center;font-family:var(--af-font-display);font-size:var(--af-text-lg);font-weight:600;color:var(--af-rose)}
.af-process-step__title{font-family:var(--af-font-display);font-size:var(--af-text-xl);font-weight:600;color:var(--af-white)}
.af-process-step__desc{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
@media(max-width:900px){.af-process{grid-template-columns:repeat(2,1fr)}.af-process::before{display:none}}
@media(max-width:640px){.af-process{grid-template-columns:1fr}}
.af-finishes{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.af-finish-item{position:relative;aspect-ratio:4/3;overflow:hidden;display:flex;align-items:flex-end}
.af-finish-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--af-duration-slower) var(--af-ease-out)}
.af-finish-item:hover img{transform:scale(1.04)}
.af-finish-item__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.8) 0%,transparent 60%)}
.af-finish-item__content{position:relative;z-index:1;padding:var(--af-space-8);display:flex;flex-direction:column;gap:var(--af-space-2)}
.af-finish-item__title{font-family:var(--af-font-display);font-size:var(--af-text-3xl);font-weight:600;color:var(--af-white);letter-spacing:var(--af-tracking-tight)}
.af-finish-item__desc{font-size:var(--af-text-sm);color:rgba(255,255,255,0.75)}
@media(max-width:640px){.af-finishes{grid-template-columns:1fr}}
.af-cta-block{background-color:var(--af-charcoal);border-top:1px solid var(--af-border);border-bottom:1px solid var(--af-border);padding-block:clamp(4rem,7vw,6rem)}
.af-cta-block__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--af-space-6)}
.af-cta-block__headline{font-family:var(--af-font-display);font-size:clamp(2rem,4vw,3.25rem);font-weight:600;letter-spacing:var(--af-tracking-tight);color:var(--af-white)}
.af-cta-block__sub{font-size:var(--af-text-lg);color:var(--af-light);max-width:520px;line-height:var(--af-leading-loose)}
.af-cta-block__actions{display:flex;flex-wrap:wrap;gap:var(--af-space-4);justify-content:center}
.af-trust-bar{display:flex;flex-wrap:wrap;gap:var(--af-space-8);align-items:center;justify-content:center;padding-block:var(--af-space-8)}
.af-trust-item{display:flex;flex-direction:column;align-items:center;gap:var(--af-space-1);text-align:center}
.af-trust-item__value{font-family:var(--af-font-display);font-size:var(--af-text-4xl);font-weight:600;color:var(--af-white);letter-spacing:var(--af-tracking-tight);line-height:1}
.af-trust-item__label{font-size:var(--af-text-xs);letter-spacing:var(--af-tracking-wider);text-transform:uppercase;color:var(--af-rose)}
.af-underline-rose{position:relative;display:inline-block}
.af-underline-rose::after{content:'';position:absolute;bottom:-6px;left:0;width:40px;height:2px;background:var(--af-rose);border-radius:2px}
/* Full project archive grid */
.af-projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--af-space-4)}
/* Homepage "recent work" grid — compact, 3 col, smaller cards */
.af-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--af-space-4)}
.af-projects-grid--2col{grid-template-columns:repeat(2,1fr)}
.af-projects-grid--featured{grid-template-columns:2fr 1fr 1fr;grid-template-rows:auto auto}
.af-projects-grid--featured .af-project-card:first-child{grid-row:1/3}
/* Compact card used in homepage Recent Work grid */
.af-project-grid .af-project-card .af-project-card__image-wrap{aspect-ratio:3/2}
.af-project-grid .af-project-card .af-project-card__body{padding:var(--af-space-3) var(--af-space-4) var(--af-space-4)}
.af-project-grid .af-project-card .af-project-card__title{font-size:var(--af-text-base)}
.af-project-grid .af-project-card .af-project-card__excerpt{display:none}

.af-project-card{position:relative;overflow:hidden;border-radius:var(--af-radius);background-color:var(--af-dark);display:flex;flex-direction:column;transition:transform var(--af-duration) var(--af-ease)}
.af-project-card:hover{transform:translateY(-3px)}
.af-project-card__link{display:flex;flex-direction:column;height:100%;text-decoration:none}
.af-project-card__image-wrap{position:relative;aspect-ratio:4/3;overflow:hidden;flex-shrink:0}
.af-project-card--large .af-project-card__image-wrap{aspect-ratio:3/4}
.af-project-card__image{width:100%;height:100%;object-fit:cover;transition:transform var(--af-duration-slower) var(--af-ease-out);display:block}
.af-project-card:hover .af-project-card__image{transform:scale(1.05)}
.af-project-card__placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--af-charcoal),var(--af-mid))}
.af-project-card__cat{position:absolute;top:var(--af-space-4);left:var(--af-space-4);background-color:rgba(31,32,34,.85);color:var(--af-rose);backdrop-filter:blur(4px);font-size:var(--af-text-xs);font-weight:500;letter-spacing:var(--af-tracking-wide);text-transform:uppercase;padding:var(--af-space-1) var(--af-space-3);border-radius:var(--af-radius-sm)}
.af-project-card__body{padding:var(--af-space-5) var(--af-space-5) var(--af-space-6);display:flex;flex-direction:column;gap:var(--af-space-2);flex:1}
.af-project-card__title{font-family:var(--af-font-body);font-size:var(--af-text-base);font-weight:600;color:var(--af-white);line-height:var(--af-leading-snug)}
.af-project-card__excerpt{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-normal);flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.af-project-card__cta{font-size:var(--af-text-xs);font-weight:500;letter-spacing:var(--af-tracking-wide);text-transform:uppercase;color:var(--af-rose);margin-top:var(--af-space-2);transition:color var(--af-duration-fast)}
.af-project-card:hover .af-project-card__cta{color:var(--af-rose-light)}
.af-filter-bar{display:flex;flex-wrap:wrap;gap:var(--af-space-2);margin-bottom:var(--af-space-10)}
.af-filter-btn{padding:var(--af-space-2) var(--af-space-5);border-radius:var(--af-radius-sm);border:1px solid var(--af-border);background-color:transparent;color:rgba(255,255,255,0.7);font-size:var(--af-text-sm);cursor:pointer;transition:all var(--af-duration-fast) var(--af-ease)}
.af-filter-btn:hover{border-color:rgba(255,255,255,0.4);color:var(--af-white)}
.af-filter-btn.is-active{background-color:var(--af-rose);border-color:var(--af-rose);color:var(--af-white)}
.af-archive-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--af-space-4);margin-bottom:var(--af-space-10)}
.af-search-field{flex:1;min-width:260px;max-width:400px}
.af-search-input{width:100%;background-color:var(--af-charcoal);border:1px solid var(--af-border);border-radius:var(--af-radius-sm);padding:var(--af-space-3) var(--af-space-4);color:var(--af-white);font-size:var(--af-text-sm);outline:none;transition:border-color var(--af-duration-fast)}
.af-search-input::placeholder{color:rgba(255,255,255,0.35)}
.af-search-input:focus{border-color:var(--af-rose)}
.af-no-results{grid-column:1/-1;text-align:center;padding:var(--af-space-16) 0;color:var(--af-light);display:none}
.af-no-results.is-visible{display:block}
@media(max-width:1024px){.af-projects-grid,.af-project-grid{grid-template-columns:repeat(2,1fr)}.af-projects-grid--featured{grid-template-columns:1fr 1fr}.af-projects-grid--featured .af-project-card:first-child{grid-row:auto}}
@media(max-width:640px){.af-projects-grid,.af-projects-grid--2col,.af-projects-grid--featured,.af-project-grid{grid-template-columns:1fr}}
.af-form-wrap{background-color:var(--af-charcoal);border:1px solid var(--af-border);border-radius:var(--af-radius-md);padding:clamp(2rem,4vw,3.5rem)}
.af-field-group{display:grid;grid-template-columns:1fr 1fr;gap:var(--af-space-5);margin-bottom:var(--af-space-5)}
.af-field-group--full{grid-template-columns:1fr}
.af-field-group--3col{grid-template-columns:repeat(3,1fr)}
@media(max-width:640px){.af-field-group,.af-field-group--3col{grid-template-columns:1fr}}
.af-field{display:flex;flex-direction:column;gap:var(--af-space-2)}
.af-field--full{grid-column:1/-1}
.af-label{font-size:var(--af-text-xs);font-weight:500;letter-spacing:var(--af-tracking-wide);text-transform:uppercase;color:rgba(255,255,255,0.6)}
.af-label--required::after{content:' *';color:var(--af-rose)}
.af-input,.af-textarea,.af-select{background-color:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius-sm);padding:var(--af-space-3) var(--af-space-4);color:var(--af-white);font-family:var(--af-font-body);font-size:var(--af-text-sm);outline:none;transition:border-color var(--af-duration-fast);width:100%}
.af-input::placeholder,.af-textarea::placeholder{color:rgba(255,255,255,0.25)}
.af-input:focus,.af-textarea:focus,.af-select:focus{border-color:var(--af-rose)}
.af-input.is-error,.af-textarea.is-error,.af-select.is-error{border-color:#c0392b}
.af-textarea{resize:vertical;min-height:120px}
.af-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.4)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--af-space-4) center;padding-right:var(--af-space-10);cursor:pointer}
.af-file-upload{position:relative;border:2px dashed var(--af-border);border-radius:var(--af-radius-sm);padding:var(--af-space-8) var(--af-space-6);text-align:center;cursor:pointer;transition:border-color var(--af-duration-fast),background-color var(--af-duration-fast)}
.af-file-upload:hover,.af-file-upload.is-drag-over{border-color:var(--af-rose);background-color:var(--af-rose-subtle)}
.af-file-upload input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.af-file-upload__icon{width:32px;height:32px;color:var(--af-rose);margin-inline:auto;margin-bottom:var(--af-space-3)}
.af-file-upload__label{font-size:var(--af-text-sm);color:var(--af-light)}
.af-file-upload__label strong{color:var(--af-rose)}
.af-file-upload__hint{font-size:var(--af-text-xs);color:rgba(255,255,255,0.35);margin-top:var(--af-space-1)}
.af-file-preview{display:flex;flex-wrap:wrap;gap:var(--af-space-2);margin-top:var(--af-space-3)}
.af-file-preview__item{font-size:var(--af-text-xs);color:var(--af-light);background-color:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius-sm);padding:var(--af-space-1) var(--af-space-3)}
.af-radio-group,.af-checkbox-group{display:flex;flex-wrap:wrap;gap:var(--af-space-3)}
.af-radio-option,.af-checkbox-option{display:flex;align-items:center;gap:var(--af-space-2);cursor:pointer}
.af-radio-option input,.af-checkbox-option input{width:18px;height:18px;accent-color:var(--af-rose);cursor:pointer}
.af-radio-option span,.af-checkbox-option span{font-size:var(--af-text-sm);color:var(--af-light)}
.af-field-error{font-size:var(--af-text-xs);color:#e57373;margin-top:4px;display:block}
.af-input--invalid{border-color:#e57373 !important;}
.af-form-status{padding:var(--af-space-4) var(--af-space-5);border-radius:var(--af-radius-sm);font-size:var(--af-text-sm);font-weight:500;margin-top:var(--af-space-5);display:none}
.af-form-status--success{background-color:rgba(46,160,67,0.12);border:1px solid rgba(46,160,67,0.4);color:#6bcf7f;display:block}
.af-form-status--error{background-color:rgba(192,57,43,0.12);border:1px solid rgba(192,57,43,0.4);color:#e57373;display:block}
.af-form-submit{display:flex;flex-wrap:wrap;align-items:center;gap:var(--af-space-5);margin-top:var(--af-space-8)}
.af-form-note{font-size:var(--af-text-xs);color:rgba(255,255,255,0.4);line-height:var(--af-leading-loose);max-width:320px}
input[type="range"]{width:100%;accent-color:var(--af-rose)}
/* ── Modal / Lightbox ─────────────────────────────────── */
.af-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity var(--af-duration-fast)}
.af-modal--open{pointer-events:all;opacity:1}
.af-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,0.85)}
.af-modal__box{position:relative;z-index:1;max-width:90vw;max-height:90vh;overflow:auto;background:var(--af-dark);border-radius:var(--af-radius);padding:var(--af-space-6)}
.af-modal__close{position:absolute;top:var(--af-space-3);right:var(--af-space-3);background:none;border:none;color:var(--af-white);font-size:1.5rem;cursor:pointer;line-height:1;padding:var(--af-space-2)}
.af-modal__figure{margin:0}
.af-modal__figure img{max-width:80vw;max-height:80vh;object-fit:contain;display:block;border-radius:var(--af-radius-sm)}
.af-modal__figure figcaption{font-size:var(--af-text-sm);color:var(--af-light);margin-top:var(--af-space-3);text-align:center}

/* ── Project Single ───────────────────────────────────── */
.af-project-single{display:grid;grid-template-columns:1fr 320px;gap:clamp(3rem,5vw,5rem);align-items:start}
.af-project-single__content{order:1}
.af-project-single__meta{order:2;position:sticky;top:calc(var(--af-header-h,72px) + var(--af-space-6));display:flex;flex-direction:column;gap:var(--af-space-5)}

/* Spec block */
.af-project-specs{background:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius);padding:var(--af-space-6)}
.af-project-specs__title{font-size:var(--af-text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--af-rose);margin-bottom:var(--af-space-4)}
.af-spec-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--af-space-3);padding-block:var(--af-space-3);border-bottom:1px solid var(--af-border)}
.af-spec-row:last-child{border-bottom:none;padding-bottom:0}
.af-spec-row__label{font-size:var(--af-text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--af-light);white-space:nowrap}
.af-spec-row__value{font-size:var(--af-text-sm);color:var(--af-white);text-align:right}

/* CTA call form */
.af-project-cta{background:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius);padding:var(--af-space-6)}
.af-project-cta__title{font-size:var(--af-text-base);font-weight:700;color:var(--af-white);margin-bottom:var(--af-space-2)}
.af-project-cta__sub{font-size:var(--af-text-sm);color:var(--af-light);line-height:1.6;margin-bottom:var(--af-space-5)}
.af-call-form{display:flex;flex-direction:column;gap:var(--af-space-3)}
.af-call-form__field{display:flex;flex-direction:column;gap:var(--af-space-1)}
.af-call-form__field label{font-size:var(--af-text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--af-light)}
.af-call-form__field input{background:rgba(255,255,255,.06);border:1px solid var(--af-border);border-radius:6px;color:var(--af-white);font-family:inherit;font-size:var(--af-text-sm);padding:.6rem .85rem;width:100%;transition:border-color .15s}
.af-call-form__field input:focus{outline:none;border-color:var(--af-rose)}

/* Gallery */
.af-project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--af-space-3)}
.af-project-gallery__item{display:block;overflow:hidden;border-radius:var(--af-radius-sm);aspect-ratio:4/3}
.af-project-gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform var(--af-duration) var(--af-ease)}
.af-project-gallery__item:hover img{transform:scale(1.04)}

/* Review */
.af-review-block{border-left:3px solid var(--af-rose);padding-left:var(--af-space-5)}
.af-review-block__stars{margin-bottom:var(--af-space-2)}
.af-review-block__text{font-family:var(--af-font-display);font-size:clamp(1.1rem,2vw,1.35rem);font-style:italic;color:var(--af-white);line-height:var(--af-leading-loose)}
.af-review-block__author{font-size:var(--af-text-sm);color:var(--af-light);margin-top:var(--af-space-3)}

@media(max-width:900px){.af-project-single{grid-template-columns:1fr}.af-project-single__meta{position:static}}

/* ── Form Layout ──────────────────────────────────────── */
.af-form-layout{display:grid;grid-template-columns:1fr 320px;gap:clamp(3rem,5vw,6rem);align-items:start}
.af-form-layout__aside{position:sticky;top:calc(var(--af-header-h, 72px) + var(--af-space-6))}
.af-contact-aside{background:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius);padding:var(--af-space-6);display:flex;flex-direction:column;gap:var(--af-space-4)}
.af-contact-aside__title{font-family:var(--af-font-display);font-size:1.25rem;color:var(--af-white)}
.af-contact-aside__text{font-size:var(--af-text-sm);color:var(--af-light)}
.af-contact-aside__phone{font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:600;color:var(--af-white);transition:color var(--af-duration-fast)}
.af-contact-aside__phone:hover{color:var(--af-rose)}
.af-contact-aside__email{font-size:var(--af-text-sm);color:var(--af-light);transition:color var(--af-duration-fast)}
.af-contact-aside__email:hover{color:var(--af-white)}
.af-contact-aside__address{font-size:var(--af-text-sm);color:var(--af-light);font-style:normal;line-height:var(--af-leading-loose)}
.af-contact-aside__hours{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
.af-contact-aside__hours strong{color:var(--af-white);font-weight:500}
@media(max-width:900px){.af-form-layout{grid-template-columns:1fr}.af-form-layout__aside{position:static}}

/* ── Form Tabs ────────────────────────────────────────── */
.af-form-tabs{display:flex;gap:0;border-bottom:1px solid var(--af-border);margin-bottom:var(--af-space-8)}
.af-form-tab{background:none;border:none;border-bottom:2px solid transparent;padding:var(--af-space-3) var(--af-space-5);font-size:var(--af-text-sm);font-weight:500;color:var(--af-light);cursor:pointer;transition:color var(--af-duration-fast),border-color var(--af-duration-fast);margin-bottom:-1px}
.af-form-tab--active{color:var(--af-white);border-bottom-color:var(--af-rose)}
.af-form-tab:hover{color:var(--af-white)}

/* ── Service Intro ────────────────────────────────────── */
.af-service-intro{display:grid;grid-template-columns:1fr auto;gap:var(--af-space-8);align-items:start}
.af-service-intro__actions{display:flex;flex-direction:column;gap:var(--af-space-3);flex-shrink:0}
@media(max-width:768px){.af-service-intro{grid-template-columns:1fr}.af-service-intro__actions{flex-direction:row;flex-wrap:wrap}}

/* ── Split layout ─────────────────────────────────────── */
.af-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,7rem);align-items:start}
.af-split__text{display:flex;flex-direction:column;gap:var(--af-space-5)}
.af-split__img{border-radius:var(--af-radius);overflow:hidden;margin-top:var(--af-space-4)}
.af-split__img img{width:100%;height:auto;display:block;object-fit:cover;border-radius:var(--af-radius)}
.af-pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--af-space-6)}
.af-pillar{display:flex;flex-direction:column;gap:var(--af-space-3)}
.af-pillar__icon{color:var(--af-rose);font-size:1.1rem}
.af-pillar__title{font-size:var(--af-text-base);font-weight:600;color:var(--af-white)}
.af-pillar__text{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
@media(max-width:1100px){.af-pillars-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.af-split{grid-template-columns:1fr}}
@media(max-width:640px){.af-pillars-grid{grid-template-columns:1fr}}

/* ── Process Steps ────────────────────────────────────── */
.af-process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--af-space-6);counter-reset:steps}
.af-step{display:flex;flex-direction:column;gap:var(--af-space-3);padding-top:var(--af-space-5);border-top:1px solid var(--af-border)}
.af-step__num{font-family:var(--af-font-display);font-size:2rem;font-weight:700;color:var(--af-rose);line-height:1}
.af-step__title{font-size:var(--af-text-base);font-weight:600;color:var(--af-white)}
.af-step__text{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
@media(max-width:900px){.af-process-steps{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.af-process-steps{grid-template-columns:1fr}}

/* ── Finishes ─────────────────────────────────────────── */
.af-finishes-grid{display:flex;flex-wrap:wrap;gap:var(--af-space-4)}
.af-finish-swatch{display:flex;align-items:center;gap:var(--af-space-3);background:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius-sm);padding:var(--af-space-3) var(--af-space-4)}
.af-finish-swatch__dot{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,0.15);flex-shrink:0}
.af-finish-swatch__name{font-size:var(--af-text-sm);font-weight:500;color:var(--af-white)}
.af-finish-swatch__ral{font-size:var(--af-text-xs);color:rgba(255,255,255,0.4)}

/* ── Services grid (homepage) ─────────────────────────── */
.af-services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--af-space-5);margin-top:var(--af-space-10)}
.af-service-card{background:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--af-duration) var(--af-ease),border-color var(--af-duration)}
.af-service-card:hover{transform:translateY(-4px);border-color:var(--af-rose)}
.af-service-card__img{aspect-ratio:16/9;overflow:hidden}
.af-service-card__img img{width:100%;height:100%;object-fit:cover;transition:transform var(--af-duration) var(--af-ease)}
.af-service-card:hover .af-service-card__img img{transform:scale(1.05)}
.af-service-card__body{padding:var(--af-space-6);display:flex;flex-direction:column;gap:var(--af-space-3);flex:1}
.af-service-card__body h3{font-family:var(--af-font-display);font-size:1.35rem;font-weight:600;color:var(--af-white)}
.af-service-card__body p{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose);flex:1}
.af-service-card__cta{font-size:var(--af-text-sm);font-weight:600;color:var(--af-rose);margin-top:auto}
@media(max-width:900px){.af-services-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.af-services-grid{grid-template-columns:1fr}}

/* ── Trust Bar ────────────────────────────────────────── */
.af-trust-bar{position:relative;z-index:2;background:var(--af-black);border-bottom:1px solid var(--af-border);padding-block:var(--af-space-5)}
.af-trust-bar__inner{display:flex;align-items:center;justify-content:center;gap:var(--af-space-6);flex-wrap:wrap}
.af-trust-bar__item{display:flex;flex-direction:column;gap:2px;text-align:center}
.af-trust-bar__item strong{font-size:var(--af-text-sm);font-weight:600;color:var(--af-white)}
.af-trust-bar__item span{font-size:var(--af-text-xs);color:rgba(255,255,255,0.5)}
.af-trust-bar__divider{width:1px;height:32px;background:var(--af-border);flex-shrink:0}
@media(max-width:640px){.af-trust-bar__divider{display:none}.af-trust-bar__inner{gap:var(--af-space-5)}}

/* ── Hero note (under CTA buttons) ───────────────────── */
.af-hero__note{font-size:.8rem;color:rgba(255,255,255,.55);text-align:center;margin-top:var(--af-space-3);text-shadow:0 1px 4px rgba(0,0,0,.6)}

/* ── Hero intro block (below hero, above trust bar) ───── */
.af-hero-intro{position:relative;z-index:2;background:#1f2022;padding:clamp(2.5rem,5vw,4rem) 0;text-align:center;border-bottom:1px solid rgba(255,255,255,.06)}
.af-hero-intro__headline{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:700;color:var(--af-white);letter-spacing:-.01em;margin-bottom:var(--af-space-3)}
.af-hero-intro__body{font-size:1rem;line-height:1.75;color:var(--af-light);max-width:600px;margin-inline:auto}

/* ── About page split sections ────────────────────────── */
.af-about-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,5vw,6rem);align-items:center}
.af-about-split--reverse .af-about-split__img{order:2}
.af-about-split--reverse .af-about-split__body{order:1}
.af-about-split__img{border-radius:var(--af-radius);overflow:hidden;aspect-ratio:4/3}
.af-about-split__img img{width:100%;height:100%;object-fit:cover;display:block}
.af-about-split__body{display:flex;flex-direction:column;gap:var(--af-space-5)}
@media(max-width:900px){
  .af-about-split,.af-about-split--reverse .af-about-split__img,.af-about-split--reverse .af-about-split__body{order:unset;grid-template-columns:1fr}
  .af-about-split{display:flex;flex-direction:column}
}

/* ── About badges ─────────────────────────────────────── */
.af-about-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--af-space-2)}
.af-badge{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .85rem;border-radius:var(--af-radius-sm);border:1px solid rgba(222,190,179,.35);color:var(--af-rose);background:rgba(222,190,179,.07)}

/* ── Google Reviews (Trustindex) embed ───────────────── */
.af-reviews-section{padding-bottom:var(--af-space-2)}
.af-reviews-embed{margin-top:var(--af-space-10)}
/* Force Trustindex widget to inherit dark background */
.af-reviews-embed .trustindex-widget,
.af-reviews-embed [id^="trustindex-widget"]{background:transparent!important}
/* Remove any white box-shadow leaking from default widget */
.af-reviews-embed .ti-widget{background:transparent!important;box-shadow:none!important}
.af-reviews-embed .ti-review-item{background:var(--af-dark)!important;border:1px solid var(--af-border)!important;border-radius:var(--af-radius)!important}
.af-reviews-embed .ti-review-body,.af-reviews-embed .ti-reviewer-name{color:var(--af-white)!important}
.af-reviews-embed .ti-review-body p{color:rgba(255,255,255,.75)!important}

/* ── Services hub cards ───────────────────────────────── */
.af-services-hub{display:flex;flex-direction:column;gap:clamp(4rem,7vw,6rem)}
.af-hub-card{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,5vw,6rem);align-items:center}
.af-hub-card--reverse .af-hub-card__img-link{order:2}
.af-hub-card--reverse .af-hub-card__body{order:1}
.af-hub-card__img-link{display:block;border-radius:var(--af-radius);overflow:hidden;aspect-ratio:4/3;text-decoration:none}
.af-hub-card__img{width:100%;height:100%}
.af-hub-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--af-duration-slower) var(--af-ease-out)}
.af-hub-card__img-link:hover img{transform:scale(1.04)}
.af-hub-card__body{display:flex;flex-direction:column;gap:var(--af-space-4)}
.af-hub-card__title{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;color:var(--af-white);line-height:1.2}
.af-hub-card__title a{color:inherit;text-decoration:none;transition:color var(--af-duration-fast)}
.af-hub-card__title a:hover{color:var(--af-rose)}
.af-hub-card__desc{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
@media(max-width:900px){.af-hub-card,.af-hub-card--reverse .af-hub-card__img-link,.af-hub-card--reverse .af-hub-card__body{order:unset;grid-template-columns:1fr}.af-hub-card{display:flex;flex-direction:column}}

/* ── Pergola type sections ────────────────────────────── */
.af-pergola-type{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,5vw,6rem);align-items:center;margin-bottom:var(--af-space-4)}
.af-pergola-type--reverse .af-pergola-type__img{order:2}
.af-pergola-type--reverse .af-pergola-type__body{order:1}
.af-pergola-type__img{border-radius:var(--af-radius);overflow:hidden;aspect-ratio:4/3}
.af-pergola-type__img img{width:100%;height:100%;object-fit:cover;display:block}
.af-pergola-type__body{display:flex;flex-direction:column;gap:var(--af-space-4)}
.af-pergola-type__body h3{font-size:clamp(1.35rem,2.5vw,1.75rem);font-weight:700;color:var(--af-white);margin-top:var(--af-space-1)}
.af-pergola-type__body p{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
.af-type-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--af-space-2)}
.af-type-list li{font-size:var(--af-text-sm);color:var(--af-light);padding-left:var(--af-space-5);position:relative}
.af-type-list li::before{content:'◈';position:absolute;left:0;color:var(--af-rose);font-size:0.7rem;top:3px}
@media(max-width:900px){.af-pergola-type,.af-pergola-type--reverse .af-pergola-type__img,.af-pergola-type--reverse .af-pergola-type__body{grid-template-columns:1fr;order:unset}.af-pergola-type{display:flex;flex-direction:column}}

/* ── Pricing range line ───────────────────────────────── */
.af-pricing-range{font-size:clamp(1.1rem,2vw,1.35rem);color:rgba(255,255,255,0.75);text-align:center;line-height:1.6}
.af-pricing-range strong{color:var(--af-white);font-weight:700}

/* ── Pricing tiers ────────────────────────────────────── */
.af-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--af-space-4)}
.af-pricing-tier{position:relative;background:var(--af-dark);border:1px solid var(--af-border);border-radius:var(--af-radius);padding:var(--af-space-7) var(--af-space-6);display:flex;flex-direction:column;gap:var(--af-space-3)}
.af-pricing-tier--featured{border-color:var(--af-rose);background:rgba(222,190,179,0.06)}
.af-pricing-tier__badge{position:absolute;top:calc(-1 * var(--af-space-4));left:50%;transform:translateX(-50%);background:var(--af-rose);color:var(--af-black);font-size:var(--af-text-xs);font-weight:600;letter-spacing:var(--af-tracking-wide);text-transform:uppercase;padding:var(--af-space-1) var(--af-space-4);border-radius:var(--af-radius-sm);white-space:nowrap}
.af-pricing-tier__from{font-size:var(--af-text-sm);color:rgba(255,255,255,0.5)}
.af-pricing-tier__from strong{font-size:1.75rem;font-weight:700;color:var(--af-white);display:block;line-height:1.2;margin-top:2px}
.af-pricing-tier__name{font-size:1rem;font-weight:600;color:var(--af-white)}
.af-pricing-tier__desc{font-size:var(--af-text-sm);color:var(--af-light);line-height:var(--af-leading-loose)}
@media(max-width:900px){.af-pricing-grid{grid-template-columns:1fr;max-width:480px;margin-inline:auto}}
@media(max-width:640px){.af-pricing-grid{max-width:100%}}
/* ── Footer CTA band ─────────────────────────────────── */
.af-footer-cta {
  background: var(--af-rose);
  padding-block: 4rem;
  text-align: center;
}
.af-footer-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.af-footer-cta__headline {
  font-family: var(--af-font-body);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 700;
  color: var(--af-black);
  line-height: 1.2;
}
.af-footer-cta__sub {
  font-size: 1.05rem;
  color: rgba(31,32,34,0.75);
  margin-bottom: 0.5rem;
}
.af-footer-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 0.5rem;
}
.af-footer-cta .af-btn--primary {
  background: var(--af-black);
  border-color: var(--af-black);
  color: var(--af-white);
}
.af-footer-cta .af-btn--primary:hover {
  background: var(--af-black-soft);
  border-color: var(--af-black-soft);
}
.af-footer-cta .af-btn--ghost {
  border-color: rgba(31,32,34,0.4);
  color: var(--af-black);
}
.af-footer-cta .af-btn--ghost:hover {
  border-color: var(--af-black);
  background: rgba(31,32,34,0.08);
}

/* ── Main footer ─────────────────────────────────────── */
.af-footer {
  background: var(--af-charcoal);
  color: rgba(255,255,255,0.75);
}
.af-footer__body {
  padding-block: 4rem 2rem;
}
.af-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.25fr;
  gap: 2.5rem;
  margin-bottom: 3rem;
}

/* Brand col */
.af-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.af-footer__brand img,
.af-footer__logo {
  height: auto;
  width: auto;
  max-width: 160px;
  max-height: 90px;
  object-fit: contain;
  display: block;
  margin-bottom: 1rem;
}
.af-footer__logo-text {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--af-white);
  margin-bottom: 0.25rem;
}
.af-footer__tagline {
  font-size: 0.8rem;
  line-height: 1.55;
  color: rgba(255,255,255,0.45);
  margin-bottom: 1rem;
  max-width: 220px;
}
.af-footer__socials {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin-top: 0.25rem;
}
.af-footer__social {
  color: rgba(255,255,255,0.6);
  display: inline-flex;
  align-items: center;
  transition: color 0.2s ease, transform 0.2s ease;
}
.af-footer__social:hover {
  color: var(--af-rose);
  transform: translateY(-2px);
}

/* Column headings */
.af-footer__heading {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--af-rose);
  margin-bottom: 1rem;
}

/* Link lists */
.af-footer__links {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.af-footer__links a {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.65);
  transition: color 0.2s ease;
}
.af-footer__links a:hover { color: var(--af-rose); }

/* Contact col */
.af-footer__col p {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.65);
  margin-bottom: 0.5rem;
  line-height: 1.6;
}
.af-footer__col a {
  color: rgba(255,255,255,0.65);
  transition: color 0.2s ease;
}
.af-footer__col a:hover { color: var(--af-rose); }
.af-footer__col strong { color: rgba(255,255,255,0.85); font-weight: 500; }

/* Bottom bar */
.af-footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.8rem;
  color: rgba(255,255,255,0.4);
}
.af-footer__bottom a {
  color: rgba(255,255,255,0.4);
  transition: color 0.2s ease;
}
.af-footer__bottom a:hover { color: rgba(255,255,255,0.7); }

/* Responsive */
@media (max-width: 1024px) {
  .af-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .af-footer__grid { grid-template-columns: 1fr; }
  .af-footer-cta__actions { flex-direction: column; align-items: center; width: 100%; }
  .af-footer-cta__actions .af-btn { width: 100%; max-width: 320px; justify-content: center; }
  .af-footer__bottom { flex-direction: column; text-align: center; }
}
@keyframes af-fade-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes af-fade-in{from{opacity:0}to{opacity:1}}
@keyframes af-scale-in{from{opacity:0;transform:scale(0.94)}to{opacity:1;transform:scale(1)}}
@keyframes af-slide-right{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
.af-reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s var(--af-ease),transform 0.6s var(--af-ease)}
.af-reveal.is-visible{opacity:1;transform:translateY(0)}
.af-reveal--fade{transform:none}
.af-reveal--fade.is-visible{opacity:1}
.af-reveal--scale{transform:scale(0.94)}
.af-reveal--scale.is-visible{transform:scale(1)}
.af-reveal--left{transform:translateX(-24px)}
.af-reveal--left.is-visible{transform:translateX(0)}
.af-reveal--delay-1{transition-delay:0.1s}
.af-reveal--delay-2{transition-delay:0.2s}
.af-reveal--delay-3{transition-delay:0.3s}
.af-reveal--delay-4{transition-delay:0.4s}
.af-reveal--delay-5{transition-delay:0.5s}
@media(prefers-reduced-motion:reduce){.af-reveal{opacity:1;transform:none;transition:none}.af-reveal--scale{transform:none}}
.af-skeleton{background:linear-gradient(90deg,var(--af-charcoal) 25%,var(--af-mid) 50%,var(--af-charcoal) 75%);background-size:200% 100%;animation:af-skeleton-shimmer 1.5s infinite}
@keyframes af-skeleton-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
