

/* ---------- SHARED BUTTON ---------- */
.btn-block{display:inline-block;background:var(--stone);color:var(--white);font-family:var(--sans);font-size:13.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;padding:17px 44px;transition:background .35s}

@media(max-width:980px){
    .foot-grid{grid-template-columns:1fr;gap:44px}
}

/* ---------- PORTFOLIO HERO ---------- */
.ph{position:relative;margin-top:83px;background:var(--near);min-height:51.01vw;
  overflow:hidden}
.ph__img{position:absolute;right:0;top:6.97vw;width:42.86%;height:44.15vw;
  object-fit:cover;object-position:center 46%}
.ph__copy{position:relative;z-index:2;width:31.05%;margin-left:8.08%;
  text-align:center;padding-top:18.73vw}
.ph .label{font-family:var(--sans);font-size:15px;letter-spacing:.30em;
  text-transform:uppercase;line-height:1;color:rgba(16,16,16,.78);margin:0}
.ph h1{font-size:clamp(30px,3.55vw,63px);font-weight:300;line-height:1.06;
  letter-spacing:-.004em;margin:26px 0 0}
.ph h1 .l2{display:block;padding-left:1.4vw}
.ph p{margin:22px 0 0}

/* ---------- OUR APPROACH ---------- */
.ap{background:var(--white);padding:8.15vw 6vw 0;text-align:center}
.ap .label{font-family:var(--sans);font-size:15px;letter-spacing:.30em;
  text-transform:uppercase;line-height:1;color:rgba(16,16,16,.78);
  margin:0;max-width:none}
.ap h2{font-size:clamp(28px,3.15vw,56px);font-weight:300;line-height:1.14;
  letter-spacing:-.004em;margin:32px auto 0;max-width:44em}
.ap p{margin:24px auto 0;max-width:32em}

/* ---------- PROJECT GRID ---------- */
.pg{background:var(--white);padding:11.25vw 0 8.44vw}
.pg__grid{display:grid;grid-template-columns:27.44% 27.67%;column-gap:7.65%;
  justify-content:center;align-items:start}
.pg__col{display:block}
.pg__card{display:block;color:inherit}
.pg__card img{width:100%;height:100%;object-fit:cover;display:block}
.pg__card--a img{aspect-ratio:629/787}
.pg__card--b img{aspect-ratio:635/927}
.pg__card--c img{aspect-ratio:629/787}
.pg__card--d img{aspect-ratio:635/780}
.pg__col--r{padding-top:5.79vw}
.pg__card--c{display:block;margin-top:6.53vw}
.pg__card--d{display:block;margin-top:6.66vw}
/* extended grid, cards 5-10, added August 2026 */
.pg__card--e img{aspect-ratio:0.75}
.pg__card--g img{aspect-ratio:0.72}
.pg__card--i img{aspect-ratio:0.68}
.pg__card--f img{aspect-ratio:0.7;object-position:center 35%}
.pg__card--h img{aspect-ratio:0.685}
.pg__card--j img{aspect-ratio:0.8;object-position:center 20%}
.pg__card--e{display:block;margin-top:6.6vw}
.pg__card--g{display:block;margin-top:6.6vw}
.pg__card--i{display:block;margin-top:6.6vw}
.pg__card--f{display:block;margin-top:6.6vw}
.pg__card--h{display:block;margin-top:6.6vw}
.pg__card--j{display:block;margin-top:6.6vw}
.pg__cat{display:block;font-family:var(--sans);font-size:15px;letter-spacing:.14em;
  text-transform:uppercase;line-height:1;color:rgba(16,16,16,.78);margin:28px 0 0}
.pg__name{font-size:clamp(22px,1.97vw,35px);font-weight:300;line-height:1.1;
  margin:22px 0 0}
.pg__link{display:inline-block;margin-top:20px;font-size:18px;color:var(--gold);
  transition:color .3s ease}
.pg__card:hover .pg__link{color:var(--ink)}
.pg__card:hover img{opacity:.9}
.pg__card img{transition:opacity .4s ease}

/* ---------- KIND WORDS ---------- */
.kw{position:relative;background:var(--near);padding:12.94vw 0 9.56vw}
.kw__inner{width:62.5%;margin-left:20.7%;position:relative;min-height:25.90vw}
.kw__mark{position:absolute;left:-1.9%;top:-.4vw;font-family:var(--serif);
  font-weight:300;font-size:3.6vw;line-height:1;color:var(--stone)}
.kw .label{font-family:var(--sans);font-size:15px;letter-spacing:.22em;
  text-transform:uppercase;line-height:1;color:rgba(16,16,16,.78);
  margin:0 0 0 2.6%}
.kw__slide{opacity:0;visibility:hidden;position:absolute;inset:auto 0 auto 0;
  transition:opacity .8s ease}
.kw__slide.is-on{opacity:1;visibility:visible;position:relative}
.kw blockquote{font-family:var(--serif);font-weight:300;
  font-size:clamp(24px,2.87vw,51px);line-height:1.19;letter-spacing:-.004em;
  margin:49px 0 0;color:var(--ink)}
.kw__by{display:flex;align-items:center;margin-top:7.6vw}
.kw__av{width:7.2%;aspect-ratio:1;min-width:64px;border-radius:50%;overflow:hidden;
  flex:none;background:var(--stone)}
.kw__av img{width:100%;height:100%;object-fit:cover}
.kw__name{margin-left:3.1%;font-size:18px;line-height:1.42;color:rgba(16,16,16,.78)}
.kw__nav{position:absolute;right:-6.5%;top:4.9vw;display:flex;flex-direction:column;
  gap:1.6vw}
.kw__btn{width:4.05vw;height:4.05vw;min-width:48px;min-height:48px;
  border:1px solid #C9C4BC;border-radius:50%;background:none;padding:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:border-color .3s}
.kw__btn svg{width:44%;height:auto;display:block}
.kw__btn svg path{stroke:#A8A29A;transition:stroke .3s}
.kw__btn:hover{border-color:var(--ink)}
.kw__btn:hover svg path{stroke:var(--ink)}

/* ---------- PORTFOLIO HIGHLIGHTS ---------- */
.hl{background:var(--white);padding:11.64vw 0 0;text-align:center}
.hl .label{font-family:var(--sans);font-size:15px;letter-spacing:.22em;
  text-transform:uppercase;line-height:1;color:rgba(16,16,16,.78);margin:0}
.hl__grid{display:grid;grid-template-columns:24.80% 24.69%;column-gap:3.20%;
  justify-content:center;margin-top:3.15vw}
.hl__col{display:flex;flex-direction:column;gap:3.1vw}
.hl__col img{width:100%;object-fit:cover;display:block}
.hl__col--l img:nth-of-type(1){aspect-ratio:441/660;object-position:center 50%}
.hl__col--l img:nth-of-type(2){aspect-ratio:441/442;object-position:center 50%}
.hl__col--l img:nth-of-type(3){aspect-ratio:441/441;object-position:center 46%}
.hl__col--r img:nth-of-type(1){aspect-ratio:439/627;object-position:center 50%}
.hl__col--r img:nth-of-type(2){aspect-ratio:439/353;object-position:center 50%}
.hl__col--r img:nth-of-type(3){aspect-ratio:439/352;object-position:center 50%}
.hl__col--r{padding-top:.11vw}

/* ---------- CONTACT ---------- */
.pc{background:var(--white);padding:13.76vw 0 0.16vw}
.pc__inner{margin-left:20.70%;width:56.0%}
.pc .label{font-family:var(--sans);font-size:15px;letter-spacing:.22em;
  text-transform:uppercase;line-height:1;color:rgba(16,16,16,.78);
  margin:0;max-width:none}
.pc h2{font-size:clamp(32px,4.30vw,76px);font-weight:300;line-height:1.06;
  text-transform:uppercase;letter-spacing:-.006em;margin:63px 0 0}
.pc h2 em{font-style:italic;text-transform:none}
.pc__row{display:flex;align-items:flex-start;margin-top:30px}
.pc__row p{width:76.4%;flex:none;margin:0;max-width:none}
.pc__link{display:inline-block;margin-left:13.69%;margin-top:34px;flex:none;
  white-space:nowrap;font-family:var(--serif);
  font-style:italic;font-weight:300;font-size:clamp(18px,1.35vw,24px);
  color:#494949;border-bottom:2px solid #C4C4C4;padding-bottom:11px;
  transition:color .3s ease,border-color .3s ease}
.pc__link:hover{color:var(--ink);border-color:var(--gold)}

a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

@media(max-width:980px){
  .ph{min-height:0;margin-top:82px}
  .ph__img{position:relative;right:auto;top:auto;width:100%;height:62vw}
  .ph__copy{width:auto;margin:0;padding:44px 6vw 56px}
  .ap{padding:64px 6vw 0}
  .ap h2 br,.ap p br,.ph h1 br{display:none}
  .pg{padding-top:64px}
  .pg__grid{grid-template-columns:1fr;row-gap:48px;margin:0 6vw}
  .pg__card--c,.pg__card--d{margin-top:48px}
  .pg__col,.pg__col--r{display:block;padding-top:0}
  .kw{padding:64px 0 0}
  .kw__inner{width:auto;margin:0 6vw}
  .kw__mark{left:0;top:-8px}
  .kw__nav{position:static;flex-direction:row;margin-top:28px;gap:14px}
  .kw blockquote br{display:none}
  .hl{padding-top:64px}
  .hl__grid{grid-template-columns:1fr;margin:24px 6vw 0}
  .hl__col{gap:20px}
  .hl__col--r{padding-top:20px}
  .pc{padding:64px 0 40px}
  .pc__inner{margin:0 6vw;width:auto}
  .pc__row{display:block}
  .pc__row p{width:auto}
  .pc__link{margin-left:0;margin-top:36px;white-space:normal}
  .kw__inner{min-height:0}
  .kw__slide{position:relative;inset:auto;display:none}
  .kw__slide.is-on{display:block}
}
.foot-adr{margin:0 0 14px;font-style:normal;line-height:1.7}

/* POSITION: pin the chat launcher to the lower right, above page content, clear of the
   iPhone home indicator. Inset only, so the widget's own sizing is untouched.
   The vendor dashboard setting takes precedence; this is the fallback. Safe to delete. */
[id*="webchat" i],[class*="webchat" i],
[id*="apigateway" i],[class*="apigateway" i]{
  left:auto !important;
  right:calc(18px + env(safe-area-inset-right, 0px)) !important;
  bottom:calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  z-index:55 !important;
}