@font-face {
  font-family: 'Crimson Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/crimson-pro-light-0.ttf) format('truetype');
}

/* Preserve the original heading families and italic accents; refine spacing and body text. */
.replica-body{--brand-heading:'Crimson Text',serif;--brand-body:'Manrope',sans-serif;--brand-ink:#28352a;--brand-paper:#f5f0ee;--brand-accent:#4c6047;--body-copy-size:clamp(1.1875rem,1.0625rem + .22vw,1.25rem);font-family:var(--brand-body);font-size:18px;line-height:1.75;color:var(--brand-ink)}
.replica-body :is(h1,h2,h3,h4,h5,h6),.replica-body :is(h1,h2,h3,h4,h5,h6) :is(span,em,strong){letter-spacing:-.025em!important;text-transform:none!important}
.replica-body :is(h1,h2){font-weight:400!important;line-height:1.2!important}
.replica-body h1{font-size:clamp(38px,4.2vw,60px)!important}
.replica-body h2{font-size:clamp(32px,3.3vw,46px)!important}
.replica-body h3{font-family:var(--brand-body)!important;font-size:clamp(24px,2.2vw,28px)!important;font-weight:500!important;line-height:1.25!important}
.replica-body :is(h4,h5,h6){font-family:var(--brand-body)!important;font-size:20px!important;line-height:1.5!important;font-weight:500!important}
.replica-body :is(p,li,.elementor-text-editor,.qodef-m-text,.portfolio_categories,.category),.replica-body p :is(span,em,strong){font-family:var(--brand-body)!important;font-size:18px!important;font-weight:400;line-height:1.75!important;letter-spacing:0!important}
.replica-body p{margin:0 0 1.1em}.replica-body p:last-child{margin-bottom:0}
.replica-body [data-lead-copy]{font:400 clamp(20px,1.6vw,22px)/1.75 var(--brand-body)!important;letter-spacing:0!important;margin:0 auto;max-width:1000px}
.replica-body .original-hero .original-welcome{font-family:'Crimson Pro','Crimson Text',serif!important;font-size:clamp(40px,4.7vw,68px)!important;line-height:1.08!important;font-weight:300!important;max-width:650px;width:52%;left:max(7%,calc((100% - 1240px)/2));top:auto;bottom:18%;padding:22px 28px;background:#172016a6;border-left:3px solid #c7b48c;box-sizing:border-box}
.replica-body :is(.qbutton,.qodef-qi-button){font-family:var(--brand-body)!important;min-height:48px;box-sizing:border-box;line-height:1.35!important;letter-spacing:.08em!important;max-width:100%}
.replica-body .qbutton{display:inline-flex;align-items:center;justify-content:center;padding:15px 26px!important;height:auto!important;white-space:normal;text-align:center}
.replica-body .qodef-qi-button.qodef-type--icon-boxed{display:inline-flex!important;align-items:center!important;gap:22px!important;padding:15px 24px!important;width:auto!important;max-width:100%;min-height:52px;overflow:visible!important}
.replica-body .qodef-qi-button.qodef-type--icon-boxed .qodef-m-text{padding:0!important;font-size:16px!important;line-height:1.5!important;font-weight:600;letter-spacing:.025em!important}
.replica-body .qodef-qi-button.qodef-type--icon-boxed .qodef-m-icon{position:static!important;display:flex!important;align-items:center;justify-content:center;flex:0 0 18px;width:18px!important;height:20px!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important}
.replica-body .qodef-qi-button .qodef-m-icon-inner{display:flex;align-items:center;justify-content:center}.replica-body .qodef-qi-button .qodef-m-icon svg{width:16px!important;height:16px!important}
.replica-body .qodef-qi-button.qodef-hover--icon-move-horizontal-short:hover .qodef-m-icon-inner{transform:translateX(3px)!important}
.replica-body .portfolio_description h3{font-size:26px!important}.replica-body .footer_bottom p{font-size:16px!important;line-height:1.8!important}
.replica-body .contact-direct{padding:28px 0}.replica-body .contact-direct-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.replica-body .contact-direct-actions a{display:inline-flex;padding:14px 22px;background:var(--brand-accent);color:#fff!important;border:1px solid var(--brand-accent);font:600 16px/1.5 var(--brand-body);border-radius:2px}.replica-body .contact-direct-actions a:last-child{background:transparent;color:var(--brand-accent)!important}
.replica-body .seo-section{padding:80px 6%;background:var(--brand-paper);color:var(--brand-ink)}.replica-body .seo-inner{max-width:1100px;margin:0 auto}.replica-body .seo-inner>p{max-width:800px}.replica-body .seo-inner h2{margin:0 0 25px;max-width:900px}.replica-body .section-eyebrow{font-size:15px!important;letter-spacing:.1em!important;text-transform:uppercase;margin-bottom:18px}.replica-body .seo-links{display:flex;flex-wrap:wrap;gap:12px 32px;margin:30px 0 65px}.replica-body .seo-links a{color:var(--brand-accent);border-bottom:1px solid #a4ae9e;padding:10px 0;font-size:18px}.replica-body .faq-list{border-top:1px solid #cbd0c6}.replica-body .faq-list details{border-bottom:1px solid #cbd0c6;padding:0}.replica-body .faq-list summary{padding:22px 40px 22px 0;cursor:pointer;font:500 24px/1.3 var(--brand-heading);position:relative;list-style:none}.replica-body .faq-list summary::-webkit-details-marker{display:none}.replica-body .faq-list summary:after{content:'+';position:absolute;right:5px;top:20px}.replica-body .faq-list details[open] summary:after{content:'−'}.replica-body .faq-list p{max-width:850px;padding:0 30px 24px 0}.replica-body .managed-gallery{position:relative}
@media(max-width:767px){.replica-body .seo-section{padding:55px 24px}.replica-body .seo-links{flex-direction:column;align-items:flex-start;margin-bottom:45px}.replica-body .qodef-qi-button.qodef-type--icon-boxed{gap:18px!important;padding:14px 22px!important}.replica-body :is(p,li,.elementor-text-editor){font-size:18px!important}.replica-body .contact-direct-actions{flex-direction:column;align-items:flex-start}.replica-body .faq-list summary{font-size:22px}.replica-body .original-welcome br{display:none}}

.replica-body :is(nav.main_menu,nav.mobile_menu) :is(a,span){font-family:var(--brand-heading)!important;font-size:18px!important;font-style:normal!important}
.replica-body :is(h1,h2,h3,h4,h5,h6),.replica-body :is(h1,h2,h3,h4,h5,h6) *{text-decoration:none!important}

/* Readable body copy, captions and controls across both languages. */
.replica-body :is(figcaption,td,th,label,input,textarea,select){font-family:var(--brand-body)!important;font-size:18px!important;line-height:1.75!important;font-weight:400;}
.replica-body :is(p,.elementor-text-editor,.elementor-widget-text-editor,blockquote){font-family:var(--brand-body)!important;font-size:var(--body-copy-size)!important;line-height:1.75!important;font-weight:400;}
.replica-body p :is(span,em){font-size:inherit!important;font-weight:inherit!important;line-height:inherit!important}
.replica-body :is(p,li) strong{font-weight:600!important;font-size:inherit!important}
.replica-body :is(.elementor-widget-text-editor,.elementor-widget-container)>p{max-width:72ch}
.replica-body .elementor-widget-text-editor .elementor-widget-container>p:not([data-lead-copy]){margin-inline:0}
.replica-body :is(.qbutton,.qodef-qi-button,.qodef-qi-button .qodef-m-text){font-size:16px!important;letter-spacing:.035em!important;font-weight:600!important;min-height:48px}
.replica-body .qodef-qi-button .qodef-m-text{min-height:0}
.replica-body :is(.portfolio_categories,.category,.portfolio_description .project_category,.projects_holder .project_category,.footer_bottom a,.footer_bottom p){font-size:16px!important;line-height:1.65!important}
.replica-body .portfolio_description :is(h3,h4,h5,h6){font-family:var(--brand-body)!important;letter-spacing:0!important}
.replica-body .footer_bottom{height:auto;min-height:64px;padding:20px 24px;box-sizing:border-box}
.replica-body .footer_bottom p{letter-spacing:.025em!important}
.replica-body .language-picker{font-family:var(--brand-body);font-size:16px;line-height:1.5}
.replica-body .language-picker :is(summary,a){padding:12px 18px;min-height:48px;box-sizing:border-box}
.replica-body .faq-list summary{font-size:26px;line-height:1.4}
.replica-body nav.main_menu>ul>li>a{letter-spacing:.1em!important;padding-left:18px;padding-right:18px}
.replica-body nav.mobile_menu ul li a{min-height:48px;padding:12px 20px!important;box-sizing:border-box;line-height:1.5!important}
.replica-body .dcs-consent :is(p,label,button){font-family:var(--brand-body)!important;font-size:16px!important;line-height:1.6!important}
.replica-body :is(.qbutton,.qodef-qi-button,.language-picker a):focus-visible{outline:3px solid #8a7656;outline-offset:4px}
@media(max-width:767px){.replica-body .elementor-widget-text-editor p{max-width:100%}.replica-body .faq-list summary{font-size:24px}.replica-body .qodef-qi-button.qodef-type--icon-boxed{gap:16px!important;padding:14px 20px!important}.replica-body :is(.elementor-widget-heading,.elementor-widget-text-editor){min-width:0}.replica-body p{overflow-wrap:break-word}.replica-body .footer_bottom{padding:20px}}

.replica-body .embed-consent-placeholder{font-family:var(--brand-body)!important;font-size:18px!important;line-height:1.6!important}

/* Give consecutive heading, prose and action widgets the same reading column. */
.replica-body .elementor-widget:has(> .elementor-widget-container > :is(h1,h2,h3,h4,h5,h6):only-child):has(+ .elementor-widget-text-editor > .elementor-widget-container > p),
.replica-body .elementor-widget:has(> .elementor-widget-container > :is(h1,h2,h3,h4,h5,h6):only-child) + .elementor-widget-text-editor:has(> .elementor-widget-container > p),
.replica-body .elementor-widget:has(> .elementor-widget-container > :is(h1,h2,h3,h4,h5,h6):only-child) + .elementor-widget-text-editor:has(> .elementor-widget-container > p) + .elementor-widget:has(> .elementor-widget-container > :is(.qbutton,.qodef-qi-button)) {
  width: min(100%, var(--reading-width, 52rem));
  max-width: 100% !important;
  margin-inline: auto;
}

.replica-body :is(
  .elementor-widget:has(> .elementor-widget-container > :is(h1,h2,h3,h4,h5,h6):only-child):has(+ .elementor-widget-text-editor > .elementor-widget-container > p),
  .elementor-widget:has(> .elementor-widget-container > :is(h1,h2,h3,h4,h5,h6):only-child) + .elementor-widget-text-editor:has(> .elementor-widget-container > p)
) > :is(.elementor-widget-container, .elementor-widget-container > :is(h1,h2,h3,h4,h5,h6,p)) {
  padding-inline: 0 !important;
  margin-inline: 0;
  text-align: start;
  text-indent: 0;
}

.replica-body .elementor-widget:has(> .elementor-widget-container > :is(h1,h2,h3,h4,h5,h6):only-child) + .elementor-widget-text-editor:has(> .elementor-widget-container > p) + .elementor-widget > .elementor-widget-container:has(> :is(.qbutton,.qodef-qi-button)) {
  padding-inline: 0 !important;
  margin-inline: 0;
  text-align: start;
}

.replica-body p[data-page-intro],
.replica-body .portfolio_single_text_holder > p:first-of-type:not(:has(img)) {
  max-width: 72ch;
  margin-inline: 0;
  color: var(--brand-ink);
  font-family: var(--brand-body) !important;
  font-size: var(--body-copy-size) !important;
  font-weight: 400 !important;
  line-height: 1.75 !important;
  letter-spacing: normal !important;
  text-align: start;
}

/* Keep the fences catalogue on one rail, with a repeatable text-and-photo layout. */
.replica-body [data-fences-page].e-con {
  --fences-width: 76rem;
  --fences-gutter: clamp(1.25rem, 4vw, 4rem);
  box-sizing: border-box;
  padding-block: clamp(2.5rem, 5vw, 5rem);
  padding-inline: var(--fences-gutter);
  gap: clamp(2.5rem, 5vw, 4.5rem);
}

.replica-body [data-fences-page] > .e-con {
  width: 100%;
  max-width: var(--fences-width);
  margin-block: 0;
}

.replica-body [data-fences-page] > :is(.elementor-element-db6a320, .elementor-element-577071a) {
  padding: 0;
}

.replica-body [data-fences-page] .elementor-element-db6a320 > .elementor-widget,
.replica-body [data-fences-page] .elementor-element-e499949 > .e-con-inner > .elementor-widget {
  margin-inline: 0 !important;
  align-self: flex-start;
}

.replica-body [data-fences-page] > :is(.elementor-element-21e8eae, .elementor-element-ef7daed, .elementor-element-84b38ee) {
  --reading-width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  min-height: 0;
  padding: 0;
}

.replica-body [data-fences-page] > :is(.elementor-element-21e8eae, .elementor-element-ef7daed, .elementor-element-84b38ee) > .e-con {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0 !important;
}

.replica-body [data-fences-page] > :is(.elementor-element-21e8eae, .elementor-element-ef7daed, .elementor-element-84b38ee) > .e-con > .e-con-inner {
  width: 100%;
  padding: 0;
}

.replica-body [data-fences-page] .elementor-element-26357b3:not(.elementor-motion-effects-element-type-background) {
  background-color: transparent;
}

.replica-body [data-fences-page] > :is(.elementor-element-21e8eae, .elementor-element-ef7daed, .elementor-element-84b38ee) :is(.elementor-widget-heading, .elementor-widget-qi_addons_for_elementor_button) > .elementor-widget-container {
  margin-block: 0;
  padding-block: 0;
}

.replica-body [data-fences-page] .elementor-element-ce7456d {
  aspect-ratio: 5 / 6;
}

.replica-body [data-fences-page] .elementor-element-6119f3c {
  text-align: start;
}

.replica-body [data-fences-page] .elementor-element-316dfd4,
.replica-body [data-fences-page] .elementor-element-316dfd4 > .e-con-inner {
  --e-con-grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  max-width: none;
  padding: 0;
}

.replica-body [data-fences-page] .elementor-element-316dfd4 .wp-caption {
  width: 100%;
  margin-inline: 0;
}

.replica-body [data-fences-page] .elementor-element-316dfd4 .elementor-widget-image > .elementor-widget-container {
  padding: 0;
}

.replica-body [data-fences-page] .elementor-element-316dfd4 .wp-caption img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.replica-body [data-fences-page] > .elementor-element-e499949 {
  min-height: 0;
  padding: clamp(1.5rem, 4vw, 3.5rem);
}

.replica-body [data-fences-page] .elementor-element-e499949 > .e-con-inner {
  max-width: none;
  padding: 0;
}

.replica-body [data-fences-page] .elementor-element-e499949 .elementor-widget-heading > .elementor-widget-container {
  padding-block-start: 0;
}

.replica-body [data-fences-page] .elementor-element-e499949 .elementor-widget-spacer {
  display: none;
}

.replica-body:has([data-fences-page]) .seo-section {
  padding-inline: var(--mobile-gutter, clamp(1.25rem, 4vw, 4rem));
}

.replica-body:has([data-fences-page]) .seo-inner {
  max-width: 76rem;
}

@media (max-width: 900px) {
  .replica-body [data-fences-page] > :is(.elementor-element-21e8eae, .elementor-element-ef7daed, .elementor-element-84b38ee) {
    grid-template-columns: minmax(0, 1fr);
  }

  .replica-body [data-fences-page] .elementor-element-ce7456d {
    aspect-ratio: 16 / 9;
  }

  .replica-body [data-fences-page] .elementor-element-316dfd4,
  .replica-body [data-fences-page] .elementor-element-316dfd4 > .e-con-inner {
    --e-con-grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 540px) {
  .replica-body [data-fences-page] .elementor-element-ce7456d {
    display: none;
  }

  .replica-body [data-fences-page] .elementor-element-316dfd4,
  .replica-body [data-fences-page] .elementor-element-316dfd4 > .e-con-inner {
    --e-con-grid-template-columns: minmax(0, 1fr);
  }
}

/* Keep the story text and portrait carousel together without the oversized background. */
.replica-body [data-fences-story].e-con {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, min(36%, 22rem));
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3.25rem);
  width: min(95%, 76rem);
  padding: clamp(1.5rem, 3vw, 3rem);
}

.replica-body [data-fences-story] > .e-con,
.replica-body [data-fences-story] > .e-con > .e-con-inner {
  width: 100%;
  min-width: 0;
  padding: 0;
}

.replica-body [data-fences-story] .elementor-widget-heading > .elementor-widget-container {
  padding: 0;
}

.replica-body [data-fences-story] .elementor-widget-qi_addons_for_elementor_button > .elementor-widget-container {
  margin-block-start: 0;
}

.replica-body [data-fences-story] .swiper-slide-inner {
  margin: 0;
  aspect-ratio: 4 / 5;
}

.replica-body [data-fences-story] .swiper-slide-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  .replica-body [data-fences-story].e-con {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    padding-inline: clamp(1rem, 5.6vw, 1.5rem);
  }

  .replica-body [data-fences-story] .elementor-widget-image-carousel {
    width: min(100%, 64vw, 15rem);
    margin-inline: auto;
  }
}

.language-picker .language-code {
  display: none;
}

@media (max-width: 767px) {
  body:has(> .replica-body) {
    padding: 0;
  }

  .replica-body {
    --mobile-gutter: clamp(20px, 5.6vw, 28px);
    position: relative;
  }

  .replica-body .language-picker {
    position: absolute;
    inset: 27px var(--mobile-gutter) auto auto;
    background: var(--brand-paper);
    border-radius: 4px;
  }

  .replica-body .language-picker summary {
    min-height: 44px;
    padding: 10px 12px;
  }

  .replica-body .language-picker summary::after {
    margin-left: 6px;
  }

  .replica-body .language-picker .language-name {
    display: none;
  }

  .replica-body .language-picker .language-code {
    display: inline;
  }

  .replica-body .language-picker a {
    position: absolute;
    right: 0;
    width: max-content;
    border: 1px solid #ddd;
    background: #fff;
  }

  .replica-body .mobile_menu_button {
    min-width: 44px;
  }

  .replica-body .original-hero {
    height: clamp(430px, 73svh, 620px);
  }

  .replica-body .original-hero .original-welcome {
    left: var(--mobile-gutter);
    bottom: 74px;
    width: calc(100% - 2 * var(--mobile-gutter));
    max-width: 470px;
    padding: 16px 18px;
    font-size: clamp(32px, 9vw, 40px) !important;
    line-height: 1.12 !important;
    text-wrap: balance;
  }

  .replica-body .hero-controls {
    right: 50%;
    bottom: 12px;
    transform: translateX(50%);
    gap: 0;
    border-radius: 24px;
    background: #172016a6;
  }

  .replica-body .hero-controls [data-slide] {
    width: 44px;
    height: 44px;
    margin: 0;
    background: transparent;
  }

  .replica-body .hero-controls [data-slide]::before,
  .replica-body .hero-controls [data-slide][aria-pressed="true"]::after {
    content: "";
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
  }

  .replica-body .hero-controls [data-slide]::before {
    width: 6px;
    height: 6px;
    background: white;
  }

  .replica-body .hero-controls [data-slide][aria-pressed="true"]::after {
    width: 16px;
    height: 16px;
  }

  .replica-body .hero-controls .hero-pause {
    width: 44px;
    height: 44px;
  }

  .replica-body .elementor-top-section:not(:has(.original-hero)),
  .replica-body .elementor > .e-parent {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: var(--mobile-gutter) !important;
  }

  .replica-body .elementor-top-section:not(:has(.original-hero)) > .elementor-container {
    width: 100%;
    max-width: none;
  }

  .replica-body .elementor-top-section:not(:has(.original-hero)) .elementor-top-column > .elementor-widget-wrap {
    padding-inline: 0 !important;
    margin-inline: 0 !important;
  }

  .replica-body .elementor > .e-parent:first-child {
    padding-block-start: 36px !important;
  }

  .replica-body .e-parent > .e-child:has(> .elementor-widget-heading h1) {
    padding-inline: 0 !important;
    margin-block-end: 32px !important;
  }

  .replica-body :is(.elementor-element-29df499, .elementor-element-690ddc75) {
    padding-block: 36px 48px !important;
  }

  .replica-body .elementor-widget-container:has(> p[data-page-intro]),
  .replica-body .e-parent :is(.e-child, .e-con-inner):has(p[data-page-intro]),
  .replica-body .default_template_holder > .elementor > .e-parent:has(p[data-page-intro]) {
    padding-inline: 0 !important;
  }

  .replica-body .contact-bg .elementor-spacer-inner {
    height: 16px !important;
  }

  .replica-body .elementor-element-26357b3 {
    padding: 16px !important;
  }

  .replica-body .footer_bottom_holder .footer_bottom {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    height: auto !important;
    padding-block: 24px !important;
  }

  .replica-body .footer_bottom .textwidget {
    width: 100%;
    min-width: 0;
  }

  .replica-body .footer_bottom .textwidget > div {
    flex-wrap: wrap;
    justify-content: center;
  }

  .replica-body .footer_bottom .textwidget a {
    white-space: normal;
    letter-spacing: .045em !important;
  }

  .replica-body.home .elementor-element-d878c43 {
    padding-block: 36px !important;
  }

  .replica-body.home .elementor-element-b0af19d {
    padding-block: 18px 40px !important;
  }

  .replica-body.home .projects_holder.hover_text .text_holder {
    position: static;
    height: auto;
    padding: 12px 0 4px;
    opacity: 1;
    transform: none;
    text-align: left;
    pointer-events: none;
  }

  .replica-body.home .projects_holder.hover_text :is(.text_holder_inner, .text_holder_inner2) {
    display: block;
    padding: 0;
  }

  .replica-body.home .projects_holder.hover_text :is(.portfolio_title, .project_category, .project_category span) {
    color: var(--brand-ink) !important;
  }

  .replica-body.home .projects_holder.hover_text .portfolio_title {
    font-size: 22px !important;
    margin-block: 0 4px;
  }

  .replica-body.home .projects_holder.hover_text .portfolio_shader {
    display: none;
  }

  .replica-body.home .projects_holder.hover_text .portfolio_subtitle {
    display: none;
  }

  .replica-body .content .container_inner.default_template_holder {
    width: calc(100% - 2 * var(--mobile-gutter));
    max-width: none;
  }

  .replica-body .portfolio_single {
    margin-top: 32px;
  }

  .replica-body .portfolio_single_text_title span {
    font-size: inherit;
  }

  .replica-body .portfolio_single_text_holder :is(h3, h4) {
    margin-bottom: 10px;
  }
}
