:root{--tpg-ink:#0a2b2f;--tpg-ink-700:#0f3a40;--tpg-teal:#1f8a8a;--tpg-teal-ink:#177878;--tpg-teal-light:#5bc0be;--tpg-copper:#c8743a;--tpg-copper-deep:#a85a25;--tpg-copper-light:#e9b48a;--tpg-cream:#faf6ef;--tpg-white:#fff;--tpg-charcoal:#1e2528;--tpg-charcoal-soft:#4a5459;--tpg-sage:#dce8e3;--tpg-line:#e7e1d6;--tpg-font-display:"Instrument Serif","Iowan Old Style","Palatino Linotype",Georgia,"Times New Roman",serif;--tpg-font-body:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--tpg-radius-sm:12px;--tpg-radius:22px;--tpg-radius-lg:26px;--tpg-radius-pill:999px;--tpg-shadow-card:0 1px 2px rgba(10,43,47,.05),0 16px 36px -18px rgba(10,43,47,.18);--tpg-shadow-lift:0 2px 4px rgba(10,43,47,.07),0 28px 56px -22px rgba(10,43,47,.28);--tpg-ease:cubic-bezier(0.22,0.61,0.36,1);--tpg-transition-fast:160ms var(--tpg-ease);--tpg-transition:220ms var(--tpg-ease);--tpg-wide:1240px;--tpg-content:740px;--tpg-gutter:clamp(1.25rem,4vw,2.5rem);--tpg-section:clamp(3.5rem,8vw,7rem);--tpg-header-h:76px;--tpg-mobilebar-h:64px}@font-face{ascent-override:92%;descent-override:22%;font-family:"Instrument Serif Fallback";line-gap-override:0%;size-adjust:96%;src:local("Georgia"),local("Times New Roman")}@font-face{ascent-override:94%;descent-override:24%;font-family:DM Sans Fallback;line-gap-override:0%;size-adjust:100%;src:local("Arial"),local("Helvetica Neue")}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}body{background:var(--tpg-cream);color:var(--tpg-charcoal);font-family:var(--tpg-font-body);font-size:1.0625rem;line-height:1.65;margin:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture,svg,video{display:block;height:auto;max-width:100%}img[width][height]{height:auto}h1,h2,h3,h4,h5,h6{color:var(--tpg-ink);font-family:var(--tpg-font-display);font-weight:400;letter-spacing:-.005em;line-height:1.1;margin:0 0 .5em}h1{font-size:clamp(2rem,4.2vw,3.25rem)}h2{font-size:clamp(1.5rem,2.6vw,2.25rem)}h3{font-size:clamp(1.15rem,1.6vw,1.4rem)}p{margin:0 0 1rem}a{color:var(--tpg-teal-ink);text-underline-offset:.18em;transition:color var(--tpg-transition-fast)}a:focus-visible,a:hover{color:var(--tpg-copper-deep)}b,strong{font-weight:700}ol,ul{margin:0 0 1rem;padding-left:1.25rem}hr{border:0;border-top:1px solid var(--tpg-line);margin:2rem 0}blockquote{border-left:3px solid var(--tpg-copper);color:var(--tpg-ink);font-family:var(--tpg-font-display);font-size:1.4rem;line-height:1.3;margin:0;padding-left:1.25rem}:focus-visible{border-radius:3px;outline:2px solid var(--tpg-copper-deep);outline-offset:2px}.tpg-footer :focus-visible,.tpg-hero :focus-visible,.tpg-on-dark :focus-visible{outline-color:var(--tpg-teal-light)}.screen-reader-text{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.skip-link{background:var(--tpg-ink);border-radius:0 0 var(--tpg-radius-sm) 0;color:#fff;font-weight:700;left:-9999px;padding:.75rem 1.25rem;position:absolute;text-decoration:none;top:0;z-index:100000}.skip-link:focus{color:#fff;left:0}.tpg-placeholder-note{background:#fdf3e7;border:1px dashed var(--tpg-copper);border-radius:var(--tpg-radius-sm);color:#7a4a12;font-size:.875rem;margin:.75rem 0;padding:.6rem .9rem}.tpg-placeholder{background:var(--tpg-sage);height:auto;width:100%}.tpg-hidden{display:none!important}.tpg-visually-hidden-until-lg{display:none}@media (min-width:1024px){.tpg-visually-hidden-until-lg{display:block}}.tpg-container{margin-inline:auto;max-width:var(--tpg-wide);padding-inline:var(--tpg-gutter);width:100%}.tpg-container--narrow{max-width:900px}.tpg-container--content{max-width:var(--tpg-content)}.tpg-section{padding-block:var(--tpg-section)}.tpg-section--tight{padding-block:clamp(2.5rem,5vw,4rem)}.tpg-section--sage{background:var(--tpg-sage)}.tpg-section--cream{background:var(--tpg-cream)}.tpg-section--white{background:#fff}.tpg-section--ink{background:var(--tpg-ink);color:var(--tpg-cream)}.tpg-section--ink h1,.tpg-section--ink h2,.tpg-section--ink h3{color:#fff}.tpg-section--ink a{color:var(--tpg-teal-light)}.tpg-section-head{margin-bottom:clamp(2rem,4vw,3rem);max-width:720px}.tpg-section-head--center{margin-inline:auto;text-align:center}.tpg-eyebrow{align-items:center;color:var(--tpg-copper-deep);display:inline-flex;font-family:var(--tpg-font-body);font-size:.8125rem;font-weight:700;gap:.5rem;letter-spacing:.12em;margin:0 0 .75rem;text-transform:uppercase}.tpg-eyebrow:before{background:var(--tpg-copper);content:"";height:2px;width:26px}.tpg-section--ink .tpg-eyebrow{color:var(--tpg-copper-light)}.tpg-section--ink .tpg-eyebrow:before{background:var(--tpg-copper-light)}.tpg-lede{color:var(--tpg-charcoal-soft);font-size:1.1875rem}.tpg-section--ink .tpg-lede{color:hsla(38,52%,96%,.82)}.tpg-grid{display:grid;gap:clamp(1rem,2.5vw,1.75rem)}.tpg-grid--2,.tpg-grid--3{grid-template-columns:1fr}.tpg-grid--4{grid-template-columns:repeat(2,1fr)}@media (min-width:640px){.tpg-grid--2,.tpg-grid--3,.tpg-grid--4{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.tpg-grid--2{grid-template-columns:repeat(2,1fr)}.tpg-grid--3{grid-template-columns:repeat(3,1fr)}.tpg-grid--4{grid-template-columns:repeat(4,1fr)}}.tpg-split{align-items:center;display:grid;gap:clamp(1.5rem,4vw,3.5rem)}@media (min-width:900px){.tpg-split{grid-template-columns:1fr 1fr}.tpg-split--media-right .tpg-split__media{order:2}}.tpg-bento{display:grid;gap:clamp(.85rem,2vw,1.4rem);grid-template-columns:repeat(2,1fr)}@media (min-width:768px){.tpg-bento{grid-auto-rows:minmax(160px,auto);grid-template-columns:repeat(4,1fr)}.tpg-bento__tile--wide{grid-column:span 2}.tpg-bento__tile--tall{grid-row:span 2}.tpg-bento__tile--big{grid-column:span 2;grid-row:span 2}}.tpg-wave{color:var(--tpg-cream);display:block;height:48px;margin-bottom:-1px;width:100%}.tpg-wave--sage{color:var(--tpg-sage)}.tpg-hairline{background:linear-gradient(90deg,transparent,var(--tpg-copper),transparent);border:0;height:1px;margin-block:clamp(2rem,5vw,3.5rem);opacity:.5}.tpg-stack>*+*{margin-top:1rem}.tpg-cluster{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.tpg-reveal{opacity:0;transform:translateY(14px);transition:opacity .5s var(--tpg-ease),transform .5s var(--tpg-ease)}.tpg-reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.tpg-reveal{opacity:1;transform:none}}.tpg-prose>*+*{margin-top:1.15rem}.tpg-prose h2{margin-top:2.25rem}.tpg-prose h3{margin-top:1.75rem}.tpg-prose img{border-radius:var(--tpg-radius)}.tpg-btn{align-items:center;border:1px solid transparent;border-radius:var(--tpg-radius-pill);cursor:pointer;display:inline-flex;font-family:var(--tpg-font-body);font-size:1rem;font-weight:700;gap:.55rem;justify-content:center;line-height:1.2;padding:.85rem 1.5rem;text-decoration:none;transition:background var(--tpg-transition-fast),color var(--tpg-transition-fast),transform var(--tpg-transition-fast),box-shadow var(--tpg-transition-fast)}.tpg-btn svg{flex:none;height:20px;width:20px}.tpg-btn--call,.tpg-btn--primary{background:var(--tpg-copper-deep);box-shadow:0 10px 22px -12px rgba(168,90,37,.85);color:#fff}.tpg-btn--call:focus-visible,.tpg-btn--call:hover,.tpg-btn--primary:focus-visible,.tpg-btn--primary:hover{background:var(--tpg-ink);color:#fff;transform:translateY(-2px)}.tpg-btn--secondary{background:transparent;border-color:var(--tpg-ink);color:var(--tpg-ink)}.tpg-btn--secondary:focus-visible,.tpg-btn--secondary:hover{background:var(--tpg-ink);color:#fff}.tpg-btn--ghost-light{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.5);color:#fff}.tpg-btn--ghost-light:focus-visible,.tpg-btn--ghost-light:hover{background:#fff;color:var(--tpg-ink)}.tpg-btn--text{color:var(--tpg-teal-ink);padding-inline:.25rem}.tpg-btn--block{width:100%}.tpg-btn--lg{font-size:1.0625rem;padding:1rem 1.85rem}.tpg-card{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);box-shadow:var(--tpg-shadow-card);display:flex;flex-direction:column;height:100%;overflow:hidden;transition:transform var(--tpg-transition),box-shadow var(--tpg-transition)}.tpg-card:hover{box-shadow:var(--tpg-shadow-lift);transform:translateY(-3px)}.tpg-card__media{aspect-ratio:16/10;background:var(--tpg-sage);position:relative}.tpg-card__media img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.tpg-card__body{display:flex;flex:1;flex-direction:column;padding:clamp(1.1rem,2vw,1.6rem)}.tpg-card__title{font-size:1.25rem;margin:0 0 .4rem}.tpg-card__title a{color:inherit;text-decoration:none}.tpg-card__title a:hover{color:var(--tpg-copper-deep)}.tpg-card__text{color:var(--tpg-charcoal-soft);font-size:.9875rem;margin:0}.tpg-card__foot{margin-top:auto;padding-top:1rem}.tpg-card--ink{background:var(--tpg-ink);border-color:hsla(0,0%,100%,.12);color:var(--tpg-cream)}.tpg-card--ink .tpg-card__text,.tpg-card--ink .tpg-card__title{color:#fff}.tpg-bento__tile{position:relative}.tpg-bento__tile .tpg-card__icon{background:var(--tpg-sage);border-radius:14px;color:var(--tpg-teal-ink);display:grid;height:46px;margin-bottom:.9rem;place-items:center;width:46px}.tpg-bento__tile .tpg-card__icon svg{height:26px;width:26px}.tpg-bento__tile--big .tpg-card__title{font-size:1.6rem}.tpg-badge{align-items:center;border-radius:var(--tpg-radius-pill);display:inline-flex;font-size:.8125rem;font-weight:700;gap:.4rem;letter-spacing:.01em;line-height:1;padding:.35rem .75rem}.tpg-badge--copper{background:var(--tpg-copper-deep);color:#fff}.tpg-badge--sage{background:var(--tpg-sage);color:var(--tpg-ink)}.tpg-badge--outline{background:transparent;border:1px solid var(--tpg-line);color:var(--tpg-ink)}.tpg-badge--on-dark{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);color:#fff}.tpg-chip{align-items:center;background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius-pill);color:var(--tpg-ink);display:inline-flex;font-size:.9375rem;font-weight:500;gap:.4rem;padding:.55rem 1rem;text-decoration:none;transition:border-color var(--tpg-transition-fast),color var(--tpg-transition-fast),background var(--tpg-transition-fast)}.tpg-chip:hover{background:var(--tpg-ink);border-color:var(--tpg-ink);color:#fff}.tpg-chip svg{height:16px;width:16px}.tpg-stars{color:var(--tpg-copper);display:inline-flex;gap:2px;vertical-align:middle}.tpg-stars--light{color:var(--tpg-copper-light)}.tpg-stars svg{display:block}.tpg-rating-badge{align-items:center;background:hsla(0,0%,100%,.96);border-radius:var(--tpg-radius-pill);box-shadow:var(--tpg-shadow-card);color:var(--tpg-ink);display:inline-flex;gap:.75rem;padding:.6rem 1rem;text-decoration:none}.tpg-rating-badge__score{color:var(--tpg-ink);font-family:var(--tpg-font-display);font-size:1.6rem;line-height:1}.tpg-rating-badge__meta{display:flex;flex-direction:column;line-height:1.25}.tpg-rating-badge__meta small{color:var(--tpg-charcoal-soft);font-size:.75rem}.tpg-review{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);display:flex;flex-direction:column;gap:.85rem;height:100%;padding:clamp(1.25rem,2.5vw,1.75rem)}.tpg-review__text{color:var(--tpg-ink);font-family:var(--tpg-font-display);font-size:1.2rem;line-height:1.45;margin:0}.tpg-review__author{font-size:.9375rem;font-weight:700;margin:auto 0 0}.tpg-review__source{color:var(--tpg-charcoal-soft);display:block;font-size:.8125rem;font-weight:400}.tpg-review__tag{align-self:flex-start;background:var(--tpg-copper);border-radius:var(--tpg-radius-pill);color:#fff;font-size:.6875rem;font-weight:700;letter-spacing:.06em;padding:.2rem .55rem;text-transform:uppercase}.tpg-breadcrumb{font-size:.875rem;padding-block:.85rem}.tpg-breadcrumb__list{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.tpg-breadcrumb__item:after{color:var(--tpg-charcoal-soft);content:"/";margin-left:.4rem;opacity:.5}.tpg-breadcrumb__item:last-child:after{content:"";margin:0}.tpg-breadcrumb__item--current{color:var(--tpg-charcoal-soft)}.tpg-hero .tpg-breadcrumb__list a,.tpg-section--ink .tpg-breadcrumb__list a{color:var(--tpg-teal-light)}.tpg-field{margin-bottom:1rem}.tpg-field label,.tpg-field__label{color:var(--tpg-ink);display:block;font-size:.875rem;font-weight:700;margin-bottom:.35rem}.tpg-field__req{color:var(--tpg-copper-deep)}.tpg-input,.tpg-select,.tpg-textarea{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius-sm);color:var(--tpg-charcoal);font-family:inherit;font-size:1rem;padding:.8rem .95rem;transition:border-color var(--tpg-transition-fast),box-shadow var(--tpg-transition-fast);width:100%}.tpg-input:focus,.tpg-select:focus,.tpg-textarea:focus{border-color:var(--tpg-teal);box-shadow:0 0 0 3px rgba(31,138,138,.18);outline:none}.tpg-textarea{min-height:104px;resize:vertical}.tpg-field--error .tpg-input,.tpg-field--error .tpg-select,.tpg-field--error .tpg-textarea{border-color:#b3261e}.tpg-field__error{color:#b3261e;font-size:.8125rem;font-weight:500;margin:.35rem 0 0}.tpg-check{align-items:flex-start;color:var(--tpg-charcoal-soft);display:flex;font-size:.875rem;gap:.65rem;line-height:1.5}.tpg-check input[type=checkbox]{accent-color:var(--tpg-teal-ink);flex:none;height:1.15rem;margin-top:.15rem;width:1.15rem}.tpg-honeypot{height:1px;left:-9999px!important;overflow:hidden;position:absolute!important;width:1px}.tpg-form__actions{margin-top:1.25rem}.tpg-form__status{font-size:.9375rem;margin-top:.85rem}.tpg-form__status--error{color:#b3261e}.tpg-form__status--success{color:var(--tpg-teal-ink);font-weight:700}.tpg-form__legal{color:var(--tpg-charcoal-soft);font-size:.75rem;margin-top:.85rem}.tpg-form__legal a{color:inherit}.tpg-quote-card{background:#fff;border-radius:var(--tpg-radius-lg);border-top:4px solid var(--tpg-copper);box-shadow:var(--tpg-shadow-lift);padding:clamp(1.25rem,3vw,2rem)}.tpg-quote-card__title{font-size:1.5rem;margin:0 0 .25rem}.tpg-quote-card__sub{color:var(--tpg-charcoal-soft);font-size:.9375rem;margin:0 0 1.25rem}.tpg-text-widget{align-items:flex-end;bottom:clamp(1rem,3vw,1.75rem);display:flex;flex-direction:column;gap:.5rem;position:fixed;right:clamp(1rem,3vw,1.75rem);z-index:9000}.tpg-text-widget__bubble{background:#fff;border:1px solid var(--tpg-line);border-radius:16px 16px 4px 16px;box-shadow:var(--tpg-shadow-lift);color:var(--tpg-ink);font-size:.85rem;max-width:260px;padding:.7rem .9rem}.tpg-text-widget__bubble strong{display:block}.tpg-text-widget__bubble small{color:var(--tpg-charcoal-soft)}.tpg-text-widget__btn{align-items:center;background:var(--tpg-ink);border-radius:var(--tpg-radius-pill);box-shadow:var(--tpg-shadow-lift);color:#fff;display:inline-flex;font-size:.95rem;font-weight:700;gap:.5rem;padding:.8rem 1.15rem;text-decoration:none}.tpg-text-widget__btn:focus-visible,.tpg-text-widget__btn:hover{background:var(--tpg-copper-deep);color:#fff}.tpg-text-widget__btn svg{height:20px;width:20px}@media (max-width:899px){.tpg-text-widget{display:none}}.tpg-mobilebar{background:#fff;border-top:1px solid var(--tpg-line);bottom:0;box-shadow:0 -8px 24px -16px rgba(10,43,47,.4);display:grid;grid-template-columns:1fr 1fr 1fr;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;z-index:9500}.tpg-mobilebar__item{align-items:center;background:transparent;border:0;color:var(--tpg-ink);cursor:pointer;display:flex;flex-direction:column;font-size:.6875rem;font-weight:700;gap:.15rem;justify-content:center;letter-spacing:.03em;min-height:var(--tpg-mobilebar-h);padding:.4rem;text-decoration:none;text-transform:uppercase}.tpg-mobilebar__item svg{height:22px;width:22px}.tpg-mobilebar__item--call{background:var(--tpg-copper-deep);color:#fff}.tpg-mobilebar__item--call:focus-visible,.tpg-mobilebar__item--call:hover{background:var(--tpg-ink);color:#fff}@media (min-width:900px){.tpg-mobilebar{display:none}}@media (max-width:899px){body{padding-bottom:calc(var(--tpg-mobilebar-h) + env(safe-area-inset-bottom))}}.tpg-accordion{display:grid;gap:.75rem}.tpg-accordion__item{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);overflow:hidden}.tpg-accordion__heading{margin:0}.tpg-accordion__trigger{align-items:center;background:transparent;border:0;color:var(--tpg-ink);cursor:pointer;display:flex;font-family:var(--tpg-font-body);font-size:1.0625rem;font-weight:700;gap:1rem;justify-content:space-between;padding:1.1rem 1.35rem;text-align:left;width:100%}.tpg-accordion__trigger:hover{color:var(--tpg-copper-deep)}.tpg-accordion__icon{color:var(--tpg-teal-ink);flex:none;height:22px;transition:transform var(--tpg-transition-fast);width:22px}.tpg-accordion__trigger[aria-expanded=true] .tpg-accordion__icon{transform:rotate(45deg)}.tpg-accordion__panel{color:var(--tpg-charcoal-soft);padding:0 1.35rem 1.2rem}.tpg-accordion__panel[hidden]{display:none}.tpg-process{counter-reset:tpg-step;display:grid;gap:1.25rem}@media (min-width:900px){.tpg-process{grid-template-columns:repeat(4,1fr)}}.tpg-process__step{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);padding:1.5rem 1.25rem 1.35rem;position:relative}.tpg-process__step:before{color:var(--tpg-copper);content:counter(tpg-step,decimal-leading-zero);counter-increment:tpg-step;display:block;font-family:var(--tpg-font-display);font-size:2.1rem;line-height:1;margin-bottom:.6rem}.tpg-process__step h3{font-size:1.2rem;margin:0 0 .35rem}.tpg-process__step p{color:var(--tpg-charcoal-soft);font-size:.9375rem;margin:0}.tpg-stat__num{color:var(--tpg-copper);display:block;font-family:var(--tpg-font-display);font-size:clamp(2.25rem,5vw,3.4rem);line-height:1}.tpg-section--ink .tpg-stat__num{color:var(--tpg-copper-light)}.tpg-stat__label{color:var(--tpg-charcoal-soft);display:block;font-size:.875rem;font-weight:700;letter-spacing:.03em;margin-top:.35rem;text-transform:uppercase}.tpg-section--ink .tpg-stat__label{color:hsla(38,52%,96%,.75)}.tpg-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}.tpg-tab{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius-pill);color:var(--tpg-ink);cursor:pointer;font-size:.9375rem;font-weight:500;padding:.5rem 1rem}.tpg-tab[aria-selected=true]{background:var(--tpg-ink);border-color:var(--tpg-ink);color:#fff}.tpg-ba{aspect-ratio:4/3;background:var(--tpg-sage);border-radius:var(--tpg-radius);overflow:hidden;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tpg-ba img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.tpg-ba__after{clip-path:inset(0 0 0 50%)}.tpg-ba__range{cursor:ew-resize;height:100%;inset:auto 0 0;margin:0;opacity:0;position:absolute;width:100%}.tpg-ba__divider{background:var(--tpg-copper);bottom:0;left:50%;top:0;width:3px}.tpg-ba__divider,.tpg-ba__tag{pointer-events:none;position:absolute}.tpg-ba__tag{background:rgba(10,43,47,.85);border-radius:var(--tpg-radius-pill);bottom:.75rem;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.05em;padding:.25rem .6rem;text-transform:uppercase}.tpg-ba__tag--before{left:.75rem}.tpg-ba__tag--after{right:.75rem}.tpg-pagination{margin-top:2.5rem}.tpg-pagination .page-numbers{align-items:center;background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius-sm);color:var(--tpg-ink);display:inline-flex;font-weight:700;height:2.5rem;justify-content:center;margin:0 .2rem;min-width:2.5rem;padding:0 .5rem;text-decoration:none}.tpg-pagination .page-numbers.current,.tpg-pagination .page-numbers:hover{background:var(--tpg-ink);border-color:var(--tpg-ink);color:#fff}.tpg-notice{background:var(--tpg-sage);border-radius:var(--tpg-radius);color:var(--tpg-ink);padding:1.25rem 1.5rem}.tpg-notice--empty{background:#fff;border:1px dashed var(--tpg-line);color:var(--tpg-charcoal-soft)}#content:focus{outline:none}.tpg-header{background:var(--tpg-cream);border-bottom:1px solid transparent;position:sticky;top:0;transition:background var(--tpg-transition),border-color var(--tpg-transition),box-shadow var(--tpg-transition);z-index:8000}.tpg-header__inner{align-items:center;display:flex;gap:1rem;min-height:var(--tpg-header-h)}.tpg-header--over-hero:not(.is-scrolled){background:transparent;border-color:transparent;left:0;position:absolute;right:0;top:0}.tpg-header--solid,.tpg-header.is-scrolled{background:var(--tpg-ink);border-color:hsla(0,0%,100%,.1);box-shadow:0 10px 28px -20px rgba(10,43,47,.6)}.tpg-header--over-hero:not(.is-scrolled) .tpg-brand__name,.tpg-header--solid .tpg-brand__name,.tpg-header.is-scrolled .tpg-brand__name{color:#fff}.tpg-header--solid .tpg-nav a,.tpg-header.is-scrolled .tpg-nav a{color:hsla(0,0%,100%,.9)}.tpg-header--over-hero:not(.is-scrolled) .tpg-nav a{color:#fff}.tpg-brand{align-items:center;display:inline-flex;gap:.65rem;margin-right:auto;text-decoration:none}.tpg-brand__mark{background:var(--tpg-copper-deep);border-radius:12px;color:#fff;display:grid;flex:none;height:42px;place-items:center;width:42px}.tpg-brand__mark svg{height:24px;width:24px}.tpg-brand__name{color:var(--tpg-ink);display:flex;flex-direction:column;line-height:1.1}.tpg-brand__name strong{font-family:var(--tpg-font-display);font-size:1.25rem;font-weight:400}.tpg-brand__name small{color:var(--tpg-copper);font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.tpg-nav{display:none}.tpg-nav__list{align-items:center;display:flex;gap:.25rem;list-style:none;margin:0;padding:0}.tpg-nav a{align-items:center;border-radius:var(--tpg-radius-sm);color:var(--tpg-ink);display:inline-flex;font-size:.9375rem;font-weight:500;gap:.3rem;padding:.55rem .75rem;text-decoration:none}.tpg-nav a:focus-visible,.tpg-nav a:hover{background:hsla(0,0%,100%,.08);color:var(--tpg-copper)}.tpg-nav__toggle{background:transparent;border:0;cursor:pointer;font:inherit}.tpg-nav__toggle svg{height:16px;transition:transform var(--tpg-transition-fast);width:16px}.tpg-nav__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.tpg-nav .sub-menu,.tpg-nav .tpg-nav__sub{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);box-shadow:var(--tpg-shadow-lift);display:none;left:0;list-style:none;margin:0;min-width:240px;padding:.5rem;position:absolute;top:calc(100% + 6px);z-index:30}.tpg-nav .menu-item-has-children{position:relative}.tpg-nav__item--open>.sub-menu,.tpg-nav__item--open>.tpg-nav__sub{display:block}.tpg-nav .sub-menu a,.tpg-nav .tpg-nav__sub a{border-radius:8px;color:var(--tpg-ink)!important;display:block;padding:.5rem .7rem}.tpg-nav .sub-menu a:hover,.tpg-nav .tpg-nav__sub a:hover{background:var(--tpg-sage)}.tpg-header__actions{align-items:center;display:flex;gap:.75rem}.tpg-header__phone{display:none;font-weight:700;text-decoration:none}@media (min-width:960px){.tpg-header__phone{display:inline-flex}.tpg-header--over-hero:not(.is-scrolled) .tpg-header__phone,.tpg-header--solid .tpg-header__phone,.tpg-header.is-scrolled .tpg-header__phone{color:#fff}}.tpg-header__cta{display:none}@media (min-width:640px){.tpg-header__cta{display:inline-flex}}.tpg-menu-btn{align-items:center;background:transparent;border:1px solid;border-radius:var(--tpg-radius-sm);color:var(--tpg-ink);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:700;gap:.4rem;padding:.5rem .7rem}.tpg-header--over-hero:not(.is-scrolled) .tpg-menu-btn,.tpg-header--solid .tpg-menu-btn,.tpg-header.is-scrolled .tpg-menu-btn{border-color:hsla(0,0%,100%,.45);color:#fff}@media (min-width:960px){.tpg-menu-btn,.tpg-nav--mobile{display:none}.tpg-nav--desktop{display:block}}.tpg-drawer{background:var(--tpg-ink);color:#fff;display:grid;grid-template-rows:auto 1fr;inset:0;position:fixed;transform:translateX(100%);transition:transform var(--tpg-transition);visibility:hidden;z-index:9600}.tpg-drawer.is-open{transform:none;visibility:visible}.tpg-drawer__top{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.12);display:flex;justify-content:space-between;padding:1rem var(--tpg-gutter)}.tpg-drawer__close{background:transparent;border:0;color:#fff;cursor:pointer;font-size:1.5rem;line-height:1;padding:.35rem}.tpg-drawer__body{overflow-y:auto;padding:1rem var(--tpg-gutter) 2rem}.tpg-drawer .tpg-nav__list--mobile{display:block}.tpg-drawer .tpg-nav__list--mobile>li{border-bottom:1px solid hsla(0,0%,100%,.1)}.tpg-drawer .tpg-nav__list--mobile a{color:#fff;display:block;font-size:1.15rem;font-weight:500;padding:.9rem 0}.tpg-drawer .sub-menu{display:none;padding-left:1rem}.tpg-drawer .tpg-nav__item--open>.sub-menu{display:block}.tpg-drawer__actions{display:grid;gap:.75rem;margin-top:1.5rem}.tpg-hero{background:var(--tpg-ink);color:var(--tpg-cream);overflow:hidden;position:relative}.tpg-hero__grid{display:grid;gap:0;position:relative}@media (min-width:900px){.tpg-hero__grid{align-items:stretch;grid-template-columns:1.05fr 1fr;min-height:640px}}.tpg-hero__content{padding-block:clamp(2.5rem,7vw,5rem);padding-top:calc(var(--tpg-header-h) + clamp(1.5rem, 4vw, 3rem));position:relative;z-index:2}.tpg-hero__content h1{color:#fff;font-size:clamp(2.5rem,6vw,4.5rem);letter-spacing:-.015em;margin-bottom:1rem}.tpg-hero__lede{color:hsla(38,52%,96%,.86);font-size:1.1875rem;max-width:34ch}.tpg-hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.tpg-hero__meta{align-items:center;color:hsla(38,52%,96%,.8);display:flex;flex-wrap:wrap;font-size:.875rem;gap:.75rem 1.5rem;margin-top:1.5rem}.tpg-hero__media{background:var(--tpg-ink-700);min-height:280px;position:relative}.tpg-hero__media .tpg-placeholder,.tpg-hero__media img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.tpg-hero__quote{position:relative;z-index:3}@media (min-width:900px){.tpg-hero__quote{grid-column:1/-1;justify-self:end;margin-bottom:clamp(1.5rem,4vw,2.5rem);margin-top:clamp(-6rem,-7vw,-3rem);width:min(440px,92%)}}@media (max-width:899px){.tpg-hero__quote{margin-bottom:1.5rem;margin-top:-2rem}}.tpg-problem-picker{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}@media (min-width:760px){.tpg-problem-picker{grid-template-columns:repeat(5,1fr)}}.tpg-problem{align-items:flex-start;background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);color:var(--tpg-ink);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:.5rem;padding:1.1rem;text-align:left;transition:transform var(--tpg-transition-fast),border-color var(--tpg-transition-fast),box-shadow var(--tpg-transition-fast)}.tpg-problem:focus-visible,.tpg-problem:hover{border-color:var(--tpg-copper);box-shadow:var(--tpg-shadow-card);transform:translateY(-3px)}.tpg-problem svg{color:var(--tpg-copper);height:28px;width:28px}.tpg-problem span{font-size:.9875rem;font-weight:700}.tpg-stats{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}@media (min-width:900px){.tpg-stats{grid-template-columns:repeat(4,1fr)}}.tpg-cta-band{align-items:center;background:linear-gradient(160deg,var(--tpg-ink) 0,var(--tpg-ink-700) 100%);border-radius:var(--tpg-radius-lg);color:#fff;display:grid;gap:1.5rem;overflow:hidden;padding:clamp(2rem,5vw,3.5rem);position:relative}@media (min-width:900px){.tpg-cta-band{grid-template-columns:1.4fr 1fr}}.tpg-cta-band h2{color:#fff;margin:0 0 .5rem}.tpg-cta-band p{color:hsla(38,52%,96%,.85);margin:0}.tpg-cta-band__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-start}@media (min-width:900px){.tpg-cta-band__actions{justify-content:flex-end}}.tpg-cta-band:after{background:radial-gradient(circle,rgba(200,116,58,.25),transparent 70%);border-radius:50%;bottom:-80px;content:"";height:260px;pointer-events:none;position:absolute;right:-60px;width:260px}.tpg-footer{background:var(--tpg-ink);color:hsla(38,52%,96%,.75);padding-top:clamp(3rem,7vw,5rem)}.tpg-footer h2,.tpg-footer h3{color:#fff;font-family:var(--tpg-font-body);font-size:1.05rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.tpg-footer a{color:hsla(38,52%,96%,.82);text-decoration:none}.tpg-footer a:focus-visible,.tpg-footer a:hover{color:var(--tpg-copper-light);text-decoration:underline}.tpg-footer__grid{display:grid;gap:2rem;grid-template-columns:1fr}@media (min-width:700px){.tpg-footer__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1000px){.tpg-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}.tpg-footer__list{display:grid;font-size:.9375rem;gap:.5rem;list-style:none;margin:0;padding:0}.tpg-footer__nap{font-size:.9375rem;font-style:normal;line-height:1.7}.tpg-footer__nap strong{color:#fff}.tpg-footer__licences{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tpg-footer__bottom{border-top:1px solid hsla(0,0%,100%,.1);display:flex;flex-wrap:wrap;font-size:.8125rem;gap:1rem;justify-content:space-between;margin-top:clamp(2.5rem,5vw,3.5rem);padding-block:1.5rem}.tpg-footer__social{display:flex;gap:.75rem}.tpg-footer__social a{background:hsla(0,0%,100%,.08);border-radius:50%;color:#fff;display:grid;height:38px;place-items:center;width:38px}.tpg-footer__social a:hover{background:var(--tpg-copper-deep);color:#fff}.tpg-footer__social svg{height:18px;width:18px}.tpg-footer__phone{align-items:center;color:#fff;display:inline-flex;font-family:var(--tpg-font-display);font-size:1.6rem;gap:.5rem;margin-top:1rem;text-decoration:none}.tpg-footer__phone:hover{color:var(--tpg-copper-light)}.tpg-map{aspect-ratio:16/9;background:var(--tpg-sage);border:0;border-radius:var(--tpg-radius);filter:grayscale(.15);position:relative;width:100%}.tpg-review-strip{align-items:center;background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);display:flex;flex-wrap:wrap;gap:1rem 1.5rem;padding:1.1rem 1.4rem}.tpg-review-strip--ink{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.16);color:#fff}.tpg-review-strip__quote{flex:1 1 340px;font-family:var(--tpg-font-display);font-size:1.15rem;line-height:1.4;margin:0}.tpg-carousel{position:relative}.tpg-carousel__track{display:grid;gap:1rem;grid-auto-columns:minmax(280px,88%);grid-auto-flow:column;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory;scrollbar-width:thin}@media (min-width:760px){.tpg-carousel__track{grid-auto-columns:minmax(320px,1fr)}}.tpg-carousel__track>*{scroll-snap-align:start}.tpg-carousel__nav{display:flex;gap:.5rem;margin-top:.5rem}.tpg-carousel__btn{background:#fff;border:1px solid var(--tpg-line);border-radius:50%;color:var(--tpg-ink);cursor:pointer;display:grid;height:44px;place-items:center;width:44px}.tpg-carousel__btn:hover{background:var(--tpg-ink);color:#fff}.tpg-carousel__btn svg{height:20px;width:20px}.tpg-section--ink .tpg-carousel__btn{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.25);color:#fff}.tpg-area-cloud{display:flex;flex-wrap:wrap;gap:.6rem}.tpg-marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);overflow:hidden;position:relative}.tpg-marquee__track{animation:tpg-marquee 32s linear infinite;display:flex;gap:.75rem;width:-moz-max-content;width:max-content}@media (prefers-reduced-motion:reduce){.tpg-marquee__track{animation:none;flex-wrap:wrap;width:auto}}@keyframes tpg-marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.tpg-urgent{align-items:center;color:var(--tpg-copper-deep);display:inline-flex;font-size:.8125rem;font-weight:700;gap:.4rem}.tpg-banner{background:var(--tpg-ink);color:var(--tpg-cream);overflow:hidden;padding-bottom:clamp(2rem,5vw,3.5rem);padding-top:calc(var(--tpg-header-h) + clamp(1rem, 3vw, 2rem));position:relative}.tpg-banner--media{background-position:50%;background-size:cover}.tpg-banner__grid{align-items:end;display:grid;gap:1.5rem}@media (min-width:900px){.tpg-banner__grid{grid-template-columns:1.5fr 1fr}}.tpg-banner h1{color:#fff;margin-bottom:.5rem}.tpg-banner__lede{color:hsla(38,52%,96%,.85);font-size:1.125rem;margin:0;max-width:52ch}.tpg-banner__aside{display:flex;flex-direction:column;gap:.75rem}.tpg-banner--over-hero{padding-top:0}.tpg-doc{display:grid;gap:clamp(1.75rem,4vw,3rem)}@media (min-width:980px){.tpg-doc{align-items:start;grid-template-columns:minmax(0,1fr) 380px}}.tpg-doc__aside{display:grid;gap:1.25rem}@media (min-width:980px){.tpg-doc__aside{position:sticky;top:calc(var(--tpg-header-h) + 1rem)}}.tpg-signs{display:grid;gap:.75rem;grid-template-columns:1fr;list-style:none;margin:0;padding:0}@media (min-width:640px){.tpg-signs{grid-template-columns:repeat(2,1fr)}}.tpg-signs li{align-items:flex-start;background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius-sm);display:flex;font-size:.95rem;gap:.7rem;padding:.9rem 1rem}.tpg-signs svg{color:var(--tpg-copper);flex:none;height:22px;margin-top:.1rem;width:22px}.tpg-included{display:grid;gap:.6rem;list-style:none;margin:0;padding:0}.tpg-included li{align-items:flex-start;display:flex;gap:.6rem}.tpg-included svg{color:var(--tpg-teal-ink);flex:none;height:22px;margin-top:.15rem;width:22px}.tpg-contact-grid{display:grid;gap:clamp(1.75rem,4vw,3rem)}@media (min-width:980px){.tpg-contact-grid{align-items:start;grid-template-columns:1.1fr 1fr}}.tpg-contact-list{display:grid;gap:1.1rem;list-style:none;margin:0;padding:0}.tpg-contact-list li{align-items:start;display:grid;gap:.9rem;grid-template-columns:44px 1fr}.tpg-contact-list__icon{background:var(--tpg-sage);border-radius:12px;color:var(--tpg-teal-ink);display:grid;height:44px;place-items:center;width:44px}.tpg-contact-list__icon svg{height:22px;width:22px}.tpg-contact-list strong{color:var(--tpg-ink);display:block}.tpg-review-grid{-moz-columns:1;column-count:1;-moz-column-gap:1.25rem;column-gap:1.25rem}@media (min-width:760px){.tpg-review-grid{-moz-columns:2;column-count:2}}.tpg-review-grid .tpg-review{margin-bottom:1.25rem;-moz-column-break-inside:avoid;break-inside:avoid}.tpg-ask{display:grid;gap:clamp(1.5rem,4vw,2.5rem)}@media (min-width:900px){.tpg-ask{align-items:start;grid-template-columns:1fr 1fr}}.tpg-utility{margin-inline:auto;max-width:640px;padding-block:clamp(3rem,8vw,6rem);text-align:center}.tpg-utility__code{color:var(--tpg-copper);font-family:var(--tpg-font-display);font-size:clamp(4rem,14vw,9rem);line-height:1;margin:0}.tpg-search-form{display:flex;gap:.5rem;margin-inline:auto;max-width:500px}.tpg-projects-grid{display:grid;gap:1.25rem;grid-template-columns:1fr}@media (min-width:640px){.tpg-projects-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.tpg-projects-grid{grid-template-columns:repeat(3,1fr)}}.tpg-quote-form--inline .tpg-quote-card{border-top-width:1px;border:1px solid var(--tpg-line);border-top:4px solid var(--tpg-line);box-shadow:none}.tpg-owner{align-items:center;display:grid;gap:clamp(1.5rem,4vw,2.5rem)}@media (min-width:860px){.tpg-owner{grid-template-columns:.85fr 1fr}}.tpg-owner__photo{aspect-ratio:4/5;background:var(--tpg-sage);border-radius:var(--tpg-radius-lg);overflow:hidden}.tpg-owner__photo img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.tpg-owner blockquote{border-color:var(--tpg-copper)}.tpg-post-card{background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);display:flex;flex-direction:column;height:100%;overflow:hidden}.tpg-post-card__meta{color:var(--tpg-charcoal-soft);font-size:.8125rem}.tpg-post-card__body{display:flex;flex:1;flex-direction:column;gap:.4rem;padding:clamp(1.1rem,2vw,1.5rem)}.tpg-single-post__meta{color:var(--tpg-charcoal-soft);display:flex;flex-wrap:wrap;font-size:.875rem;gap:.75rem;margin-bottom:1.5rem}@media (min-width:1200px){.tpg-hero__content{padding-right:clamp(1rem,3vw,2rem)}}.tpg-hero--compact .tpg-hero__content{padding-block:calc(var(--tpg-header-h) + clamp(1.5rem, 4vw, 2.75rem)) clamp(1.5rem,4vw,2.5rem);padding-bottom:clamp(1.5rem,4vw,2.5rem)}.tpg-hero--compact .tpg-hero__content h1{font-size:clamp(2rem,4.5vw,3.25rem);max-width:22ch}@media (min-width:900px){.tpg-hero--compact .tpg-hero__grid{grid-template-columns:1.15fr 1fr;min-height:520px}}@media (max-width:899px){.tpg-hero--compact .tpg-hero__media{height:240px;min-height:220px;position:relative}}.tpg-list-check{display:grid;gap:.65rem;list-style:none;margin:1.25rem 0 0;padding:0}.tpg-list-check li{align-items:flex-start;display:flex;font-size:1rem;gap:.6rem}.tpg-list-check li a{font-weight:600}.tpg-list-check svg{color:var(--tpg-teal-ink);flex:none;height:20px;margin-top:.2rem;width:20px}.tpg-hero .tpg-list-check svg,.tpg-section--ink .tpg-list-check svg{color:var(--tpg-copper-light)}.tpg-media-frame{background:var(--tpg-sage);border-radius:var(--tpg-radius-lg);box-shadow:var(--tpg-shadow-card);overflow:hidden}.tpg-media-frame .tpg-placeholder,.tpg-media-frame img{aspect-ratio:16/10;display:block;height:auto;-o-object-fit:cover;object-fit:cover;width:100%}.tpg-rating-inline{align-items:center;display:inline-flex;flex-wrap:wrap;gap:.5rem}.tpg-rating-inline .tpg-stars{display:inline-flex;gap:1px}.tpg-card__tag{color:var(--tpg-copper);font-size:.75rem;font-weight:700;letter-spacing:.08em;margin:0 0 .35rem;text-transform:uppercase}.tpg-card__icon{color:var(--tpg-copper);line-height:0;margin:0 0 .6rem}.tpg-card__foot a{align-items:center;display:inline-flex;font-size:.9375rem;font-weight:700;gap:.35rem}.tpg-card__foot svg{height:16px;width:16px}@media (min-width:980px){.tpg-split>aside.tpg-stack{position:sticky;top:calc(var(--tpg-header-h) + 1rem)}}.tpg-chip--static{cursor:default;text-decoration:none}.tpg-chip--static:hover{background:var(--tpg-sage);border-color:var(--tpg-line)}.tpg-singular .tpg-prose>p:first-of-type{font-size:1.0625rem}.tpg-map iframe{border:0;border-radius:var(--tpg-radius);display:block;min-height:320px;width:100%}.tpg-skip{background:var(--tpg-ink);border-radius:0 0 var(--tpg-radius-sm) 0;color:#fff;font-weight:700;left:-9999px;padding:.75rem 1.25rem;position:absolute;text-decoration:none;top:0;z-index:10000}.tpg-skip:focus{left:0;outline:3px solid var(--tpg-copper);outline-offset:2px}.editor-styles-wrapper{background:var(--tpg-cream);color:var(--tpg-charcoal);font-family:var(--tpg-font-body)}.editor-styles-wrapper h1,.editor-styles-wrapper h2,.editor-styles-wrapper h3,.editor-styles-wrapper h4{color:var(--tpg-ink);font-family:var(--tpg-font-display);font-weight:400}.editor-styles-wrapper a{color:var(--tpg-teal-ink)}.block-editor-block-patterns-list__item{border-radius:var(--tpg-radius)}
/* =====================================================================
   Homepage hero + header refinements
   -------------------------------------------------------------------
   1) Desktop header becomes two stacked bands (brand/CTA over nav) so it
      never has to squeeze 6 links + phone + CTA into one short row.
   2) Homepage hero is a clean two-column split (copy | quote card) with a
      full-width photo strip beneath, instead of a fragile 3-column overlap.
   ===================================================================== */

/* Photo/media must always fill its panel (beats the global img reset). */
.tpg-hero__media .tpg-placeholder,
.tpg-hero__media img{height:100%;width:100%;inset:0;object-fit:cover;position:absolute}

/* ---- Header: two stacked bands on desktop ---- */
@media (min-width:960px){
	:root{--tpg-header-h:128px}
	.tpg-header__inner{flex-wrap:wrap;gap:.15rem 1rem;padding-block:.55rem}
	.tpg-brand{flex:1 1 auto}
	.tpg-nav__list{flex-wrap:wrap;justify-content:center;gap:.15rem}
	.tpg-nav--desktop{order:10;flex:1 0 100%;display:flex;justify-content:center;border-top:1px solid hsla(0,0%,100%,.14);margin-top:.35rem}
	.tpg-header--over-hero:not(.is-scrolled) .tpg-nav--desktop{border-top-color:hsla(0,0%,100%,.16)}
	.tpg-header--solid .tpg-nav--desktop,.tpg-header.is-scrolled .tpg-nav--desktop{border-top-color:hsla(0,0%,100%,.12)}
}

/* ---- Homepage hero: two columns, no photo panel ---- */
@media (min-width:900px){
	.tpg-hero--home .tpg-hero__grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:center;padding-top:calc(var(--tpg-header-h) + clamp(1.25rem,3vw,2.25rem))}
	.tpg-hero--home .tpg-hero__content{grid-column:1;align-self:center;padding-top:clamp(1rem,3vw,2rem);padding-right:clamp(1.5rem,4vw,4rem)}
	.tpg-hero--home .tpg-hero__quote{grid-column:2;align-self:center;justify-self:stretch;width:auto;margin:0;padding-top:0}
}

/* ---- Homepage quote card: clear, readable, well-spaced ---- */
.tpg-quote-card--compact{
	padding:clamp(1.5rem,2.4vw,2.25rem);
	border-radius:var(--tpg-radius-lg);
	box-shadow:0 2px 6px rgba(10,43,47,.06),0 30px 60px -26px rgba(10,43,47,.42);
}
.tpg-quote-card--compact .tpg-quote-card__title{font-size:clamp(1.5rem,2.2vw,1.75rem);line-height:1.15;margin:0 0 .35rem}
.tpg-quote-card--compact .tpg-quote-card__sub{font-size:.95rem;line-height:1.5;color:var(--tpg-charcoal-soft);margin:0 0 1.5rem}
.tpg-quote-card--compact .tpg-quote-card__title+.tpg-quote-card__sub{margin-top:0}

/* Two-up rows so Name/Phone and Email/Service pair neatly when the card is wide enough */
.tpg-quote-card--compact{container-type:inline-size}
@container (min-width:430px){
	.tpg-quote-card--compact .tpg-form{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
	.tpg-quote-card--compact .tpg-field--check,
	.tpg-quote-card--compact .tpg-form__actions,
	.tpg-quote-card--compact .tpg-form__status,
	.tpg-quote-card--compact .tpg-form__legal{grid-column:1 / -1}
	.tpg-quote-card--compact .tpg-field--message{grid-column:1 / -1}
}

.tpg-quote-card--compact .tpg-field{margin-bottom:1.05rem}
.tpg-quote-card--compact .tpg-field label,
.tpg-quote-card--compact .tpg-field__label{font-size:.9rem;font-weight:600;color:var(--tpg-ink);margin-bottom:.4rem}
.tpg-quote-card--compact .tpg-field label small{font-weight:500;color:var(--tpg-charcoal-soft)}
.tpg-quote-card--compact .tpg-input,
.tpg-quote-card--compact .tpg-select,
.tpg-quote-card--compact .tpg-textarea{padding:.75rem .9rem;font-size:1rem;line-height:1.4;color:var(--tpg-charcoal)}
.tpg-quote-card--compact .tpg-input::placeholder,
.tpg-quote-card--compact .tpg-textarea::placeholder{color:#8a949a}
.tpg-quote-card--compact .tpg-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%234a5459' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:1.05rem;padding-right:2.4rem}
.tpg-quote-card--compact .tpg-textarea{min-height:84px;resize:vertical}
.tpg-quote-card--compact .tpg-field--check{margin-bottom:.75rem}
.tpg-quote-card--compact .tpg-check{font-size:.82rem;line-height:1.5;color:var(--tpg-charcoal-soft);gap:.6rem}
.tpg-quote-card--compact .tpg-check input[type=checkbox]{width:1.15rem;height:1.15rem;margin-top:.1rem}
.tpg-quote-card--compact .tpg-field--check .tpg-check span{color:var(--tpg-charcoal);font-size:.85rem}
.tpg-quote-card--compact .tpg-form__actions{margin-top:1.25rem}
.tpg-quote-card--compact .tpg-btn--block{width:100%;justify-content:center}
.tpg-quote-card--compact .tpg-form__legal{font-size:.75rem;text-align:center;margin:.75rem 0 0}

@media (max-width:699px){
	.tpg-quote-card--compact{padding:1.35rem}
	.tpg-quote-card--compact .tpg-quote-card__title{font-size:1.4rem}
}
.tpg-quote-card--compact .tpg-honeypot{position:absolute!important}

/* ---- Inner-page hero: clean split, inset rounded image, clears header ---- */
.tpg-hero--compact .tpg-hero__grid{gap:0;min-height:0;grid-template-columns:1fr;padding-top:calc(var(--tpg-header-h) + clamp(1.25rem,3vw,2.25rem));padding-bottom:clamp(2.25rem,4.5vw,3.25rem)}
.tpg-hero--compact .tpg-hero__content{padding-block:0;padding-top:0}
.tpg-hero--compact .tpg-hero__content .tpg-breadcrumb{padding-block:0 1rem}
.tpg-hero--compact .tpg-hero__content h1{font-size:clamp(2rem,4.5vw,3.25rem);max-width:24ch}
.tpg-hero--compact .tpg-hero__media{border-radius:var(--tpg-radius-lg);box-shadow:var(--tpg-shadow-lift);height:clamp(240px,26vw,360px);margin-top:clamp(1.5rem,3vw,2.25rem);min-height:0;overflow:hidden;position:relative;width:100%}
.tpg-hero--compact .tpg-hero__media .tpg-placeholder,.tpg-hero--compact .tpg-hero__media img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}
@media (min-width:900px){
	.tpg-hero--compact .tpg-hero__grid{align-items:center;gap:clamp(2rem,4vw,3.5rem);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
	.tpg-hero--compact .tpg-hero__content{padding-right:0}
	.tpg-hero--compact .tpg-hero__media{margin-top:0;height:clamp(300px,30vw,420px)}
}

/* =====================================================================
   LANDING PAGE GRAPHIC UPGRADE
   -------------------------------------------------------------------
   Builds the homepage out as a photo-led page instead of a text page:
     1) .tpg-hero--cinema    full-bleed photo hero + proof rail
     2) .tpg-trustbar        icon credibility strip
     3) .tpg-bento--services image service tiles with icon badges
     4) .tpg-gallery         photo mosaic + photo marquee
     5) .tpg-why             overlapping photo collage + floating stat
     6) .tpg-process--graphic numbered step cards
     7) .tpg-portfolio       dark image-forward project cards
     8) .tpg-areas           photographic locality tiles
   ===================================================================== */

/* ---- Shared: glass button on photography ---- */
.tpg-btn--glass{background:hsla(0,0%,100%,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:hsla(0,0%,100%,.42);color:#fff}
.tpg-btn--glass:focus-visible,.tpg-btn--glass:hover{background:#fff;border-color:#fff;color:var(--tpg-ink);transform:translateY(-2px)}

/* Button under a grid of tiles */
.tpg-section-foot{margin-top:clamp(1.75rem,3.5vw,2.75rem);margin-bottom:0}
.tpg-section-foot--center{text-align:center}

/* ---- 1) Cinematic photo hero ------------------------------------- */
.tpg-hero--cinema{display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(600px,88vh,900px);overflow:hidden;position:relative;isolation:isolate}
.tpg-hero--cinema::after{border-bottom:1px solid var(--tpg-line);bottom:0;content:"";height:0;left:0;position:absolute;right:0}

.tpg-hero__bg{inset:0;overflow:hidden;position:absolute;z-index:0}
.tpg-hero__photo{height:100%;inset:0;object-fit:cover;object-position:center 38%;position:absolute;width:100%;z-index:0}
.tpg-hero__photo--empty{background:linear-gradient(150deg,var(--tpg-ink) 0,var(--tpg-ink-700) 55%,#134b52 100%)}

/* Layered scrims: readable copy on the left, photo still visible on the right. */
.tpg-hero__scrim{background:
	linear-gradient(100deg,rgba(4,20,23,.96) 0,rgba(4,20,23,.9) 34%,rgba(4,20,23,.66) 62%,rgba(4,20,23,.42) 100%);
	inset:0;position:absolute;z-index:1}
.tpg-hero__glow{background:
	radial-gradient(60% 70% at 88% 18%,rgba(200,116,58,.3),transparent 68%),
	radial-gradient(48% 60% at 6% 100%,rgba(91,192,190,.2),transparent 70%);
	inset:0;position:absolute;z-index:1}

.tpg-hero__inner{align-items:center;display:grid;gap:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(2.5rem,5vw,4rem);padding-top:calc(var(--tpg-header-h) + clamp(3rem,8vw,6rem));position:relative;z-index:2}
.tpg-hero__copy{max-width:46rem}
.tpg-hero__copy h1{color:#fff;font-size:clamp(2.75rem,6.5vw,5.25rem);letter-spacing:-.02em;line-height:1.02;margin:0 0 1.25rem;text-shadow:0 2px 44px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.4)}
.tpg-hero--cinema .tpg-eyebrow{color:#f0c49b;font-size:1rem;letter-spacing:.15em;text-shadow:0 1px 14px rgba(0,0,0,.6)}
.tpg-hero--cinema .tpg-eyebrow::before{background:#f0c49b}
.tpg-hero__lede{color:#fdfaf5;font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.6;max-width:56ch;text-shadow:0 1px 22px rgba(0,0,0,.6)}
.tpg-hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:clamp(1.75rem,3vw,2.25rem)}
.tpg-hero__actions .tpg-btn--lg{font-size:1.125rem;padding:1.05rem 1.95rem}

.tpg-hero__meta{display:flex;flex-wrap:wrap;font-size:1rem;gap:.6rem 1.5rem;list-style:none;margin:clamp(1.6rem,3vw,2.1rem) 0 0;padding:0}
.tpg-hero__meta li{align-items:center;color:#fdfaf5;display:inline-flex;gap:.45rem;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.tpg-hero__meta svg{color:var(--tpg-copper-light);flex:none}
.tpg-hero__meta .tpg-rating-inline{color:#fff;font-weight:600}

/* Proof rail of real job photos along the base of the hero */
.tpg-hero__rail{display:grid;gap:clamp(.6rem,1.4vw,1rem);grid-template-columns:repeat(4,1fr);list-style:none;margin:0;padding:0 0 clamp(1.75rem,3.5vw,2.75rem);position:relative;z-index:2}
.tpg-hero__rail-item{border-radius:var(--tpg-radius-sm);box-shadow:0 18px 40px -20px rgba(0,0,0,.72);overflow:hidden}
.tpg-hero__rail-item img{aspect-ratio:4/3;height:100%;object-fit:cover;transition:transform .6s var(--tpg-ease);width:100%}
.tpg-hero__rail-item:hover img{transform:scale(1.07)}

@media (min-width:980px){
	.tpg-hero__inner{align-items:center;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
}
@media (max-width:979px){
	.tpg-hero--cinema{min-height:0}
	.tpg-hero__rail{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
	.tpg-hero__rail{grid-template-columns:repeat(2,1fr);gap:.5rem}
	.tpg-hero__meta{font-size:.9375rem;gap:.5rem 1.1rem}
	.tpg-hero__lede{font-size:1.15rem}
}

/* The estimate form now lives in its own section, so the hero is a single
   centred column of copy over the photo — nothing to overlap or squeeze. */
.tpg-hero--cinema .tpg-hero__inner{grid-template-columns:1fr}
.tpg-hero--cinema .tpg-hero__copy{max-width:52rem}

/* ---- 2) Icon trust bar ------------------------------------------ */
.tpg-trustbar{background:var(--tpg-ink);border-bottom:1px solid hsla(0,0%,100%,.08);color:var(--tpg-cream);padding-block:clamp(1.5rem,3vw,2.25rem)}
.tpg-trustbar__grid{display:grid;gap:clamp(1.1rem,2.5vw,2rem);grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){.tpg-trustbar__grid{grid-template-columns:repeat(4,1fr)}}
.tpg-trustbar__item{align-items:center;display:flex;gap:.85rem}
.tpg-trustbar__icon{background:hsla(0,0%,100%,.09);border:1px solid hsla(0,0%,100%,.14);border-radius:14px;color:var(--tpg-copper-light);display:grid;flex:none;height:46px;place-items:center;width:46px}
.tpg-trustbar__text{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.tpg-trustbar__text strong{color:#fff;font-family:var(--tpg-font-display);font-size:clamp(1.15rem,1.8vw,1.4rem);font-weight:400}
.tpg-trustbar__text small{color:hsla(38,52%,96%,.72);font-size:.8125rem;font-weight:600;letter-spacing:.02em}

/* ---- 3) Image service tiles (bento) ----------------------------- */
.tpg-bento--services{display:grid;gap:clamp(.85rem,1.8vw,1.25rem);grid-template-columns:1fr}
@media (min-width:700px){.tpg-bento--services{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.tpg-bento--services{grid-template-columns:repeat(4,1fr)}}

.tpg-tile{background:var(--tpg-ink);border-radius:var(--tpg-radius);box-shadow:var(--tpg-shadow-card);min-height:280px;overflow:hidden;position:relative;transition:transform var(--tpg-transition),box-shadow var(--tpg-transition)}
.tpg-tile:hover{box-shadow:var(--tpg-shadow-lift);transform:translateY(-4px)}
.tpg-tile__link{color:#fff;display:flex;flex-direction:column;height:100%;justify-content:flex-end;min-height:280px;position:relative;text-decoration:none}
.tpg-tile__media{inset:0;position:absolute}
.tpg-tile__media img{height:100%;object-fit:cover;transition:transform .7s var(--tpg-ease);width:100%}
.tpg-tile:hover .tpg-tile__media img{transform:scale(1.06)}
.tpg-tile__scrim{background:linear-gradient(180deg,rgba(6,28,31,.12) 0,rgba(6,28,31,.55) 48%,rgba(6,28,31,.93) 100%);inset:0;position:absolute}
.tpg-tile__badge{background:rgba(255,255,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid hsla(0,0%,100%,.26);border-radius:13px;color:#fff;display:grid;height:44px;left:clamp(1rem,2vw,1.4rem);place-items:center;position:absolute;top:clamp(1rem,2vw,1.4rem);width:44px;z-index:2}
.tpg-tile__body{display:flex;flex-direction:column;gap:.45rem;padding:clamp(1.15rem,2.2vw,1.6rem);position:relative;z-index:2}
.tpg-tile__title{color:#fff;font-family:var(--tpg-font-display);font-size:clamp(1.25rem,1.9vw,1.55rem);line-height:1.15}
.tpg-tile__text{color:hsla(38,52%,96%,.82);font-size:.9rem;line-height:1.5}
.tpg-tile__more{align-items:center;color:var(--tpg-copper-light);display:inline-flex;font-size:.875rem;font-weight:700;gap:.35rem;margin-top:.35rem}
.tpg-tile__more svg{transition:transform var(--tpg-transition-fast)}
.tpg-tile:hover .tpg-tile__more svg{transform:translateX(4px)}

/* Feature tiles span two columns with larger type on wide screens.
   Two features + four standard tiles fill a 4-column grid exactly. */
@media (min-width:1040px){
	.tpg-tile--feature{grid-column:span 2}
	.tpg-tile--feature,.tpg-tile--feature .tpg-tile__link{min-height:320px}
	.tpg-tile--feature .tpg-tile__title{font-size:clamp(1.6rem,2.4vw,2rem)}
	.tpg-tile--feature .tpg-tile__text{font-size:.95rem;max-width:48ch}
}

/* ---- 4) Photo mosaic + marquee ---------------------------------- */
.tpg-gallery{background:var(--tpg-ink);color:var(--tpg-cream);overflow:hidden;padding-block:clamp(3.5rem,8vw,7rem) clamp(2rem,4vw,3rem)}
.tpg-gallery h2{color:#fff}
.tpg-gallery .tpg-lede{color:hsla(38,52%,96%,.8)}
.tpg-gallery .tpg-eyebrow{color:var(--tpg-copper-light)}
.tpg-gallery .tpg-eyebrow::before{background:var(--tpg-copper-light)}

.tpg-mosaic{display:grid;gap:clamp(.55rem,1.3vw,1rem);grid-auto-rows:clamp(110px,13vw,180px);grid-template-columns:repeat(4,1fr)}
.tpg-mosaic__cell{border-radius:var(--tpg-radius-sm);margin:0;overflow:hidden;position:relative}
.tpg-mosaic__cell img{height:100%;object-fit:cover;transition:transform .7s var(--tpg-ease);width:100%}
.tpg-mosaic__cell:hover img{transform:scale(1.06)}
.tpg-mosaic__cell--1{grid-column:span 2;grid-row:span 2}
.tpg-mosaic__cell--2{grid-column:span 2}
.tpg-mosaic__cell--3{grid-column:span 1}
.tpg-mosaic__cell--4{grid-column:span 1}
.tpg-mosaic__cell--5{grid-column:span 2}
.tpg-mosaic__cell--6{grid-column:span 2}
@media (max-width:700px){
	.tpg-mosaic{grid-auto-rows:clamp(96px,20vw,140px);grid-template-columns:repeat(2,1fr)}
	.tpg-mosaic__cell--1{grid-column:span 2;grid-row:span 1}
	.tpg-mosaic__cell--2,.tpg-mosaic__cell--5,.tpg-mosaic__cell--6{grid-column:span 1}
}

.tpg-marquee--photos{margin-top:clamp(2rem,4vw,3rem)}
.tpg-marquee__item{border-radius:var(--tpg-radius-sm);flex:none;overflow:hidden;width:clamp(150px,17vw,230px)}
.tpg-marquee__item img{aspect-ratio:4/3;height:100%;object-fit:cover;width:100%}

/* ---- 5) Why-us photo collage ------------------------------------ */
.tpg-why{align-items:center;display:grid;gap:clamp(2rem,5vw,4rem)}
@media (min-width:940px){.tpg-why{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr)}}

.tpg-why__media{padding:0 0 clamp(2.25rem,5vw,3rem) 0;position:relative}
.tpg-why__main{border-radius:var(--tpg-radius-lg);box-shadow:var(--tpg-shadow-lift);margin:0;overflow:hidden}
.tpg-why__main img{aspect-ratio:4/5;height:auto;object-fit:cover;width:100%}
.tpg-why__inset{border:5px solid var(--tpg-cream);border-radius:var(--tpg-radius);bottom:clamp(1rem,2.5vw,2rem);box-shadow:var(--tpg-shadow-lift);margin:0;overflow:hidden;position:absolute;right:clamp(-1.5rem,-1.5vw,-.75rem);width:clamp(150px,42%,220px)}
.tpg-why__inset img{aspect-ratio:4/3;height:auto;object-fit:cover;width:100%}
.tpg-why__stat{background:var(--tpg-copper-deep);border-radius:var(--tpg-radius);bottom:0;box-shadow:0 20px 44px -18px rgba(168,90,37,.85);color:#fff;display:flex;flex-direction:column;left:clamp(1rem,2.5vw,2rem);padding:clamp(.9rem,1.8vw,1.25rem) clamp(1.1rem,2vw,1.5rem);position:absolute;z-index:3}
.tpg-why__stat strong{font-family:var(--tpg-font-display);font-size:clamp(1.75rem,3.4vw,2.5rem);line-height:1}
.tpg-why__stat span{font-size:.75rem;font-weight:700;letter-spacing:.04em;max-width:14ch;text-transform:uppercase;opacity:.92}

.tpg-why__rating{align-items:center;background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius-pill);display:inline-flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem;padding:.6rem 1.1rem}
.tpg-why__rating span{color:var(--tpg-charcoal-soft);font-size:.875rem;font-weight:600}

/* ---- 6) Graphic process steps ---------------------------------- */
.tpg-process-band{background:linear-gradient(165deg,#fff 0,var(--tpg-cream) 100%);padding-block:var(--tpg-section)}
.tpg-process--graphic{counter-reset:none;gap:clamp(1rem,2.2vw,1.6rem);list-style:none;margin:0;padding:0}
.tpg-process--graphic .tpg-process__step{align-items:flex-start;background:#fff;border:1px solid var(--tpg-line);border-radius:var(--tpg-radius);box-shadow:var(--tpg-shadow-card);display:flex;flex-direction:column;gap:.5rem;overflow:hidden;padding:clamp(1.5rem,2.6vw,2rem);position:relative;transition:transform var(--tpg-transition),box-shadow var(--tpg-transition)}
.tpg-process--graphic .tpg-process__step::before{content:none}
.tpg-process--graphic .tpg-process__step::after{background:linear-gradient(90deg,var(--tpg-copper),transparent);content:"";height:3px;left:0;position:absolute;top:0;width:56px}
.tpg-process--graphic .tpg-process__step:hover{box-shadow:var(--tpg-shadow-lift);transform:translateY(-4px)}
.tpg-process__icon{background:var(--tpg-sage);border-radius:14px;color:var(--tpg-teal-ink);display:grid;height:48px;margin-bottom:.35rem;place-items:center;width:48px}
.tpg-process__num{color:var(--tpg-line);font-family:var(--tpg-font-display);font-size:clamp(2.2rem,4vw,3rem);line-height:1;position:absolute;right:clamp(1.25rem,2.2vw,1.75rem);top:clamp(1rem,2vw,1.4rem)}
.tpg-process--graphic h3{font-size:1.2rem;margin:0}
.tpg-process--graphic p{color:var(--tpg-charcoal-soft);font-size:.9375rem;margin:0}

/* ---- 7) Dark image portfolio ----------------------------------- */
.tpg-portfolio-band{position:relative}
.tpg-portfolio-band::before{background:radial-gradient(70% 60% at 85% 0,rgba(200,116,58,.16),transparent 70%);content:"";inset:0;pointer-events:none;position:absolute}
.tpg-portfolio{display:grid;gap:clamp(1rem,2.2vw,1.5rem);grid-template-columns:1fr;position:relative}
@media (min-width:700px){.tpg-portfolio{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.tpg-portfolio{grid-template-columns:repeat(3,1fr)}}

.tpg-portfolio__card{background:rgba(255,255,255,.04);border:1px solid hsla(0,0%,100%,.12);border-radius:var(--tpg-radius);min-height:380px;overflow:hidden;position:relative;transition:transform var(--tpg-transition),border-color var(--tpg-transition)}
.tpg-portfolio__card:hover{border-color:hsla(0,0%,100%,.28);transform:translateY(-4px)}
.tpg-portfolio__link{color:#fff;display:flex;flex-direction:column;height:100%;justify-content:flex-end;min-height:380px;position:relative;text-decoration:none}
.tpg-portfolio__media{inset:0;position:absolute}
.tpg-portfolio__media img{height:100%;object-fit:cover;transition:transform .7s var(--tpg-ease);width:100%}
.tpg-portfolio__card:hover .tpg-portfolio__media img{transform:scale(1.06)}
.tpg-portfolio__scrim{background:linear-gradient(180deg,rgba(6,28,31,.05) 0,rgba(6,28,31,.6) 45%,rgba(6,28,31,.95) 100%);inset:0;position:absolute}
.tpg-portfolio__body{display:flex;flex-direction:column;gap:.4rem;padding:clamp(1.25rem,2.2vw,1.75rem);position:relative;z-index:2}
.tpg-portfolio__tag{align-self:flex-start;background:var(--tpg-copper);border-radius:var(--tpg-radius-pill);color:#fff;font-size:.6875rem;font-weight:700;letter-spacing:.07em;padding:.25rem .6rem;text-transform:uppercase}
.tpg-portfolio__title{color:#fff;font-size:clamp(1.3rem,2vw,1.6rem);margin:.15rem 0 0}
.tpg-portfolio__text{color:hsla(38,52%,96%,.82);font-size:.9rem;line-height:1.5}
.tpg-portfolio__more{align-items:center;color:var(--tpg-copper-light);display:inline-flex;font-size:.875rem;font-weight:700;gap:.35rem;margin-top:.3rem}
.tpg-portfolio__more svg{transition:transform var(--tpg-transition-fast)}
.tpg-portfolio__card:hover .tpg-portfolio__more svg{transform:translateX(4px)}

/* ---- 8) Photographic service-area tiles ------------------------- */
.tpg-areas{display:grid;gap:clamp(.7rem,1.6vw,1.1rem);grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){.tpg-areas{grid-template-columns:repeat(4,1fr)}}

.tpg-areas__tile{border-radius:var(--tpg-radius);box-shadow:var(--tpg-shadow-card);display:block;min-height:180px;overflow:hidden;position:relative;text-decoration:none;transition:transform var(--tpg-transition),box-shadow var(--tpg-transition)}
.tpg-areas__tile:hover{box-shadow:var(--tpg-shadow-lift);transform:translateY(-4px)}
.tpg-areas__media{inset:0;position:absolute}
.tpg-areas__media img{height:100%;object-fit:cover;transition:transform .7s var(--tpg-ease);width:100%}
.tpg-areas__tile:hover .tpg-areas__media img{transform:scale(1.08)}
.tpg-areas__scrim{background:linear-gradient(180deg,rgba(6,28,31,0) 35%,rgba(6,28,31,.85) 100%);inset:0;position:absolute}
.tpg-areas__label{align-items:center;bottom:0;color:#fff;display:flex;font-size:1rem;font-weight:700;gap:.4rem;left:0;padding:clamp(.85rem,1.6vw,1.1rem);position:absolute;right:0;z-index:2}
.tpg-areas__label svg{color:var(--tpg-copper-light);flex:none}
@media (min-width:900px){.tpg-areas__tile{min-height:220px}}

/* ---- CTA band: photographic variant ---------------------------- */
.tpg-cta-band__bg{inset:0;position:absolute;z-index:0}
.tpg-cta-band__bg img{height:100%;object-fit:cover;object-position:center 40%;width:100%}
.tpg-cta-band--media{background:var(--tpg-ink)}
.tpg-cta-band--media::before{background:linear-gradient(100deg,rgba(6,28,31,.96) 0,rgba(6,28,31,.88) 40%,rgba(6,28,31,.58) 100%);content:"";inset:0;position:absolute;z-index:1}
.tpg-cta-band__glow{background:radial-gradient(50% 80% at 92% 50%,rgba(200,116,58,.34),transparent 70%);inset:0;pointer-events:none;position:absolute;z-index:1}
.tpg-cta-band__copy,.tpg-cta-band__actions{position:relative;z-index:2}

/* ---- 9) Free-estimate section ----------------------------------- */
.tpg-estimate{background:#fff;position:relative}
.tpg-estimate::before{background:radial-gradient(58% 70% at 0 30%,rgba(31,138,138,.07),transparent 70%);content:"";inset:0;pointer-events:none;position:absolute}
.tpg-estimate__grid{align-items:start;display:grid;gap:clamp(2rem,5vw,4rem);position:relative}
@media (min-width:980px){.tpg-estimate__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr)}}
.tpg-estimate__aside h2{margin-bottom:.6rem}
.tpg-estimate__media{border-radius:var(--tpg-radius);box-shadow:var(--tpg-shadow-lift);margin:clamp(1.5rem,3vw,2.25rem) 0 0;overflow:hidden}
.tpg-estimate__media img{aspect-ratio:16/10;height:auto;object-fit:cover;width:100%}
.tpg-estimate__media img[width][height]{aspect-ratio:16/10;height:auto;object-fit:cover;width:100%}
.tpg-estimate__points{display:grid;gap:.7rem;list-style:none;margin:clamp(1.5rem,3vw,2rem) 0 0;padding:0}
.tpg-estimate__points li{align-items:flex-start;color:var(--tpg-charcoal);display:flex;font-size:1rem;gap:.65rem}
.tpg-estimate__point-icon{background:var(--tpg-sage);border-radius:10px;color:var(--tpg-teal-ink);display:grid;flex:none;height:34px;place-items:center;width:34px}
.tpg-estimate__call{align-items:center;color:var(--tpg-charcoal-soft);display:flex;flex-wrap:wrap;font-size:.9375rem;gap:.5rem .75rem;margin:clamp(1.5rem,3vw,2rem) 0 0}
.tpg-estimate__call a{align-items:center;background:var(--tpg-ink);border-radius:var(--tpg-radius-pill);color:#fff;display:inline-flex;font-weight:700;gap:.45rem;padding:.6rem 1.1rem;text-decoration:none;transition:background var(--tpg-transition-fast)}
.tpg-estimate__call a:hover{background:var(--tpg-copper-deep);color:#fff}
.tpg-estimate__form{position:relative}
@media (min-width:980px){.tpg-estimate__form{position:sticky;top:calc(var(--tpg-header-h) + 1.25rem)}}
.tpg-estimate .tpg-quote-card--compact{box-shadow:0 2px 6px rgba(10,43,47,.06),0 34px 68px -28px rgba(10,43,47,.4)}

/* =====================================================================
   Image-fill overrides
   -------------------------------------------------------------------
   The global rule `img[width][height]{height:auto}` has specificity
   (0,2,1) and beats a plain `height:100%`, which would stop photos from
   filling their tiles. These selectors re-assert the fill at (0,3,1).
   ===================================================================== */
.tpg-hero__photo[width][height],
.tpg-hero__rail-item img[width][height],
.tpg-tile__media img[width][height],
.tpg-mosaic__cell img[width][height],
.tpg-marquee__item img[width][height],
.tpg-why__main img[width][height],
.tpg-why__inset img[width][height],
.tpg-portfolio__media img[width][height],
.tpg-areas__media img[width][height],
.tpg-cta-band__bg img[width][height]{height:100%;width:100%}

.tpg-hero__photo[width][height]{inset:0;position:absolute}
.tpg-tile__media img[width][height],
.tpg-portfolio__media img[width][height],
.tpg-areas__media img[width][height],
.tpg-cta-band__bg img[width][height],
.tpg-hero__rail-item img[width][height],
.tpg-mosaic__cell img[width][height],
.tpg-marquee__item img[width][height],
.tpg-why__main img[width][height],
.tpg-why__inset img[width][height]{object-fit:cover}

.tpg-why__main img[width][height]{aspect-ratio:4/5;height:auto}
.tpg-why__inset img[width][height]{aspect-ratio:4/3;height:auto}
.tpg-hero__rail-item img[width][height]{aspect-ratio:4/3}
.tpg-marquee__item img[width][height]{aspect-ratio:4/3}
/* Review request QR figure — [tpg_review_qr] */
.tpg-review-qr{background:#fff;border:1px solid var(--tpg-line,#e3e3e3);border-radius:18px;padding:1.75rem;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:1rem;box-shadow:0 18px 40px -28px rgba(15,23,42,.35)}
.tpg-review-qr__code{display:block;width:min(100%,212px);line-height:0}
.tpg-review-qr__code svg{width:100%;height:auto;display:block}
.tpg-review-qr__caption{font-size:.9375rem;font-weight:600;letter-spacing:.01em;color:var(--tpg-ink,#0f172a);text-align:center;margin:0}
.tpg-review-qr--left{margin-inline:0}
.tpg-review-qr--right{margin-inline:auto 0}
@media (max-width:520px){.tpg-review-qr{padding:1.25rem}.tpg-review-qr__code{width:min(100%,180px)}}
